@ardium-ui/ui 4.2.2-alpha.0 → 4.2.2

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 (51) hide show
  1. package/esm2022/lib/_internal/ngmodel-component.mjs +1 -2
  2. package/esm2022/lib/calendar/calendar.component.mjs +18 -15
  3. package/esm2022/lib/calendar/calendar.directives.mjs +107 -0
  4. package/esm2022/lib/calendar/calendar.internal-directives.mjs +22 -0
  5. package/esm2022/lib/calendar/calendar.module.mjs +51 -4
  6. package/esm2022/lib/calendar/index.mjs +2 -1
  7. package/esm2022/lib/calendar/views/days-view/days-view.component.mjs +4 -4
  8. package/esm2022/lib/checkbox/checkbox.component.mjs +17 -5
  9. package/esm2022/lib/checkbox/checkbox.directives.mjs +14 -0
  10. package/esm2022/lib/checkbox/checkbox.internal-directives.mjs +15 -0
  11. package/esm2022/lib/checkbox/checkbox.module.mjs +9 -7
  12. package/esm2022/lib/checkbox/checkbox.types.mjs +1 -1
  13. package/esm2022/lib/checkbox/index.mjs +2 -1
  14. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +8 -4
  15. package/esm2022/lib/checkbox-list/checkbox-list.directives.mjs +14 -0
  16. package/esm2022/lib/checkbox-list/checkbox-list.module.mjs +9 -7
  17. package/esm2022/lib/checkbox-list/index.mjs +2 -1
  18. package/esm2022/lib/file-inputs/file-input-base.defaults.mjs +3 -3
  19. package/esm2022/lib/inputs/date-input/date-input.component.mjs +17 -6
  20. package/esm2022/lib/inputs/date-input/date-input.directive.mjs +107 -3
  21. package/esm2022/lib/inputs/date-input/date-input.module.mjs +62 -4
  22. package/esm2022/lib/inputs/digit-input/digit-input.component.mjs +7 -7
  23. package/esm2022/lib/radio/radio-group.component.mjs +4 -4
  24. package/fesm2022/ardium-ui-ui.mjs +438 -49
  25. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  26. package/lib/_internal/ngmodel-component.d.ts +0 -1
  27. package/lib/calendar/calendar.component.d.ts +13 -11
  28. package/lib/calendar/calendar.directives.d.ts +51 -0
  29. package/lib/calendar/calendar.internal-directives.d.ts +17 -0
  30. package/lib/calendar/calendar.module.d.ts +6 -5
  31. package/lib/calendar/index.d.ts +1 -0
  32. package/lib/checkbox/checkbox.component.d.ts +12 -2
  33. package/lib/checkbox/checkbox.directives.d.ts +9 -0
  34. package/lib/checkbox/checkbox.internal-directives.d.ts +10 -0
  35. package/lib/checkbox/checkbox.module.d.ts +4 -2
  36. package/lib/checkbox/checkbox.types.d.ts +5 -0
  37. package/lib/checkbox/index.d.ts +1 -0
  38. package/lib/checkbox-list/checkbox-list.component.d.ts +3 -1
  39. package/lib/checkbox-list/checkbox-list.directives.d.ts +9 -0
  40. package/lib/checkbox-list/checkbox-list.module.d.ts +5 -3
  41. package/lib/checkbox-list/index.d.ts +1 -0
  42. package/lib/file-inputs/file-input-base.defaults.d.ts +2 -2
  43. package/lib/inputs/date-input/date-input.component.d.ts +11 -2
  44. package/lib/inputs/date-input/date-input.directive.d.ts +50 -1
  45. package/lib/inputs/date-input/date-input.module.d.ts +10 -8
  46. package/lib/inputs/digit-input/digit-input.component.d.ts +0 -1
  47. package/lib/radio/radio-group.component.d.ts +2 -2
  48. package/package.json +1 -1
  49. package/prebuilt-themes/default/calendar.css +0 -1
  50. package/prebuilt-themes/default/calendar.css.map +1 -1
  51. package/themes/default/calendar.scss +1 -1
@@ -0,0 +1,22 @@
1
+ import { Directive, input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class _CalendarTemplateRepositoryDirective {
4
+ constructor(template) {
5
+ this.template = template;
6
+ this.daysViewHeaderTmp = input(undefined);
7
+ this.yearsViewHeaderTmp = input(undefined);
8
+ this.monthsViewHeaderTmp = input(undefined);
9
+ this.weekdayTmp = input(undefined);
10
+ this.floatingMonthTmp = input(undefined);
11
+ this.yearTmp = input(undefined);
12
+ this.monthTmp = input(undefined);
13
+ this.dayTmp = input(undefined);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _CalendarTemplateRepositoryDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: _CalendarTemplateRepositoryDirective, isStandalone: true, selector: "ard-calendar > ng-template[_ard-tmp-repository]", inputs: { daysViewHeaderTmp: { classPropertyName: "daysViewHeaderTmp", publicName: "daysViewHeaderTmp", isSignal: true, isRequired: false, transformFunction: null }, yearsViewHeaderTmp: { classPropertyName: "yearsViewHeaderTmp", publicName: "yearsViewHeaderTmp", isSignal: true, isRequired: false, transformFunction: null }, monthsViewHeaderTmp: { classPropertyName: "monthsViewHeaderTmp", publicName: "monthsViewHeaderTmp", isSignal: true, isRequired: false, transformFunction: null }, weekdayTmp: { classPropertyName: "weekdayTmp", publicName: "weekdayTmp", isSignal: true, isRequired: false, transformFunction: null }, floatingMonthTmp: { classPropertyName: "floatingMonthTmp", publicName: "floatingMonthTmp", isSignal: true, isRequired: false, transformFunction: null }, yearTmp: { classPropertyName: "yearTmp", publicName: "yearTmp", isSignal: true, isRequired: false, transformFunction: null }, monthTmp: { classPropertyName: "monthTmp", publicName: "monthTmp", isSignal: true, isRequired: false, transformFunction: null }, dayTmp: { classPropertyName: "dayTmp", publicName: "dayTmp", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _CalendarTemplateRepositoryDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{ selector: 'ard-calendar > ng-template[_ard-tmp-repository]', standalone: true }]
21
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuaW50ZXJuYWwtZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuaW50ZXJuYWwtZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFhOUQsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUUxQyxzQkFBaUIsR0FBRyxLQUFLLENBQXlELFNBQVMsQ0FBQyxDQUFDO1FBQzdGLHVCQUFrQixHQUFHLEtBQUssQ0FBMEQsU0FBUyxDQUFDLENBQUM7UUFDL0Ysd0JBQW1CLEdBQUcsS0FBSyxDQUEyRCxTQUFTLENBQUMsQ0FBQztRQUNqRyxlQUFVLEdBQUcsS0FBSyxDQUFrRCxTQUFTLENBQUMsQ0FBQztRQUMvRSxxQkFBZ0IsR0FBRyxLQUFLLENBQXdELFNBQVMsQ0FBQyxDQUFDO1FBQzNGLFlBQU8sR0FBRyxLQUFLLENBQStDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pFLGFBQVEsR0FBRyxLQUFLLENBQWdELFNBQVMsQ0FBQyxDQUFDO1FBQzNFLFdBQU0sR0FBRyxLQUFLLENBQThDLFNBQVMsQ0FBQyxDQUFDO0lBVDFCLENBQUM7K0dBRDVDLG9DQUFvQzttR0FBcEMsb0NBQW9DOzs0RkFBcEMsb0NBQW9DO2tCQURoRCxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGlEQUFpRCxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFyZENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDYWxlbmRhckRheVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyTW9udGhzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyTW9udGhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDYWxlbmRhcldlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDYWxlbmRhclllYXJzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyWWVhclRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vY2FsZW5kYXIuZGlyZWN0aXZlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtY2FsZW5kYXIgPiBuZy10ZW1wbGF0ZVtfYXJkLXRtcC1yZXBvc2l0b3J5XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIF9DYWxlbmRhclRlbXBsYXRlUmVwb3NpdG9yeURpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmRlZmluZWQ+KSB7fVxyXG5cclxuICByZWFkb25seSBkYXlzVmlld0hlYWRlclRtcCA9IGlucHV0PEFyZENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSB5ZWFyc1ZpZXdIZWFkZXJUbXAgPSBpbnB1dDxBcmRDYWxlbmRhclllYXJzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IG1vbnRoc1ZpZXdIZWFkZXJUbXAgPSBpbnB1dDxBcmRDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSB3ZWVrZGF5VG1wID0gaW5wdXQ8QXJkQ2FsZW5kYXJXZWVrZGF5VGVtcGxhdGVEaXJlY3RpdmUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZmxvYXRpbmdNb250aFRtcCA9IGlucHV0PEFyZENhbGVuZGFyRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IHllYXJUbXAgPSBpbnB1dDxBcmRDYWxlbmRhclllYXJUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBtb250aFRtcCA9IGlucHV0PEFyZENhbGVuZGFyTW9udGhUZW1wbGF0ZURpcmVjdGl2ZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBkYXlUbXAgPSBpbnB1dDxBcmRDYWxlbmRhckRheVRlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG59XHJcbiJdfQ==
@@ -4,21 +4,68 @@ import { ArdiumButtonModule } from '../buttons/button';
4
4
  import { ArdiumIconModule } from '../icon';
5
5
  import { ArdiumIconButtonModule } from './../buttons/icon-button/icon-button.module';
6
6
  import { ArdiumCalendarComponent } from './calendar.component';
7
+ import { ArdCalendarDaysViewHeaderTemplateDirective, ArdCalendarDayTemplateDirective, ArdCalendarFloatingMonthTemplateDirective, ArdCalendarMonthsViewHeaderTemplateDirective, ArdCalendarMonthTemplateDirective, ArdCalendarWeekdayTemplateDirective, ArdCalendarYearsViewHeaderTemplateDirective, ArdCalendarYearTemplateDirective, } from './calendar.directives';
7
8
  import { DaysViewComponent } from './views/days-view/days-view.component';
8
9
  import { MonthsViewComponent } from './views/months-view/months-view.component';
9
10
  import { YearsViewComponent } from './views/years-view/years-view.component';
10
11
  import * as i0 from "@angular/core";
11
12
  export class ArdiumCalendarModule {
12
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCalendarModule, declarations: [ArdiumCalendarComponent, DaysViewComponent, MonthsViewComponent, YearsViewComponent], imports: [CommonModule, DatePipe, UpperCasePipe, ArdiumIconButtonModule, ArdiumIconModule, ArdiumButtonModule], exports: [ArdiumCalendarComponent] }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCalendarModule, declarations: [ArdiumCalendarComponent,
15
+ DaysViewComponent,
16
+ MonthsViewComponent,
17
+ YearsViewComponent,
18
+ // template directives
19
+ ArdCalendarDaysViewHeaderTemplateDirective,
20
+ ArdCalendarYearsViewHeaderTemplateDirective,
21
+ ArdCalendarMonthsViewHeaderTemplateDirective,
22
+ ArdCalendarWeekdayTemplateDirective,
23
+ ArdCalendarFloatingMonthTemplateDirective,
24
+ ArdCalendarYearTemplateDirective,
25
+ ArdCalendarMonthTemplateDirective,
26
+ ArdCalendarDayTemplateDirective], imports: [CommonModule, DatePipe, UpperCasePipe, ArdiumIconButtonModule, ArdiumIconModule, ArdiumButtonModule], exports: [ArdiumCalendarComponent,
27
+ // template directives
28
+ ArdCalendarDaysViewHeaderTemplateDirective,
29
+ ArdCalendarYearsViewHeaderTemplateDirective,
30
+ ArdCalendarMonthsViewHeaderTemplateDirective,
31
+ ArdCalendarWeekdayTemplateDirective,
32
+ ArdCalendarFloatingMonthTemplateDirective,
33
+ ArdCalendarYearTemplateDirective,
34
+ ArdCalendarMonthTemplateDirective,
35
+ ArdCalendarDayTemplateDirective] }); }
14
36
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCalendarModule, imports: [CommonModule, ArdiumIconButtonModule, ArdiumIconModule, ArdiumButtonModule] }); }
15
37
  }
16
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCalendarModule, decorators: [{
17
39
  type: NgModule,
18
40
  args: [{
19
- declarations: [ArdiumCalendarComponent, DaysViewComponent, MonthsViewComponent, YearsViewComponent],
41
+ declarations: [
42
+ ArdiumCalendarComponent,
43
+ DaysViewComponent,
44
+ MonthsViewComponent,
45
+ YearsViewComponent,
46
+ // template directives
47
+ ArdCalendarDaysViewHeaderTemplateDirective,
48
+ ArdCalendarYearsViewHeaderTemplateDirective,
49
+ ArdCalendarMonthsViewHeaderTemplateDirective,
50
+ ArdCalendarWeekdayTemplateDirective,
51
+ ArdCalendarFloatingMonthTemplateDirective,
52
+ ArdCalendarYearTemplateDirective,
53
+ ArdCalendarMonthTemplateDirective,
54
+ ArdCalendarDayTemplateDirective,
55
+ ],
20
56
  imports: [CommonModule, DatePipe, UpperCasePipe, ArdiumIconButtonModule, ArdiumIconModule, ArdiumButtonModule],
21
- exports: [ArdiumCalendarComponent],
57
+ exports: [
58
+ ArdiumCalendarComponent,
59
+ // template directives
60
+ ArdCalendarDaysViewHeaderTemplateDirective,
61
+ ArdCalendarYearsViewHeaderTemplateDirective,
62
+ ArdCalendarMonthsViewHeaderTemplateDirective,
63
+ ArdCalendarWeekdayTemplateDirective,
64
+ ArdCalendarFloatingMonthTemplateDirective,
65
+ ArdCalendarYearTemplateDirective,
66
+ ArdCalendarMonthTemplateDirective,
67
+ ArdCalendarDayTemplateDirective,
68
+ ],
22
69
  }]
23
70
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBTzdFLE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjtnSEFBcEIsb0JBQW9CLGlCQUpoQix1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsYUFDeEYsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLGFBQ25HLHVCQUF1QjtnSEFFdEIsb0JBQW9CLFlBSHJCLFlBQVksRUFBMkIsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCOzs0RkFHbEcsb0JBQW9CO2tCQUxoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDO29CQUNuRyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQztvQkFDOUcsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgVXBwZXJDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFyZGl1bUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbnMvYnV0dG9uJztcclxuaW1wb3J0IHsgQXJkaXVtSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24nO1xyXG5pbXBvcnQgeyBBcmRpdW1JY29uQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi8uLi9idXR0b25zL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXlzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdmlld3MvZGF5cy12aWV3L2RheXMtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb250aHNWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi92aWV3cy9tb250aHMtdmlldy9tb250aHMtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBZZWFyc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdzL3llYXJzLXZpZXcveWVhcnMtdmlldy5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1DYWxlbmRhckNvbXBvbmVudCwgRGF5c1ZpZXdDb21wb25lbnQsIE1vbnRoc1ZpZXdDb21wb25lbnQsIFllYXJzVmlld0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIFVwcGVyQ2FzZVBpcGUsIEFyZGl1bUljb25CdXR0b25Nb2R1bGUsIEFyZGl1bUljb25Nb2R1bGUsIEFyZGl1bUJ1dHRvbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0FyZGl1bUNhbGVuZGFyQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhbGVuZGFyTW9kdWxlIHt9XHJcbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUNMLDBDQUEwQyxFQUMxQywrQkFBK0IsRUFDL0IseUNBQXlDLEVBQ3pDLDRDQUE0QyxFQUM1QyxpQ0FBaUMsRUFDakMsbUNBQW1DLEVBQ25DLDJDQUEyQyxFQUMzQyxnQ0FBZ0MsR0FDakMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFnQzdFLE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjtnSEFBcEIsb0JBQW9CLGlCQTVCN0IsdUJBQXVCO1lBQ3ZCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QiwwQ0FBMEM7WUFDMUMsMkNBQTJDO1lBQzNDLDRDQUE0QztZQUM1QyxtQ0FBbUM7WUFDbkMseUNBQXlDO1lBQ3pDLGdDQUFnQztZQUNoQyxpQ0FBaUM7WUFDakMsK0JBQStCLGFBRXZCLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixhQUUzRyx1QkFBdUI7WUFDdkIsc0JBQXNCO1lBQ3RCLDBDQUEwQztZQUMxQywyQ0FBMkM7WUFDM0MsNENBQTRDO1lBQzVDLG1DQUFtQztZQUNuQyx5Q0FBeUM7WUFDekMsZ0NBQWdDO1lBQ2hDLGlDQUFpQztZQUNqQywrQkFBK0I7Z0hBR3RCLG9CQUFvQixZQWRyQixZQUFZLEVBQTJCLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQjs7NEZBY2xHLG9CQUFvQjtrQkE5QmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QiwwQ0FBMEM7d0JBQzFDLDJDQUEyQzt3QkFDM0MsNENBQTRDO3dCQUM1QyxtQ0FBbUM7d0JBQ25DLHlDQUF5Qzt3QkFDekMsZ0NBQWdDO3dCQUNoQyxpQ0FBaUM7d0JBQ2pDLCtCQUErQjtxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUM7b0JBQzlHLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLHNCQUFzQjt3QkFDdEIsMENBQTBDO3dCQUMxQywyQ0FBMkM7d0JBQzNDLDRDQUE0Qzt3QkFDNUMsbUNBQW1DO3dCQUNuQyx5Q0FBeUM7d0JBQ3pDLGdDQUFnQzt3QkFDaEMsaUNBQWlDO3dCQUNqQywrQkFBK0I7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgVXBwZXJDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFyZGl1bUJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbnMvYnV0dG9uJztcclxuaW1wb3J0IHsgQXJkaXVtSWNvbk1vZHVsZSB9IGZyb20gJy4uL2ljb24nO1xyXG5pbXBvcnQgeyBBcmRpdW1JY29uQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi8uLi9idXR0b25zL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEFyZENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDYWxlbmRhckRheVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyTW9udGhzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyTW9udGhUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDYWxlbmRhcldlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBBcmRDYWxlbmRhclllYXJzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIEFyZENhbGVuZGFyWWVhclRlbXBsYXRlRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vY2FsZW5kYXIuZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IERheXNWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi92aWV3cy9kYXlzLXZpZXcvZGF5cy12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vbnRoc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL3ZpZXdzL21vbnRocy12aWV3L21vbnRocy12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFllYXJzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vdmlld3MveWVhcnMtdmlldy95ZWFycy12aWV3LmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgQXJkaXVtQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBEYXlzVmlld0NvbXBvbmVudCxcclxuICAgIE1vbnRoc1ZpZXdDb21wb25lbnQsXHJcbiAgICBZZWFyc1ZpZXdDb21wb25lbnQsXHJcbiAgICAvLyB0ZW1wbGF0ZSBkaXJlY3RpdmVzXHJcbiAgICBBcmRDYWxlbmRhckRheXNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhclllYXJzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkQ2FsZW5kYXJNb250aHNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhcldlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIEFyZENhbGVuZGFyRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkQ2FsZW5kYXJZZWFyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhck1vbnRoVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhckRheVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIFVwcGVyQ2FzZVBpcGUsIEFyZGl1bUljb25CdXR0b25Nb2R1bGUsIEFyZGl1bUljb25Nb2R1bGUsIEFyZGl1bUJ1dHRvbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgQXJkaXVtQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICAvLyB0ZW1wbGF0ZSBkaXJlY3RpdmVzXHJcbiAgICBBcmRDYWxlbmRhckRheXNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhclllYXJzVmlld0hlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkQ2FsZW5kYXJNb250aHNWaWV3SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhcldlZWtkYXlUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIEFyZENhbGVuZGFyRmxvYXRpbmdNb250aFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgQXJkQ2FsZW5kYXJZZWFyVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhck1vbnRoVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBBcmRDYWxlbmRhckRheVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1DYWxlbmRhck1vZHVsZSB7fVxyXG4iXX0=
@@ -1,5 +1,6 @@
1
1
  export * from './calendar.component';
2
2
  export * from './calendar.defaults';
3
+ export * from './calendar.directives';
3
4
  export * from './calendar.module';
4
5
  export * from './calendar.types';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIuZGVmYXVsdHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIudHlwZXMnO1xyXG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci5kZWZhdWx0cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIuZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci50eXBlcyc7XHJcblxyXG4iXX0=
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, computed, HostListener, input, output, viewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, HostListener, input, output, viewChild } from '@angular/core';
2
2
  import { isMonthOutOfRange } from '../months-view/months-view.helpers';
3
3
  import { getCalendarDayData, getCalendarWeekdayArray } from './days-view.helpers';
4
4
  import * as i0 from "@angular/core";
@@ -270,13 +270,13 @@ export class DaysViewComponent {
270
270
  this.triggerHighlightSameDayPreviousPage.emit(event.altKey);
271
271
  }
272
272
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DaysViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
273
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DaysViewComponent, selector: "ard-days-view", inputs: { tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: true, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: true, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: true, transformFunction: null }, _isUsingKeyboard: { classPropertyName: "_isUsingKeyboard", publicName: "_isUsingKeyboard", isSignal: true, isRequired: true, transformFunction: null }, activeYear: { classPropertyName: "activeYear", publicName: "activeYear", isSignal: true, isRequired: true, transformFunction: null }, activeMonth: { classPropertyName: "activeMonth", publicName: "activeMonth", isSignal: true, isRequired: true, transformFunction: null }, selectedDate: { classPropertyName: "selectedDate", publicName: "selectedDate", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: true, transformFunction: null }, isDayFilteredOut: { classPropertyName: "isDayFilteredOut", publicName: "isDayFilteredOut", isSignal: true, isRequired: true, transformFunction: null }, highlightedDay: { classPropertyName: "highlightedDay", publicName: "highlightedDay", isSignal: true, isRequired: true, transformFunction: null }, firstWeekday: { classPropertyName: "firstWeekday", publicName: "firstWeekday", isSignal: true, isRequired: true, transformFunction: null }, daysViewHeaderTemplate: { classPropertyName: "daysViewHeaderTemplate", publicName: "daysViewHeaderTemplate", isSignal: true, isRequired: true, transformFunction: null }, floatingMonthTemplate: { classPropertyName: "floatingMonthTemplate", publicName: "floatingMonthTemplate", isSignal: true, isRequired: true, transformFunction: null }, weekdayTemplate: { classPropertyName: "weekdayTemplate", publicName: "weekdayTemplate", isSignal: true, isRequired: true, transformFunction: null }, dayTemplate: { classPropertyName: "dayTemplate", publicName: "dayTemplate", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { triggerOpenYearsView: "triggerOpenYearsView", triggerOpenMonthsView: "triggerOpenMonthsView", triggerSelectDay: "triggerSelectDay", triggerChangeMonth: "triggerChangeMonth", triggerChangeYear: "triggerChangeYear", triggerHighlightDay: "triggerHighlightDay", triggerHighlightNextDay: "triggerHighlightNextDay", triggerHighlightPreviousDay: "triggerHighlightPreviousDay", triggerHighlightFirstDay: "triggerHighlightFirstDay", triggerHighlightLastDay: "triggerHighlightLastDay", triggerHighlightSameDayPreviousPage: "triggerHighlightSameDayPreviousPage", triggerHighlightSameDayNextPage: "triggerHighlightSameDayNextPage", focusEvent: "focus", blurEvent: "blur" }, host: { listeners: { "mousemove": "onMouseMove()" } }, viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"ard-days-view\">\r\n @if (!readOnly()) {\r\n <div class=\"ard-calendar__top-toolbar\">\r\n <ng-template\r\n #defaultDaysViewHeaderTemplate\r\n let-currDate\r\n let-nextMonth=\"nextMonth\"\r\n let-prevMonth=\"prevMonth\"\r\n let-canGoToNextMonth=\"canGoToNextPage\"\r\n let-canGoToPreviousMonth=\"canGoToPreviousPage\"\r\n let-openYearsView=\"openYearsView\"\r\n >\r\n <div class=\"ard-calendar__calendar-header\">\r\n <ard-button\r\n class=\"ard-calendar__header-button\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n variant=\"pill\"\r\n [tabIndex]=\"tabIndex()\"\r\n (click)=\"openYearsView()\"\r\n >\r\n {{ currDate | date: 'MMM YYYY' | uppercase }}\r\n <div class=\"ard-dropdown-arrow\"></div>\r\n </ard-button>\r\n <div class=\"ard-calendar__arrows\">\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"prevMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToPreviousMonth\"\r\n >\r\n <ard-icon>chevron_left</ard-icon>\r\n </ard-icon-button>\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"nextMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToNextMonth\"\r\n >\r\n <ard-icon>chevron_right</ard-icon>\r\n </ard-icon-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"daysViewHeaderTemplate() || defaultDaysViewHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"daysViewHeaderContext()\"\r\n />\r\n </div>\r\n }\r\n <div class=\"ard-calendar__weekdays\">\r\n <ng-template\r\n #defaultWeekdayTemplate\r\n let-date\r\n >\r\n <div class=\"ard-calendar__weekday\">{{ date | date: 'EEEEE' }}</div>\r\n </ng-template>\r\n @for (weekdayIndex of weekdayArray(); track weekdayIndex) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"weekdayTemplate() || defaultWeekdayTemplate\"\r\n [ngTemplateOutletContext]=\"weekdayContext()(weekdayIndex)\"\r\n ></ng-template>\r\n }\r\n </div>\r\n <div\r\n #focusableElement\r\n class=\"ard-calendar__days-grid\"\r\n [class.ard-reserve-top-row]=\"reserveTopRow()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ariaLabel]=\"currentAriaLabel()\"\r\n (focus)=\"focusEvent.emit($event)\"\r\n (focus)=\"onDayGridFocus()\"\r\n (blur)=\"blurEvent.emit($event)\"\r\n (blur)=\"onDayGridBlur()\"\r\n (click)=\"onDayGridClick()\"\r\n (keydown)=\"onMainGridKeydown($event)\"\r\n role=\"grid\"\r\n >\r\n <div class=\"ard-calendar__floating-month\">\r\n <ng-template\r\n #defaultFloatingMonthTemplate\r\n let-date\r\n >\r\n {{ date | date: 'LLL' | uppercase }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"floatingMonthTemplate() || defaultFloatingMonthTemplate\"\r\n [ngTemplateOutletContext]=\"floatingMonthContext()\"\r\n ></ng-template>\r\n </div>\r\n @for (week of activeCalendarData().array; track $index) {\r\n @for (day of week; track day ? day : activeCalendarData().leadingSpaces - $index) {\r\n @if (day === null) {\r\n <div class=\"ard-calendar__entry ard-calendar__entry-empty\"></div>\r\n } @else {\r\n <div\r\n class=\"ard-calendar__entry\"\r\n [class.ard-calendar__entry-highlighted]=\"highlightedDay() === day.value\"\r\n [class.ard-calendar__entry-disabled]=\"day.disabled || isDayFilteredOut()(day.value)\"\r\n [class.ard-calendar__entry-selected]=\"isDaySelected(day.value)\"\r\n [class.ard-calendar-today]=\"isDayToday(day.value)\"\r\n (click)=\"onCalendarDayClick(day.value)\"\r\n (mousemove)=\"$event.stopPropagation()\"\r\n (mouseover)=\"onCalendarDayMouseover(day.value)\"\r\n role=\"gridcell\"\r\n >\r\n <div class=\"ard-calendar__entry-button\">\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <ng-template\r\n #defaultDayTemplate\r\n let-day\r\n >\r\n {{ day }}\r\n </ng-template>\r\n <ng-template\r\n [ngTemplateOutlet]=\"dayTemplate() || defaultDayTemplate\"\r\n [ngTemplateOutletContext]=\"dayContext()(day.value)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumIconButtonComponent, selector: "ard-icon-button", inputs: ["wrapperClasses", "type", "color", "lightColoring", "compact", "pointerEventsWhenDisabled"] }, { kind: "component", type: i3.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }, { kind: "component", type: i4.ArdiumButtonComponent, selector: "ard-button", inputs: ["icon", "variant", "alignIcon", "vertical"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
273
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DaysViewComponent, selector: "ard-days-view", inputs: { tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: true, isRequired: true, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: true, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: true, transformFunction: null }, _isUsingKeyboard: { classPropertyName: "_isUsingKeyboard", publicName: "_isUsingKeyboard", isSignal: true, isRequired: true, transformFunction: null }, activeYear: { classPropertyName: "activeYear", publicName: "activeYear", isSignal: true, isRequired: true, transformFunction: null }, activeMonth: { classPropertyName: "activeMonth", publicName: "activeMonth", isSignal: true, isRequired: true, transformFunction: null }, selectedDate: { classPropertyName: "selectedDate", publicName: "selectedDate", isSignal: true, isRequired: true, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: true, transformFunction: null }, isDayFilteredOut: { classPropertyName: "isDayFilteredOut", publicName: "isDayFilteredOut", isSignal: true, isRequired: true, transformFunction: null }, highlightedDay: { classPropertyName: "highlightedDay", publicName: "highlightedDay", isSignal: true, isRequired: true, transformFunction: null }, firstWeekday: { classPropertyName: "firstWeekday", publicName: "firstWeekday", isSignal: true, isRequired: true, transformFunction: null }, daysViewHeaderTemplate: { classPropertyName: "daysViewHeaderTemplate", publicName: "daysViewHeaderTemplate", isSignal: true, isRequired: true, transformFunction: null }, floatingMonthTemplate: { classPropertyName: "floatingMonthTemplate", publicName: "floatingMonthTemplate", isSignal: true, isRequired: true, transformFunction: null }, weekdayTemplate: { classPropertyName: "weekdayTemplate", publicName: "weekdayTemplate", isSignal: true, isRequired: true, transformFunction: null }, dayTemplate: { classPropertyName: "dayTemplate", publicName: "dayTemplate", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { triggerOpenYearsView: "triggerOpenYearsView", triggerOpenMonthsView: "triggerOpenMonthsView", triggerSelectDay: "triggerSelectDay", triggerChangeMonth: "triggerChangeMonth", triggerChangeYear: "triggerChangeYear", triggerHighlightDay: "triggerHighlightDay", triggerHighlightNextDay: "triggerHighlightNextDay", triggerHighlightPreviousDay: "triggerHighlightPreviousDay", triggerHighlightFirstDay: "triggerHighlightFirstDay", triggerHighlightLastDay: "triggerHighlightLastDay", triggerHighlightSameDayPreviousPage: "triggerHighlightSameDayPreviousPage", triggerHighlightSameDayNextPage: "triggerHighlightSameDayNextPage", focusEvent: "focus", blurEvent: "blur" }, host: { listeners: { "mousemove": "onMouseMove()" } }, viewQueries: [{ propertyName: "focusableElement", first: true, predicate: ["focusableElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"ard-days-view\">\r\n @if (!readOnly()) {\r\n <div class=\"ard-calendar__top-toolbar\">\r\n <ng-template\r\n #defaultDaysViewHeaderTemplate\r\n let-currDate\r\n let-nextMonth=\"nextMonth\"\r\n let-prevMonth=\"prevMonth\"\r\n let-canGoToNextMonth=\"canGoToNextPage\"\r\n let-canGoToPreviousMonth=\"canGoToPreviousPage\"\r\n let-openYearsView=\"openYearsView\"\r\n >\r\n <div class=\"ard-calendar__calendar-header\">\r\n <ard-button\r\n class=\"ard-calendar__header-button\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n variant=\"pill\"\r\n [tabIndex]=\"tabIndex()\"\r\n (click)=\"openYearsView()\"\r\n >\r\n {{ currDate | date : 'MMM YYYY' | uppercase }}\r\n <div class=\"ard-dropdown-arrow\"></div>\r\n </ard-button>\r\n <div class=\"ard-calendar__arrows\">\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"prevMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToPreviousMonth\"\r\n >\r\n <ard-icon>chevron_left</ard-icon>\r\n </ard-icon-button>\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"nextMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToNextMonth\"\r\n >\r\n <ard-icon>chevron_right</ard-icon>\r\n </ard-icon-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"daysViewHeaderTemplate() || defaultDaysViewHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"daysViewHeaderContext()\"\r\n />\r\n </div>\r\n }\r\n <div class=\"ard-calendar__weekdays\">\r\n <ng-template\r\n #defaultWeekdayTemplate\r\n let-date\r\n >\r\n <div\r\n class=\"ard-calendar__weekday\"\r\n [title]=\"date | date : 'EEEE' | titlecase\"\r\n >\r\n {{ date | date : 'EEEEE' | uppercase }}\r\n </div>\r\n </ng-template>\r\n @for (weekdayIndex of weekdayArray(); track weekdayIndex) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"weekdayTemplate() || defaultWeekdayTemplate\"\r\n [ngTemplateOutletContext]=\"weekdayContext()(weekdayIndex)\"\r\n ></ng-template>\r\n }\r\n </div>\r\n <div\r\n #focusableElement\r\n class=\"ard-calendar__days-grid\"\r\n [class.ard-reserve-top-row]=\"reserveTopRow()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ariaLabel]=\"currentAriaLabel()\"\r\n (focus)=\"focusEvent.emit($event)\"\r\n (focus)=\"onDayGridFocus()\"\r\n (blur)=\"blurEvent.emit($event)\"\r\n (blur)=\"onDayGridBlur()\"\r\n (click)=\"onDayGridClick()\"\r\n (keydown)=\"onMainGridKeydown($event)\"\r\n role=\"grid\"\r\n >\r\n <div class=\"ard-calendar__floating-month\">\r\n <ng-template\r\n #defaultFloatingMonthTemplate\r\n let-date\r\n >\r\n <div [title]=\"date | date : 'LLLL' | titlecase\">\r\n {{ date | date : 'LLL' | uppercase }}\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"floatingMonthTemplate() || defaultFloatingMonthTemplate\"\r\n [ngTemplateOutletContext]=\"floatingMonthContext()\"\r\n ></ng-template>\r\n </div>\r\n @for (week of activeCalendarData().array; track $index) { @for (day of week; track day ? day :\r\n activeCalendarData().leadingSpaces - $index) { @if (day === null) {\r\n <div class=\"ard-calendar__entry ard-calendar__entry-empty\"></div>\r\n } @else {\r\n <div\r\n class=\"ard-calendar__entry\"\r\n [class.ard-calendar__entry-highlighted]=\"highlightedDay() === day.value\"\r\n [class.ard-calendar__entry-disabled]=\"day.disabled || isDayFilteredOut()(day.value)\"\r\n [class.ard-calendar__entry-selected]=\"isDaySelected(day.value)\"\r\n [class.ard-calendar-today]=\"isDayToday(day.value)\"\r\n (click)=\"onCalendarDayClick(day.value)\"\r\n (mousemove)=\"$event.stopPropagation()\"\r\n (mouseover)=\"onCalendarDayMouseover(day.value)\"\r\n role=\"gridcell\"\r\n >\r\n <div class=\"ard-calendar__entry-button\">\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <ng-template\r\n #defaultDayTemplate\r\n let-day\r\n >\r\n {{ day }}\r\n </ng-template>\r\n <ng-template\r\n [ngTemplateOutlet]=\"dayTemplate() || defaultDayTemplate\"\r\n [ngTemplateOutletContext]=\"dayContext()(day.value)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n } } }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumIconButtonComponent, selector: "ard-icon-button", inputs: ["wrapperClasses", "type", "color", "lightColoring", "compact", "pointerEventsWhenDisabled"] }, { kind: "component", type: i3.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }, { kind: "component", type: i4.ArdiumButtonComponent, selector: "ard-button", inputs: ["icon", "variant", "alignIcon", "vertical"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
274
274
  }
275
275
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DaysViewComponent, decorators: [{
276
276
  type: Component,
277
- args: [{ selector: 'ard-days-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ard-days-view\">\r\n @if (!readOnly()) {\r\n <div class=\"ard-calendar__top-toolbar\">\r\n <ng-template\r\n #defaultDaysViewHeaderTemplate\r\n let-currDate\r\n let-nextMonth=\"nextMonth\"\r\n let-prevMonth=\"prevMonth\"\r\n let-canGoToNextMonth=\"canGoToNextPage\"\r\n let-canGoToPreviousMonth=\"canGoToPreviousPage\"\r\n let-openYearsView=\"openYearsView\"\r\n >\r\n <div class=\"ard-calendar__calendar-header\">\r\n <ard-button\r\n class=\"ard-calendar__header-button\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n variant=\"pill\"\r\n [tabIndex]=\"tabIndex()\"\r\n (click)=\"openYearsView()\"\r\n >\r\n {{ currDate | date: 'MMM YYYY' | uppercase }}\r\n <div class=\"ard-dropdown-arrow\"></div>\r\n </ard-button>\r\n <div class=\"ard-calendar__arrows\">\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"prevMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToPreviousMonth\"\r\n >\r\n <ard-icon>chevron_left</ard-icon>\r\n </ard-icon-button>\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"nextMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToNextMonth\"\r\n >\r\n <ard-icon>chevron_right</ard-icon>\r\n </ard-icon-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"daysViewHeaderTemplate() || defaultDaysViewHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"daysViewHeaderContext()\"\r\n />\r\n </div>\r\n }\r\n <div class=\"ard-calendar__weekdays\">\r\n <ng-template\r\n #defaultWeekdayTemplate\r\n let-date\r\n >\r\n <div class=\"ard-calendar__weekday\">{{ date | date: 'EEEEE' }}</div>\r\n </ng-template>\r\n @for (weekdayIndex of weekdayArray(); track weekdayIndex) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"weekdayTemplate() || defaultWeekdayTemplate\"\r\n [ngTemplateOutletContext]=\"weekdayContext()(weekdayIndex)\"\r\n ></ng-template>\r\n }\r\n </div>\r\n <div\r\n #focusableElement\r\n class=\"ard-calendar__days-grid\"\r\n [class.ard-reserve-top-row]=\"reserveTopRow()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ariaLabel]=\"currentAriaLabel()\"\r\n (focus)=\"focusEvent.emit($event)\"\r\n (focus)=\"onDayGridFocus()\"\r\n (blur)=\"blurEvent.emit($event)\"\r\n (blur)=\"onDayGridBlur()\"\r\n (click)=\"onDayGridClick()\"\r\n (keydown)=\"onMainGridKeydown($event)\"\r\n role=\"grid\"\r\n >\r\n <div class=\"ard-calendar__floating-month\">\r\n <ng-template\r\n #defaultFloatingMonthTemplate\r\n let-date\r\n >\r\n {{ date | date: 'LLL' | uppercase }}\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"floatingMonthTemplate() || defaultFloatingMonthTemplate\"\r\n [ngTemplateOutletContext]=\"floatingMonthContext()\"\r\n ></ng-template>\r\n </div>\r\n @for (week of activeCalendarData().array; track $index) {\r\n @for (day of week; track day ? day : activeCalendarData().leadingSpaces - $index) {\r\n @if (day === null) {\r\n <div class=\"ard-calendar__entry ard-calendar__entry-empty\"></div>\r\n } @else {\r\n <div\r\n class=\"ard-calendar__entry\"\r\n [class.ard-calendar__entry-highlighted]=\"highlightedDay() === day.value\"\r\n [class.ard-calendar__entry-disabled]=\"day.disabled || isDayFilteredOut()(day.value)\"\r\n [class.ard-calendar__entry-selected]=\"isDaySelected(day.value)\"\r\n [class.ard-calendar-today]=\"isDayToday(day.value)\"\r\n (click)=\"onCalendarDayClick(day.value)\"\r\n (mousemove)=\"$event.stopPropagation()\"\r\n (mouseover)=\"onCalendarDayMouseover(day.value)\"\r\n role=\"gridcell\"\r\n >\r\n <div class=\"ard-calendar__entry-button\">\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <ng-template\r\n #defaultDayTemplate\r\n let-day\r\n >\r\n {{ day }}\r\n </ng-template>\r\n <ng-template\r\n [ngTemplateOutlet]=\"dayTemplate() || defaultDayTemplate\"\r\n [ngTemplateOutletContext]=\"dayContext()(day.value)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n }\r\n </div>\r\n</div>\r\n" }]
277
+ args: [{ selector: 'ard-days-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ard-days-view\">\r\n @if (!readOnly()) {\r\n <div class=\"ard-calendar__top-toolbar\">\r\n <ng-template\r\n #defaultDaysViewHeaderTemplate\r\n let-currDate\r\n let-nextMonth=\"nextMonth\"\r\n let-prevMonth=\"prevMonth\"\r\n let-canGoToNextMonth=\"canGoToNextPage\"\r\n let-canGoToPreviousMonth=\"canGoToPreviousPage\"\r\n let-openYearsView=\"openYearsView\"\r\n >\r\n <div class=\"ard-calendar__calendar-header\">\r\n <ard-button\r\n class=\"ard-calendar__header-button\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n variant=\"pill\"\r\n [tabIndex]=\"tabIndex()\"\r\n (click)=\"openYearsView()\"\r\n >\r\n {{ currDate | date : 'MMM YYYY' | uppercase }}\r\n <div class=\"ard-dropdown-arrow\"></div>\r\n </ard-button>\r\n <div class=\"ard-calendar__arrows\">\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"prevMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToPreviousMonth\"\r\n >\r\n <ard-icon>chevron_left</ard-icon>\r\n </ard-icon-button>\r\n <ard-icon-button\r\n size=\"small\"\r\n appearance=\"transparent\"\r\n color=\"none\"\r\n (click)=\"nextMonth()\"\r\n [tabIndex]=\"tabIndex()\"\r\n [disabled]=\"!canGoToNextMonth\"\r\n >\r\n <ard-icon>chevron_right</ard-icon>\r\n </ard-icon-button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"daysViewHeaderTemplate() || defaultDaysViewHeaderTemplate\"\r\n [ngTemplateOutletContext]=\"daysViewHeaderContext()\"\r\n />\r\n </div>\r\n }\r\n <div class=\"ard-calendar__weekdays\">\r\n <ng-template\r\n #defaultWeekdayTemplate\r\n let-date\r\n >\r\n <div\r\n class=\"ard-calendar__weekday\"\r\n [title]=\"date | date : 'EEEE' | titlecase\"\r\n >\r\n {{ date | date : 'EEEEE' | uppercase }}\r\n </div>\r\n </ng-template>\r\n @for (weekdayIndex of weekdayArray(); track weekdayIndex) {\r\n <ng-template\r\n [ngTemplateOutlet]=\"weekdayTemplate() || defaultWeekdayTemplate\"\r\n [ngTemplateOutletContext]=\"weekdayContext()(weekdayIndex)\"\r\n ></ng-template>\r\n }\r\n </div>\r\n <div\r\n #focusableElement\r\n class=\"ard-calendar__days-grid\"\r\n [class.ard-reserve-top-row]=\"reserveTopRow()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ariaLabel]=\"currentAriaLabel()\"\r\n (focus)=\"focusEvent.emit($event)\"\r\n (focus)=\"onDayGridFocus()\"\r\n (blur)=\"blurEvent.emit($event)\"\r\n (blur)=\"onDayGridBlur()\"\r\n (click)=\"onDayGridClick()\"\r\n (keydown)=\"onMainGridKeydown($event)\"\r\n role=\"grid\"\r\n >\r\n <div class=\"ard-calendar__floating-month\">\r\n <ng-template\r\n #defaultFloatingMonthTemplate\r\n let-date\r\n >\r\n <div [title]=\"date | date : 'LLLL' | titlecase\">\r\n {{ date | date : 'LLL' | uppercase }}\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"floatingMonthTemplate() || defaultFloatingMonthTemplate\"\r\n [ngTemplateOutletContext]=\"floatingMonthContext()\"\r\n ></ng-template>\r\n </div>\r\n @for (week of activeCalendarData().array; track $index) { @for (day of week; track day ? day :\r\n activeCalendarData().leadingSpaces - $index) { @if (day === null) {\r\n <div class=\"ard-calendar__entry ard-calendar__entry-empty\"></div>\r\n } @else {\r\n <div\r\n class=\"ard-calendar__entry\"\r\n [class.ard-calendar__entry-highlighted]=\"highlightedDay() === day.value\"\r\n [class.ard-calendar__entry-disabled]=\"day.disabled || isDayFilteredOut()(day.value)\"\r\n [class.ard-calendar__entry-selected]=\"isDaySelected(day.value)\"\r\n [class.ard-calendar-today]=\"isDayToday(day.value)\"\r\n (click)=\"onCalendarDayClick(day.value)\"\r\n (mousemove)=\"$event.stopPropagation()\"\r\n (mouseover)=\"onCalendarDayMouseover(day.value)\"\r\n role=\"gridcell\"\r\n >\r\n <div class=\"ard-calendar__entry-button\">\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <ng-template\r\n #defaultDayTemplate\r\n let-day\r\n >\r\n {{ day }}\r\n </ng-template>\r\n <ng-template\r\n [ngTemplateOutlet]=\"dayTemplate() || defaultDayTemplate\"\r\n [ngTemplateOutletContext]=\"dayContext()(day.value)\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n } } }\r\n </div>\r\n</div>\r\n" }]
278
278
  }], propDecorators: { onMouseMove: [{
279
279
  type: HostListener,
280
280
  args: ['mousemove']
281
281
  }] } });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvdmlld3MvZGF5cy12aWV3L2RheXMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL3ZpZXdzL2RheXMtdmlldy9kYXlzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUVSLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRWxGLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFFekIsU0FBUyxVQUFVLENBQUMsSUFBWTtJQUM5QixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBUUQsTUFBTSxPQUFPLGlCQUFpQjtJQU45QjtRQU9XLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUNyQyxhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBRXJDLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFFdEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDLFFB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U0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBWS9DLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBjb21wdXRlZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBvdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENhbGVuZGFyRGF5Q29udGV4dCxcclxuICBDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dCxcclxuICBDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0LFxyXG4gIENhbGVuZGFyV2Vla2RheUNvbnRleHQsXHJcbn0gZnJvbSAnLi4vLi4vY2FsZW5kYXIudHlwZXMnO1xyXG5pbXBvcnQgeyBpc01vbnRoT3V0T2ZSYW5nZSB9IGZyb20gJy4uL21vbnRocy12aWV3L21vbnRocy12aWV3LmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBnZXRDYWxlbmRhckRheURhdGEsIGdldENhbGVuZGFyV2Vla2RheUFycmF5IH0gZnJvbSAnLi9kYXlzLXZpZXcuaGVscGVycyc7XHJcblxyXG5jb25zdCBUT0RBWSA9IG5ldyBEYXRlKCk7XHJcblxyXG5mdW5jdGlvbiBpc0xlYXBZZWFyKHllYXI6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCkgfHwgeWVhciAlIDQwMCA9PT0gMDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtZGF5cy12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF5cy12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGF5cy12aWV3LmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERheXNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcmVhZG9ubHkgdGFiSW5kZXggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgcmVhZE9ubHkgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xyXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgYXV0b0ZvY3VzID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgX2lzVXNpbmdLZXlib2FyZCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScpXHJcbiAgb25Nb3VzZU1vdmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNVc2luZ0tleWJvYXJkKCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRGF5KCkpIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmF1dG9Gb2N1cygpKSByZXR1cm47XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHREYXkuZW1pdCgxKTtcclxuICB9XHJcblxyXG4gIC8vISBhY3RpdmUgeWVhci9tb250aFxyXG4gIHJlYWRvbmx5IGFjdGl2ZVllYXIgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlTW9udGggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZSA9IGlucHV0LnJlcXVpcmVkPERhdGUgfCBudWxsPigpO1xyXG5cclxuICByZWFkb25seSBtaW4gPSBpbnB1dC5yZXF1aXJlZDxEYXRlIHwgbnVsbD4oKTtcclxuICByZWFkb25seSBtYXggPSBpbnB1dC5yZXF1aXJlZDxEYXRlIHwgbnVsbD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgaXNEYXlGaWx0ZXJlZE91dCA9IGlucHV0LnJlcXVpcmVkPChkYXk6IG51bWJlciwgbW9udGg/OiBudW1iZXIsIHllYXI/OiBudW1iZXIpID0+IGJvb2xlYW4+KCk7XHJcblxyXG4gIHJlYWRvbmx5IGhpZ2hsaWdodGVkRGF5ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyIHwgbnVsbD4oKTtcclxuXHJcbiAgLy8hIGZvY3VzaW5nXHJcbiAgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2ZvY3VzYWJsZUVsZW1lbnQnKTtcclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyEgY2FsZW5kYXIgZGF0YVxyXG4gIHJlYWRvbmx5IGZpcnN0V2Vla2RheSA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgYWN0aXZlQ2FsZW5kYXJEYXRhID0gY29tcHV0ZWQoKCkgPT5cclxuICAgIGdldENhbGVuZGFyRGF5RGF0YSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCB0aGlzLmZpcnN0V2Vla2RheSgpLCB0aGlzLm1pbigpLCB0aGlzLm1heCgpKVxyXG4gICk7XHJcbiAgcmVhZG9ubHkgcmVzZXJ2ZVRvcFJvdyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMuYWN0aXZlQ2FsZW5kYXJEYXRhKCkubGVhZGluZ1NwYWNlcyA8IDMpO1xyXG5cclxuICByZWFkb25seSB3ZWVrZGF5QXJyYXkgPSBjb21wdXRlZCgoKSA9PiBnZXRDYWxlbmRhcldlZWtkYXlBcnJheSh0aGlzLmZpcnN0V2Vla2RheSgpKSk7XHJcblxyXG4gIGlzRGF5U2VsZWN0ZWQoZGF5OiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGRheSBpbnN0YW5jZW9mIERhdGUpIGRheSA9IGRheS5nZXREYXRlKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSgpICE9PSBudWxsICYmXHJcbiAgICAgIHRoaXMuYWN0aXZlWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRGdWxsWWVhcigpICYmXHJcbiAgICAgIHRoaXMuYWN0aXZlTW9udGgoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0TW9udGgoKSAmJlxyXG4gICAgICBkYXkgPT09IHRoaXMuc2VsZWN0ZWREYXRlKCk/LmdldERhdGUoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGN1cnJlbnRBcmlhTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBkYXkgPSB0aGlzLmhpZ2hsaWdodGVkRGF5KCk7XHJcbiAgICBpZiAoZGF5ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCBkYXkpLnRvTG9jYWxlRGF0ZVN0cmluZyh1bmRlZmluZWQsIHtcclxuICAgICAgd2Vla2RheTogJ2xvbmcnLFxyXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXHJcbiAgICAgIG1vbnRoOiAnbG9uZycsXHJcbiAgICAgIGRheTogJ251bWVyaWMnLFxyXG4gICAgfSk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBvdXRwdXRzXHJcbiAgcmVhZG9ubHkgdHJpZ2dlck9wZW5ZZWFyc1ZpZXcgPSBvdXRwdXQ8dm9pZD4oKTtcclxuICByZWFkb25seSB0cmlnZ2VyT3Blbk1vbnRoc1ZpZXcgPSBvdXRwdXQ8dm9pZD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgdHJpZ2dlclNlbGVjdERheSA9IG91dHB1dDxudW1iZXIgfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJDaGFuZ2VNb250aCA9IG91dHB1dDxudW1iZXIgfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJDaGFuZ2VZZWFyID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHREYXkgPSBvdXRwdXQ8bnVtYmVyIHwgbnVsbD4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0TmV4dERheSA9IG91dHB1dDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzRGF5ID0gb3V0cHV0PG51bWJlcj4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0Rmlyc3REYXkgPSBvdXRwdXQ8dm9pZD4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0TGFzdERheSA9IG91dHB1dDx2b2lkPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHRTYW1lRGF5UHJldmlvdXNQYWdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlOZXh0UGFnZSA9IG91dHB1dDxib29sZWFuPigpO1xyXG5cclxuICByZWFkb25seSBmb2N1c0V2ZW50ID0gb3V0cHV0PEZvY3VzRXZlbnQ+KHsgYWxpYXM6ICdmb2N1cycgfSk7XHJcbiAgcmVhZG9ubHkgYmx1ckV2ZW50ID0gb3V0cHV0PEZvY3VzRXZlbnQ+KHsgYWxpYXM6ICdibHVyJyB9KTtcclxuXHJcbiAgb25DYWxlbmRhckRheU1vdXNlb3ZlcihkYXk6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQoKSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIGlmIChkYXkgJiYgdGhpcy5pc0RheUZpbHRlcmVkT3V0KCkoZGF5KSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KGRheSk7XHJcbiAgfVxyXG4gIG9uQ2FsZW5kYXJEYXlDbGljayhkYXk6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpKSByZXR1cm47XHJcbiAgICBpZiAoZGF5ID09PSBudWxsKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5pc0RheUZpbHRlcmVkT3V0KCkoZGF5KSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KGRheSk7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB0aGlzLnRyaWdnZXJTZWxlY3REYXkuZW1pdChkYXkpO1xyXG4gIH1cclxuICBvbkRheUdyaWRGb2N1cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpKSByZXR1cm47XHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRGaXJzdERheS5lbWl0KCk7XHJcbiAgfVxyXG4gIG9uRGF5R3JpZEJsdXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0RGF5LmVtaXQobnVsbCk7XHJcbiAgfVxyXG4gIG9uRGF5R3JpZENsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRGF5KCkgIT09IG51bGwpIHJldHVybjtcclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8vISBoZWxwZXJzXHJcbiAgaXNEYXlUb2RheShkYXk6IG51bWJlciB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVllYXIoKSA9PT0gVE9EQVkuZ2V0RnVsbFllYXIoKSAmJiB0aGlzLmFjdGl2ZU1vbnRoKCkgPT09IFRPREFZLmdldE1vbnRoKCkgJiYgZGF5ID09PSBUT0RBWS5nZXREYXRlKCk7XHJcbiAgfVxyXG4gIGlzTW9udGhPdXRPZlJhbmdlKG1vbnRoOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGlzTW9udGhPdXRPZlJhbmdlKG1vbnRoLCB0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5taW4oKSwgdGhpcy5tYXgoKSk7XHJcbiAgfVxyXG5cclxuICAvLyEga2V5Ym9hcmQgY29udHJvbHNcclxuICBvbk1haW5HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICBjYXNlICdTcGFjZSc6XHJcbiAgICAgIGNhc2UgJ0VudGVyJzpcclxuICAgICAgICB0aGlzLl9vbkVudGVyUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICB0aGlzLl9vbkFycm93VXBQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgdGhpcy5fb25BcnJvd0Rvd25QcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XHJcbiAgICAgICAgdGhpcy5fb25BcnJvd0xlZnRQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxyXG4gICAgICAgIHRoaXMuX29uQXJyb3dSaWdodFByZXNzKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnSG9tZSc6XHJcbiAgICAgICAgdGhpcy5fb25Ib21lUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdFbmQnOlxyXG4gICAgICAgIHRoaXMuX29uRW5kUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdQYWdlVXAnOlxyXG4gICAgICAgIHRoaXMuX29uUGFnZVVwUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdQYWdlRG93bic6XHJcbiAgICAgICAgdGhpcy5fb25QYWdlRG93blByZXNzKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3NlbGVjdCBjdXJyZW50bHkgc2VsZWN0ZWQgZW50cnlcclxuICBwcml2YXRlIF9vbkVudGVyUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VyU2VsZWN0RGF5LmVtaXQodGhpcy5oaWdobGlnaHRlZERheSgpKTtcclxuICB9XHJcbiAgLy9oaWdobGlnaHQgdGhlIGVudHJ5IG9uZSBsaW5lIGJlbG93XHJcbiAgcHJpdmF0ZSBfb25BcnJvd0Rvd25QcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHROZXh0RGF5LmVtaXQoNyk7XHJcbiAgfVxyXG4gIC8vaGlnaGxpZ2h0IHRoZSBlbnRyeSBvbmUgbGluZSBhYm92ZVxyXG4gIHByaXZhdGUgX29uQXJyb3dVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzRGF5LmVtaXQoNyk7XHJcbiAgfVxyXG4gIC8vaGlnaGxpZ2h0IG5leHQgZW50cnlcclxuICBwcml2YXRlIF9vbkFycm93UmlnaHRQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHROZXh0RGF5LmVtaXQoMSk7XHJcbiAgfVxyXG4gIC8vaGlnaGxpZ2h0IHByZXZpb3VzIGVudHJ5XHJcbiAgcHJpdmF0ZSBfb25BcnJvd0xlZnRQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRQcmV2aW91c0RheS5lbWl0KDEpO1xyXG4gIH1cclxuICAvL2hpZ2hsaWdodCBmaXJzdCBlbnRyeSBvbiB0aGUgcGFnZVxyXG4gIHByaXZhdGUgX29uSG9tZVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5LmVtaXQoKTtcclxuICB9XHJcbiAgLy9oaWdobGlnaHQgbGFzdCBlbnRyeSBvbiB0aGUgcGFnZVxyXG4gIHByaXZhdGUgX29uRW5kUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0TGFzdERheS5lbWl0KCk7XHJcbiAgfVxyXG4gIC8vYWxvbmU6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG9uIHRoZSBuZXh0IHBhZ2VcclxuICAvL3dpdGggYWx0OiBoaWdobGlnaHQgc2FtZSBlbnRyeSBtdWx0aXBsZSBwYWdlcyBhZnRlciAoMTIgcGFnZXMpXHJcbiAgcHJpdmF0ZSBfb25QYWdlRG93blByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlOZXh0UGFnZS5lbWl0KGV2ZW50LmFsdEtleSk7XHJcbiAgfVxyXG4gIC8vYWxvbmU6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG9uIHRoZSBwcmV2aW91cyBwYWdlXHJcbiAgLy93aXRoIGFsdDogaGlnaGxpZ2h0IHNhbWUgZW50cnkgbXVsdGlwbGUgcGFnZXMgYmVmb3JlICgxMiBwYWdlcylcclxuICBwcml2YXRlIF9vblBhZ2VVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlQcmV2aW91c1BhZ2UuZW1pdChldmVudC5hbHRLZXkpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHRlbXBsYXRlc1xyXG4gIHJlYWRvbmx5IGRheXNWaWV3SGVhZGVyVGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgcmVhZG9ubHkgZmxvYXRpbmdNb250aFRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgcmVhZG9ubHkgd2Vla2RheVRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJXZWVrZGF5Q29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgcmVhZG9ubHkgZGF5VGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxDYWxlbmRhckRheUNvbnRleHQ+IHwgdW5kZWZpbmVkPigpO1xyXG5cclxuICAvLyEgdGVtcGxhdGUgY29udGV4dHNcclxuICByZWFkb25seSBkYXlzVmlld0hlYWRlckNvbnRleHQgPSBjb21wdXRlZDxDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dD4oKCkgPT4gKHtcclxuICAgIG5leHRNb250aDogKCkgPT4ge1xyXG4gICAgICB0aGlzLnRyaWdnZXJDaGFuZ2VNb250aC5lbWl0KHRoaXMuYWN0aXZlTW9udGgoKSArIDEpO1xyXG4gICAgfSxcclxuICAgIHByZXZNb250aDogKCkgPT4ge1xyXG4gICAgICB0aGlzLnRyaWdnZXJDaGFuZ2VNb250aC5lbWl0KHRoaXMuYWN0aXZlTW9udGgoKSAtIDEpO1xyXG4gICAgfSxcclxuICAgIG5leHRZZWFyOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZVllYXIuZW1pdCh0aGlzLmFjdGl2ZVllYXIoKSArIDEpO1xyXG4gICAgfSxcclxuICAgIHByZXZZZWFyOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZVllYXIuZW1pdCh0aGlzLmFjdGl2ZVllYXIoKSAtIDEpO1xyXG4gICAgfSxcclxuICAgIG9wZW5ZZWFyc1ZpZXc6ICgpID0+IHtcclxuICAgICAgdGhpcy50cmlnZ2VyT3BlblllYXJzVmlldy5lbWl0KCk7XHJcbiAgICB9LFxyXG4gICAgb3Blbk1vbnRoc1ZpZXc6ICgpID0+IHtcclxuICAgICAgdGhpcy50cmlnZ2VyT3Blbk1vbnRoc1ZpZXcuZW1pdCgpO1xyXG4gICAgfSxcclxuICAgIGNhbkdvVG9OZXh0UGFnZTogIXRoaXMuaXNNb250aE91dE9mUmFuZ2UodGhpcy5hY3RpdmVNb250aCgpICsgMSksXHJcbiAgICBjYW5Hb1RvUHJldmlvdXNQYWdlOiAhdGhpcy5pc01vbnRoT3V0T2ZSYW5nZSh0aGlzLmFjdGl2ZU1vbnRoKCkgLSAxKSxcclxuICAgIHllYXI6IHRoaXMuYWN0aXZlWWVhcigpLFxyXG4gICAgbW9udGg6IHRoaXMuYWN0aXZlTW9udGgoKSxcclxuICAgICRpbXBsaWNpdDogbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSwgMSwgMCwgMCwgMCwgMCksXHJcbiAgfSkpO1xyXG5cclxuICByZWFkb25seSB3ZWVrZGF5Q29udGV4dCA9IGNvbXB1dGVkPChkYXlJbmRleDogbnVtYmVyKSA9PiBDYWxlbmRhcldlZWtkYXlDb250ZXh0PigoKSA9PiAoZGF5SW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDE5NzAsIDAsIDQgKyBkYXlJbmRleCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkYXlJbmRleCxcclxuICAgICAgZGF0ZSxcclxuICAgICAgJGltcGxpY2l0OiBkYXRlLFxyXG4gICAgfTtcclxuICB9KTtcclxuXHJcbiAgcmVhZG9ubHkgZmxvYXRpbmdNb250aENvbnRleHQgPSBjb21wdXRlZDxDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0PigoKSA9PiB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSwgMSwgMCwgMCwgMCwgMCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb250aDogdGhpcy5hY3RpdmVNb250aCgpLFxyXG4gICAgICBkYXRlLFxyXG4gICAgICAkaW1wbGljaXQ6IGRhdGUsXHJcbiAgICB9O1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBkYXlDb250ZXh0ID0gY29tcHV0ZWQ8KGRheTogbnVtYmVyKSA9PiBDYWxlbmRhckRheUNvbnRleHQ+KCgpID0+IChkYXk6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLmFjdGl2ZU1vbnRoKCksIGRheSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogZGF5LFxyXG4gICAgICBkYXRlLFxyXG4gICAgICAkaW1wbGljaXQ6IGRheSxcclxuICAgICAgc2VsZWN0OiAoZGF5T3JEYXRlOiBudW1iZXIgfCBEYXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyU2VsZWN0RGF5LmVtaXQoZGF5T3JEYXRlIGluc3RhbmNlb2YgRGF0ZSA/IGRheU9yRGF0ZS5nZXREYXRlKCkgOiBkYXlPckRhdGUpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9KTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXJkLWRheXMtdmlld1wiPlxyXG4gIEBpZiAoIXJlYWRPbmx5KCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3RvcC10b29sYmFyXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICNkZWZhdWx0RGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZVxyXG4gICAgICAgIGxldC1jdXJyRGF0ZVxyXG4gICAgICAgIGxldC1uZXh0TW9udGg9XCJuZXh0TW9udGhcIlxyXG4gICAgICAgIGxldC1wcmV2TW9udGg9XCJwcmV2TW9udGhcIlxyXG4gICAgICAgIGxldC1jYW5Hb1RvTmV4dE1vbnRoPVwiY2FuR29Ub05leHRQYWdlXCJcclxuICAgICAgICBsZXQtY2FuR29Ub1ByZXZpb3VzTW9udGg9XCJjYW5Hb1RvUHJldmlvdXNQYWdlXCJcclxuICAgICAgICBsZXQtb3BlblllYXJzVmlldz1cIm9wZW5ZZWFyc1ZpZXdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fY2FsZW5kYXItaGVhZGVyXCI+XHJcbiAgICAgICAgICA8YXJkLWJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9faGVhZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJwaWxsXCJcclxuICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblllYXJzVmlldygpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY3VyckRhdGUgfCBkYXRlOiAnTU1NIFlZWVknIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZHJvcGRvd24tYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICAgIDwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX2Fycm93c1wiPlxyXG4gICAgICAgICAgICA8YXJkLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZNb250aCgpXCJcclxuICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb1RvUHJldmlvdXNNb250aFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8YXJkLWljb24+Y2hldnJvbl9sZWZ0PC9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxhcmQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJub25lXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkdvVG9OZXh0TW9udGhcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fcmlnaHQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8L2FyZC1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSgpIHx8IGRlZmF1bHREYXlzVmlld0hlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZGF5c1ZpZXdIZWFkZXJDb250ZXh0KClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3dlZWtkYXlzXCI+XHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgI2RlZmF1bHRXZWVrZGF5VGVtcGxhdGVcclxuICAgICAgbGV0LWRhdGVcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fd2Vla2RheVwiPnt7IGRhdGUgfCBkYXRlOiAnRUVFRUUnIH19PC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgQGZvciAod2Vla2RheUluZGV4IG9mIHdlZWtkYXlBcnJheSgpOyB0cmFjayB3ZWVrZGF5SW5kZXgpIHtcclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid2Vla2RheVRlbXBsYXRlKCkgfHwgZGVmYXVsdFdlZWtkYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIndlZWtkYXlDb250ZXh0KCkod2Vla2RheUluZGV4KVwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZGF5cy1ncmlkXCJcclxuICAgIFtjbGFzcy5hcmQtcmVzZXJ2ZS10b3Atcm93XT1cInJlc2VydmVUb3BSb3coKVwiXHJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICBbYXJpYUxhYmVsXT1cImN1cnJlbnRBcmlhTGFiZWwoKVwiXHJcbiAgICAoZm9jdXMpPVwiZm9jdXNFdmVudC5lbWl0KCRldmVudClcIlxyXG4gICAgKGZvY3VzKT1cIm9uRGF5R3JpZEZvY3VzKClcIlxyXG4gICAgKGJsdXIpPVwiYmx1ckV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJvbkRheUdyaWRCbHVyKClcIlxyXG4gICAgKGNsaWNrKT1cIm9uRGF5R3JpZENsaWNrKClcIlxyXG4gICAgKGtleWRvd24pPVwib25NYWluR3JpZEtleWRvd24oJGV2ZW50KVwiXHJcbiAgICByb2xlPVwiZ3JpZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZmxvYXRpbmctbW9udGhcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgI2RlZmF1bHRGbG9hdGluZ01vbnRoVGVtcGxhdGVcclxuICAgICAgICBsZXQtZGF0ZVxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZGF0ZSB8IGRhdGU6ICdMTEwnIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmbG9hdGluZ01vbnRoVGVtcGxhdGUoKSB8fCBkZWZhdWx0RmxvYXRpbmdNb250aFRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZmxvYXRpbmdNb250aENvbnRleHQoKVwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICBAZm9yICh3ZWVrIG9mIGFjdGl2ZUNhbGVuZGFyRGF0YSgpLmFycmF5OyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgQGZvciAoZGF5IG9mIHdlZWs7IHRyYWNrIGRheSA/IGRheSA6IGFjdGl2ZUNhbGVuZGFyRGF0YSgpLmxlYWRpbmdTcGFjZXMgLSAkaW5kZXgpIHtcclxuICAgICAgICBAaWYgKGRheSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZW50cnkgYXJkLWNhbGVuZGFyX19lbnRyeS1lbXB0eVwiPjwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZW50cnlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1oaWdobGlnaHRlZF09XCJoaWdobGlnaHRlZERheSgpID09PSBkYXkudmFsdWVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1kaXNhYmxlZF09XCJkYXkuZGlzYWJsZWQgfHwgaXNEYXlGaWx0ZXJlZE91dCgpKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1zZWxlY3RlZF09XCJpc0RheVNlbGVjdGVkKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLXRvZGF5XT1cImlzRGF5VG9kYXkoZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNhbGVuZGFyRGF5Q2xpY2soZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChtb3VzZW1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbkNhbGVuZGFyRGF5TW91c2VvdmVyKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyX19lbnRyeS1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgI2RlZmF1bHREYXlUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICBsZXQtZGF5XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGRheSB9fVxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXlUZW1wbGF0ZSgpIHx8IGRlZmF1bHREYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJkYXlDb250ZXh0KCkoZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvdmlld3MvZGF5cy12aWV3L2RheXMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL3ZpZXdzL2RheXMtdmlldy9kYXlzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUVSLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRWxGLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFFekIsU0FBUyxVQUFVLENBQUMsSUFBWTtJQUM5QixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBUUQsTUFBTSxPQUFPLGlCQUFpQjtJQU45QjtRQU9XLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUNyQyxhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBRXJDLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFFdEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDLFFB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U0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBWS9DLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBjb21wdXRlZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBvdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ2FsZW5kYXJEYXlDb250ZXh0LFxyXG4gIENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0LFxyXG4gIENhbGVuZGFyRmxvYXRpbmdNb250aENvbnRleHQsXHJcbiAgQ2FsZW5kYXJXZWVrZGF5Q29udGV4dCxcclxufSBmcm9tICcuLi8uLi9jYWxlbmRhci50eXBlcyc7XHJcbmltcG9ydCB7IGlzTW9udGhPdXRPZlJhbmdlIH0gZnJvbSAnLi4vbW9udGhzLXZpZXcvbW9udGhzLXZpZXcuaGVscGVycyc7XHJcbmltcG9ydCB7IGdldENhbGVuZGFyRGF5RGF0YSwgZ2V0Q2FsZW5kYXJXZWVrZGF5QXJyYXkgfSBmcm9tICcuL2RheXMtdmlldy5oZWxwZXJzJztcclxuXHJcbmNvbnN0IFRPREFZID0gbmV3IERhdGUoKTtcclxuXHJcbmZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcjogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICh5ZWFyICUgNCA9PT0gMCAmJiB5ZWFyICUgMTAwICE9PSAwKSB8fCB5ZWFyICUgNDAwID09PSAwO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1kYXlzLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXlzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXlzLXZpZXcuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF5c1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICByZWFkb25seSB0YWJJbmRleCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcclxuICByZWFkb25seSByZWFkT25seSA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XHJcbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xyXG5cclxuICByZWFkb25seSBhdXRvRm9jdXMgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xyXG5cclxuICByZWFkb25seSBfaXNVc2luZ0tleWJvYXJkID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vtb3ZlJylcclxuICBvbk1vdXNlTW92ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQoKSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0ZWREYXkoKSkgdGhpcy50cmlnZ2VySGlnaGxpZ2h0RGF5LmVtaXQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYXV0b0ZvY3VzKCkpIHJldHVybjtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KDEpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGFjdGl2ZSB5ZWFyL21vbnRoXHJcbiAgcmVhZG9ubHkgYWN0aXZlWWVhciA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcclxuICByZWFkb25seSBhY3RpdmVNb250aCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgc2VsZWN0ZWREYXRlID0gaW5wdXQucmVxdWlyZWQ8RGF0ZSB8IG51bGw+KCk7XHJcblxyXG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0LnJlcXVpcmVkPERhdGUgfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IG1heCA9IGlucHV0LnJlcXVpcmVkPERhdGUgfCBudWxsPigpO1xyXG5cclxuICByZWFkb25seSBpc0RheUZpbHRlcmVkT3V0ID0gaW5wdXQucmVxdWlyZWQ8KGRheTogbnVtYmVyLCBtb250aD86IG51bWJlciwgeWVhcj86IG51bWJlcikgPT4gYm9vbGVhbj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWREYXkgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXIgfCBudWxsPigpO1xyXG5cclxuICAvLyEgZm9jdXNpbmdcclxuICByZWFkb25seSBmb2N1c2FibGVFbGVtZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZm9jdXNhYmxlRWxlbWVudCcpO1xyXG5cclxuICBmb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIC8vISBjYWxlbmRhciBkYXRhXHJcbiAgcmVhZG9ubHkgZmlyc3RXZWVrZGF5ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xyXG5cclxuICByZWFkb25seSBhY3RpdmVDYWxlbmRhckRhdGEgPSBjb21wdXRlZCgoKSA9PlxyXG4gICAgZ2V0Q2FsZW5kYXJEYXlEYXRhKHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLmFjdGl2ZU1vbnRoKCksIHRoaXMuZmlyc3RXZWVrZGF5KCksIHRoaXMubWluKCksIHRoaXMubWF4KCkpXHJcbiAgKTtcclxuICByZWFkb25seSByZXNlcnZlVG9wUm93ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5hY3RpdmVDYWxlbmRhckRhdGEoKS5sZWFkaW5nU3BhY2VzIDwgMyk7XHJcblxyXG4gIHJlYWRvbmx5IHdlZWtkYXlBcnJheSA9IGNvbXB1dGVkKCgpID0+IGdldENhbGVuZGFyV2Vla2RheUFycmF5KHRoaXMuZmlyc3RXZWVrZGF5KCkpKTtcclxuXHJcbiAgaXNEYXlTZWxlY3RlZChkYXk6IG51bWJlciB8IERhdGUgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZGF5IGluc3RhbmNlb2YgRGF0ZSkgZGF5ID0gZGF5LmdldERhdGUoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlKCkgIT09IG51bGwgJiZcclxuICAgICAgdGhpcy5hY3RpdmVZZWFyKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlKCk/LmdldEZ1bGxZZWFyKCkgJiZcclxuICAgICAgdGhpcy5hY3RpdmVNb250aCgpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRNb250aCgpICYmXHJcbiAgICAgIGRheSA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0RGF0ZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgY3VycmVudEFyaWFMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGRheSA9IHRoaXMuaGlnaGxpZ2h0ZWREYXkoKTtcclxuICAgIGlmIChkYXkgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLmFjdGl2ZU1vbnRoKCksIGRheSkudG9Mb2NhbGVEYXRlU3RyaW5nKHVuZGVmaW5lZCwge1xyXG4gICAgICB3ZWVrZGF5OiAnbG9uZycsXHJcbiAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgbW9udGg6ICdsb25nJyxcclxuICAgICAgZGF5OiAnbnVtZXJpYycsXHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgLy8hIG91dHB1dHNcclxuICByZWFkb25seSB0cmlnZ2VyT3BlblllYXJzVmlldyA9IG91dHB1dDx2b2lkPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJPcGVuTW9udGhzVmlldyA9IG91dHB1dDx2b2lkPigpO1xyXG5cclxuICByZWFkb25seSB0cmlnZ2VyU2VsZWN0RGF5ID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XHJcbiAgcmVhZG9ubHkgdHJpZ2dlckNoYW5nZU1vbnRoID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XHJcbiAgcmVhZG9ubHkgdHJpZ2dlckNoYW5nZVllYXIgPSBvdXRwdXQ8bnVtYmVyIHwgbnVsbD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodERheSA9IG91dHB1dDxudW1iZXIgfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHROZXh0RGF5ID0gb3V0cHV0PG51bWJlcj4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0UHJldmlvdXNEYXkgPSBvdXRwdXQ8bnVtYmVyPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHRGaXJzdERheSA9IG91dHB1dDx2b2lkPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHRMYXN0RGF5ID0gb3V0cHV0PHZvaWQ+KCk7XHJcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlQcmV2aW91c1BhZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0U2FtZURheU5leHRQYWdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcblxyXG4gIHJlYWRvbmx5IGZvY3VzRXZlbnQgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oeyBhbGlhczogJ2ZvY3VzJyB9KTtcclxuICByZWFkb25seSBibHVyRXZlbnQgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oeyBhbGlhczogJ2JsdXInIH0pO1xyXG5cclxuICBvbkNhbGVuZGFyRGF5TW91c2VvdmVyKGRheTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2lzVXNpbmdLZXlib2FyZCgpKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xyXG4gICAgaWYgKGRheSAmJiB0aGlzLmlzRGF5RmlsdGVyZWRPdXQoKShkYXkpKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0RGF5LmVtaXQoZGF5KTtcclxuICB9XHJcbiAgb25DYWxlbmRhckRheUNsaWNrKGRheTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIGlmIChkYXkgPT09IG51bGwpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmlzRGF5RmlsdGVyZWRPdXQoKShkYXkpKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0RGF5LmVtaXQoZGF5KTtcclxuICAgIHRoaXMuZm9jdXMoKTtcclxuICAgIHRoaXMudHJpZ2dlclNlbGVjdERheS5lbWl0KGRheSk7XHJcbiAgfVxyXG4gIG9uRGF5R3JpZEZvY3VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5LmVtaXQoKTtcclxuICB9XHJcbiAgb25EYXlHcmlkQmx1cigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpKSByZXR1cm47XHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHREYXkuZW1pdChudWxsKTtcclxuICB9XHJcbiAgb25EYXlHcmlkQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0ZWREYXkoKSAhPT0gbnVsbCkgcmV0dXJuO1xyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0Rmlyc3REYXkuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGhlbHBlcnNcclxuICBpc0RheVRvZGF5KGRheTogbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlWWVhcigpID09PSBUT0RBWS5nZXRGdWxsWWVhcigpICYmIHRoaXMuYWN0aXZlTW9udGgoKSA9PT0gVE9EQVkuZ2V0TW9udGgoKSAmJiBkYXkgPT09IFRPREFZLmdldERhdGUoKTtcclxuICB9XHJcbiAgaXNNb250aE91dE9mUmFuZ2UobW9udGg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaXNNb250aE91dE9mUmFuZ2UobW9udGgsIHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLm1pbigpLCB0aGlzLm1heCgpKTtcclxuICB9XHJcblxyXG4gIC8vISBrZXlib2FyZCBjb250cm9sc1xyXG4gIG9uTWFpbkdyaWRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xyXG4gICAgc3dpdGNoIChldmVudC5jb2RlKSB7XHJcbiAgICAgIGNhc2UgJ1NwYWNlJzpcclxuICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICAgIHRoaXMuX29uRW50ZXJQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIHRoaXMuX29uQXJyb3dVcFByZXNzKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICB0aGlzLl9vbkFycm93RG93blByZXNzKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcclxuICAgICAgICB0aGlzLl9vbkFycm93TGVmdFByZXNzKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XHJcbiAgICAgICAgdGhpcy5fb25BcnJvd1JpZ2h0UHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdIb21lJzpcclxuICAgICAgICB0aGlzLl9vbkhvbWVQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0VuZCc6XHJcbiAgICAgICAgdGhpcy5fb25FbmRQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1BhZ2VVcCc6XHJcbiAgICAgICAgdGhpcy5fb25QYWdlVXBQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcclxuICAgICAgICB0aGlzLl9vblBhZ2VEb3duUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vc2VsZWN0IGN1cnJlbnRseSBzZWxlY3RlZCBlbnRyeVxyXG4gIHByaXZhdGUgX29uRW50ZXJQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJTZWxlY3REYXkuZW1pdCh0aGlzLmhpZ2hsaWdodGVkRGF5KCkpO1xyXG4gIH1cclxuICAvL2hpZ2hsaWdodCB0aGUgZW50cnkgb25lIGxpbmUgYmVsb3dcclxuICBwcml2YXRlIF9vbkFycm93RG93blByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodE5leHREYXkuZW1pdCg3KTtcclxuICB9XHJcbiAgLy9oaWdobGlnaHQgdGhlIGVudHJ5IG9uZSBsaW5lIGFib3ZlXHJcbiAgcHJpdmF0ZSBfb25BcnJvd1VwUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0UHJldmlvdXNEYXkuZW1pdCg3KTtcclxuICB9XHJcbiAgLy9oaWdobGlnaHQgbmV4dCBlbnRyeVxyXG4gIHByaXZhdGUgX29uQXJyb3dSaWdodFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodE5leHREYXkuZW1pdCgxKTtcclxuICB9XHJcbiAgLy9oaWdobGlnaHQgcHJldmlvdXMgZW50cnlcclxuICBwcml2YXRlIF9vbkFycm93TGVmdFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzRGF5LmVtaXQoMSk7XHJcbiAgfVxyXG4gIC8vaGlnaGxpZ2h0IGZpcnN0IGVudHJ5IG9uIHRoZSBwYWdlXHJcbiAgcHJpdmF0ZSBfb25Ib21lUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0Rmlyc3REYXkuZW1pdCgpO1xyXG4gIH1cclxuICAvL2hpZ2hsaWdodCBsYXN0IGVudHJ5IG9uIHRoZSBwYWdlXHJcbiAgcHJpdmF0ZSBfb25FbmRQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRMYXN0RGF5LmVtaXQoKTtcclxuICB9XHJcbiAgLy9hbG9uZTogaGlnaGxpZ2h0IHNhbWUgZW50cnkgb24gdGhlIG5leHQgcGFnZVxyXG4gIC8vd2l0aCBhbHQ6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG11bHRpcGxlIHBhZ2VzIGFmdGVyICgxMiBwYWdlcylcclxuICBwcml2YXRlIF9vblBhZ2VEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0U2FtZURheU5leHRQYWdlLmVtaXQoZXZlbnQuYWx0S2V5KTtcclxuICB9XHJcbiAgLy9hbG9uZTogaGlnaGxpZ2h0IHNhbWUgZW50cnkgb24gdGhlIHByZXZpb3VzIHBhZ2VcclxuICAvL3dpdGggYWx0OiBoaWdobGlnaHQgc2FtZSBlbnRyeSBtdWx0aXBsZSBwYWdlcyBiZWZvcmUgKDEyIHBhZ2VzKVxyXG4gIHByaXZhdGUgX29uUGFnZVVwUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0U2FtZURheVByZXZpb3VzUGFnZS5lbWl0KGV2ZW50LmFsdEtleSk7XHJcbiAgfVxyXG5cclxuICAvLyEgdGVtcGxhdGVzXHJcbiAgcmVhZG9ubHkgZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSA9IGlucHV0LnJlcXVpcmVkPFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0PiB8IHVuZGVmaW5lZD4oKTtcclxuICByZWFkb25seSBmbG9hdGluZ01vbnRoVGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0PiB8IHVuZGVmaW5lZD4oKTtcclxuICByZWFkb25seSB3ZWVrZGF5VGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxDYWxlbmRhcldlZWtkYXlDb250ZXh0PiB8IHVuZGVmaW5lZD4oKTtcclxuICByZWFkb25seSBkYXlUZW1wbGF0ZSA9IGlucHV0LnJlcXVpcmVkPFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5Q29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XHJcblxyXG4gIC8vISB0ZW1wbGF0ZSBjb250ZXh0c1xyXG4gIHJlYWRvbmx5IGRheXNWaWV3SGVhZGVyQ29udGV4dCA9IGNvbXB1dGVkPENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0PigoKSA9PiAoe1xyXG4gICAgbmV4dE1vbnRoOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZU1vbnRoLmVtaXQodGhpcy5hY3RpdmVNb250aCgpICsgMSk7XHJcbiAgICB9LFxyXG4gICAgcHJldk1vbnRoOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZU1vbnRoLmVtaXQodGhpcy5hY3RpdmVNb250aCgpIC0gMSk7XHJcbiAgICB9LFxyXG4gICAgbmV4dFllYXI6ICgpID0+IHtcclxuICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlWWVhci5lbWl0KHRoaXMuYWN0aXZlWWVhcigpICsgMSk7XHJcbiAgICB9LFxyXG4gICAgcHJldlllYXI6ICgpID0+IHtcclxuICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlWWVhci5lbWl0KHRoaXMuYWN0aXZlWWVhcigpIC0gMSk7XHJcbiAgICB9LFxyXG4gICAgb3BlblllYXJzVmlldzogKCkgPT4ge1xyXG4gICAgICB0aGlzLnRyaWdnZXJPcGVuWWVhcnNWaWV3LmVtaXQoKTtcclxuICAgIH0sXHJcbiAgICBvcGVuTW9udGhzVmlldzogKCkgPT4ge1xyXG4gICAgICB0aGlzLnRyaWdnZXJPcGVuTW9udGhzVmlldy5lbWl0KCk7XHJcbiAgICB9LFxyXG4gICAgY2FuR29Ub05leHRQYWdlOiAhdGhpcy5pc01vbnRoT3V0T2ZSYW5nZSh0aGlzLmFjdGl2ZU1vbnRoKCkgKyAxKSxcclxuICAgIGNhbkdvVG9QcmV2aW91c1BhZ2U6ICF0aGlzLmlzTW9udGhPdXRPZlJhbmdlKHRoaXMuYWN0aXZlTW9udGgoKSAtIDEpLFxyXG4gICAgeWVhcjogdGhpcy5hY3RpdmVZZWFyKCksXHJcbiAgICBtb250aDogdGhpcy5hY3RpdmVNb250aCgpLFxyXG4gICAgJGltcGxpY2l0OiBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCAxLCAwLCAwLCAwLCAwKSxcclxuICB9KSk7XHJcblxyXG4gIHJlYWRvbmx5IHdlZWtkYXlDb250ZXh0ID0gY29tcHV0ZWQ8KGRheUluZGV4OiBudW1iZXIpID0+IENhbGVuZGFyV2Vla2RheUNvbnRleHQ+KCgpID0+IChkYXlJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoMTk3MCwgMCwgNCArIGRheUluZGV4KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRheUluZGV4LFxyXG4gICAgICBkYXRlLFxyXG4gICAgICAkaW1wbGljaXQ6IGRhdGUsXHJcbiAgICB9O1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBmbG9hdGluZ01vbnRoQ29udGV4dCA9IGNvbXB1dGVkPENhbGVuZGFyRmxvYXRpbmdNb250aENvbnRleHQ+KCgpID0+IHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCAxLCAwLCAwLCAwLCAwKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1vbnRoOiB0aGlzLmFjdGl2ZU1vbnRoKCksXHJcbiAgICAgIGRhdGUsXHJcbiAgICAgICRpbXBsaWNpdDogZGF0ZSxcclxuICAgIH07XHJcbiAgfSk7XHJcblxyXG4gIHJlYWRvbmx5IGRheUNvbnRleHQgPSBjb21wdXRlZDwoZGF5OiBudW1iZXIpID0+IENhbGVuZGFyRGF5Q29udGV4dD4oKCkgPT4gKGRheTogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSwgZGF5KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHZhbHVlOiBkYXksXHJcbiAgICAgIGRhdGUsXHJcbiAgICAgICRpbXBsaWNpdDogZGF5LFxyXG4gICAgICBzZWxlY3Q6IChkYXlPckRhdGU6IG51bWJlciB8IERhdGUpID0+IHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJTZWxlY3REYXkuZW1pdChkYXlPckRhdGUgaW5zdGFuY2VvZiBEYXRlID8gZGF5T3JEYXRlLmdldERhdGUoKSA6IGRheU9yRGF0ZSk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH0pO1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcmQtZGF5cy12aWV3XCI+XHJcbiAgQGlmICghcmVhZE9ubHkoKSkge1xyXG4gIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3RvcC10b29sYmFyXCI+XHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgI2RlZmF1bHREYXlzVmlld0hlYWRlclRlbXBsYXRlXHJcbiAgICAgIGxldC1jdXJyRGF0ZVxyXG4gICAgICBsZXQtbmV4dE1vbnRoPVwibmV4dE1vbnRoXCJcclxuICAgICAgbGV0LXByZXZNb250aD1cInByZXZNb250aFwiXHJcbiAgICAgIGxldC1jYW5Hb1RvTmV4dE1vbnRoPVwiY2FuR29Ub05leHRQYWdlXCJcclxuICAgICAgbGV0LWNhbkdvVG9QcmV2aW91c01vbnRoPVwiY2FuR29Ub1ByZXZpb3VzUGFnZVwiXHJcbiAgICAgIGxldC1vcGVuWWVhcnNWaWV3PVwib3BlblllYXJzVmlld1wiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX2NhbGVuZGFyLWhlYWRlclwiPlxyXG4gICAgICAgIDxhcmQtYnV0dG9uXHJcbiAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9faGVhZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgY29sb3I9XCJub25lXCJcclxuICAgICAgICAgIHZhcmlhbnQ9XCJwaWxsXCJcclxuICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICAgIChjbGljayk9XCJvcGVuWWVhcnNWaWV3KClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGN1cnJEYXRlIHwgZGF0ZSA6ICdNTU0gWVlZWScgfCB1cHBlcmNhc2UgfX1cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZHJvcGRvd24tYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICA8L2FyZC1idXR0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fYXJyb3dzXCI+XHJcbiAgICAgICAgICA8YXJkLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmV2TW9udGgoKVwiXHJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb1RvUHJldmlvdXNNb250aFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxhcmQtaWNvbj5jaGV2cm9uX2xlZnQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICA8YXJkLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJuZXh0TW9udGgoKVwiXHJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb1RvTmV4dE1vbnRoXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fcmlnaHQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSgpIHx8IGRlZmF1bHREYXlzVmlld0hlYWRlclRlbXBsYXRlXCJcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImRheXNWaWV3SGVhZGVyQ29udGV4dCgpXCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3dlZWtkYXlzXCI+XHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgI2RlZmF1bHRXZWVrZGF5VGVtcGxhdGVcclxuICAgICAgbGV0LWRhdGVcclxuICAgID5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiYXJkLWNhbGVuZGFyX193ZWVrZGF5XCJcclxuICAgICAgICBbdGl0bGVdPVwiZGF0ZSB8IGRhdGUgOiAnRUVFRScgfCB0aXRsZWNhc2VcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZGF0ZSB8IGRhdGUgOiAnRUVFRUUnIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIEBmb3IgKHdlZWtkYXlJbmRleCBvZiB3ZWVrZGF5QXJyYXkoKTsgdHJhY2sgd2Vla2RheUluZGV4KSB7XHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid2Vla2RheVRlbXBsYXRlKCkgfHwgZGVmYXVsdFdlZWtkYXlUZW1wbGF0ZVwiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ3ZWVrZGF5Q29udGV4dCgpKHdlZWtkYXlJbmRleClcIlxyXG4gICAgPjwvbmctdGVtcGxhdGU+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgPGRpdlxyXG4gICAgI2ZvY3VzYWJsZUVsZW1lbnRcclxuICAgIGNsYXNzPVwiYXJkLWNhbGVuZGFyX19kYXlzLWdyaWRcIlxyXG4gICAgW2NsYXNzLmFyZC1yZXNlcnZlLXRvcC1yb3ddPVwicmVzZXJ2ZVRvcFJvdygpXCJcclxuICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgIFthcmlhTGFiZWxdPVwiY3VycmVudEFyaWFMYWJlbCgpXCJcclxuICAgIChmb2N1cyk9XCJmb2N1c0V2ZW50LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoZm9jdXMpPVwib25EYXlHcmlkRm9jdXMoKVwiXHJcbiAgICAoYmx1cik9XCJibHVyRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuICAgIChibHVyKT1cIm9uRGF5R3JpZEJsdXIoKVwiXHJcbiAgICAoY2xpY2spPVwib25EYXlHcmlkQ2xpY2soKVwiXHJcbiAgICAoa2V5ZG93bik9XCJvbk1haW5HcmlkS2V5ZG93bigkZXZlbnQpXCJcclxuICAgIHJvbGU9XCJncmlkXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyX19mbG9hdGluZy1tb250aFwiPlxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAjZGVmYXVsdEZsb2F0aW5nTW9udGhUZW1wbGF0ZVxyXG4gICAgICAgIGxldC1kYXRlXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IFt0aXRsZV09XCJkYXRlIHwgZGF0ZSA6ICdMTExMJyB8IHRpdGxlY2FzZVwiPlxyXG4gICAgICAgICAge3sgZGF0ZSB8IGRhdGUgOiAnTExMJyB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmxvYXRpbmdNb250aFRlbXBsYXRlKCkgfHwgZGVmYXVsdEZsb2F0aW5nTW9udGhUZW1wbGF0ZVwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImZsb2F0aW5nTW9udGhDb250ZXh0KClcIlxyXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgQGZvciAod2VlayBvZiBhY3RpdmVDYWxlbmRhckRhdGEoKS5hcnJheTsgdHJhY2sgJGluZGV4KSB7IEBmb3IgKGRheSBvZiB3ZWVrOyB0cmFjayBkYXkgPyBkYXkgOlxyXG4gICAgYWN0aXZlQ2FsZW5kYXJEYXRhKCkubGVhZGluZ1NwYWNlcyAtICRpbmRleCkgeyBAaWYgKGRheSA9PT0gbnVsbCkge1xyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZW50cnkgYXJkLWNhbGVuZGFyX19lbnRyeS1lbXB0eVwiPjwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiYXJkLWNhbGVuZGFyX19lbnRyeVwiXHJcbiAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXJfX2VudHJ5LWhpZ2hsaWdodGVkXT1cImhpZ2hsaWdodGVkRGF5KCkgPT09IGRheS52YWx1ZVwiXHJcbiAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXJfX2VudHJ5LWRpc2FibGVkXT1cImRheS5kaXNhYmxlZCB8fCBpc0RheUZpbHRlcmVkT3V0KCkoZGF5LnZhbHVlKVwiXHJcbiAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXJfX2VudHJ5LXNlbGVjdGVkXT1cImlzRGF5U2VsZWN0ZWQoZGF5LnZhbHVlKVwiXHJcbiAgICAgIFtjbGFzcy5hcmQtY2FsZW5kYXItdG9kYXldPVwiaXNEYXlUb2RheShkYXkudmFsdWUpXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQ2FsZW5kYXJEYXlDbGljayhkYXkudmFsdWUpXCJcclxuICAgICAgKG1vdXNlbW92ZSk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAobW91c2VvdmVyKT1cIm9uQ2FsZW5kYXJEYXlNb3VzZW92ZXIoZGF5LnZhbHVlKVwiXHJcbiAgICAgIHJvbGU9XCJncmlkY2VsbFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX2VudHJ5LWJ1dHRvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZm9jdXMtb3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAjZGVmYXVsdERheVRlbXBsYXRlXHJcbiAgICAgICAgICAgIGxldC1kYXlcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgZGF5IH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRheVRlbXBsYXRlKCkgfHwgZGVmYXVsdERheVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImRheUNvbnRleHQoKShkYXkudmFsdWUpXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICB9IH0gfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,11 +1,14 @@
1
- import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation, computed, forwardRef, input, model } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Inject, ViewEncapsulation, computed, contentChild, forwardRef, input, model, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { coerceBooleanProperty } from '@ardium-ui/devkit';
4
4
  import { _BooleanComponentBase } from './../_internal/boolean-component';
5
5
  import { ARD_CHECKBOX_DEFAULTS } from './checkbox.defaults';
6
+ import { ArdCheckboxTemplateDirective } from './checkbox.directives';
7
+ import { _CheckboxTemplateRepositoryDirective } from './checkbox.internal-directives';
6
8
  import { CheckboxState } from './checkbox.types';
7
9
  import * as i0 from "@angular/core";
8
10
  import * as i1 from "@angular/common";
11
+ import * as i2 from "../icon/icon.component";
9
12
  export class ArdiumCheckboxComponent extends _BooleanComponentBase {
10
13
  constructor(defaults) {
11
14
  super(defaults);
@@ -14,6 +17,15 @@ export class ArdiumCheckboxComponent extends _BooleanComponentBase {
14
17
  this.unselectedColor = input(this._DEFAULTS.unselectedColor);
15
18
  this.ngClasses = computed(() => [`ard-color-${this.color()}`, `ard-unselected-color-${this.unselectedColor()}`, `ard-checkbox-${this.state()}`].join(' '));
16
19
  this.state = model(CheckboxState.Unselected);
20
+ this.State = CheckboxState;
21
+ //! templates
22
+ this.templateRepository = contentChild(_CheckboxTemplateRepositoryDirective);
23
+ this.checkboxTemplate = contentChild(ArdCheckboxTemplateDirective);
24
+ this.checkboxTemplateContext = computed(() => ({
25
+ $implicit: this.selected(),
26
+ selected: this.selected(),
27
+ state: this.state(),
28
+ }));
17
29
  }
18
30
  //override the "selected" setter, so it changes the state too.
19
31
  set _selected(v) {
@@ -32,13 +44,13 @@ export class ArdiumCheckboxComponent extends _BooleanComponentBase {
32
44
  this._emitChange();
33
45
  }
34
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxComponent, deps: [{ token: ARD_CHECKBOX_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ArdiumCheckboxComponent, selector: "ard-checkbox", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, unselectedColor: { classPropertyName: "unselectedColor", publicName: "unselectedColor", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, providers: [
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: ArdiumCheckboxComponent, selector: "ard-checkbox", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, unselectedColor: { classPropertyName: "unselectedColor", publicName: "unselectedColor", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, providers: [
36
48
  {
37
49
  provide: NG_VALUE_ACCESSOR,
38
50
  useExisting: forwardRef(() => ArdiumCheckboxComponent),
39
51
  multi: true,
40
52
  },
41
- ], usesInheritance: true, ngImport: i0, template: "<button\r\n class=\"ard-checkbox\"\r\n role=\"checkbox\"\r\n type=\"button\"\r\n [id]=\"htmlId()\"\r\n [ariaChecked]=\"selected()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ngClass]=\"ngClasses()\"\r\n (click)=\"toggleState()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-checkbox-icon ard-icon-for-selected\"></div>\r\n <div class=\"ard-checkbox-icon ard-icon-for-indeterminate\"></div>\r\n <div class=\"ard-checkbox-icon ard-icon-for-unselected\"></div>\r\n</button>\r\n", styles: ["ard-checkbox{display:inline}.ard-checkbox{font-size:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
53
+ ], queries: [{ propertyName: "templateRepository", first: true, predicate: _CheckboxTemplateRepositoryDirective, descendants: true, isSignal: true }, { propertyName: "checkboxTemplate", first: true, predicate: ArdCheckboxTemplateDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\r\n class=\"ard-checkbox\"\r\n role=\"checkbox\"\r\n type=\"button\"\r\n [id]=\"htmlId()\"\r\n [ariaChecked]=\"selected()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ngClass]=\"ngClasses()\"\r\n (click)=\"toggleState()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-focus-overlay\"></div>\r\n\r\n <ng-template\r\n #defaultCheckboxTemplate\r\n let-state=\"state\"\r\n let-selected=\"selected\"\r\n >\r\n <ard-icon\r\n [icon]=\"\r\n state === State.Selected\r\n ? 'check_box'\r\n : state === State.Unselected\r\n ? 'check_box_outline_blank'\r\n : 'indeterminate_check_box'\r\n \"\r\n [filled]=\"selected\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateRepository()?.checkboxTmp()?.template ?? checkboxTemplate()?.template ?? defaultCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"checkboxTemplateContext()\"\r\n />\r\n</button>\r\n", styles: ["ard-checkbox{display:inline}.ard-checkbox{font-size:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ArdiumIconComponent, selector: "ard-icon", inputs: ["ariaLabel", "icon", "filled", "weight", "grade", "opticalSize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
42
54
  }
43
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxComponent, decorators: [{
44
56
  type: Component,
@@ -48,9 +60,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
48
60
  useExisting: forwardRef(() => ArdiumCheckboxComponent),
49
61
  multi: true,
50
62
  },
51
- ], template: "<button\r\n class=\"ard-checkbox\"\r\n role=\"checkbox\"\r\n type=\"button\"\r\n [id]=\"htmlId()\"\r\n [ariaChecked]=\"selected()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ngClass]=\"ngClasses()\"\r\n (click)=\"toggleState()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-checkbox-icon ard-icon-for-selected\"></div>\r\n <div class=\"ard-checkbox-icon ard-icon-for-indeterminate\"></div>\r\n <div class=\"ard-checkbox-icon ard-icon-for-unselected\"></div>\r\n</button>\r\n", styles: ["ard-checkbox{display:inline}.ard-checkbox{font-size:inherit}\n"] }]
63
+ ], template: "<button\r\n class=\"ard-checkbox\"\r\n role=\"checkbox\"\r\n type=\"button\"\r\n [id]=\"htmlId()\"\r\n [ariaChecked]=\"selected()\"\r\n [tabindex]=\"tabIndex()\"\r\n [ngClass]=\"ngClasses()\"\r\n (click)=\"toggleState()\"\r\n (focus)=\"onFocus($event)\"\r\n (blur)=\"onBlur($event)\"\r\n>\r\n <div class=\"ard-hitbox\"></div>\r\n <div class=\"ard-focus-overlay\"></div>\r\n\r\n <ng-template\r\n #defaultCheckboxTemplate\r\n let-state=\"state\"\r\n let-selected=\"selected\"\r\n >\r\n <ard-icon\r\n [icon]=\"\r\n state === State.Selected\r\n ? 'check_box'\r\n : state === State.Unselected\r\n ? 'check_box_outline_blank'\r\n : 'indeterminate_check_box'\r\n \"\r\n [filled]=\"selected\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template\r\n [ngTemplateOutlet]=\"templateRepository()?.checkboxTmp()?.template ?? checkboxTemplate()?.template ?? defaultCheckboxTemplate\"\r\n [ngTemplateOutletContext]=\"checkboxTemplateContext()\"\r\n />\r\n</button>\r\n", styles: ["ard-checkbox{display:inline}.ard-checkbox{font-size:inherit}\n"] }]
52
64
  }], ctorParameters: () => [{ type: undefined, decorators: [{
53
65
  type: Inject,
54
66
  args: [ARD_CHECKBOX_DEFAULTS]
55
67
  }] }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBZ0JqRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEscUJBQXFCO0lBRWhFLFlBQTJDLFFBQTZCO1FBQ3RFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdsQixjQUFjO1FBQ0wsVUFBSyxHQUFHLEtBQUssQ0FBdUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxvQkFBZSxHQUFHLEtBQUssQ0FBdUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU5RSxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNqQyxDQUFDLGFBQWEsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsd0JBQXdCLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDMUgsQ0FBQztRQVNPLFVBQUssR0FBRyxLQUFLLENBQWdCLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQWpCaEUsQ0FBQztJQVVELDhEQUE4RDtJQUM5RCxJQUFhLFNBQVMsQ0FBQyxDQUFNO1FBQzNCLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFJRCxnQkFBZ0I7SUFDaEIsV0FBVztRQUNULElBQUksUUFBUSxHQUFrQixhQUFhLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0FqQ1UsdUJBQXVCLGtCQUVkLHFCQUFxQjttR0FGOUIsdUJBQXVCLDRkQVJ2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7Z0JBQ3RELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpRENwQkgsZ21CQWtCQTs7NEZESWEsdUJBQXVCO2tCQWRuQyxTQUFTOytCQUNFLGNBQWMsaUJBR1QsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQUlZLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGZvcndhcmRSZWYsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgU2ltcGxlQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBfQm9vbGVhbkNvbXBvbmVudEJhc2UgfSBmcm9tICcuLy4uL19pbnRlcm5hbC9ib29sZWFuLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFSRF9DSEVDS0JPWF9ERUZBVUxUUywgQXJkQ2hlY2tib3hEZWZhdWx0cyB9IGZyb20gJy4vY2hlY2tib3guZGVmYXVsdHMnO1xyXG5pbXBvcnQgeyBDaGVja2JveFN0YXRlIH0gZnJvbSAnLi9jaGVja2JveC50eXBlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1DaGVja2JveENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBfQm9vbGVhbkNvbXBvbmVudEJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZENoZWNrYm94RGVmYXVsdHM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChBUkRfQ0hFQ0tCT1hfREVGQVVMVFMpIGRlZmF1bHRzOiBBcmRDaGVja2JveERlZmF1bHRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0cyk7XHJcbiAgfVxyXG5cclxuICAvLyEgYXBwZWFyYW5jZVxyXG4gIHJlYWRvbmx5IGNvbG9yID0gaW5wdXQ8U2ltcGxlQ29tcG9uZW50Q29sb3I+KHRoaXMuX0RFRkFVTFRTLmNvbG9yKTtcclxuICByZWFkb25seSB1bnNlbGVjdGVkQ29sb3IgPSBpbnB1dDxTaW1wbGVDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMudW5zZWxlY3RlZENvbG9yKTtcclxuXHJcbiAgcmVhZG9ubHkgbmdDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT5cclxuICAgIFtgYXJkLWNvbG9yLSR7dGhpcy5jb2xvcigpfWAsIGBhcmQtdW5zZWxlY3RlZC1jb2xvci0ke3RoaXMudW5zZWxlY3RlZENvbG9yKCl9YCwgYGFyZC1jaGVja2JveC0ke3RoaXMuc3RhdGUoKX1gXS5qb2luKCcgJylcclxuICApO1xyXG5cclxuICAvL292ZXJyaWRlIHRoZSBcInNlbGVjdGVkXCIgc2V0dGVyLCBzbyBpdCBjaGFuZ2VzIHRoZSBzdGF0ZSB0b28uXHJcbiAgb3ZlcnJpZGUgc2V0IF9zZWxlY3RlZCh2OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHYpO1xyXG4gICAgdGhpcy5zZWxlY3RlZC5zZXQoc2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5zdGF0ZS5zZXQoc2VsZWN0ZWQgPyBDaGVja2JveFN0YXRlLlNlbGVjdGVkIDogQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IHN0YXRlID0gbW9kZWw8Q2hlY2tib3hTdGF0ZT4oQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkKTtcclxuXHJcbiAgLy8hIGNsaWNrIGFjdGlvblxyXG4gIHRvZ2dsZVN0YXRlKCkge1xyXG4gICAgbGV0IG5ld1N0YXRlOiBDaGVja2JveFN0YXRlID0gQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkO1xyXG4gICAgaWYgKHRoaXMuc3RhdGUoKSA9PT0gQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkKSB7XHJcbiAgICAgIG5ld1N0YXRlID0gQ2hlY2tib3hTdGF0ZS5TZWxlY3RlZDtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdGUuc2V0KG5ld1N0YXRlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQuc2V0KHRoaXMuc3RhdGUoKSA9PT0gQ2hlY2tib3hTdGF0ZS5TZWxlY3RlZCk7XHJcblxyXG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgY2xhc3M9XCJhcmQtY2hlY2tib3hcIlxyXG4gIHJvbGU9XCJjaGVja2JveFwiXHJcbiAgdHlwZT1cImJ1dHRvblwiXHJcbiAgW2lkXT1cImh0bWxJZCgpXCJcclxuICBbYXJpYUNoZWNrZWRdPVwic2VsZWN0ZWQoKVwiXHJcbiAgW3RhYmluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuICAoY2xpY2spPVwidG9nZ2xlU3RhdGUoKVwiXHJcbiAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1oaXRib3hcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYXJkLWNoZWNrYm94LWljb24gYXJkLWljb24tZm9yLXNlbGVjdGVkXCI+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1jaGVja2JveC1pY29uIGFyZC1pY29uLWZvci1pbmRldGVybWluYXRlXCI+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1jaGVja2JveC1pY29uIGFyZC1pY29uLWZvci11bnNlbGVjdGVkXCI+PC9kaXY+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQTJCLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFnQjFFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxxQkFBcUI7SUFFaEUsWUFBMkMsUUFBNkI7UUFDdEUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBR2xCLGNBQWM7UUFDTCxVQUFLLEdBQUcsS0FBSyxDQUF1QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELG9CQUFlLEdBQUcsS0FBSyxDQUF1QixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlFLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ2pDLENBQUMsYUFBYSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSx3QkFBd0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUMxSCxDQUFDO1FBU08sVUFBSyxHQUFHLEtBQUssQ0FBZ0IsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZELFVBQUssR0FBRyxhQUFhLENBQUM7UUFjL0IsYUFBYTtRQUNKLHVCQUFrQixHQUFHLFlBQVksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBRXhFLHFCQUFnQixHQUFHLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRTlELDRCQUF1QixHQUFHLFFBQVEsQ0FBMEIsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMxRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUNwQixDQUFDLENBQUMsQ0FBQztJQTFDSixDQUFDO0lBVUQsOERBQThEO0lBQzlELElBQWEsU0FBUyxDQUFDLENBQU07UUFDM0IsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQU1ELGdCQUFnQjtJQUNoQixXQUFXO1FBQ1QsSUFBSSxRQUFRLEdBQWtCLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlDLFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQW5DVSx1QkFBdUIsa0JBRWQscUJBQXFCO21HQUY5Qix1QkFBdUIsNGRBUnZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBFQXdDMEMsb0NBQW9DLG1HQUV0Qyw0QkFBNEIsdUZDMUV2RSxxaENBcUNBOzs0RkRIYSx1QkFBdUI7a0JBZG5DLFNBQVM7K0JBQ0UsY0FBYyxpQkFHVCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs7MEJBSVksTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBJbmplY3QsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgY29tcHV0ZWQsXHJcbiAgY29udGVudENoaWxkLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5wdXQsXHJcbiAgbW9kZWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xyXG5pbXBvcnQgeyBTaW1wbGVDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XHJcbmltcG9ydCB7IF9Cb29sZWFuQ29tcG9uZW50QmFzZSB9IGZyb20gJy4vLi4vX2ludGVybmFsL2Jvb2xlYW4tY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVJEX0NIRUNLQk9YX0RFRkFVTFRTLCBBcmRDaGVja2JveERlZmF1bHRzIH0gZnJvbSAnLi9jaGVja2JveC5kZWZhdWx0cyc7XHJcbmltcG9ydCB7IEFyZENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2NoZWNrYm94LmRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBfQ2hlY2tib3hUZW1wbGF0ZVJlcG9zaXRvcnlEaXJlY3RpdmUgfSBmcm9tICcuL2NoZWNrYm94LmludGVybmFsLWRpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBDaGVja2JveFN0YXRlLCBDaGVja2JveFRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4vY2hlY2tib3gudHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtY2hlY2tib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXJkaXVtQ2hlY2tib3hDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUNoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgX0Jvb2xlYW5Db21wb25lbnRCYXNlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRDaGVja2JveERlZmF1bHRzO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX0NIRUNLQk9YX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkQ2hlY2tib3hEZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PFNpbXBsZUNvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5jb2xvcik7XHJcbiAgcmVhZG9ubHkgdW5zZWxlY3RlZENvbG9yID0gaW5wdXQ8U2ltcGxlQ29tcG9uZW50Q29sb3I+KHRoaXMuX0RFRkFVTFRTLnVuc2VsZWN0ZWRDb2xvcik7XHJcblxyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+XHJcbiAgICBbYGFyZC1jb2xvci0ke3RoaXMuY29sb3IoKX1gLCBgYXJkLXVuc2VsZWN0ZWQtY29sb3ItJHt0aGlzLnVuc2VsZWN0ZWRDb2xvcigpfWAsIGBhcmQtY2hlY2tib3gtJHt0aGlzLnN0YXRlKCl9YF0uam9pbignICcpXHJcbiAgKTtcclxuXHJcbiAgLy9vdmVycmlkZSB0aGUgXCJzZWxlY3RlZFwiIHNldHRlciwgc28gaXQgY2hhbmdlcyB0aGUgc3RhdGUgdG9vLlxyXG4gIG92ZXJyaWRlIHNldCBfc2VsZWN0ZWQodjogYW55KSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KTtcclxuICAgIHRoaXMuc2VsZWN0ZWQuc2V0KHNlbGVjdGVkKTtcclxuICAgIHRoaXMuc3RhdGUuc2V0KHNlbGVjdGVkID8gQ2hlY2tib3hTdGF0ZS5TZWxlY3RlZCA6IENoZWNrYm94U3RhdGUuVW5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBzdGF0ZSA9IG1vZGVsPENoZWNrYm94U3RhdGU+KENoZWNrYm94U3RhdGUuVW5zZWxlY3RlZCk7XHJcblxyXG4gIHJlYWRvbmx5IFN0YXRlID0gQ2hlY2tib3hTdGF0ZTtcclxuXHJcbiAgLy8hIGNsaWNrIGFjdGlvblxyXG4gIHRvZ2dsZVN0YXRlKCkge1xyXG4gICAgbGV0IG5ld1N0YXRlOiBDaGVja2JveFN0YXRlID0gQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkO1xyXG4gICAgaWYgKHRoaXMuc3RhdGUoKSA9PT0gQ2hlY2tib3hTdGF0ZS5VbnNlbGVjdGVkKSB7XHJcbiAgICAgIG5ld1N0YXRlID0gQ2hlY2tib3hTdGF0ZS5TZWxlY3RlZDtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdGUuc2V0KG5ld1N0YXRlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQuc2V0KHRoaXMuc3RhdGUoKSA9PT0gQ2hlY2tib3hTdGF0ZS5TZWxlY3RlZCk7XHJcblxyXG4gICAgdGhpcy5fZW1pdENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHRlbXBsYXRlc1xyXG4gIHJlYWRvbmx5IHRlbXBsYXRlUmVwb3NpdG9yeSA9IGNvbnRlbnRDaGlsZChfQ2hlY2tib3hUZW1wbGF0ZVJlcG9zaXRvcnlEaXJlY3RpdmUpO1xyXG5cclxuICByZWFkb25seSBjaGVja2JveFRlbXBsYXRlID0gY29udGVudENoaWxkKEFyZENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUpO1xyXG5cclxuICByZWFkb25seSBjaGVja2JveFRlbXBsYXRlQ29udGV4dCA9IGNvbXB1dGVkPENoZWNrYm94VGVtcGxhdGVDb250ZXh0PigoKSA9PiAoe1xyXG4gICAgJGltcGxpY2l0OiB0aGlzLnNlbGVjdGVkKCksXHJcbiAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCgpLFxyXG4gICAgc3RhdGU6IHRoaXMuc3RhdGUoKSxcclxuICB9KSk7XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIGNsYXNzPVwiYXJkLWNoZWNrYm94XCJcclxuICByb2xlPVwiY2hlY2tib3hcIlxyXG4gIHR5cGU9XCJidXR0b25cIlxyXG4gIFtpZF09XCJodG1sSWQoKVwiXHJcbiAgW2FyaWFDaGVja2VkXT1cInNlbGVjdGVkKClcIlxyXG4gIFt0YWJpbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICBbbmdDbGFzc109XCJuZ0NsYXNzZXMoKVwiXHJcbiAgKGNsaWNrKT1cInRvZ2dsZVN0YXRlKClcIlxyXG4gIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtaGl0Ym94XCI+PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFyZC1mb2N1cy1vdmVybGF5XCI+PC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZVxyXG4gICAgI2RlZmF1bHRDaGVja2JveFRlbXBsYXRlXHJcbiAgICBsZXQtc3RhdGU9XCJzdGF0ZVwiXHJcbiAgICBsZXQtc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiXHJcbiAgPlxyXG4gICAgPGFyZC1pY29uXHJcbiAgICAgIFtpY29uXT1cIlxyXG4gICAgICAgIHN0YXRlID09PSBTdGF0ZS5TZWxlY3RlZFxyXG4gICAgICAgICAgPyAnY2hlY2tfYm94J1xyXG4gICAgICAgICAgOiBzdGF0ZSA9PT0gU3RhdGUuVW5zZWxlY3RlZFxyXG4gICAgICAgICAgPyAnY2hlY2tfYm94X291dGxpbmVfYmxhbmsnXHJcbiAgICAgICAgICA6ICdpbmRldGVybWluYXRlX2NoZWNrX2JveCdcclxuICAgICAgXCJcclxuICAgICAgW2ZpbGxlZF09XCJzZWxlY3RlZFwiXHJcbiAgICAvPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZVxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZXBvc2l0b3J5KCk/LmNoZWNrYm94VG1wKCk/LnRlbXBsYXRlID8/IGNoZWNrYm94VGVtcGxhdGUoKT8udGVtcGxhdGUgPz8gZGVmYXVsdENoZWNrYm94VGVtcGxhdGVcIlxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNoZWNrYm94VGVtcGxhdGVDb250ZXh0KClcIlxyXG4gIC8+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ArdCheckboxTemplateDirective {
4
+ constructor(template) {
5
+ this.template = template;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdCheckboxTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ArdCheckboxTemplateDirective, selector: "ard-checkbox > ng-template[ard-checkbox-tmp]", ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdCheckboxTemplateDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{ selector: 'ard-checkbox > ng-template[ard-checkbox-tmp]' }]
13
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQUl2RCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLFlBQW1CLFFBQThDO1FBQTlDLGFBQVEsR0FBUixRQUFRLENBQXNDO0lBQUcsQ0FBQzsrR0FEMUQsNEJBQTRCO21HQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBRHhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsOENBQThDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoZWNrYm94VGVtcGxhdGVDb250ZXh0IH0gZnJvbSAnLi9jaGVja2JveC50eXBlcyc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdhcmQtY2hlY2tib3ggPiBuZy10ZW1wbGF0ZVthcmQtY2hlY2tib3gtdG1wXScgfSlcclxuZXhwb3J0IGNsYXNzIEFyZENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q2hlY2tib3hUZW1wbGF0ZUNvbnRleHQ+KSB7fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Directive, input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class _CheckboxTemplateRepositoryDirective {
4
+ constructor(template) {
5
+ this.template = template;
6
+ this.checkboxTmp = input(undefined);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _CheckboxTemplateRepositoryDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: _CheckboxTemplateRepositoryDirective, isStandalone: true, selector: "ard-checkbox > ng-template[_ard-tmp-repository]", inputs: { checkboxTmp: { classPropertyName: "checkboxTmp", publicName: "checkboxTmp", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: _CheckboxTemplateRepositoryDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{ selector: 'ard-checkbox > ng-template[_ard-tmp-repository]', standalone: true }]
14
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guaW50ZXJuYWwtZGlyZWN0aXZlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2hlY2tib3gvY2hlY2tib3guaW50ZXJuYWwtZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxZQUFtQixRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUUxQyxnQkFBVyxHQUFHLEtBQUssQ0FBMkMsU0FBUyxDQUFDLENBQUM7SUFGNUIsQ0FBQzsrR0FENUMsb0NBQW9DO21HQUFwQyxvQ0FBb0M7OzRGQUFwQyxvQ0FBb0M7a0JBRGhELFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsaURBQWlELEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFyZENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2NoZWNrYm94LmRpcmVjdGl2ZXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnYXJkLWNoZWNrYm94ID4gbmctdGVtcGxhdGVbX2FyZC10bXAtcmVwb3NpdG9yeV0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXHJcbmV4cG9ydCBjbGFzcyBfQ2hlY2tib3hUZW1wbGF0ZVJlcG9zaXRvcnlEaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5kZWZpbmVkPikge31cclxuXHJcbiAgcmVhZG9ubHkgY2hlY2tib3hUbXAgPSBpbnB1dDxBcmRDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG59XHJcbiJdfQ==
@@ -1,18 +1,20 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { ArdiumIconModule } from "../icon";
3
4
  import { ArdiumCheckboxComponent } from './checkbox.component';
5
+ import { ArdCheckboxTemplateDirective } from './checkbox.directives';
4
6
  import * as i0 from "@angular/core";
5
7
  export class ArdiumCheckboxModule {
6
8
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxModule, declarations: [ArdiumCheckboxComponent], imports: [CommonModule], exports: [ArdiumCheckboxComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxModule, imports: [CommonModule] }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxModule, declarations: [ArdiumCheckboxComponent, ArdCheckboxTemplateDirective], imports: [CommonModule, ArdiumIconModule], exports: [ArdiumCheckboxComponent, ArdCheckboxTemplateDirective] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxModule, imports: [CommonModule, ArdiumIconModule] }); }
9
11
  }
10
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumCheckboxModule, decorators: [{
11
13
  type: NgModule,
12
14
  args: [{
13
- declarations: [ArdiumCheckboxComponent],
14
- imports: [CommonModule],
15
- exports: [ArdiumCheckboxComponent],
15
+ declarations: [ArdiumCheckboxComponent, ArdCheckboxTemplateDirective],
16
+ imports: [CommonModule, ArdiumIconModule],
17
+ exports: [ArdiumCheckboxComponent, ArdCheckboxTemplateDirective],
16
18
  }]
17
19
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTy9ELE1BQU0sT0FBTyxvQkFBb0I7K0dBQXBCLG9CQUFvQjtnSEFBcEIsb0JBQW9CLGlCQUpoQix1QkFBdUIsYUFDNUIsWUFBWSxhQUNaLHVCQUF1QjtnSEFFdEIsb0JBQW9CLFlBSHJCLFlBQVk7OzRGQUdYLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBcmRpdW1DaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3guY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbQXJkaXVtQ2hlY2tib3hDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtBcmRpdW1DaGVja2JveENvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcmRpdW1DaGVja2JveE1vZHVsZSB7fVxyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jaGVja2JveC9jaGVja2JveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU9yRSxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixpQkFKaEIsdUJBQXVCLEVBQUUsNEJBQTRCLGFBQzFELFlBQVksRUFBRSxnQkFBZ0IsYUFDOUIsdUJBQXVCLEVBQUUsNEJBQTRCO2dIQUVwRCxvQkFBb0IsWUFIckIsWUFBWSxFQUFFLGdCQUFnQjs7NEZBRzdCLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSw0QkFBNEIsQ0FBQztvQkFDckUsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSw0QkFBNEIsQ0FBQztpQkFDakUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcmRpdW1JY29uTW9kdWxlIH0gZnJvbSBcIi4uL2ljb25cIjtcclxuaW1wb3J0IHsgQXJkaXVtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFyZENoZWNrYm94VGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2NoZWNrYm94LmRpcmVjdGl2ZXMnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtBcmRpdW1DaGVja2JveENvbXBvbmVudCwgQXJkQ2hlY2tib3hUZW1wbGF0ZURpcmVjdGl2ZV0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQXJkaXVtSWNvbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW0FyZGl1bUNoZWNrYm94Q29tcG9uZW50LCBBcmRDaGVja2JveFRlbXBsYXRlRGlyZWN0aXZlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUNoZWNrYm94TW9kdWxlIHt9XHJcbiJdfQ==
@@ -3,4 +3,4 @@ export const CheckboxState = {
3
3
  Indeterminate: 'indeterminate',
4
4
  Selected: 'selected',
5
5
  };
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixVQUFVLEVBQUUsWUFBWTtJQUN4QixhQUFhLEVBQUUsZUFBZTtJQUM5QixRQUFRLEVBQUUsVUFBVTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ2hlY2tib3hTdGF0ZSA9IHtcclxuICBVbnNlbGVjdGVkOiAndW5zZWxlY3RlZCcsXHJcbiAgSW5kZXRlcm1pbmF0ZTogJ2luZGV0ZXJtaW5hdGUnLFxyXG4gIFNlbGVjdGVkOiAnc2VsZWN0ZWQnLFxyXG59IGFzIGNvbnN0O1xyXG5leHBvcnQgdHlwZSBDaGVja2JveFN0YXRlID0gKHR5cGVvZiBDaGVja2JveFN0YXRlKVtrZXlvZiB0eXBlb2YgQ2hlY2tib3hTdGF0ZV07XHJcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NoZWNrYm94L2NoZWNrYm94LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixVQUFVLEVBQUUsWUFBWTtJQUN4QixhQUFhLEVBQUUsZUFBZTtJQUM5QixRQUFRLEVBQUUsVUFBVTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ2hlY2tib3hTdGF0ZSA9IHtcclxuICBVbnNlbGVjdGVkOiAndW5zZWxlY3RlZCcsXHJcbiAgSW5kZXRlcm1pbmF0ZTogJ2luZGV0ZXJtaW5hdGUnLFxyXG4gIFNlbGVjdGVkOiAnc2VsZWN0ZWQnLFxyXG59IGFzIGNvbnN0O1xyXG5leHBvcnQgdHlwZSBDaGVja2JveFN0YXRlID0gKHR5cGVvZiBDaGVja2JveFN0YXRlKVtrZXlvZiB0eXBlb2YgQ2hlY2tib3hTdGF0ZV07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoZWNrYm94VGVtcGxhdGVDb250ZXh0IHtcclxuICAkaW1wbGljaXQ6IGJvb2xlYW47XHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XHJcbiAgc3RhdGU6IENoZWNrYm94U3RhdGU7XHJcbn0iXX0=