UNPKG

@nodro7/angular-mydatepicker

Version:
80 lines 16.4 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 { constructor() { this.prevNavigateBtnClicked = new EventEmitter(); this.nextNavigateBtnClicked = new EventEmitter(); this.monthViewBtnClicked = new EventEmitter(); this.yearViewBtnClicked = new EventEmitter(); } 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 { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: SelectionBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", 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.0", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW15ZGF0ZXBpY2tlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0aW9uLWJhci9zZWxlY3Rpb24tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbXlkYXRlcGlja2VyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Rpb24tYmFyL3NlbGVjdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxpQkFBaUIsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFHbEgsT0FBTyxFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQTs7O0FBT2hKLE1BQU0sT0FBTyxxQkFBcUI7SUFjaEM7UUFMVSwyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RSwyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RSx3QkFBbUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuRSx1QkFBa0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUU1RCxDQUFDO0lBRWpCLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUMzRDtRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDekQ7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUNyRDtRQUNELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDbEU7UUFDRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ2xFO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQVU7UUFDakMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRixDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBVTtRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFGLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVO1FBQzlCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLEtBQVU7UUFDN0IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzhHQTFEVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrZUNWbEMscS9DQVlBOzsyRkRGYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUVkLGlCQUFpQixDQUFDLElBQUk7MEVBRzVCLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksc0JBQXNCO3NCQUEvQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgU2ltcGxlQ2hhbmdlc30gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SU15TW9udGh9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL215LW1vbnRoLmludGVyZmFjZVwiO1xuaW1wb3J0IHtJTXlPcHRpb25zfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9teS1vcHRpb25zLmludGVyZmFjZVwiO1xuaW1wb3J0IHtPUFRTLCBZRUFSU19EVVJBVElPTiwgVklTSUJMRV9NT05USCwgU0VMRUNUX01PTlRILCBTRUxFQ1RfWUVBUiwgUFJFVl9WSUVXX0RJU0FCTEVELCBORVhUX1ZJRVdfRElTQUJMRUR9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvY29uc3RhbnRzXCJcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImxpYi1zZWxlY3Rpb24tYmFyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2VsZWN0aW9uLWJhci5jb21wb25lbnQuaHRtbFwiLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG9wdHM6IElNeU9wdGlvbnM7XG4gIEBJbnB1dCgpIHllYXJzRHVyYXRpb246IHN0cmluZztcbiAgQElucHV0KCkgdmlzaWJsZU1vbnRoOiBJTXlNb250aDtcbiAgQElucHV0KCkgc2VsZWN0TW9udGg6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdFllYXI6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHByZXZWaWV3RGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG5leHRWaWV3RGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIHByZXZOYXZpZ2F0ZUJ0bkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG5leHROYXZpZ2F0ZUJ0bkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG1vbnRoVmlld0J0bkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHllYXJWaWV3QnRuQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KE9QVFMpKSB7XG4gICAgICB0aGlzLm9wdHMgPSBjaGFuZ2VzW09QVFNdLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoWUVBUlNfRFVSQVRJT04pKSB7XG4gICAgICB0aGlzLnllYXJzRHVyYXRpb24gPSBjaGFuZ2VzW1lFQVJTX0RVUkFUSU9OXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KFZJU0lCTEVfTU9OVEgpKSB7XG4gICAgICB0aGlzLnZpc2libGVNb250aCA9IGNoYW5nZXNbVklTSUJMRV9NT05USF0uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShTRUxFQ1RfTU9OVEgpKSB7XG4gICAgICB0aGlzLnNlbGVjdE1vbnRoID0gY2hhbmdlc1tTRUxFQ1RfTU9OVEhdLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoU0VMRUNUX1lFQVIpKSB7XG4gICAgICB0aGlzLnNlbGVjdFllYXIgPSBjaGFuZ2VzW1NFTEVDVF9ZRUFSXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KFBSRVZfVklFV19ESVNBQkxFRCkpIHtcbiAgICAgIHRoaXMucHJldlZpZXdEaXNhYmxlZCA9IGNoYW5nZXNbUFJFVl9WSUVXX0RJU0FCTEVEXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KE5FWFRfVklFV19ESVNBQkxFRCkpIHtcbiAgICAgIHRoaXMubmV4dFZpZXdEaXNhYmxlZCA9IGNoYW5nZXNbTkVYVF9WSUVXX0RJU0FCTEVEXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgb25QcmV2TmF2aWdhdGVCdG5DbGlja2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9wdHMucnRsID8gdGhpcy5uZXh0TmF2aWdhdGVCdG5DbGlja2VkLmVtaXQoKSA6IHRoaXMucHJldk5hdmlnYXRlQnRuQ2xpY2tlZC5lbWl0KCk7XG4gIH1cblxuICBvbk5leHROYXZpZ2F0ZUJ0bkNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3B0cy5ydGwgPyB0aGlzLnByZXZOYXZpZ2F0ZUJ0bkNsaWNrZWQuZW1pdCgpIDogdGhpcy5uZXh0TmF2aWdhdGVCdG5DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uTW9udGhWaWV3QnRuQ2xpY2tlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5tb250aFZpZXdCdG5DbGlja2VkLmVtaXQoKTtcbiAgfVxuXG4gIG9uWWVhclZpZXdCdG5DbGlja2VkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnllYXJWaWV3QnRuQ2xpY2tlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJteURwTW9udGhZZWFyU2VsQmFyXCI+XG4gIDxkaXYgY2xhc3M9XCJteURwUHJldkJ0blwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0cy5hcmlhTGFiZWxQcmV2TW9udGhcIiBjbGFzcz1cIm15RHBIZWFkZXJCdG4gbXlEcEljb24gbXlEcEljb25MZWZ0QXJyb3cgbXlEcEhlYWRlckJ0bkVuYWJsZWRcIiAoY2xpY2spPVwib25QcmV2TmF2aWdhdGVCdG5DbGlja2VkKCRldmVudClcIiB0YWJpbmRleD1cInt7IXByZXZWaWV3RGlzYWJsZWQgPyAnMCc6Jy0xJ319XCIgIFtkaXNhYmxlZF09XCJwcmV2Vmlld0Rpc2FibGVkXCIgW25nQ2xhc3NdPVwieydteURwSGVhZGVyQnRuRGlzYWJsZWQnOiBwcmV2Vmlld0Rpc2FibGVkfVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm15RHBNb250aFllYXJUZXh0XCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJteURwSGVhZGVyQnRuIG15RHBNb250aEJ0blwiICpuZ0lmPVwiIXNlbGVjdFllYXJcIiAoY2xpY2spPVwib3B0cy5tb250aFNlbGVjdG9yICYmIG9uTW9udGhWaWV3QnRuQ2xpY2tlZCgkZXZlbnQpXCIgdGFiaW5kZXg9XCJ7e29wdHMubW9udGhTZWxlY3RvciA/ICcwJzonLTEnfX1cIiBbbmdDbGFzc109XCJ7J215RHBNb250aExhYmVsJzogb3B0cy5tb250aFNlbGVjdG9yLCAnbXlEcEhlYWRlckxhYmVsQnRuTm90RWRpdCc6ICFvcHRzLm1vbnRoU2VsZWN0b3J9XCI+e3t2aXNpYmxlTW9udGgubW9udGhUeHR9fTwvYnV0dG9uPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibXlEcEhlYWRlckJ0biBteURwWWVhckJ0blwiIChjbGljayk9XCJvcHRzLnllYXJTZWxlY3RvciAmJiBvblllYXJWaWV3QnRuQ2xpY2tlZCgkZXZlbnQpXCIgdGFiaW5kZXg9XCJ7e29wdHMueWVhclNlbGVjdG9yID8gJzAnOictMSd9fVwiIFtuZ0NsYXNzXT1cInsnbXlEcFllYXJMYWJlbCc6IG9wdHMueWVhclNlbGVjdG9yLCAnbXlEcEhlYWRlckxhYmVsQnRuTm90RWRpdCc6ICFvcHRzLnllYXJTZWxlY3Rvcn1cIj57eyFzZWxlY3RZZWFyID8gdmlzaWJsZU1vbnRoLnllYXIgOiB5ZWFyc0R1cmF0aW9ufX08L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJteURwTmV4dEJ0blwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0cy5hcmlhTGFiZWxOZXh0TW9udGhcIiBjbGFzcz1cIm15RHBIZWFkZXJCdG4gbXlEcEljb24gbXlEcEljb25SaWdodEFycm93IG15RHBIZWFkZXJCdG5FbmFibGVkXCIgKGNsaWNrKT1cIm9uTmV4dE5hdmlnYXRlQnRuQ2xpY2tlZCgkZXZlbnQpXCIgdGFiaW5kZXg9XCJ7eyFuZXh0Vmlld0Rpc2FibGVkID8gJzAnOictMSd9fVwiIFtkaXNhYmxlZF09XCJuZXh0Vmlld0Rpc2FibGVkXCIgW25nQ2xhc3NdPVwieydteURwSGVhZGVyQnRuRGlzYWJsZWQnOiBuZXh0Vmlld0Rpc2FibGVkfVwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19