UNPKG

angular-mydatepicker-ivy

Version:
86 lines 16.6 kB
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core"; import { OPTS, YEARS_DURATION, VISIBLE_MONTH, SELECT_MONTH, SELECT_YEAR, PREV_VIEW_DISABLED, NEXT_VIEW_DISABLED } from "../../constants/constants"; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; export class SelectionBarComponent { opts; yearsDuration; visibleMonth; selectMonth; selectYear; prevViewDisabled; nextViewDisabled; prevNavigateBtnClicked = new EventEmitter(); nextNavigateBtnClicked = new EventEmitter(); monthViewBtnClicked = new EventEmitter(); yearViewBtnClicked = new EventEmitter(); constructor() { } ngOnChanges(changes) { if (changes.hasOwnProperty(OPTS)) { this.opts = changes[OPTS].currentValue; } if (changes.hasOwnProperty(YEARS_DURATION)) { this.yearsDuration = changes[YEARS_DURATION].currentValue; } if (changes.hasOwnProperty(VISIBLE_MONTH)) { this.visibleMonth = changes[VISIBLE_MONTH].currentValue; } if (changes.hasOwnProperty(SELECT_MONTH)) { this.selectMonth = changes[SELECT_MONTH].currentValue; } if (changes.hasOwnProperty(SELECT_YEAR)) { this.selectYear = changes[SELECT_YEAR].currentValue; } if (changes.hasOwnProperty(PREV_VIEW_DISABLED)) { this.prevViewDisabled = changes[PREV_VIEW_DISABLED].currentValue; } if (changes.hasOwnProperty(NEXT_VIEW_DISABLED)) { this.nextViewDisabled = changes[NEXT_VIEW_DISABLED].currentValue; } } onPrevNavigateBtnClicked(event) { event.stopPropagation(); this.opts.rtl ? this.nextNavigateBtnClicked.emit() : this.prevNavigateBtnClicked.emit(); } onNextNavigateBtnClicked(event) { event.stopPropagation(); this.opts.rtl ? this.prevNavigateBtnClicked.emit() : this.nextNavigateBtnClicked.emit(); } onMonthViewBtnClicked(event) { event.stopPropagation(); this.monthViewBtnClicked.emit(); } onYearViewBtnClicked(event) { event.stopPropagation(); this.yearViewBtnClicked.emit(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: SelectionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.6", type: SelectionBarComponent, selector: "lib-selection-bar", inputs: { opts: "opts", yearsDuration: "yearsDuration", visibleMonth: "visibleMonth", selectMonth: "selectMonth", selectYear: "selectYear", prevViewDisabled: "prevViewDisabled", nextViewDisabled: "nextViewDisabled" }, outputs: { prevNavigateBtnClicked: "prevNavigateBtnClicked", nextNavigateBtnClicked: "nextNavigateBtnClicked", monthViewBtnClicked: "monthViewBtnClicked", yearViewBtnClicked: "yearViewBtnClicked" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"myDpMonthYearSelBar\">\n <div class=\"myDpPrevBtn\">\n <button type=\"button\" [attr.aria-label]=\"opts.ariaLabelPrevMonth\" class=\"myDpHeaderBtn myDpIcon myDpIconLeftArrow myDpHeaderBtnEnabled\" (click)=\"onPrevNavigateBtnClicked($event)\" tabindex=\"{{!prevViewDisabled ? '0':'-1'}}\" [disabled]=\"prevViewDisabled\" [ngClass]=\"{'myDpHeaderBtnDisabled': prevViewDisabled}\"></button>\n </div>\n <div class=\"myDpMonthYearText\">\n <button type=\"button\" class=\"myDpHeaderBtn myDpMonthBtn\" *ngIf=\"!selectYear\" (click)=\"opts.monthSelector && onMonthViewBtnClicked($event)\" tabindex=\"{{opts.monthSelector ? '0':'-1'}}\" [ngClass]=\"{'myDpMonthLabel': opts.monthSelector, 'myDpHeaderLabelBtnNotEdit': !opts.monthSelector}\">{{visibleMonth.monthTxt}}</button>\n <button type=\"button\" class=\"myDpHeaderBtn myDpYearBtn\" (click)=\"opts.yearSelector && onYearViewBtnClicked($event)\" tabindex=\"{{opts.yearSelector ? '0':'-1'}}\" [ngClass]=\"{'myDpYearLabel': opts.yearSelector, 'myDpHeaderLabelBtnNotEdit': !opts.yearSelector}\">{{!selectYear ? visibleMonth.year : yearsDuration}}</button>\n </div>\n <div class=\"myDpNextBtn\">\n <button type=\"button\" [attr.aria-label]=\"opts.ariaLabelNextMonth\" class=\"myDpHeaderBtn myDpIcon myDpIconRightArrow myDpHeaderBtnEnabled\" (click)=\"onNextNavigateBtnClicked($event)\" tabindex=\"{{!nextViewDisabled ? '0':'-1'}}\" [disabled]=\"nextViewDisabled\" [ngClass]=\"{'myDpHeaderBtnDisabled': nextViewDisabled}\"></button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImport: i0, type: SelectionBarComponent, decorators: [{ type: Component, args: [{ selector: "lib-selection-bar", encapsulation: ViewEncapsulation.None, template: "<div class=\"myDpMonthYearSelBar\">\n <div class=\"myDpPrevBtn\">\n <button type=\"button\" [attr.aria-label]=\"opts.ariaLabelPrevMonth\" class=\"myDpHeaderBtn myDpIcon myDpIconLeftArrow myDpHeaderBtnEnabled\" (click)=\"onPrevNavigateBtnClicked($event)\" tabindex=\"{{!prevViewDisabled ? '0':'-1'}}\" [disabled]=\"prevViewDisabled\" [ngClass]=\"{'myDpHeaderBtnDisabled': prevViewDisabled}\"></button>\n </div>\n <div class=\"myDpMonthYearText\">\n <button type=\"button\" class=\"myDpHeaderBtn myDpMonthBtn\" *ngIf=\"!selectYear\" (click)=\"opts.monthSelector && onMonthViewBtnClicked($event)\" tabindex=\"{{opts.monthSelector ? '0':'-1'}}\" [ngClass]=\"{'myDpMonthLabel': opts.monthSelector, 'myDpHeaderLabelBtnNotEdit': !opts.monthSelector}\">{{visibleMonth.monthTxt}}</button>\n <button type=\"button\" class=\"myDpHeaderBtn myDpYearBtn\" (click)=\"opts.yearSelector && onYearViewBtnClicked($event)\" tabindex=\"{{opts.yearSelector ? '0':'-1'}}\" [ngClass]=\"{'myDpYearLabel': opts.yearSelector, 'myDpHeaderLabelBtnNotEdit': !opts.yearSelector}\">{{!selectYear ? visibleMonth.year : yearsDuration}}</button>\n </div>\n <div class=\"myDpNextBtn\">\n <button type=\"button\" [attr.aria-label]=\"opts.ariaLabelNextMonth\" class=\"myDpHeaderBtn myDpIcon myDpIconRightArrow myDpHeaderBtnEnabled\" (click)=\"onNextNavigateBtnClicked($event)\" tabindex=\"{{!nextViewDisabled ? '0':'-1'}}\" [disabled]=\"nextViewDisabled\" [ngClass]=\"{'myDpHeaderBtnDisabled': nextViewDisabled}\"></button>\n </div>\n</div>\n" }] }], ctorParameters: function () { return []; }, propDecorators: { opts: [{ type: Input }], yearsDuration: [{ type: Input }], visibleMonth: [{ type: Input }], selectMonth: [{ type: Input }], selectYear: [{ type: Input }], prevViewDisabled: [{ type: Input }], nextViewDisabled: [{ type: Input }], prevNavigateBtnClicked: [{ type: Output }], nextNavigateBtnClicked: [{ type: Output }], monthViewBtnClicked: [{ type: Output }], yearViewBtnClicked: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW15ZGF0ZXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0aW9uLWJhci9zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbXlkYXRlcGlja2VyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Rpb24tYmFyL3NlbGVjdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxpQkFBaUIsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFHbEgsT0FBTyxFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBT2pKLE1BQU0sT0FBTyxxQkFBcUI7SUFDdkIsSUFBSSxDQUFhO0lBQ2pCLGFBQWEsQ0FBUztJQUN0QixZQUFZLENBQVc7SUFDdkIsV0FBVyxDQUFVO0lBQ3JCLFVBQVUsQ0FBVTtJQUNwQixnQkFBZ0IsQ0FBVTtJQUMxQixnQkFBZ0IsQ0FBVTtJQUV6QixzQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUN0RSxzQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUN0RSxtQkFBbUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUNuRSxrQkFBa0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUU1RSxnQkFBZ0IsQ0FBQztJQUVqQixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUN4QztRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDM0Q7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUN2RDtRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDckQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ2xFO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxLQUFVO1FBQ2pDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUYsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQVU7UUFDakMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVTtRQUM5QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFVO1FBQzdCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzt1R0ExRFUscUJBQXFCOzJGQUFyQixxQkFBcUIsK2VDVmxDLHEvQ0FZQTs7MkZERmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQixpQkFFZCxpQkFBaUIsQ0FBQyxJQUFJOzBFQUc1QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIFNpbXBsZUNoYW5nZXN9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0lNeU1vbnRofSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9teS1tb250aC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7SU15T3B0aW9uc30gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvbXktb3B0aW9ucy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7T1BUUywgWUVBUlNfRFVSQVRJT04sIFZJU0lCTEVfTU9OVEgsIFNFTEVDVF9NT05USCwgU0VMRUNUX1lFQVIsIFBSRVZfVklFV19ESVNBQkxFRCwgTkVYVF9WSUVXX0RJU0FCTEVEfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibGliLXNlbGVjdGlvbi1iYXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC5odG1sXCIsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgb3B0czogSU15T3B0aW9ucztcbiAgQElucHV0KCkgeWVhcnNEdXJhdGlvbjogc3RyaW5nO1xuICBASW5wdXQoKSB2aXNpYmxlTW9udGg6IElNeU1vbnRoO1xuICBASW5wdXQoKSBzZWxlY3RNb250aDogYm9vbGVhbjtcbiAgQElucHV0KCkgc2VsZWN0WWVhcjogYm9vbGVhbjtcbiAgQElucHV0KCkgcHJldlZpZXdEaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbmV4dFZpZXdEaXNhYmxlZDogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgcHJldk5hdmlnYXRlQnRuQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbmV4dE5hdmlnYXRlQnRuQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbW9udGhWaWV3QnRuQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgeWVhclZpZXdCdG5DbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoT1BUUykpIHtcbiAgICAgIHRoaXMub3B0cyA9IGNoYW5nZXNbT1BUU10uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShZRUFSU19EVVJBVElPTikpIHtcbiAgICAgIHRoaXMueWVhcnNEdXJhdGlvbiA9IGNoYW5nZXNbWUVBUlNfRFVSQVRJT05dLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoVklTSUJMRV9NT05USCkpIHtcbiAgICAgIHRoaXMudmlzaWJsZU1vbnRoID0gY2hhbmdlc1tWSVNJQkxFX01PTlRIXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KFNFTEVDVF9NT05USCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0TW9udGggPSBjaGFuZ2VzW1NFTEVDVF9NT05USF0uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShTRUxFQ1RfWUVBUikpIHtcbiAgICAgIHRoaXMuc2VsZWN0WWVhciA9IGNoYW5nZXNbU0VMRUNUX1lFQVJdLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoUFJFVl9WSUVXX0RJU0FCTEVEKSkge1xuICAgICAgdGhpcy5wcmV2Vmlld0Rpc2FibGVkID0gY2hhbmdlc1tQUkVWX1ZJRVdfRElTQUJMRURdLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoTkVYVF9WSUVXX0RJU0FCTEVEKSkge1xuICAgICAgdGhpcy5uZXh0Vmlld0Rpc2FibGVkID0gY2hhbmdlc1tORVhUX1ZJRVdfRElTQUJMRURdLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBvblByZXZOYXZpZ2F0ZUJ0bkNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3B0cy5ydGwgPyB0aGlzLm5leHROYXZpZ2F0ZUJ0bkNsaWNrZWQuZW1pdCgpIDogdGhpcy5wcmV2TmF2aWdhdGVCdG5DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uTmV4dE5hdmlnYXRlQnRuQ2xpY2tlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vcHRzLnJ0bCA/IHRoaXMucHJldk5hdmlnYXRlQnRuQ2xpY2tlZC5lbWl0KCkgOiB0aGlzLm5leHROYXZpZ2F0ZUJ0bkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25Nb250aFZpZXdCdG5DbGlja2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm1vbnRoVmlld0J0bkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgb25ZZWFyVmlld0J0bkNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMueWVhclZpZXdCdG5DbGlja2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm15RHBNb250aFllYXJTZWxCYXJcIj5cbiAgPGRpdiBjbGFzcz1cIm15RHBQcmV2QnRuXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRzLmFyaWFMYWJlbFByZXZNb250aFwiIGNsYXNzPVwibXlEcEhlYWRlckJ0biBteURwSWNvbiBteURwSWNvbkxlZnRBcnJvdyBteURwSGVhZGVyQnRuRW5hYmxlZFwiIChjbGljayk9XCJvblByZXZOYXZpZ2F0ZUJ0bkNsaWNrZWQoJGV2ZW50KVwiIHRhYmluZGV4PVwie3shcHJldlZpZXdEaXNhYmxlZCA/ICcwJzonLTEnfX1cIiAgW2Rpc2FibGVkXT1cInByZXZWaWV3RGlzYWJsZWRcIiBbbmdDbGFzc109XCJ7J215RHBIZWFkZXJCdG5EaXNhYmxlZCc6IHByZXZWaWV3RGlzYWJsZWR9XCI+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibXlEcE1vbnRoWWVhclRleHRcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm15RHBIZWFkZXJCdG4gbXlEcE1vbnRoQnRuXCIgKm5nSWY9XCIhc2VsZWN0WWVhclwiIChjbGljayk9XCJvcHRzLm1vbnRoU2VsZWN0b3IgJiYgb25Nb250aFZpZXdCdG5DbGlja2VkKCRldmVudClcIiB0YWJpbmRleD1cInt7b3B0cy5tb250aFNlbGVjdG9yID8gJzAnOictMSd9fVwiIFtuZ0NsYXNzXT1cInsnbXlEcE1vbnRoTGFiZWwnOiBvcHRzLm1vbnRoU2VsZWN0b3IsICdteURwSGVhZGVyTGFiZWxCdG5Ob3RFZGl0JzogIW9wdHMubW9udGhTZWxlY3Rvcn1cIj57e3Zpc2libGVNb250aC5tb250aFR4dH19PC9idXR0b24+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJteURwSGVhZGVyQnRuIG15RHBZZWFyQnRuXCIgKGNsaWNrKT1cIm9wdHMueWVhclNlbGVjdG9yICYmIG9uWWVhclZpZXdCdG5DbGlja2VkKCRldmVudClcIiB0YWJpbmRleD1cInt7b3B0cy55ZWFyU2VsZWN0b3IgPyAnMCc6Jy0xJ319XCIgW25nQ2xhc3NdPVwieydteURwWWVhckxhYmVsJzogb3B0cy55ZWFyU2VsZWN0b3IsICdteURwSGVhZGVyTGFiZWxCdG5Ob3RFZGl0JzogIW9wdHMueWVhclNlbGVjdG9yfVwiPnt7IXNlbGVjdFllYXIgPyB2aXNpYmxlTW9udGgueWVhciA6IHllYXJzRHVyYXRpb259fTwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm15RHBOZXh0QnRuXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJvcHRzLmFyaWFMYWJlbE5leHRNb250aFwiIGNsYXNzPVwibXlEcEhlYWRlckJ0biBteURwSWNvbiBteURwSWNvblJpZ2h0QXJyb3cgbXlEcEhlYWRlckJ0bkVuYWJsZWRcIiAoY2xpY2spPVwib25OZXh0TmF2aWdhdGVCdG5DbGlja2VkKCRldmVudClcIiB0YWJpbmRleD1cInt7IW5leHRWaWV3RGlzYWJsZWQgPyAnMCc6Jy0xJ319XCIgW2Rpc2FibGVkXT1cIm5leHRWaWV3RGlzYWJsZWRcIiBbbmdDbGFzc109XCJ7J215RHBIZWFkZXJCdG5EaXNhYmxlZCc6IG5leHRWaWV3RGlzYWJsZWR9XCI+PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=