ngx-jalali-date-picker
Version:
This is a configurable date-picker build for Angular applications. Supports latest (Angular 18) version. This date-picker is based on ng2-date-piker and ngx-jalali-date-picker date pickers.
84 lines • 22.6 kB
JavaScript
import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class CalendarNavComponent {
constructor() {
this.isLabelClickable = false;
this.showLeftNav = true;
this.showLeftSecondaryNav = false;
this.showRightNav = true;
this.showRightSecondaryNav = false;
this.leftNavDisabled = false;
this.leftSecondaryNavDisabled = false;
this.rightNavDisabled = false;
this.rightSecondaryNavDisabled = false;
this.showGoToCurrent = true;
this.onLeftNav = new EventEmitter();
this.onLeftSecondaryNav = new EventEmitter();
this.onRightNav = new EventEmitter();
this.onRightSecondaryNav = new EventEmitter();
this.onLabelClick = new EventEmitter();
this.onGoToCurrent = new EventEmitter();
}
leftNavClicked() {
this.onLeftNav.emit();
}
leftSecondaryNavClicked() {
this.onLeftSecondaryNav.emit();
}
rightNavClicked() {
this.onRightNav.emit();
}
rightSecondaryNavClicked() {
this.onRightSecondaryNav.emit();
}
labelClicked() {
this.onLabelClick.emit();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalendarNavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CalendarNavComponent, selector: "dp-calendar-nav", inputs: { label: "label", isLabelClickable: "isLabelClickable", showLeftNav: "showLeftNav", showLeftSecondaryNav: "showLeftSecondaryNav", showRightNav: "showRightNav", showRightSecondaryNav: "showRightSecondaryNav", leftNavDisabled: "leftNavDisabled", leftSecondaryNavDisabled: "leftSecondaryNavDisabled", rightNavDisabled: "rightNavDisabled", rightSecondaryNavDisabled: "rightSecondaryNavDisabled", showGoToCurrent: "showGoToCurrent", theme: "theme" }, outputs: { onLeftNav: "onLeftNav", onLeftSecondaryNav: "onLeftSecondaryNav", onRightNav: "onRightNav", onRightSecondaryNav: "onRightSecondaryNav", onLabelClick: "onLabelClick", onGoToCurrent: "onGoToCurrent" }, host: { properties: { "class": "this.theme" } }, ngImport: i0, template: "<div class=\"dp-calendar-nav-container\">\n <div class=\"dp-nav-header\">\n <span [attr.data-hidden]=\"isLabelClickable\"\n [hidden]=\"isLabelClickable\"\n [innerText]=\"label\">\n </span>\n <button (click)=\"labelClicked()\"\n [attr.data-hidden]=\"!isLabelClickable\"\n [hidden]=\"!isLabelClickable\"\n [innerText]=\"label\"\n class=\"dp-nav-header-btn\"\n type=\"button\">\n </button>\n </div>\n\n <div class=\"dp-nav-btns-container\">\n <div class=\"dp-calendar-nav-container-left\">\n <button (click)=\"leftSecondaryNavClicked()\"\n *ngIf=\"showLeftSecondaryNav\"\n [disabled]=\"leftSecondaryNavDisabled\"\n class=\"dp-calendar-secondary-nav-left\"\n type=\"button\">\n </button>\n <button (click)=\"leftNavClicked()\"\n [attr.data-hidden]=\"!showLeftNav\"\n [disabled]=\"leftNavDisabled\"\n [hidden]=\"!showLeftNav\"\n class=\"dp-calendar-nav-left\"\n type=\"button\">\n </button>\n </div>\n <button (click)=\"onGoToCurrent.emit()\"\n *ngIf=\"showGoToCurrent\"\n class=\"dp-current-location-btn\"\n type=\"button\">\n </button>\n <div class=\"dp-calendar-nav-container-right\">\n <button (click)=\"rightNavClicked()\"\n [attr.data-hidden]=\"!showRightNav\"\n [disabled]=\"rightNavDisabled\"\n [hidden]=\"!showRightNav\"\n class=\"dp-calendar-nav-right\"\n type=\"button\">\n </button>\n <button (click)=\"rightSecondaryNavClicked()\"\n *ngIf=\"showRightSecondaryNav\"\n [disabled]=\"rightSecondaryNavDisabled\"\n class=\"dp-calendar-secondary-nav-right\"\n type=\"button\">\n </button>\n </div>\n </div>\n</div>\n", styles: ["dp-calendar-nav .dp-calendar-nav-container{position:relative;box-sizing:border-box;height:25px;border:1px solid #000000;border-bottom:none}dp-calendar-nav .dp-nav-date-btn{box-sizing:border-box;height:25px;border:1px solid #000000;border-bottom:none}dp-calendar-nav .dp-nav-btns-container{position:absolute;top:50%;transform:translateY(-50%);right:5px;display:inline-block}dp-calendar-nav .dp-calendar-nav-container-left,dp-calendar-nav .dp-calendar-nav-container-right{display:inline-block}dp-calendar-nav .dp-calendar-nav-left,dp-calendar-nav .dp-calendar-nav-right,dp-calendar-nav .dp-calendar-secondary-nav-left,dp-calendar-nav .dp-calendar-secondary-nav-right{position:relative;width:16px;cursor:pointer}dp-calendar-nav .dp-calendar-nav-left,dp-calendar-nav .dp-calendar-nav-right{line-height:0}dp-calendar-nav .dp-calendar-nav-left:before,dp-calendar-nav .dp-calendar-nav-right:before{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(45deg)}dp-calendar-nav .dp-calendar-secondary-nav-left,dp-calendar-nav .dp-calendar-secondary-nav-right{padding:0}dp-calendar-nav .dp-calendar-secondary-nav-left:before,dp-calendar-nav .dp-calendar-secondary-nav-right:before,dp-calendar-nav .dp-calendar-secondary-nav-left:after,dp-calendar-nav .dp-calendar-secondary-nav-right:after{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(45deg)}dp-calendar-nav .dp-calendar-secondary-nav-left:before,dp-calendar-nav .dp-calendar-secondary-nav-right:before{right:-10px}dp-calendar-nav .dp-calendar-secondary-nav-right{left:initial;right:5px}dp-calendar-nav .dp-calendar-nav-left:before{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(-135deg)}dp-calendar-nav .dp-calendar-secondary-nav-left:before,dp-calendar-nav .dp-calendar-secondary-nav-left:after{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(-135deg)}dp-calendar-nav .dp-calendar-secondary-nav-left:before{right:-10px}dp-calendar-nav .dp-nav-header{position:absolute;top:50%;transform:translateY(-50%);left:5px;display:inline-block;font-size:13px}dp-calendar-nav .dp-nav-header-btn{cursor:pointer}dp-calendar-nav .dp-current-location-btn{position:relative;top:-1px;height:16px;width:16px;vertical-align:middle;background:#0009;border:1px solid rgba(0,0,0,.6);outline:none;border-radius:50%;box-shadow:inset 0 0 0 3px #fff;cursor:pointer}dp-calendar-nav .dp-current-location-btn:hover{background:#000}dp-calendar-nav.dp-material .dp-calendar-nav-container{height:30px;border:1px solid #E0E0E0}dp-calendar-nav.dp-material .dp-calendar-nav-left,dp-calendar-nav.dp-material .dp-calendar-nav-right,dp-calendar-nav.dp-material .dp-calendar-secondary-nav-left,dp-calendar-nav.dp-material .dp-calendar-secondary-nav-right{border:none;background:#fff;outline:none;font-size:16px;padding:0}dp-calendar-nav.dp-material .dp-calendar-secondary-nav-left,dp-calendar-nav.dp-material .dp-calendar-secondary-nav-right{width:20px}dp-calendar-nav.dp-material .dp-nav-header-btn{height:20px;width:80px;border:none;background:#fff;outline:none}dp-calendar-nav.dp-material .dp-nav-header-btn:hover{background:#0000000d}dp-calendar-nav.dp-material .dp-nav-header-btn:active{background:#0000001a}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalendarNavComponent, decorators: [{
type: Component,
args: [{ selector: 'dp-calendar-nav', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dp-calendar-nav-container\">\n <div class=\"dp-nav-header\">\n <span [attr.data-hidden]=\"isLabelClickable\"\n [hidden]=\"isLabelClickable\"\n [innerText]=\"label\">\n </span>\n <button (click)=\"labelClicked()\"\n [attr.data-hidden]=\"!isLabelClickable\"\n [hidden]=\"!isLabelClickable\"\n [innerText]=\"label\"\n class=\"dp-nav-header-btn\"\n type=\"button\">\n </button>\n </div>\n\n <div class=\"dp-nav-btns-container\">\n <div class=\"dp-calendar-nav-container-left\">\n <button (click)=\"leftSecondaryNavClicked()\"\n *ngIf=\"showLeftSecondaryNav\"\n [disabled]=\"leftSecondaryNavDisabled\"\n class=\"dp-calendar-secondary-nav-left\"\n type=\"button\">\n </button>\n <button (click)=\"leftNavClicked()\"\n [attr.data-hidden]=\"!showLeftNav\"\n [disabled]=\"leftNavDisabled\"\n [hidden]=\"!showLeftNav\"\n class=\"dp-calendar-nav-left\"\n type=\"button\">\n </button>\n </div>\n <button (click)=\"onGoToCurrent.emit()\"\n *ngIf=\"showGoToCurrent\"\n class=\"dp-current-location-btn\"\n type=\"button\">\n </button>\n <div class=\"dp-calendar-nav-container-right\">\n <button (click)=\"rightNavClicked()\"\n [attr.data-hidden]=\"!showRightNav\"\n [disabled]=\"rightNavDisabled\"\n [hidden]=\"!showRightNav\"\n class=\"dp-calendar-nav-right\"\n type=\"button\">\n </button>\n <button (click)=\"rightSecondaryNavClicked()\"\n *ngIf=\"showRightSecondaryNav\"\n [disabled]=\"rightSecondaryNavDisabled\"\n class=\"dp-calendar-secondary-nav-right\"\n type=\"button\">\n </button>\n </div>\n </div>\n</div>\n", styles: ["dp-calendar-nav .dp-calendar-nav-container{position:relative;box-sizing:border-box;height:25px;border:1px solid #000000;border-bottom:none}dp-calendar-nav .dp-nav-date-btn{box-sizing:border-box;height:25px;border:1px solid #000000;border-bottom:none}dp-calendar-nav .dp-nav-btns-container{position:absolute;top:50%;transform:translateY(-50%);right:5px;display:inline-block}dp-calendar-nav .dp-calendar-nav-container-left,dp-calendar-nav .dp-calendar-nav-container-right{display:inline-block}dp-calendar-nav .dp-calendar-nav-left,dp-calendar-nav .dp-calendar-nav-right,dp-calendar-nav .dp-calendar-secondary-nav-left,dp-calendar-nav .dp-calendar-secondary-nav-right{position:relative;width:16px;cursor:pointer}dp-calendar-nav .dp-calendar-nav-left,dp-calendar-nav .dp-calendar-nav-right{line-height:0}dp-calendar-nav .dp-calendar-nav-left:before,dp-calendar-nav .dp-calendar-nav-right:before{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(45deg)}dp-calendar-nav .dp-calendar-secondary-nav-left,dp-calendar-nav .dp-calendar-secondary-nav-right{padding:0}dp-calendar-nav .dp-calendar-secondary-nav-left:before,dp-calendar-nav .dp-calendar-secondary-nav-right:before,dp-calendar-nav .dp-calendar-secondary-nav-left:after,dp-calendar-nav .dp-calendar-secondary-nav-right:after{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(45deg)}dp-calendar-nav .dp-calendar-secondary-nav-left:before,dp-calendar-nav .dp-calendar-secondary-nav-right:before{right:-10px}dp-calendar-nav .dp-calendar-secondary-nav-right{left:initial;right:5px}dp-calendar-nav .dp-calendar-nav-left:before{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(-135deg)}dp-calendar-nav .dp-calendar-secondary-nav-left:before,dp-calendar-nav .dp-calendar-secondary-nav-left:after{position:relative;content:\"\";display:inline-block;height:8px;width:8px;vertical-align:baseline;border-style:solid;border-width:2px 2px 0 0;transform:rotate(-135deg)}dp-calendar-nav .dp-calendar-secondary-nav-left:before{right:-10px}dp-calendar-nav .dp-nav-header{position:absolute;top:50%;transform:translateY(-50%);left:5px;display:inline-block;font-size:13px}dp-calendar-nav .dp-nav-header-btn{cursor:pointer}dp-calendar-nav .dp-current-location-btn{position:relative;top:-1px;height:16px;width:16px;vertical-align:middle;background:#0009;border:1px solid rgba(0,0,0,.6);outline:none;border-radius:50%;box-shadow:inset 0 0 0 3px #fff;cursor:pointer}dp-calendar-nav .dp-current-location-btn:hover{background:#000}dp-calendar-nav.dp-material .dp-calendar-nav-container{height:30px;border:1px solid #E0E0E0}dp-calendar-nav.dp-material .dp-calendar-nav-left,dp-calendar-nav.dp-material .dp-calendar-nav-right,dp-calendar-nav.dp-material .dp-calendar-secondary-nav-left,dp-calendar-nav.dp-material .dp-calendar-secondary-nav-right{border:none;background:#fff;outline:none;font-size:16px;padding:0}dp-calendar-nav.dp-material .dp-calendar-secondary-nav-left,dp-calendar-nav.dp-material .dp-calendar-secondary-nav-right{width:20px}dp-calendar-nav.dp-material .dp-nav-header-btn{height:20px;width:80px;border:none;background:#fff;outline:none}dp-calendar-nav.dp-material .dp-nav-header-btn:hover{background:#0000000d}dp-calendar-nav.dp-material .dp-nav-header-btn:active{background:#0000001a}\n"] }]
}], propDecorators: { label: [{
type: Input
}], isLabelClickable: [{
type: Input
}], showLeftNav: [{
type: Input
}], showLeftSecondaryNav: [{
type: Input
}], showRightNav: [{
type: Input
}], showRightSecondaryNav: [{
type: Input
}], leftNavDisabled: [{
type: Input
}], leftSecondaryNavDisabled: [{
type: Input
}], rightNavDisabled: [{
type: Input
}], rightSecondaryNavDisabled: [{
type: Input
}], showGoToCurrent: [{
type: Input
}], theme: [{
type: HostBinding,
args: ['class']
}, {
type: Input
}], onLeftNav: [{
type: Output
}], onLeftSecondaryNav: [{
type: Output
}], onRightNav: [{
type: Output
}], onRightSecondaryNav: [{
type: Output
}], onLabelClick: [{
type: Output
}], onGoToCurrent: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1qYWxhbGktZGF0ZS1waWNrZXIvc3JjL2xpYi9jYWxlbmRhci1uYXYvY2FsZW5kYXItbmF2LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1qYWxhbGktZGF0ZS1waWNrZXIvc3JjL2xpYi9jYWxlbmRhci1uYXYvY2FsZW5kYXItbmF2LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7OztBQVN2QixNQUFNLE9BQU8sb0JBQW9CO0lBUGpDO1FBU1cscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxpQkFBWSxHQUFZLElBQUksQ0FBQztRQUM3QiwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsNkJBQXdCLEdBQVksS0FBSyxDQUFDO1FBQzFDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFDM0Msb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFHL0IsY0FBUyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVELGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCx3QkFBbUIsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3RCxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3RELGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7S0FxQmxFO0lBbkJDLGNBQWM7UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0F2Q1Usb0JBQW9CO21HQUFwQixvQkFBb0IsaXdCQ2pCakMsODREQXFEQTs7NEZEcENhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ3lCLEtBQUs7c0JBQW5DLFdBQVc7dUJBQUMsT0FBTzs7c0JBQUcsS0FBSztnQkFFbEIsU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RwLWNhbGVuZGFyLW5hdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci1uYXYuY29tcG9uZW50Lmxlc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJOYXZDb21wb25lbnQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xhYmVsQ2xpY2thYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dMZWZ0TmF2OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0xlZnRTZWNvbmRhcnlOYXY6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1JpZ2h0TmF2OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1JpZ2h0U2Vjb25kYXJ5TmF2OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxlZnROYXZEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsZWZ0U2Vjb25kYXJ5TmF2RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmlnaHROYXZEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByaWdodFNlY29uZGFyeU5hdkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dHb1RvQ3VycmVudDogYm9vbGVhbiA9IHRydWU7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBASW5wdXQoKSB0aGVtZTogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBvbkxlZnROYXY6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uTGVmdFNlY29uZGFyeU5hdjogRXZlbnRFbWl0dGVyPG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25SaWdodE5hdjogRXZlbnRFbWl0dGVyPG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25SaWdodFNlY29uZGFyeU5hdjogRXZlbnRFbWl0dGVyPG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25MYWJlbENsaWNrOiBFdmVudEVtaXR0ZXI8bnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkdvVG9DdXJyZW50OiBFdmVudEVtaXR0ZXI8bnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgbGVmdE5hdkNsaWNrZWQoKSB7XG4gICAgdGhpcy5vbkxlZnROYXYuZW1pdCgpO1xuICB9XG5cbiAgbGVmdFNlY29uZGFyeU5hdkNsaWNrZWQoKSB7XG4gICAgdGhpcy5vbkxlZnRTZWNvbmRhcnlOYXYuZW1pdCgpO1xuICB9XG5cbiAgcmlnaHROYXZDbGlja2VkKCkge1xuICAgIHRoaXMub25SaWdodE5hdi5lbWl0KCk7XG4gIH1cblxuICByaWdodFNlY29uZGFyeU5hdkNsaWNrZWQoKSB7XG4gICAgdGhpcy5vblJpZ2h0U2Vjb25kYXJ5TmF2LmVtaXQoKTtcbiAgfVxuXG4gIGxhYmVsQ2xpY2tlZCgpIHtcbiAgICB0aGlzLm9uTGFiZWxDbGljay5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkcC1jYWxlbmRhci1uYXYtY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJkcC1uYXYtaGVhZGVyXCI+XG4gICAgPHNwYW4gW2F0dHIuZGF0YS1oaWRkZW5dPVwiaXNMYWJlbENsaWNrYWJsZVwiXG4gICAgICAgICAgW2hpZGRlbl09XCJpc0xhYmVsQ2xpY2thYmxlXCJcbiAgICAgICAgICBbaW5uZXJUZXh0XT1cImxhYmVsXCI+XG4gICAgPC9zcGFuPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImxhYmVsQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtaGlkZGVuXT1cIiFpc0xhYmVsQ2xpY2thYmxlXCJcbiAgICAgICAgICAgIFtoaWRkZW5dPVwiIWlzTGFiZWxDbGlja2FibGVcIlxuICAgICAgICAgICAgW2lubmVyVGV4dF09XCJsYWJlbFwiXG4gICAgICAgICAgICBjbGFzcz1cImRwLW5hdi1oZWFkZXItYnRuXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRwLW5hdi1idG5zLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkcC1jYWxlbmRhci1uYXYtY29udGFpbmVyLWxlZnRcIj5cbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImxlZnRTZWNvbmRhcnlOYXZDbGlja2VkKClcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNob3dMZWZ0U2Vjb25kYXJ5TmF2XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxlZnRTZWNvbmRhcnlOYXZEaXNhYmxlZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHAtY2FsZW5kYXItc2Vjb25kYXJ5LW5hdi1sZWZ0XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJsZWZ0TmF2Q2xpY2tlZCgpXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1oaWRkZW5dPVwiIXNob3dMZWZ0TmF2XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxlZnROYXZEaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIXNob3dMZWZ0TmF2XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkcC1jYWxlbmRhci1uYXYtbGVmdFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b24gKGNsaWNrKT1cIm9uR29Ub0N1cnJlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0dvVG9DdXJyZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHAtY3VycmVudC1sb2NhdGlvbi1idG5cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJkcC1jYWxlbmRhci1uYXYtY29udGFpbmVyLXJpZ2h0XCI+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJyaWdodE5hdkNsaWNrZWQoKVwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtaGlkZGVuXT1cIiFzaG93UmlnaHROYXZcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmlnaHROYXZEaXNhYmxlZFwiXG4gICAgICAgICAgICAgIFtoaWRkZW5dPVwiIXNob3dSaWdodE5hdlwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZHAtY2FsZW5kYXItbmF2LXJpZ2h0XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJyaWdodFNlY29uZGFyeU5hdkNsaWNrZWQoKVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JpZ2h0U2Vjb25kYXJ5TmF2XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJpZ2h0U2Vjb25kYXJ5TmF2RGlzYWJsZWRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImRwLWNhbGVuZGFyLXNlY29uZGFyeS1uYXYtcmlnaHRcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==