adb-shared 2.0.3 → 2.0.4

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.
@@ -3,19 +3,24 @@ import { addDays, addMonths, addYears, eachDayOfInterval, eachWeekOfInterval, en
3
3
  import { Subscription } from "rxjs";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./adb-date-picker.service";
6
- import * as i2 from "../../directives/click-outside.directive";
6
+ import * as i2 from "@ngx-translate/core";
7
7
  import * as i3 from "@angular/common";
8
8
  import * as i4 from "../../pipes/date.pipe";
9
- import * as i5 from "@ngx-translate/core";
10
9
  export class AdbDatePickerComponent {
11
- constructor(adbDatePickerService) {
10
+ constructor(adbDatePickerService, trans, elementRef) {
12
11
  this.adbDatePickerService = adbDatePickerService;
12
+ this.trans = trans;
13
+ this.elementRef = elementRef;
13
14
  this.subscriptions = new Subscription();
14
15
  this.currentdDate = new Date();
15
16
  this.selectedDate = new Date();
16
17
  this.weekDays = AdbDatePickerComponent.WEEK_DAYS;
17
18
  }
18
19
  ngOnInit() {
20
+ this.subscriptions.add(this.trans.onLangChange.subscribe(event => {
21
+ console.log('change lang hits in library');
22
+ this.trans.use(event.lang);
23
+ }));
19
24
  this.subscriptions.add(this.adbDatePickerService.settings$.subscribe(settings => {
20
25
  this.range = {
21
26
  start: settings?.minDate ? startOfDay(settings.minDate) : null,
@@ -71,11 +76,18 @@ export class AdbDatePickerComponent {
71
76
  this.createCalendar();
72
77
  }
73
78
  }
74
- onHide(target) {
75
- if (!target.hasAttribute('adbdatepicker')) {
76
- this.adbDatePickerService.hide();
77
- }
78
- }
79
+ // @HostListener('document:click', ['$event.target'])
80
+ // onHide(target: any) {
81
+ // console.log('this.elementRef.nativeElement',this.elementRef.nativeElement);
82
+ // console.log('target',target)
83
+ // const clickedInside = this.elementRef.nativeElement.contains(target);
84
+ // console.log('target.id',target.id);
85
+ // if (!clickedInside) {
86
+ // if (!target.hasAttribute('adbdatepicker')) {
87
+ // this.adbDatePickerService.hide();
88
+ // }
89
+ // }
90
+ // }
79
91
  ngOnDestroy() {
80
92
  this.subscriptions.unsubscribe();
81
93
  }
@@ -129,10 +141,10 @@ export class AdbDatePickerComponent {
129
141
  AdbDatePickerComponent.MONTHS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
130
142
  AdbDatePickerComponent.WEEK_DAYS = ['1', '2', '3', '4', '5', '6', '7'];
131
143
  AdbDatePickerComponent.YEAR_INTERVALL = 8;
132
- /** @nocollapse */ AdbDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerComponent, deps: [{ token: i1.AdbDatePickerService }], target: i0.ɵɵFactoryTarget.Component });
133
- /** @nocollapse */ AdbDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerComponent, selector: "adb-date-picker", ngImport: i0, template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\" (adbClickOutside)=\"onHide($event)\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>", directives: [{ type: i2.ClickOutsideDirective, selector: "[adbClickOutside]", outputs: ["adbClickOutside"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "adbLocaleDate": i4.LocaleDatePipe, "date": i3.DatePipe, "translate": i5.TranslatePipe } });
144
+ /** @nocollapse */ AdbDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerComponent, deps: [{ token: i1.AdbDatePickerService }, { token: i2.TranslateService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
145
+ /** @nocollapse */ AdbDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerComponent, selector: "adb-date-picker", ngImport: i0, template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "adbLocaleDate": i4.LocaleDatePipe, "date": i3.DatePipe, "translate": i2.TranslatePipe } });
134
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerComponent, decorators: [{
135
147
  type: Component,
136
- args: [{ selector: 'adb-date-picker', template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\" (adbClickOutside)=\"onHide($event)\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>" }]
137
- }], ctorParameters: function () { return [{ type: i1.AdbDatePickerService }]; } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2FkYi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDelAsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8sc0JBQXNCO0lBYS9CLFlBQW9CLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBWnRELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUkzQyxpQkFBWSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBR2hDLGFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUM7SUFLNUMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1RSxJQUFJLENBQUMsS0FBSyxHQUFHO2dCQUNULEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUM5RCxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTthQUM3RCxDQUFDO1lBQ0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYTtRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFnQjtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzVCO2FBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3JCO2FBQU07WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN6QjtJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM1QjthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBR0QsTUFBTSxDQUFDLE1BQVc7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDcEM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEQsT0FBTztnQkFDSCxLQUFLLEVBQUUsQ0FBQztnQkFDUixXQUFXLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUNyRyxDQUFBO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1AsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDbEQsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQWM7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGNBQWM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sYUFBYSxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNyRyxJQUFJLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFNBQVMsRUFBRTtZQUM3QixNQUFNLElBQUksR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDaEQsTUFBTSxZQUFZLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RGLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRCxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZDLE9BQU87b0JBQ0gsS0FBSyxFQUFFLEdBQUc7b0JBQ1YsU0FBUyxFQUFFLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUM1QyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUMxQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxHQUFHLENBQUMsUUFBUSxFQUFFO2lCQUM3RCxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7WUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQzs7QUFwSU0sNkJBQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEQsZ0NBQVMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ2hELHFDQUFjLEdBQUcsQ0FBQyxDQUFDO3NJQUpqQixzQkFBc0I7MEhBQXRCLHNCQUFzQix1RENUbkMsbzJGQWtDTTsyRkR6Qk8sc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGFkZERheXMsIGFkZE1vbnRocywgYWRkWWVhcnMsIGVhY2hEYXlPZkludGVydmFsLCBlYWNoV2Vla09mSW50ZXJ2YWwsIGVuZE9mRGF5LCBlbmRPZk1vbnRoLCBnZXRIb3VycywgZ2V0SVNPV2VlaywgZ2V0TWludXRlcywgZ2V0TW9udGgsIGlzU2FtZURheSwgaXNTYW1lWWVhciwgaXNXaXRoaW5JbnRlcnZhbCwgc3RhcnRPZkRheSwgc3RhcnRPZk1vbnRoLCBzdWJNb250aHMsIHN1YlllYXJzIH0gZnJvbSBcImRhdGUtZm5zXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLWRhdGUtcGlja2VyLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhZGItZGF0ZS1waWNrZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FkYi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkYkRhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBzdGF0aWMgTU9OVEhTID0gWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMV07XHJcbiAgICBzdGF0aWMgV0VFS19EQVlTID0gWycxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3J107XHJcbiAgICBzdGF0aWMgWUVBUl9JTlRFUlZBTEwgPSA4O1xyXG4gICAgY3VycmVudGREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHNlbGVjdGVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB5ZWFyczogeyB2YWx1ZTogRGF0ZSwgdGl0bGU6IHN0cmluZywgaXNUaGlzWWVhcjogYm9vbGVhbiB9W107XHJcbiAgICBtb250aHM6IHsgdmFsdWU6IG51bWJlciwgaXNUaGlzTW9udGg6IGJvb2xlYW4gfVtdO1xyXG4gICAgd2Vla0RheXMgPSBBZGJEYXRlUGlja2VyQ29tcG9uZW50LldFRUtfREFZUztcclxuICAgIHdlZWtzOiBQaWNrZXJXZWVrW107XHJcbiAgICByYW5nZTogeyBzdGFydDogYW55OyBlbmQ6IGFueTsgfTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFkYkRhdGVQaWNrZXJTZXJ2aWNlOiBBZGJEYXRlUGlja2VyU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS5zZXR0aW5ncyQuc3Vic2NyaWJlKHNldHRpbmdzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZSA9IHtcclxuICAgICAgICAgICAgICAgIHN0YXJ0OiBzZXR0aW5ncz8ubWluRGF0ZSA/IHN0YXJ0T2ZEYXkoc2V0dGluZ3MubWluRGF0ZSkgOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgZW5kOiBzZXR0aW5ncz8ubWF4RGF0ZSA/IGVuZE9mRGF5KHNldHRpbmdzLm1heERhdGUpIDogbnVsbFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUNhbGVuZGFyKCk7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2hvd1llYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tb250aHMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMubG9hZFllYXJzSW50ZXJ2YWwoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3dNb250aCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnllYXJzID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxvYWRNb250aHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNlbGVjdFllYXIoaW5ZZWFyPzogRGF0ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldEZ1bGxZZWFyKGluWWVhci5nZXRGdWxsWWVhcigpKTtcclxuICAgICAgICB0aGlzLmxvYWRNb250aHMoKTtcclxuICAgICAgICB0aGlzLnllYXJzID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBvblNlbGVjdE1vbnRoKGluTW9udGg/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5zZXRNb250aChpbk1vbnRoKTtcclxuICAgICAgICB0aGlzLmNyZWF0ZUNhbGVuZGFyKCk7XHJcbiAgICAgICAgdGhpcy55ZWFycyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5tb250aHMgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUHJldigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy55ZWFycykge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHN1YlllYXJzKHRoaXMuc2VsZWN0ZWREYXRlLCBBZGJEYXRlUGlja2VyQ29tcG9uZW50LllFQVJfSU5URVJWQUxMKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkWWVhcnNJbnRlcnZhbCgpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb250aHMpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBzdWJZZWFycyh0aGlzLnNlbGVjdGVkRGF0ZSwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZE1vbnRocygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gc3ViTW9udGhzKHRoaXMuc2VsZWN0ZWREYXRlLCAxKTtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDYWxlbmRhcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbk5leHQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMueWVhcnMpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBhZGRZZWFycyh0aGlzLnNlbGVjdGVkRGF0ZSwgQWRiRGF0ZVBpY2tlckNvbXBvbmVudC5ZRUFSX0lOVEVSVkFMTCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZFllYXJzSW50ZXJ2YWwoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9udGhzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gYWRkWWVhcnModGhpcy5zZWxlY3RlZERhdGUsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRNb250aHMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGFkZE1vbnRocyh0aGlzLnNlbGVjdGVkRGF0ZSwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQ2FsZW5kYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG9uSGlkZSh0YXJnZXQ6IGFueSkge1xyXG4gICAgICAgIGlmICghdGFyZ2V0Lmhhc0F0dHJpYnV0ZSgnYWRiZGF0ZXBpY2tlcicpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGxvYWRNb250aHMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tb250aHMgPSBBZGJEYXRlUGlja2VyQ29tcG9uZW50Lk1PTlRIUy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogeCxcclxuICAgICAgICAgICAgICAgIGlzVGhpc01vbnRoOiBnZXRNb250aCh0aGlzLnNlbGVjdGVkRGF0ZSkgPT09IHggJiYgaXNTYW1lWWVhcih0aGlzLmN1cnJlbnRkRGF0ZSwgdGhpcy5zZWxlY3RlZERhdGUpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGxvYWRZZWFyc0ludGVydmFsKCkge1xyXG4gICAgICAgIGxldCB5ZWFyID0gc3ViWWVhcnModGhpcy5zZWxlY3RlZERhdGUsIEFkYkRhdGVQaWNrZXJDb21wb25lbnQuWUVBUl9JTlRFUlZBTEwpO1xyXG4gICAgICAgIGNvbnN0IHllYXJzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7XHJcbiAgICAgICAgICAgIHllYXJzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgdmFsdWU6IHllYXIsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogeWVhci5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgICAgICAgICAgaXNUaGlzWWVhcjogaXNTYW1lWWVhcih5ZWFyLCB0aGlzLmN1cnJlbnRkRGF0ZSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHllYXIgPSBhZGRZZWFycyh5ZWFyLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy55ZWFycyA9IHllYXJzO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VsZWN0RGF0ZShkYXk6IFBpY2tlckRheSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uuc2VsZWN0RGF0ZShkYXkudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlQ2FsZW5kYXIoKSB7XHJcbiAgICAgICAgY29uc3Qgd2Vla3MgPSBbXTtcclxuICAgICAgICBjb25zdCBtb250aEludGVydmFsID0geyBzdGFydDogc3RhcnRPZk1vbnRoKHRoaXMuc2VsZWN0ZWREYXRlKSwgZW5kOiBlbmRPZk1vbnRoKHRoaXMuc2VsZWN0ZWREYXRlKSB9O1xyXG4gICAgICAgIHZhciBmbnNXd2Vla3MgPSBlYWNoV2Vla09mSW50ZXJ2YWwobW9udGhJbnRlcnZhbCk7XHJcbiAgICAgICAgZm9yIChjb25zdCBmbnNXZWVrIG9mIGZuc1d3ZWVrcykge1xyXG4gICAgICAgICAgICBjb25zdCB3ZWVrID0geyB3ZWVrTnVtYmVyOiAwLCBkYXlzOiBbXSB9O1xyXG4gICAgICAgICAgICB3ZWVrLndlZWtOdW1iZXIgPSBnZXRJU09XZWVrKG5ldyBEYXRlKGZuc1dlZWspKTtcclxuICAgICAgICAgICAgY29uc3Qgd2Vla0ludGVydmFsID0geyBzdGFydDogbmV3IERhdGUoZm5zV2VlayksIGVuZDogYWRkRGF5cyhuZXcgRGF0ZShmbnNXZWVrKSwgNikgfTtcclxuICAgICAgICAgICAgd2Vlay5kYXlzID0gZWFjaERheU9mSW50ZXJ2YWwod2Vla0ludGVydmFsKS5tYXAoZGF5ID0+IHtcclxuICAgICAgICAgICAgICAgIGRheS5zZXRIb3VycyhnZXRIb3VycyhuZXcgRGF0ZSgpKSk7XHJcbiAgICAgICAgICAgICAgICBkYXkuc2V0TWludXRlcyhnZXRNaW51dGVzKG5ldyBEYXRlKCkpKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGRheSxcclxuICAgICAgICAgICAgICAgICAgICBpc0luUmFuZ2U6IGlzV2l0aGluSW50ZXJ2YWwoZGF5LCB0aGlzLnJhbmdlKSxcclxuICAgICAgICAgICAgICAgICAgICBpc1RvZGF5OiBpc1NhbWVEYXkoZGF5LCB0aGlzLmN1cnJlbnRkRGF0ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgaW5Nb250aDogbW9udGhJbnRlcnZhbC5zdGFydC5nZXRNb250aCgpID09PSBkYXkuZ2V0TW9udGgoKVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHdlZWtzLnB1c2god2Vlayk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2Vla3MgPSB3ZWVrcztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJXZWVrIHtcclxuICAgIHdlZWtzOiB7XHJcbiAgICAgICAgd2Vla051bWJlcjogbnVtYmVyO1xyXG4gICAgICAgIGRheXM6IFBpY2tlckRheVtdXHJcbiAgICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRGF5IHtcclxuICAgIHZhbHVlOiBEYXRlLFxyXG4gICAgaXNUb2RheTogYm9vbGVhblxyXG4gICAgaW5Nb250aDogYm9vbGVhblxyXG59IiwiPG5hdiBjbGFzcz1cImJnLXdoaXRlIHNoYWRvdyByb3VuZGVkXCIgc3R5bGU9XCJ3aWR0aDozNTBweFwiIChhZGJDbGlja091dHNpZGUpPVwib25IaWRlKCRldmVudClcIj5cclxuICAgIDxoZWFkZXIgY2xhc3M9XCJiZy1wcmltYXJ5IHAtMiByb3VuZGVkLXRvcCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlICByb3VuZGVkLXBpbGxcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uUHJldigpXCI+PHNwYW4gY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWxlZnRcIj48L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF5ZWFycyYmIW1vbnRoc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtd2hpdGUgcm91bmRlZC1waWxsXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblNob3dNb250aCgpXCI+e3tzZWxlY3RlZERhdGV8YWRiTG9jYWxlRGF0ZTonTU1NJ319PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLXBpbGxcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2hvd1llYXIoKVwiPnt7c2VsZWN0ZWREYXRlfGRhdGU6J3l5eXknfX08L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwieWVhcnNcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlIHJvdW5kZWQtcGlsbFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwieWVhcnM9bnVsbFwiPnt7eWVhcnNbMF0udGl0bGV9fSAtIHt7eWVhcnNbeWVhcnMubGVuZ3RoLTFdLnRpdGxlfX08L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwibW9udGhzXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLXBpbGxcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2hvd1llYXIoKVwiPnt7c2VsZWN0ZWREYXRlfGRhdGU6J3l5eXknfX08L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtd2hpdGUgcm91bmRlZC1waWxsXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk5leHQoKVwiPjxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodFwiPjwvc3Bhbj48L2J1dHRvbj5cclxuICAgIDwvaGVhZGVyPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtMCBib3JkZXIgY2FsZW5kYXJcIj5cclxuICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIHJvd1wiICpuZ0lmPVwieWVhcnNcIj5cclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwiY29sLTMgdGV4dC1jZW50ZXIgcHgtMiBweS0zXCIgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSByb3VuZGVkLXBpbGxcIiAoY2xpY2spPVwib25TZWxlY3RZZWFyKHllYXIudmFsdWUpXCIgW2NsYXNzLmFjdGl2ZV09XCJ5ZWFyLmhhc09ic2VydmF0aW9uXCIgW25nQ2xhc3NdPVwieydib3JkZXIgYm9yZGVyLXNlY29uZGFyeSc6eWVhci5pc1RoaXNZZWFyfVwiPnt7eWVhci50aXRsZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIHJvd1wiICpuZ0lmPVwibW9udGhzXCI+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNvbC00IHRleHQtY2VudGVyIHB4LTIgcHktM1wiICpuZ0Zvcj1cImxldCBtb250aCBvZiBtb250aHNcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSByb3VuZGVkLXBpbGxcIiAoY2xpY2spPVwib25TZWxlY3RNb250aChtb250aC52YWx1ZSlcIiBbY2xhc3MuYWN0aXZlXT1cIm1vbnRoLm9ic2VydmF0aW9uXCIgW25nQ2xhc3NdPVwieydib3JkZXIgYm9yZGVyLXNlY29uZGFyeSc6bW9udGguaXNUaGlzTW9udGh9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3snTU9OVEhTLicrKG1vbnRoLnZhbHVlKzEpfHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYXlzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBib3JkZXItYm90dG9tIHB5LTIgdGV4dC1tdXRlZFwiICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlzXCI+e3snV0VFS19EQVlTLicrd2Vla0RheXx0cmFuc2xhdGV9fTwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIHdlZWtzXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHJvdW5kZWQtY2lyY2xlIHAtMCBtLTJcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWsuZGF5c1wiIChjbGljayk9XCJvblNlbGVjdERhdGUoZGF5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJvcmRlcl09XCJkYXkuaXNUb2RheVwiIFtuZ0NsYXNzXT1cInsncGUtbm9uZSB0ZXh0LW11dGVkIG9wYWNpdHktNTAnOiFkYXkuaW5Nb250aHx8IWRheS5pc0luUmFuZ2V9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7ZGF5LnZhbHVlfGRhdGU6J2QnfX08L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmF2PiJdfQ==
148
+ args: [{ selector: 'adb-date-picker', template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>" }]
149
+ }], ctorParameters: function () { return [{ type: i1.AdbDatePickerService }, { type: i2.TranslateService }, { type: i0.ElementRef }]; } });
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJ0ZGF0YS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2FkYi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDelAsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBT3BDLE1BQU0sT0FBTyxzQkFBc0I7SUFhL0IsWUFDWSxvQkFBMEMsRUFDMUMsS0FBdUIsRUFDdkIsVUFBc0I7UUFGdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBZjFCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUkzQyxpQkFBWSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEMsaUJBQVksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBR2hDLGFBQVEsR0FBRyxzQkFBc0Is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bnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgYWRkRGF5cywgYWRkTW9udGhzLCBhZGRZZWFycywgZWFjaERheU9mSW50ZXJ2YWwsIGVhY2hXZWVrT2ZJbnRlcnZhbCwgZW5kT2ZEYXksIGVuZE9mTW9udGgsIGdldEhvdXJzLCBnZXRJU09XZWVrLCBnZXRNaW51dGVzLCBnZXRNb250aCwgaXNTYW1lRGF5LCBpc1NhbWVZZWFyLCBpc1dpdGhpbkludGVydmFsLCBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN1Yk1vbnRocywgc3ViWWVhcnMgfSBmcm9tIFwiZGF0ZS1mbnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQWRiRGF0ZVBpY2tlclNlcnZpY2UgfSBmcm9tIFwiLi9hZGItZGF0ZS1waWNrZXIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FkYi1kYXRlLXBpY2tlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWRiLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRiRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgIHN0YXRpYyBNT05USFMgPSBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXTtcclxuICAgIHN0YXRpYyBXRUVLX0RBWVMgPSBbJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnXTtcclxuICAgIHN0YXRpYyBZRUFSX0lOVEVSVkFMTCA9IDg7XHJcbiAgICBjdXJyZW50ZERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgc2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHllYXJzOiB7IHZhbHVlOiBEYXRlLCB0aXRsZTogc3RyaW5nLCBpc1RoaXNZZWFyOiBib29sZWFuIH1bXTtcclxuICAgIG1vbnRoczogeyB2YWx1ZTogbnVtYmVyLCBpc1RoaXNNb250aDogYm9vbGVhbiB9W107XHJcbiAgICB3ZWVrRGF5cyA9IEFkYkRhdGVQaWNrZXJDb21wb25lbnQuV0VFS19EQVlTO1xyXG4gICAgd2Vla3M6IFBpY2tlcldlZWtbXTtcclxuICAgIHJhbmdlOiB7IHN0YXJ0OiBhbnk7IGVuZDogYW55OyB9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgYWRiRGF0ZVBpY2tlclNlcnZpY2U6IEFkYkRhdGVQaWNrZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnM6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnRyYW5zLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnY2hhbmdlIGxhbmcgaGl0cyBpbiBsaWJyYXJ5Jyk7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnMudXNlKGV2ZW50LmxhbmcpO1xyXG4gICAgICAgIH0pKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2Uuc2V0dGluZ3MkLnN1YnNjcmliZShzZXR0aW5ncyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmFuZ2UgPSB7XHJcbiAgICAgICAgICAgICAgICBzdGFydDogc2V0dGluZ3M/Lm1pbkRhdGUgPyBzdGFydE9mRGF5KHNldHRpbmdzLm1pbkRhdGUpIDogbnVsbCxcclxuICAgICAgICAgICAgICAgIGVuZDogc2V0dGluZ3M/Lm1heERhdGUgPyBlbmRPZkRheShzZXR0aW5ncy5tYXhEYXRlKSA6IG51bGxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDYWxlbmRhcigpO1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBvblNob3dZZWFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubW9udGhzID0gbnVsbDtcclxuICAgICAgICB0aGlzLmxvYWRZZWFyc0ludGVydmFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TaG93TW9udGgoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy55ZWFycyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5sb2FkTW9udGhzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RZZWFyKGluWWVhcj86IERhdGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5zZXRGdWxsWWVhcihpblllYXIuZ2V0RnVsbFllYXIoKSk7XHJcbiAgICAgICAgdGhpcy5sb2FkTW9udGhzKCk7XHJcbiAgICAgICAgdGhpcy55ZWFycyA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3RNb250aChpbk1vbnRoPzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUuc2V0TW9udGgoaW5Nb250aCk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVDYWxlbmRhcigpO1xyXG4gICAgICAgIHRoaXMueWVhcnMgPSBudWxsO1xyXG4gICAgICAgIHRoaXMubW9udGhzID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBvblByZXYoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMueWVhcnMpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBzdWJZZWFycyh0aGlzLnNlbGVjdGVkRGF0ZSwgQWRiRGF0ZVBpY2tlckNvbXBvbmVudC5ZRUFSX0lOVEVSVkFMTCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZFllYXJzSW50ZXJ2YWwoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9udGhzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gc3ViWWVhcnModGhpcy5zZWxlY3RlZERhdGUsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRNb250aHMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHN1Yk1vbnRocyh0aGlzLnNlbGVjdGVkRGF0ZSwgMSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlQ2FsZW5kYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25OZXh0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnllYXJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gYWRkWWVhcnModGhpcy5zZWxlY3RlZERhdGUsIEFkYkRhdGVQaWNrZXJDb21wb25lbnQuWUVBUl9JTlRFUlZBTEwpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRZZWFyc0ludGVydmFsKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1vbnRocykge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGFkZFllYXJzKHRoaXMuc2VsZWN0ZWREYXRlLCAxKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkTW9udGhzKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBhZGRNb250aHModGhpcy5zZWxlY3RlZERhdGUsIDEpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUNhbGVuZGFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXHJcbiAgICAvLyBvbkhpZGUodGFyZ2V0OiBhbnkpIHtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygndGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQnLHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygndGFyZ2V0Jyx0YXJnZXQpXHJcbiAgICAvLyAgICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coJ3RhcmdldC5pZCcsdGFyZ2V0LmlkKTtcclxuICAgIC8vICAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcclxuICAgIC8vICAgICAgICAgaWYgKCF0YXJnZXQuaGFzQXR0cmlidXRlKCdhZGJkYXRlcGlja2VyJykpIHtcclxuICAgIC8vICAgICAgICAgICAgIHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgLy8gICAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9hZE1vbnRocygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1vbnRocyA9IEFkYkRhdGVQaWNrZXJDb21wb25lbnQuTU9OVEhTLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiB4LFxyXG4gICAgICAgICAgICAgICAgaXNUaGlzTW9udGg6IGdldE1vbnRoKHRoaXMuc2VsZWN0ZWREYXRlKSA9PT0geCAmJiBpc1NhbWVZZWFyKHRoaXMuY3VycmVudGREYXRlLCB0aGlzLnNlbGVjdGVkRGF0ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9hZFllYXJzSW50ZXJ2YWwoKSB7XHJcbiAgICAgICAgbGV0IHllYXIgPSBzdWJZZWFycyh0aGlzLnNlbGVjdGVkRGF0ZSwgQWRiRGF0ZVBpY2tlckNvbXBvbmVudC5ZRUFSX0lOVEVSVkFMTCk7XHJcbiAgICAgICAgY29uc3QgeWVhcnMgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyBpKyspIHtcclxuICAgICAgICAgICAgeWVhcnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogeWVhcixcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB5ZWFyLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgICAgICAgICBpc1RoaXNZZWFyOiBpc1NhbWVZZWFyKHllYXIsIHRoaXMuY3VycmVudGREYXRlKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgeWVhciA9IGFkZFllYXJzKHllYXIsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnllYXJzID0geWVhcnM7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3REYXRlKGRheTogUGlja2VyRGF5KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hZGJEYXRlUGlja2VyU2VydmljZS5zZWxlY3REYXRlKGRheS52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVDYWxlbmRhcigpIHtcclxuICAgICAgICBjb25zdCB3ZWVrcyA9IFtdO1xyXG4gICAgICAgIGNvbnN0IG1vbnRoSW50ZXJ2YWwgPSB7IHN0YXJ0OiBzdGFydE9mTW9udGgodGhpcy5zZWxlY3RlZERhdGUpLCBlbmQ6IGVuZE9mTW9udGgodGhpcy5zZWxlY3RlZERhdGUpIH07XHJcbiAgICAgICAgdmFyIGZuc1d3ZWVrcyA9IGVhY2hXZWVrT2ZJbnRlcnZhbChtb250aEludGVydmFsKTtcclxuICAgICAgICBmb3IgKGNvbnN0IGZuc1dlZWsgb2YgZm5zV3dlZWtzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHdlZWsgPSB7IHdlZWtOdW1iZXI6IDAsIGRheXM6IFtdIH07XHJcbiAgICAgICAgICAgIHdlZWsud2Vla051bWJlciA9IGdldElTT1dlZWsobmV3IERhdGUoZm5zV2VlaykpO1xyXG4gICAgICAgICAgICBjb25zdCB3ZWVrSW50ZXJ2YWwgPSB7IHN0YXJ0OiBuZXcgRGF0ZShmbnNXZWVrKSwgZW5kOiBhZGREYXlzKG5ldyBEYXRlKGZuc1dlZWspLCA2KSB9O1xyXG4gICAgICAgICAgICB3ZWVrLmRheXMgPSBlYWNoRGF5T2ZJbnRlcnZhbCh3ZWVrSW50ZXJ2YWwpLm1hcChkYXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGF5LnNldEhvdXJzKGdldEhvdXJzKG5ldyBEYXRlKCkpKTtcclxuICAgICAgICAgICAgICAgIGRheS5zZXRNaW51dGVzKGdldE1pbnV0ZXMobmV3IERhdGUoKSkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGF5LFxyXG4gICAgICAgICAgICAgICAgICAgIGlzSW5SYW5nZTogaXNXaXRoaW5JbnRlcnZhbChkYXksIHRoaXMucmFuZ2UpLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzVG9kYXk6IGlzU2FtZURheShkYXksIHRoaXMuY3VycmVudGREYXRlKSxcclxuICAgICAgICAgICAgICAgICAgICBpbk1vbnRoOiBtb250aEludGVydmFsLnN0YXJ0LmdldE1vbnRoKCkgPT09IGRheS5nZXRNb250aCgpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgd2Vla3MucHVzaCh3ZWVrKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWVrcyA9IHdlZWtzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tlcldlZWsge1xyXG4gICAgd2Vla3M6IHtcclxuICAgICAgICB3ZWVrTnVtYmVyOiBudW1iZXI7XHJcbiAgICAgICAgZGF5czogUGlja2VyRGF5W11cclxuICAgIH1bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQaWNrZXJEYXkge1xyXG4gICAgdmFsdWU6IERhdGUsXHJcbiAgICBpc1RvZGF5OiBib29sZWFuXHJcbiAgICBpbk1vbnRoOiBib29sZWFuXHJcbn0iLCI8bmF2IGNsYXNzPVwiYmctd2hpdGUgc2hhZG93IHJvdW5kZWRcIiBzdHlsZT1cIndpZHRoOjM1MHB4XCI+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwiYmctcHJpbWFyeSBwLTIgcm91bmRlZC10b3AgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZSAgcm91bmRlZC1waWxsXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblByZXYoKVwiPjxzcGFuIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0XCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIheWVhcnMmJiFtb250aHNcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlIHJvdW5kZWQtcGlsbFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25TaG93TW9udGgoKVwiPnt7c2VsZWN0ZWREYXRlfGFkYkxvY2FsZURhdGU6J01NTSd9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtd2hpdGUgcm91bmRlZC1waWxsXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblNob3dZZWFyKClcIj57e3NlbGVjdGVkRGF0ZXxkYXRlOid5eXl5J319PC9idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInllYXJzXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGV4dC13aGl0ZSByb3VuZGVkLXBpbGxcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInllYXJzPW51bGxcIj57e3llYXJzWzBdLnRpdGxlfX0gLSB7e3llYXJzW3llYXJzLmxlbmd0aC0xXS50aXRsZX19PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIm1vbnRoc1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHRleHQtd2hpdGUgcm91bmRlZC1waWxsXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblNob3dZZWFyKClcIj57e3NlbGVjdGVkRGF0ZXxkYXRlOid5eXl5J319PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0ZXh0LXdoaXRlIHJvdW5kZWQtcGlsbFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25OZXh0KClcIj48c3BhbiBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHRcIj48L3NwYW4+PC9idXR0b24+XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTAgYm9yZGVyIGNhbGVuZGFyXCI+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCByb3dcIiAqbmdJZj1cInllYXJzXCI+XHJcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImNvbC0zIHRleHQtY2VudGVyIHB4LTIgcHktM1wiICpuZ0Zvcj1cImxldCB5ZWFyIG9mIHllYXJzXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgcm91bmRlZC1waWxsXCIgKGNsaWNrKT1cIm9uU2VsZWN0WWVhcih5ZWFyLnZhbHVlKVwiIFtjbGFzcy5hY3RpdmVdPVwieWVhci5oYXNPYnNlcnZhdGlvblwiIFtuZ0NsYXNzXT1cInsnYm9yZGVyIGJvcmRlci1zZWNvbmRhcnknOnllYXIuaXNUaGlzWWVhcn1cIj57e3llYXIudGl0bGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCByb3dcIiAqbmdJZj1cIm1vbnRoc1wiPlxyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJjb2wtNCB0ZXh0LWNlbnRlciBweC0yIHB5LTNcIiAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tb3V0bGluZS1zZWNvbmRhcnkgcm91bmRlZC1waWxsXCIgKGNsaWNrKT1cIm9uU2VsZWN0TW9udGgobW9udGgudmFsdWUpXCIgW2NsYXNzLmFjdGl2ZV09XCJtb250aC5vYnNlcnZhdGlvblwiIFtuZ0NsYXNzXT1cInsnYm9yZGVyIGJvcmRlci1zZWNvbmRhcnknOm1vbnRoLmlzVGhpc01vbnRofVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J01PTlRIUy4nKyhtb250aC52YWx1ZSsxKXx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5c1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgYm9yZGVyLWJvdHRvbSBweS0yIHRleHQtbXV0ZWRcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5c1wiPnt7J1dFRUtfREFZUy4nK3dlZWtEYXl8dHJhbnNsYXRlfX08L2Rpdj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgd2VlayBvZiB3ZWVrc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biByb3VuZGVkLWNpcmNsZSBwLTAgbS0yXCIgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrLmRheXNcIiAoY2xpY2spPVwib25TZWxlY3REYXRlKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ib3JkZXJdPVwiZGF5LmlzVG9kYXlcIiBbbmdDbGFzc109XCJ7J3BlLW5vbmUgdGV4dC1tdXRlZCBvcGFjaXR5LTUwJzohZGF5LmluTW9udGh8fCFkYXkuaXNJblJhbmdlfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD57e2RheS52YWx1ZXxkYXRlOidkJ319PC9zbWFsbD5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25hdj4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { formatDate } from "@angular/common";
2
2
  import { Directive, forwardRef, HostListener, Input } from "@angular/core";
3
3
  import { NG_VALUE_ACCESSOR } from "@angular/forms";
4
- import { format, isValid, parseISO } from "date-fns";
4
+ import { isValid, parseISO } from "date-fns";
5
5
  import { Subscription } from "rxjs";
6
6
  import { AdbDatePickerComponent } from "./adb-date-picker.component";
7
7
  import * as i0 from "@angular/core";
@@ -59,7 +59,7 @@ export class AdbDatePickerDirective {
59
59
  if (value) {
60
60
  let initialDate = AdbDatePickerDirective.parseDate(value);
61
61
  if (initialDate) {
62
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', format(initialDate, this.format));
62
+ this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(initialDate, this.format, this.translate.currentLang));
63
63
  }
64
64
  }
65
65
  }
@@ -114,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
114
114
  type: HostListener,
115
115
  args: ['keyup.esc']
116
116
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFVckUsTUFBTSxPQUFPLHNCQUFzQjtJQU8vQixZQUNZLGdCQUFrQyxFQUNsQyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixvQkFBMEMsRUFDM0MsU0FBMkI7UUFKMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMzQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQVg5QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsV0FBTSxHQUFHLFlBQVksQ0FBQTtRQUM5QixtRUFBbUU7UUFDMUQsYUFBUSxHQUF1RCxJQUFJLENBQUM7UUFtRDdFLHNCQUFzQjtRQUN0QixhQUFRLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FB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QUFLLENBQUMsQ0FBQyxFQUFFO2dCQUMxQixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtpQkFBTTtnQkFDSCxPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7YUFBTSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7U0FDaEI7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDO1NBQ2Y7SUFDTCxDQUFDOztzSUE1RlEsc0JBQXNCOzBIQUF0QixzQkFBc0IsMktBTHBCLENBQUM7WUFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsRUFBQztZQUNqRixLQUFLLEVBQUUsSUFBSTtTQUNkLENBQUM7MkZBRU8sc0JBQXNCO2tCQVBsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRSxDQUFDOzRCQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSx1QkFBdUIsRUFBQzs0QkFDakYsS0FBSyxFQUFFLElBQUk7eUJBQ2QsQ0FBQztpQkFDTDswTkFHWSxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFrQ04sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBUXJCLE1BQU07c0JBREwsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBmb3JtYXQsIGlzVmFsaWQsIHBhcnNlSVNPIH0gZnJvbSBcImRhdGUtZm5zXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9hZGItZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLWRhdGUtcGlja2VyLnNlcnZpY2VcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IGBpbnB1dFthZGJEYXRlcGlja2VyXWAsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBASW5wdXQoKSBmb3JtYXQgPSAneXl5eS1NTS1kZCdcclxuICAgIC8vVE9ETzogY29udmVydCB0byBnZXR0ZXIgaWYgdGhpcyB3b3VsZCBiZWNvbWUgZHluYW1pYyBmcm9tIHNlcnZlciBcclxuICAgIEBJbnB1dCgpIHNldHRpbmdzOiB7IG1heERhdGU6IERhdGUgfCBzdHJpbmcsIG1pbkRhdGU6IERhdGUgfCBzdHJpbmcgfSA9IG51bGw7XHJcbiAgICB2aWV3UmVmOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhZGJEYXRlUGlja2VyU2VydmljZTogQWRiRGF0ZVBpY2tlclNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2UuZGF0ZSQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogZGF0ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBmb3JtYXREYXRlKGRhdGUsIHRoaXMuZm9ybWF0LCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLmhpZGUkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3M/Lm1heERhdGUgfHwgdGhpcy5zZXR0aW5ncz8ubWluRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnNldFNldHRpbmcoe1xyXG4gICAgICAgICAgICAgICAgbWluRGF0ZTogQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZS5wYXJzZURhdGUodGhpcy5zZXR0aW5ncy5taW5EYXRlKSxcclxuICAgICAgICAgICAgICAgIG1heERhdGU6IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUucGFyc2VEYXRlKHRoaXMuc2V0dGluZ3MubWF4RGF0ZSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICAgIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpZXdSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChBZGJEYXRlUGlja2VyQ29tcG9uZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAuZXNjJylcclxuICAgIG9uSGlkZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdSZWYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5kZXRhY2goKTtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xyXG4gICAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7IH07XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICBsZXQgaW5pdGlhbERhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnBhcnNlRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpbml0aWFsRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgZm9ybWF0KGluaXRpYWxEYXRlLCB0aGlzLmZvcm1hdCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKGlzVmFsaWQocGFyc2VJU08odmFsdWUpKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSVNPKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRiLWRhdGUtcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FydGRhdGEtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9hZGItZGF0ZS1waWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQVVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBTy9CLFlBQ1ksZ0JBQWtDLEVBQ2xDLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLG9CQUEwQyxFQUMzQyxTQUEyQjtRQUoxQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzNDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBWDlCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsWUFBWSxDQUFBO1FBQzlCLG1FQUFtRTtRQUMxRCxhQUFRLEdBQXVELElBQUksQ0FBQztRQW1EN0Usc0JBQXNCO1FBQ3RCLGFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFD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QUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQzFCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFCO2lCQUFNO2dCQUNILE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjthQUFNLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUM5QixPQUFPLEtBQUssQ0FBQztTQUNoQjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7O3NJQTVGUSxzQkFBc0I7MEhBQXRCLHNCQUFzQiwyS0FMcEIsQ0FBQztZQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixFQUFDO1lBQ2pGLEtBQUssRUFBRSxJQUFJO1NBQ2QsQ0FBQzsyRkFFTyxzQkFBc0I7a0JBUGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsU0FBUyxFQUFFLENBQUM7NEJBQ1IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHVCQUF1QixFQUFDOzRCQUNqRixLQUFLLEVBQUUsSUFBSTt5QkFDZCxDQUFDO2lCQUNMOzBOQUdZLE1BQU07c0JBQWQsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQWtDTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFRckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IGlzVmFsaWQsIHBhcnNlSVNPIH0gZnJvbSBcImRhdGUtZm5zXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9hZGItZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFkYkRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYWRiLWRhdGUtcGlja2VyLnNlcnZpY2VcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IGBpbnB1dFthZGJEYXRlcGlja2VyXWAsXHJcbiAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUpLFxyXG4gICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICBASW5wdXQoKSBmb3JtYXQgPSAneXl5eS1NTS1kZCdcclxuICAgIC8vVE9ETzogY29udmVydCB0byBnZXR0ZXIgaWYgdGhpcyB3b3VsZCBiZWNvbWUgZHluYW1pYyBmcm9tIHNlcnZlciBcclxuICAgIEBJbnB1dCgpIHNldHRpbmdzOiB7IG1heERhdGU6IERhdGUgfCBzdHJpbmcsIG1pbkRhdGU6IERhdGUgfCBzdHJpbmcgfSA9IG51bGw7XHJcbiAgICB2aWV3UmVmOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBhZGJEYXRlUGlja2VyU2VydmljZTogQWRiRGF0ZVBpY2tlclNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuYWRiRGF0ZVBpY2tlclNlcnZpY2UuZGF0ZSQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogZGF0ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBmb3JtYXREYXRlKGRhdGUsIHRoaXMuZm9ybWF0LCB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZykpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLmhpZGUkLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25IaWRlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3M/Lm1heERhdGUgfHwgdGhpcy5zZXR0aW5ncz8ubWluRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFkYkRhdGVQaWNrZXJTZXJ2aWNlLnNldFNldHRpbmcoe1xyXG4gICAgICAgICAgICAgICAgbWluRGF0ZTogQWRiRGF0ZVBpY2tlckRpcmVjdGl2ZS5wYXJzZURhdGUodGhpcy5zZXR0aW5ncy5taW5EYXRlKSxcclxuICAgICAgICAgICAgICAgIG1heERhdGU6IEFkYkRhdGVQaWNrZXJEaXJlY3RpdmUucGFyc2VEYXRlKHRoaXMuc2V0dGluZ3MubWF4RGF0ZSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICAgIG9uQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZpZXdSZWYpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChBZGJEYXRlUGlja2VyQ29tcG9uZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAuZXNjJylcclxuICAgIG9uSGlkZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdSZWYgPSBudWxsO1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5kZXRhY2goKTtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xyXG4gICAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7IH07XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICBsZXQgaW5pdGlhbERhdGUgPSBBZGJEYXRlUGlja2VyRGlyZWN0aXZlLnBhcnNlRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpbml0aWFsRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgZm9ybWF0RGF0ZShpbml0aWFsRGF0ZSwgdGhpcy5mb3JtYXQsIHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBwYXJzZURhdGUodmFsdWU6IERhdGUgfCBzdHJpbmcpOiBEYXRlIHtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBpZiAoaXNWYWxpZChwYXJzZUlTTyh2YWx1ZSkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJU08odmFsdWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -1,15 +1,15 @@
1
- import * as i3$1 from '@angular/common';
1
+ import * as i3 from '@angular/common';
2
2
  import { CommonModule, DatePipe, formatDate } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Injectable, Inject, EventEmitter, Component, Output, Input, Directive, HostListener, NgModule, HostBinding, Pipe, forwardRef } from '@angular/core';
5
- import * as i3 from '@ngx-translate/core';
5
+ import * as i2 from '@ngx-translate/core';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
7
  import { Subscription, Subject, BehaviorSubject } from 'rxjs';
8
8
  import * as i1 from '@angular/common/http';
9
9
  import { HttpClientModule } from '@angular/common/http';
10
10
  import * as i1$1 from '@angular/router';
11
11
  import { RouterModule } from '@angular/router';
12
- import { startOfDay, endOfDay, subYears, subMonths, addYears, addMonths, getMonth, isSameYear, startOfMonth, endOfMonth, eachWeekOfInterval, getISOWeek, addDays, eachDayOfInterval, getHours, getMinutes, isWithinInterval, isSameDay, format, isValid, parseISO } from 'date-fns';
12
+ import { startOfDay, endOfDay, subYears, subMonths, addYears, addMonths, getMonth, isSameYear, startOfMonth, endOfMonth, eachWeekOfInterval, getISOWeek, addDays, eachDayOfInterval, getHours, getMinutes, isWithinInterval, isSameDay, isValid, parseISO } from 'date-fns';
13
13
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
14
14
 
15
15
  class EnvironmentService {
@@ -108,12 +108,12 @@ class ADBHeaderComponent {
108
108
  this.subscription.unsubscribe();
109
109
  }
110
110
  }
111
- /** @nocollapse */ ADBHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderComponent, deps: [{ token: i1.HttpClient }, { token: EnvironmentService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
112
- /** @nocollapse */ ADBHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: ADBHeaderComponent, selector: "adb-header2", inputs: { userName: "userName" }, outputs: { loginClicked: "loginClicked", logoutClicked: "logoutClicked", dropMenuChange: "dropMenuChange" }, ngImport: i0, template: "<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">{{'ADB_HEADER.TITLE'|translate}}</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n", directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i3.TranslatePipe } });
111
+ /** @nocollapse */ ADBHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderComponent, deps: [{ token: i1.HttpClient }, { token: EnvironmentService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
112
+ /** @nocollapse */ ADBHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: ADBHeaderComponent, selector: "adb-header2", inputs: { userName: "userName" }, outputs: { loginClicked: "loginClicked", logoutClicked: "logoutClicked", dropMenuChange: "dropMenuChange" }, ngImport: i0, template: "<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">{{'ADB_HEADER.TITLE'|translate}}</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "translate": i2.TranslatePipe } });
113
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: ADBHeaderComponent, decorators: [{
114
114
  type: Component,
115
115
  args: [{ selector: 'adb-header2', template: "<header id=\"top-header\" (clickOutside)=\"showUserMenu=false;showMenuDropdown(false);\">\r\n <nav class=\"d-flex flex-wrap px-3\">\r\n <div class=\"flex-grow-1 d-flex align-items-center justify-content-between justify-content-md-start\">\r\n <div class=\"logo d-none d-md-block\">\r\n <img src=\"/assets/images/logo.svg\" style=\"height: 3.2rem;\">\r\n </div>\r\n <div class=\"logo ps-2 d-sm-block d-md-none d-flex align-items-center\">\r\n <img src=\"/assets/images/logo_sm_white.png\" style=\"height: 2rem;\">\r\n </div>\r\n <strong class=\"bigger\">{{'ADB_HEADER.TITLE'|translate}}</strong>\r\n </div>\r\n <div *ngIf=\"translationFinished\" class=\"flex-grow-1 d-flex justify-content-lg-between justify-content-end align-items-center\">\r\n <div *ngIf=\"navigation\" class=\"d-flex align-items-center\">\r\n <nav class=\"d-none align-items-center d-lg-flex pe-4 gap-4\" *ngIf=\"navigation\">\r\n <ng-container *ngFor=\"let link of navigation.links\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" *ngIf=\"link.topLink\" [ngClass]=\"{'d-none d-xl-block':link.transId==='ADB_HEADER.OBSERVATION'}\">\r\n {{link.transId|translate}}\r\n </a>\r\n </ng-container>\r\n </nav>\r\n <div>\r\n <button type=\"button\" class=\"btn btn-sm py-1 px-2 btn-primary\" (click)=\"showUserMenu = false;showMenuDropdown(!showMenu)\">\r\n {{'ADB_HEADER.MENY'|translate}}\r\n <i class=\"ms-1 fas\" [ngClass]=\"showMenu?'fa-chevron-up':'fa-chevron-down'\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"d-none d-md-block ps-4\">\r\n <button *ngIf=\"initials\" type=\"button\" class=\"btn initials\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\">{{initials}}</button>\r\n <button *ngIf=\"!initials\" type=\"button\" (click)=\"showUserMenu = !showUserMenu;showMenuDropdown(false)\" class=\"btn btn-link\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n </nav>\r\n <div class=\"menu\" *ngIf=\"showUserMenu\">\r\n <div class=\"menu-body bg-white p-3\" style=\"width:15rem\">\r\n <ng-container *ngIf=\"initials\">\r\n <div class=\"d-flex align-items-center gap-2 text-dark\">\r\n <span class=\"initials\">{{initials}}</span>\r\n <strong>{{fullName}}</strong>\r\n </div>\r\n <hr class=\"mx-n3 text-muted\">\r\n <button (click)=\"logout()\" type=\"button\" class=\"btn btn-link p-0\">\r\n <i class=\"fas fa-sign-out-alt me-1\"></i>{{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"!initials\">\r\n <div class=\"d-flex justify-content-center\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"login()\" id=\"start-login\">{{'ADB_HEADER.LOGIN'|translate}}</button>\r\n </div>\r\n <a *ngIf=\"navigation\" class=\"d-block mt-3\" href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"menu\" *ngIf=\"showMenu\">\r\n <div class=\"menu-body\" *ngIf=\"navigation\">\r\n <div class=\"px-3 pt-3 mb-1\">\r\n <div class=\"d-flex justify-content-between flex-wrap gap-2 mb-2\">\r\n <div>\r\n <div class=\"d-flex d-md-none align-items-center gap-2\" *ngIf=\"initials\">\r\n <span class=\"initials me-2\">{{initials}}</span>\r\n <button type=\"button\" (click)=\"logout()\" class=\"btn btn-primary\">\r\n {{'ADB_HEADER.LOGOUT'|translate}}\r\n </button>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-none\" *ngIf=\"!initials\">\r\n <button type=\"button\" (click)=\"login()\" class=\"btn btn-primary\" id=\"login\">\r\n {{'ADB_HEADER.LOGIN'|translate}}\r\n </button>\r\n <a href=\"{{navigation.createAccountLink}}?lang={{trans.currentLang}}&returnUrl={{url}}\"\r\n class=\"btn btn-primary text-white\">\r\n {{'ADB_HEADER.CREATE_USER'|translate}}\r\n </a>\r\n </div>\r\n </div>\r\n <div>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='en'\" (click)=\"setLanguage('sv')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_SWEDISH'|translate}}\r\n </button>\r\n <button type=\"button\" *ngIf=\"trans.currentLang==='sv'\" (click)=\"setLanguage('en')\"\r\n class=\"btn btn-primary\">\r\n {{'ADB_HEADER.IN_ENGLISH'|translate}}\r\n </button>\r\n </div>\r\n </div>\r\n {{'ADB_HEADER.SERVICES'|translate}}\r\n </div>\r\n <div id=\"splash\">\r\n <div class=\"px-3 d-flex flex-column\">\r\n <ul class=\"list-group ms-0 mb-0 ps-0\">\r\n <li class=\"mb-1 list-group-item p-0 rounded\" *ngFor=\"let link of navigation.links\"\r\n [attr.aria-expanded]=\"link.transId===expandedLink?true:false\" role=\"button\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <a href=\"{{link.url}}?lang={{trans.currentLang}}\" class=\"d-flex align-items-center flex-grow-1 p-2\">\r\n <small class=\"fa-stack me-1\" *ngIf=\"link.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"link.icon\"></span>\r\n </small>\r\n {{link.transId|translate}}\r\n </a>\r\n <button class=\"btn btn-expand me-2\" *ngIf=\"link.children?.length>0\" (click)=\"onExpandLink($event,link.transId)\">\r\n <i class=\"fas fa-chevron-up\" [ngClass]=\"link.transId===expandedLink?'d-block ':'d-none'\"></i>\r\n <i class=\"fas fa-chevron-down\" [ngClass]=\"link.transId!==expandedLink?'d-block ':'d-none'\"></i>\r\n </button>\r\n </div>\r\n <ul class=\"list-unstyled\" [ngClass]=\"link.transId===expandedLink?'d-block':'d-none'\">\r\n <li class=\"py-1 m-0\" [class.pt-0]=\"first\" *ngFor=\"let subLink of link.children;let first = first\" style=\"padding-left:3rem;\">\r\n <a class=\"w-100 d-block\" href=\"{{subLink.url}}?lang={{trans.currentLang}}\">\r\n {{subLink.transId|translate}}\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"navigation.about\" class=\"mt-2 mb-auto\">\r\n <div class=\"mb-1\">{{'ADB_HEADER.CONTACT'|translate}}</div>\r\n <div class=\"mb-1 row\">\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse fa-envelope\"></span>\r\n </small>\r\n <a class=\"bg-white p-2\" href=\"mailto:artfakta@artdatabanken.se\">artfakta@artdatabanken.se</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6 mb-2\">\r\n <div class=\"bg-white p-2 rounded\">\r\n <small class=\"fa-stack\" *ngIf=\"navigation.about.icon\">\r\n <span class=\"fas fa-circle fa-stack-2x text-primary\"></span>\r\n <span class=\"fas fa-stack-1x fa-inverse\" [ngClass]=\"navigation.about.icon\"></span>\r\n </small>\r\n <a [href]=\"navigation.about.url\">{{navigation.about.transId|translate}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div style=\"height:10rem\"></div>\r\n <div class=\"mb-3\">\r\n {{'ADB_HEADER.DEVELOPED_BY'|translate}}\r\n <a href=\"https://www.artdatabanken.se/\" class=\"text-white\"><u>{{'ADB_HEADER.ARTDATABANKEN'|translate}}</u></a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</header>\r\n" }]
116
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: EnvironmentService }, { type: i3.TranslateService }]; }, propDecorators: { loginClicked: [{
116
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: EnvironmentService }, { type: i2.TranslateService }]; }, propDecorators: { loginClicked: [{
117
117
  type: Output
118
118
  }], logoutClicked: [{
119
119
  type: Output
@@ -327,7 +327,7 @@ class PagerComponent extends PagerBaseDirective {
327
327
  }
328
328
  }
329
329
  /** @nocollapse */ PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PagerComponent, deps: [{ token: i1$1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
330
- /** @nocollapse */ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: PagerComponent, selector: "adb-pager-nav", usesInheritance: true, ngImport: i0, template: "<nav *ngIf=\"pages&&pages.length>1&&currentPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>", directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
330
+ /** @nocollapse */ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: PagerComponent, selector: "adb-pager-nav", usesInheritance: true, ngImport: i0, template: "<nav *ngIf=\"pages&&pages.length>1&&currentPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
331
331
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PagerComponent, decorators: [{
332
332
  type: Component,
333
333
  args: [{ selector: 'adb-pager-nav', template: "<nav *ngIf=\"pages&&pages.length>1&&currentPage<=amountOfPages\" class=\"d-flex justify-content-end pe-2 my-1\">\r\n <ul class=\"pagination mb-0\">\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: 0}\" queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage===1\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (currentPage-2)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" [class.active]=\"currentPage===page\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (page-1)*limit}\"\r\n queryParamsHandling=\"merge\">{{page}}</a>\r\n </li>\r\n <li class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: currentPage*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-right\"></i>\r\n </a>\r\n </li>\r\n <li *ngIf=\"(amountOfPages-1)*limit<10000\" class=\"page-item\" [class.disabled]=\"currentPage>=amountOfPages\">\r\n <a class=\"page-link\" [routerLink]=\"[]\" [queryParams]=\"{ offset: (amountOfPages-1)*limit}\"\r\n queryParamsHandling=\"merge\">\r\n <i class=\"fas fa-chevron-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n</nav>" }]
@@ -362,7 +362,7 @@ class LocaleDatePipe {
362
362
  return new DatePipe(this.translate.currentLang).transform(value, format, null, this.translate.currentLang);
363
363
  }
364
364
  }
365
- /** @nocollapse */ LocaleDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: LocaleDatePipe, deps: [{ token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
365
+ /** @nocollapse */ LocaleDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: LocaleDatePipe, deps: [{ token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
366
366
  /** @nocollapse */ LocaleDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: LocaleDatePipe, name: "adbLocaleDate", pure: false });
367
367
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: LocaleDatePipe, decorators: [{
368
368
  type: Pipe,
@@ -370,7 +370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
370
370
  name: 'adbLocaleDate',
371
371
  pure: false
372
372
  }]
373
- }], ctorParameters: function () { return [{ type: i3.TranslateService }]; } });
373
+ }], ctorParameters: function () { return [{ type: i2.TranslateService }]; } });
374
374
 
375
375
  class HighlightPipe {
376
376
  constructor() {
@@ -463,14 +463,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
463
463
  }] });
464
464
 
465
465
  class AdbDatePickerComponent {
466
- constructor(adbDatePickerService) {
466
+ constructor(adbDatePickerService, trans, elementRef) {
467
467
  this.adbDatePickerService = adbDatePickerService;
468
+ this.trans = trans;
469
+ this.elementRef = elementRef;
468
470
  this.subscriptions = new Subscription();
469
471
  this.currentdDate = new Date();
470
472
  this.selectedDate = new Date();
471
473
  this.weekDays = AdbDatePickerComponent.WEEK_DAYS;
472
474
  }
473
475
  ngOnInit() {
476
+ this.subscriptions.add(this.trans.onLangChange.subscribe(event => {
477
+ console.log('change lang hits in library');
478
+ this.trans.use(event.lang);
479
+ }));
474
480
  this.subscriptions.add(this.adbDatePickerService.settings$.subscribe(settings => {
475
481
  this.range = {
476
482
  start: (settings === null || settings === void 0 ? void 0 : settings.minDate) ? startOfDay(settings.minDate) : null,
@@ -526,11 +532,18 @@ class AdbDatePickerComponent {
526
532
  this.createCalendar();
527
533
  }
528
534
  }
529
- onHide(target) {
530
- if (!target.hasAttribute('adbdatepicker')) {
531
- this.adbDatePickerService.hide();
532
- }
533
- }
535
+ // @HostListener('document:click', ['$event.target'])
536
+ // onHide(target: any) {
537
+ // console.log('this.elementRef.nativeElement',this.elementRef.nativeElement);
538
+ // console.log('target',target)
539
+ // const clickedInside = this.elementRef.nativeElement.contains(target);
540
+ // console.log('target.id',target.id);
541
+ // if (!clickedInside) {
542
+ // if (!target.hasAttribute('adbdatepicker')) {
543
+ // this.adbDatePickerService.hide();
544
+ // }
545
+ // }
546
+ // }
534
547
  ngOnDestroy() {
535
548
  this.subscriptions.unsubscribe();
536
549
  }
@@ -584,12 +597,12 @@ class AdbDatePickerComponent {
584
597
  AdbDatePickerComponent.MONTHS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
585
598
  AdbDatePickerComponent.WEEK_DAYS = ['1', '2', '3', '4', '5', '6', '7'];
586
599
  AdbDatePickerComponent.YEAR_INTERVALL = 8;
587
- /** @nocollapse */ AdbDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerComponent, deps: [{ token: AdbDatePickerService }], target: i0.ɵɵFactoryTarget.Component });
588
- /** @nocollapse */ AdbDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerComponent, selector: "adb-date-picker", ngImport: i0, template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\" (adbClickOutside)=\"onHide($event)\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>", directives: [{ type: ClickOutsideDirective, selector: "[adbClickOutside]", outputs: ["adbClickOutside"] }, { type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "adbLocaleDate": LocaleDatePipe, "date": i3$1.DatePipe, "translate": i3.TranslatePipe } });
600
+ /** @nocollapse */ AdbDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerComponent, deps: [{ token: AdbDatePickerService }, { token: i2.TranslateService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
601
+ /** @nocollapse */ AdbDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerComponent, selector: "adb-date-picker", ngImport: i0, template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "adbLocaleDate": LocaleDatePipe, "date": i3.DatePipe, "translate": i2.TranslatePipe } });
589
602
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerComponent, decorators: [{
590
603
  type: Component,
591
- args: [{ selector: 'adb-date-picker', template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\" (adbClickOutside)=\"onHide($event)\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>" }]
592
- }], ctorParameters: function () { return [{ type: AdbDatePickerService }]; } });
604
+ args: [{ selector: 'adb-date-picker', template: "<nav class=\"bg-white shadow rounded\" style=\"width:350px\">\r\n <header class=\"bg-primary p-2 rounded-top d-flex justify-content-between align-items-center gap-1\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onPrev()\"><span class=\"fa fa-chevron-left\"></span></button>\r\n <ng-container *ngIf=\"!years&&!months\">\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowMonth()\">{{selectedDate|adbLocaleDate:'MMM'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n </ng-container>\r\n <button *ngIf=\"years\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"years=null\">{{years[0].title}} - {{years[years.length-1].title}}</button>\r\n <button *ngIf=\"months\" class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onShowYear()\">{{selectedDate|date:'yyyy'}}</button>\r\n <button class=\"btn btn-primary text-white rounded-pill\" type=\"button\" (click)=\"onNext()\"><span class=\"fa fa-chevron-right\"></span></button>\r\n </header>\r\n <div class=\"p-0 border calendar\">\r\n <ul class=\"list-unstyled row\" *ngIf=\"years\">\r\n <li class=\"col-3 text-center px-2 py-3\" *ngFor=\"let year of years\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectYear(year.value)\" [class.active]=\"year.hasObservation\" [ngClass]=\"{'border border-secondary':year.isThisYear}\">{{year.title}}</button>\r\n </li>\r\n </ul>\r\n <ul class=\"list-unstyled row\" *ngIf=\"months\">\r\n <li class=\"col-4 text-center px-2 py-3\" *ngFor=\"let month of months\">\r\n <button class=\"btn btn-sm btn-outline-secondary rounded-pill\" (click)=\"onSelectMonth(month.value)\" [class.active]=\"month.observation\" [ngClass]=\"{'border border-secondary':month.isThisMonth}\">\r\n {{'MONTHS.'+(month.value+1)|translate}}\r\n </button>\r\n </li>\r\n </ul>\r\n <div class=\"days\">\r\n <div class=\"text-center border-bottom py-2 text-muted\" *ngFor=\"let weekDay of weekDays\">{{'WEEK_DAYS.'+weekDay|translate}}</div>\r\n <ng-container *ngFor=\"let week of weeks\">\r\n <button class=\"btn rounded-circle p-0 m-2\" *ngFor=\"let day of week.days\" (click)=\"onSelectDate(day)\"\r\n [class.border]=\"day.isToday\" [ngClass]=\"{'pe-none text-muted opacity-50':!day.inMonth||!day.isInRange}\">\r\n <small>{{day.value|date:'d'}}</small>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</nav>" }]
605
+ }], ctorParameters: function () { return [{ type: AdbDatePickerService }, { type: i2.TranslateService }, { type: i0.ElementRef }]; } });
593
606
 
594
607
  class AdbDatePickerDirective {
595
608
  constructor(viewContainerRef, renderer, elementRef, adbDatePickerService, translate) {
@@ -644,7 +657,7 @@ class AdbDatePickerDirective {
644
657
  if (value) {
645
658
  let initialDate = AdbDatePickerDirective.parseDate(value);
646
659
  if (initialDate) {
647
- this.renderer.setProperty(this.elementRef.nativeElement, 'value', format(initialDate, this.format));
660
+ this.renderer.setProperty(this.elementRef.nativeElement, 'value', formatDate(initialDate, this.format, this.translate.currentLang));
648
661
  }
649
662
  }
650
663
  }
@@ -674,7 +687,7 @@ class AdbDatePickerDirective {
674
687
  }
675
688
  }
676
689
  }
677
- /** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: AdbDatePickerService }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
690
+ /** @nocollapse */ AdbDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AdbDatePickerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: AdbDatePickerService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
678
691
  /** @nocollapse */ AdbDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AdbDatePickerDirective, selector: "input[adbDatepicker]", inputs: { format: "format", settings: "settings" }, host: { listeners: { "click": "onClick()", "keyup.esc": "onHide()" } }, providers: [{
679
692
  provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((() => AdbDatePickerDirective)),
680
693
  multi: true
@@ -688,7 +701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
688
701
  multi: true
689
702
  }]
690
703
  }]
691
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: AdbDatePickerService }, { type: i3.TranslateService }]; }, propDecorators: { format: [{
704
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: AdbDatePickerService }, { type: i2.TranslateService }]; }, propDecorators: { format: [{
692
705
  type: Input
693
706
  }], settings: [{
694
707
  type: Input