@pepperi/lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.1.
197 lines • 25.2 kB
JavaScript
import { Component, Input } from '@angular/core';
import { delay } from 'rxjs/operators';
import * as i0 from "@angular/core";
import * as i1 from "@pepperi/lib";
import * as i2 from "@angular/common";
import * as i3 from "@angular/material/button";
import * as i4 from "@angular/material/menu";
import * as i5 from "@angular/material/icon";
import * as i6 from "@pepperi/lib/icon";
function GroupButtonsComponent_ng_container_1_button_1_Template(rf, ctx) { if (rf & 1) {
const _r6 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "button", 5);
i0.ɵɵlistener("click", function GroupButtonsComponent_ng_container_1_button_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const button_r4 = ctx.$implicit; return button_r4 == null ? null : button_r4.Callback($event); });
i0.ɵɵelementStart(1, "span");
i0.ɵɵtext(2);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const button_r4 = ctx.$implicit;
const ctx_r3 = i0.ɵɵnextContext(2);
i0.ɵɵclassMapInterpolate1("pepperi-button spacing-element pull-left flip first-button mat-button ", ctx_r3.buttonsClass, "");
i0.ɵɵproperty("disabled", ctx_r3.buttonsDisabled);
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(button_r4 == null ? null : button_r4.Value);
} }
function GroupButtonsComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, GroupButtonsComponent_ng_container_1_button_1_Template, 3, 5, "button", 4);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r0 = i0.ɵɵnextContext();
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngForOf", ctx_r0.buttons);
} }
function GroupButtonsComponent_div_2_ng_container_9_button_1_Template(rf, ctx) { if (rf & 1) {
const _r15 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "button", 14);
i0.ɵɵlistener("click", function GroupButtonsComponent_div_2_ng_container_9_button_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r15); const button_r9 = i0.ɵɵnextContext().$implicit; return button_r9 == null ? null : button_r9.Callback($event); });
i0.ɵɵelementStart(1, "span");
i0.ɵɵtext(2);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const button_r9 = i0.ɵɵnextContext().$implicit;
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(button_r9 == null ? null : button_r9.Value);
} }
function GroupButtonsComponent_div_2_ng_container_9_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, GroupButtonsComponent_div_2_ng_container_9_button_1_Template, 3, 1, "button", 13);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const isFirst_r11 = ctx.first;
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", !isFirst_r11);
} }
const _c0 = function (a0) { return { dropup: a0 }; };
function GroupButtonsComponent_div_2_Template(rf, ctx) { if (rf & 1) {
const _r18 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "div", 6);
i0.ɵɵelementStart(1, "button", 5);
i0.ɵɵlistener("click", function GroupButtonsComponent_div_2_Template_button_click_1_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return ctx_r17.buttons[0] == null ? null : ctx_r17.buttons[0].Callback($event); });
i0.ɵɵelementStart(2, "span", 7);
i0.ɵɵtext(3);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
i0.ɵɵelementStart(4, "button", 8);
i0.ɵɵelementStart(5, "mat-icon");
i0.ɵɵelement(6, "pep-icon", 9);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
i0.ɵɵelementStart(7, "mat-menu", 10, 11);
i0.ɵɵtemplate(9, GroupButtonsComponent_div_2_ng_container_9_Template, 2, 1, "ng-container", 12);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const _r7 = i0.ɵɵreference(8);
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(13, _c0, ctx_r1.screenSize >= 2));
i0.ɵɵadvance(1);
i0.ɵɵclassMapInterpolate1("pepperi-button pull-left flip first-button mat-button ", ctx_r1.buttonsClass, "");
i0.ɵɵproperty("disabled", ctx_r1.buttonsDisabled);
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(ctx_r1.buttons[0] == null ? null : ctx_r1.buttons[0].Value);
i0.ɵɵadvance(1);
i0.ɵɵclassMapInterpolate1("pepperi-button icon-button pull-right flip last-button mat-button ", ctx_r1.buttonsClass, "");
i0.ɵɵproperty("matMenuTriggerFor", _r7)("disabled", ctx_r1.buttonsDisabled);
i0.ɵɵadvance(2);
i0.ɵɵpropertyInterpolate("name", ctx_r1.screenSize < 2 ? "arrow_down" : "arrow_up");
i0.ɵɵadvance(3);
i0.ɵɵproperty("ngForOf", ctx_r1.buttons);
} }
function GroupButtonsComponent_div_3_button_1_mat_icon_1_Template(rf, ctx) { if (rf & 1) {
const _r28 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "mat-icon");
i0.ɵɵelementStart(1, "pep-icon", 18);
i0.ɵɵlistener("click", function GroupButtonsComponent_div_3_button_1_mat_icon_1_Template_pep_icon_click_1_listener($event) { i0.ɵɵrestoreView(_r28); const button_r20 = i0.ɵɵnextContext().$implicit; return button_r20 == null ? null : button_r20.Callback($event); });
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const button_r20 = i0.ɵɵnextContext().$implicit;
i0.ɵɵadvance(1);
i0.ɵɵpropertyInterpolate("name", button_r20 == null ? null : button_r20.Icon);
} }
function GroupButtonsComponent_div_3_button_1_span_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "span");
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const button_r20 = i0.ɵɵnextContext().$implicit;
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(button_r20 == null ? null : button_r20.Value);
} }
const _c1 = function (a0, a1, a2, a3) { return { "first-button": a0, "middle-button": a1, "last-button": a2, "icon-button": a3 }; };
function GroupButtonsComponent_div_3_button_1_Template(rf, ctx) { if (rf & 1) {
const _r32 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "button", 17);
i0.ɵɵlistener("click", function GroupButtonsComponent_div_3_button_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r32); const button_r20 = ctx.$implicit; return button_r20 == null ? null : button_r20.Callback($event); });
i0.ɵɵtemplate(1, GroupButtonsComponent_div_3_button_1_mat_icon_1_Template, 2, 1, "mat-icon", 1);
i0.ɵɵtemplate(2, GroupButtonsComponent_div_3_button_1_span_2_Template, 2, 1, "span", 1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const button_r20 = ctx.$implicit;
const isFirst_r22 = ctx.first;
const isLast_r23 = ctx.last;
const ctx_r19 = i0.ɵɵnextContext(2);
i0.ɵɵclassMapInterpolate2("pepperi-button split-button mat-button ", ctx_r19.buttonsClass, " ", button_r20 == null ? null : button_r20.Class, " pull-left flip");
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(8, _c1, isFirst_r22, !isFirst_r22 && !isLast_r23, isLast_r23, button_r20 == null ? null : button_r20.Icon))("disabled", ctx_r19.buttonsDisabled);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", button_r20 == null ? null : button_r20.Icon);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", button_r20 == null ? null : button_r20.Value);
} }
function GroupButtonsComponent_div_3_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 15);
i0.ɵɵtemplate(1, GroupButtonsComponent_div_3_button_1_Template, 3, 13, "button", 16);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngForOf", ctx_r2.buttons);
} }
export var GROUP_BUTTONS_VIEW_TYPE;
(function (GROUP_BUTTONS_VIEW_TYPE) {
GROUP_BUTTONS_VIEW_TYPE[GROUP_BUTTONS_VIEW_TYPE["Regular"] = 0] = "Regular";
GROUP_BUTTONS_VIEW_TYPE[GROUP_BUTTONS_VIEW_TYPE["Dropdown"] = 1] = "Dropdown";
GROUP_BUTTONS_VIEW_TYPE[GROUP_BUTTONS_VIEW_TYPE["Split"] = 2] = "Split";
})(GROUP_BUTTONS_VIEW_TYPE || (GROUP_BUTTONS_VIEW_TYPE = {}));
export class GroupButtonsComponent {
// @Output() buttonClick: EventEmitter<PepperiGroupButton> = new EventEmitter<PepperiGroupButton>();
constructor(layoutService) {
this.layoutService = layoutService;
this.GROUP_BUTTONS_VIEW_TYPE = GROUP_BUTTONS_VIEW_TYPE;
this.viewType = GROUP_BUTTONS_VIEW_TYPE.Regular;
this.layoutService.onResize$
.pipe(delay(0))
.subscribe(size => {
this.screenSize = size;
});
}
ngOnInit() { }
ngOnDestroy() {
// if (this.buttonClick) this.buttonClick.unsubscribe();
}
}
GroupButtonsComponent.ɵfac = function GroupButtonsComponent_Factory(t) { return new (t || GroupButtonsComponent)(i0.ɵɵdirectiveInject(i1.LayoutService)); };
GroupButtonsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: GroupButtonsComponent, selectors: [["pep-group-buttons"]], inputs: { viewType: "viewType", buttons: "buttons", buttonsClass: "buttonsClass", buttonsDisabled: "buttonsDisabled" }, decls: 4, vars: 3, consts: [["pepRtlDirection", "", 1, "group-buttons-container"], [4, "ngIf"], ["class", "dropdown-buttons spacing-element", 3, "ngClass", 4, "ngIf"], ["class", "split-buttons", 4, "ngIf"], ["mat-button", "", 3, "class", "disabled", "click", 4, "ngFor", "ngForOf"], ["mat-button", "", 3, "disabled", "click"], [1, "dropdown-buttons", "spacing-element", 3, "ngClass"], [1, "pepperi-btn-text"], ["pepMenuBlur", "", "mat-button", "", 3, "matMenuTriggerFor", "disabled"], [3, "name"], ["xPosition", "before"], ["actionsMenu", "matMenu"], [4, "ngFor", "ngForOf"], ["mat-menu-item", "", 3, "click", 4, "ngIf"], ["mat-menu-item", "", 3, "click"], [1, "split-buttons"], ["mat-button", "", 3, "class", "ngClass", "disabled", "click", 4, "ngFor", "ngForOf"], ["mat-button", "", 3, "ngClass", "disabled", "click"], [3, "name", "click"]], template: function GroupButtonsComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 0);
i0.ɵɵtemplate(1, GroupButtonsComponent_ng_container_1_Template, 2, 1, "ng-container", 1);
i0.ɵɵtemplate(2, GroupButtonsComponent_div_2_Template, 10, 15, "div", 2);
i0.ɵɵtemplate(3, GroupButtonsComponent_div_3_Template, 2, 1, "div", 3);
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.viewType == ctx.GROUP_BUTTONS_VIEW_TYPE.Regular);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.viewType == ctx.GROUP_BUTTONS_VIEW_TYPE.Dropdown);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.viewType == ctx.GROUP_BUTTONS_VIEW_TYPE.Split);
} }, directives: [i1.RtlDirectionDirective, i2.NgIf, i2.NgForOf, i3.MatButton, i2.NgClass, i1.MenuBlurDirective, i4.MatMenuTrigger, i5.MatIcon, i6.PepperiIconComponent, i4._MatMenu, i4.MatMenuItem], styles: [".group-buttons-container[_ngcontent-%COMP%]{border-radius:var(--pep-border-radius-md,.25rem);display:flex}.group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]{margin-right:1px}.group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]:after, .group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]:after{border-radius:var(--pep-border-radius-md,.25rem) 0 0 var(--pep-border-radius-md,.25rem)}.group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%]:after, .group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%]:after{border-radius:0 var(--pep-border-radius-md,.25rem) var(--pep-border-radius-md,.25rem) 0}.group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .pepperi-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .pepperi-button[_ngcontent-%COMP%]{margin-top:0!important}.group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .pepperi-button.cdk-focused[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .pepperi-button.cdk-focused[_ngcontent-%COMP%]{z-index:1}@media (max-width:767px){.group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons.dropup[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .split-buttons.dropup[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]{max-width:calc(75vw - 4rem);padding:0 .25rem}.group-buttons-container[_ngcontent-%COMP%] .dropdown-buttons.dropup[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%], .group-buttons-container[_ngcontent-%COMP%] .split-buttons.dropup[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%]{padding:0}}.group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]{margin-right:-1px}.group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .middle-button[_ngcontent-%COMP%]{border-radius:0}.group-buttons-container[_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%] .svg-icon[_ngcontent-%COMP%]{height:inherit;width:inherit}.group-buttons-container[dir=rtl][_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%], .group-buttons-container[dir=rtl][_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]{margin-left:1px;margin-right:unset}.group-buttons-container[dir=rtl][_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%], .group-buttons-container[dir=rtl][_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]:after, .group-buttons-container[dir=rtl][_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%], .group-buttons-container[dir=rtl][_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]:after{border-radius:0 var(--pep-border-radius-md,.25rem) var(--pep-border-radius-md,.25rem) 0}.group-buttons-container[dir=rtl][_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%], .group-buttons-container[dir=rtl][_ngcontent-%COMP%] .dropdown-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%]:after, .group-buttons-container[dir=rtl][_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%], .group-buttons-container[dir=rtl][_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .last-button[_ngcontent-%COMP%]:after{border-radius:var(--pep-border-radius-md,.25rem) 0 0 var(--pep-border-radius-md,.25rem)}.group-buttons-container[dir=rtl][_ngcontent-%COMP%] .split-buttons[_ngcontent-%COMP%] .first-button[_ngcontent-%COMP%]{margin-left:-1px}"] });
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(GroupButtonsComponent, [{
type: Component,
args: [{
selector: 'pep-group-buttons',
templateUrl: './group-buttons.component.html',
styleUrls: ['./group-buttons.component.scss'],
}]
}], function () { return [{ type: i1.LayoutService }]; }, { viewType: [{
type: Input
}], buttons: [{
type: Input
}], buttonsClass: [{
type: Input
}], buttonsDisabled: [{
type: Input
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wZXBwZXJpLWxpYi9ncm91cC1idXR0b25zL2dyb3VwLWJ1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGVwcGVyaS1saWIvZ3JvdXAtYnV0dG9ucy9ncm91cC1idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0lDQS9CLGlDQUdJO0lBRHdDLG1OQUFTLDBCQUF3QixJQUFDO0lBQzFFLDRCQUFNO0lBQUEsWUFBbUI7SUFBQSxpQkFBTztJQUNwQyxpQkFBUzs7OztJQUhMLDRIQUFnRztJQUNoRyxpREFBNEI7SUFDdEIsZUFBbUI7SUFBbkIsZ0VBQW1COzs7SUFKakMsNkJBQ0k7SUFBQSwyRkFHSTtJQUVSLDBCQUFlOzs7SUFMSCxlQUE4QjtJQUE5Qix3Q0FBOEI7Ozs7SUF1QjlCLGtDQUNJO0lBRG1DLHlPQUFTLDBCQUF3QixJQUFDO0lBQ3JFLDRCQUFNO0lBQUEsWUFBbUI7SUFBQSxpQkFBTztJQUNwQyxpQkFBUzs7O0lBREMsZUFBbUI7SUFBbkIsZ0VBQW1COzs7SUFGakMsNkJBQ0k7SUFBQSxrR0FDSTtJQUVSLDBCQUFlOzs7SUFISCxlQUFnQjtJQUFoQixtQ0FBZ0I7Ozs7O0lBaEJwQyw4QkFFSTtJQUFBLGlDQUVJO0lBREEsMExBQWlCLENBQUMsbUJBQVQsZ0JBQVEsQ0FBQyxrQkFBbUIsSUFBQztJQUN0QywrQkFBK0I7SUFBQSxZQUF1QjtJQUFBLGlCQUFPO0lBQ2pFLGlCQUFTO0lBQ1QsaUNBRUk7SUFBQSxnQ0FDSTtJQUFBLDhCQUNXO0lBQ2YsaUJBQVc7SUFDZixpQkFBUztJQUVULHdDQUNJO0lBQUEsK0ZBQ0k7SUFJUixpQkFBVztJQUNmLGlCQUFNOzs7O0lBcEJGLDZFQUFxQztJQUM3QixlQUFnRjtJQUFoRiw0R0FBZ0Y7SUFDN0MsaURBQTRCO0lBQ3BDLGVBQXVCO0lBQXZCLGdGQUF1QjtJQUVsRCxlQUE0RjtJQUE1Rix3SEFBNEY7SUFDaEcsdUNBQWlDLG9DQUFBO0lBRW5CLGVBQXVEO0lBQXZELG1GQUF1RDtJQU12RCxlQUErRDtJQUEvRCx3Q0FBK0Q7Ozs7SUFZN0UsZ0NBQ0k7SUFBQSxvQ0FDVztJQUR1Qix5T0FBUywyQkFBd0IsSUFBQztJQUNwRSxpQkFBVztJQUNmLGlCQUFXOzs7SUFGRyxlQUF1QjtJQUF2Qiw2RUFBdUI7OztJQUdyQyw0QkFBNEI7SUFBQSxZQUFtQjtJQUFBLGlCQUFPOzs7SUFBMUIsZUFBbUI7SUFBbkIsa0VBQW1COzs7OztJQVJuRCxrQ0FJSTtJQUR3Qyw2TUFBUywyQkFBd0IsSUFBQztJQUMxRSwrRkFDSTtJQUdKLHVGQUE0QjtJQUNoQyxpQkFBUzs7Ozs7O0lBUkwsaUtBQXFHO0lBQ3JHLHVKQUErSCxxQ0FBQTtJQUVySCxlQUFvQjtJQUFwQixrRUFBb0I7SUFJeEIsZUFBcUI7SUFBckIsbUVBQXFCOzs7SUFUbkMsK0JBQ0k7SUFBQSxvRkFJSTtJQU1SLGlCQUFNOzs7SUFWTSxlQUFpRjtJQUFqRix3Q0FBaUY7O0FEckJqRyxNQUFNLENBQU4sSUFBWSx1QkFJWDtBQUpELFdBQVksdUJBQXVCO0lBQy9CLDJFQUFPLENBQUE7SUFDUCw2RUFBUSxDQUFBO0lBQ1IsdUVBQUssQ0FBQTtBQUNULENBQUMsRUFKVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSWxDO0FBT0QsTUFBTSxPQUFPLHFCQUFxQjtJQVM5QixvR0FBb0c7SUFFcEcsWUFBbUIsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFWL0MsNEJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFHekMsYUFBUSxHQUE0Qix1QkFBdUIsQ0FBQyxPQUFPLENBQUM7UUFRekUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTO2FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDZCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxRQUFRLEtBQVcsQ0FBQztJQUVwQixXQUFXO1FBQ1Asd0RBQXdEO0lBQzVELENBQUM7OzBGQXZCUSxxQkFBcUI7MERBQXJCLHFCQUFxQjtRQ3RCbEMsOEJBQ0k7UUFBQSx3RkFDSTtRQU9KLHdFQUVJO1FBb0JKLHNFQUNJO1FBV1IsaUJBQU07O1FBMUNZLGVBQW1EO1FBQW5ELDBFQUFtRDtRQVE1RCxlQUFvRDtRQUFwRCwyRUFBb0Q7UUFzQnBELGVBQWlEO1FBQWpELHdFQUFpRDs7a0REVDdDLHFCQUFxQjtjQUxqQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsV0FBVyxFQUFFLGdDQUFnQztnQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7YUFDaEQ7Z0VBS1ksUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxlQUFlO2tCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UsIFNDUkVFTl9TSVpFIH0gZnJvbSAnQHBlcHBlcmkvbGliJztcclxuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBlcHBlcmlHcm91cEJ1dHRvbiB7XHJcbiAgICBWYWx1ZTtcclxuICAgIENsYXNzO1xyXG4gICAgSWNvbjtcclxuICAgIENhbGxiYWNrO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBHUk9VUF9CVVRUT05TX1ZJRVdfVFlQRSB7XHJcbiAgICBSZWd1bGFyLFxyXG4gICAgRHJvcGRvd24sXHJcbiAgICBTcGxpdCxcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3BlcC1ncm91cC1idXR0b25zJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncm91cC1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2dyb3VwLWJ1dHRvbnMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdyb3VwQnV0dG9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEdST1VQX0JVVFRPTlNfVklFV19UWVBFID0gR1JPVVBfQlVUVE9OU19WSUVXX1RZUEU7XHJcbiAgICBzY3JlZW5TaXplOiBTQ1JFRU5fU0laRTtcclxuXHJcbiAgICBASW5wdXQoKSB2aWV3VHlwZTogR1JPVVBfQlVUVE9OU19WSUVXX1RZUEUgPSBHUk9VUF9CVVRUT05TX1ZJRVdfVFlQRS5SZWd1bGFyO1xyXG4gICAgQElucHV0KCkgYnV0dG9uczogQXJyYXk8UGVwcGVyaUdyb3VwQnV0dG9uPjtcclxuICAgIEBJbnB1dCgpIGJ1dHRvbnNDbGFzczogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgYnV0dG9uc0Rpc2FibGVkOiBzdHJpbmc7XHJcblxyXG4gICAgLy8gQE91dHB1dCgpIGJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8UGVwcGVyaUdyb3VwQnV0dG9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8UGVwcGVyaUdyb3VwQnV0dG9uPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLm9uUmVzaXplJFxyXG4gICAgICAgICAgICAucGlwZShkZWxheSgwKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShzaXplID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NyZWVuU2l6ZSA9IHNpemU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgLy8gaWYgKHRoaXMuYnV0dG9uQ2xpY2spIHRoaXMuYnV0dG9uQ2xpY2sudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBvbkJ1dHRvbkNsaWNrZWQoYnV0dG9uOiBQZXBwZXJpR3JvdXBCdXR0b24pIHtcclxuICAgIC8vICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoYnV0dG9uKTtcclxuICAgIC8vIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ3JvdXAtYnV0dG9ucy1jb250YWluZXJcIiBwZXBSdGxEaXJlY3Rpb24+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld1R5cGUgPT0gR1JPVVBfQlVUVE9OU19WSUVXX1RZUEUuUmVndWxhclwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBidXR0b25zXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJwZXBwZXJpLWJ1dHRvbiBzcGFjaW5nLWVsZW1lbnQgcHVsbC1sZWZ0IGZsaXAgZmlyc3QtYnV0dG9uIG1hdC1idXR0b24ge3sgYnV0dG9uc0NsYXNzIH19XCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImJ1dHRvbnNEaXNhYmxlZFwiIG1hdC1idXR0b24gKGNsaWNrKT1cImJ1dHRvbj8uQ2FsbGJhY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBidXR0b24/LlZhbHVlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInZpZXdUeXBlID09IEdST1VQX0JVVFRPTlNfVklFV19UWVBFLkRyb3Bkb3duXCIgY2xhc3M9XCJkcm9wZG93bi1idXR0b25zIHNwYWNpbmctZWxlbWVudFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie2Ryb3B1cDogc2NyZWVuU2l6ZSA+PSAyfVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwZXBwZXJpLWJ1dHRvbiBwdWxsLWxlZnQgZmxpcCBmaXJzdC1idXR0b24gbWF0LWJ1dHRvbiB7eyBidXR0b25zQ2xhc3MgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uc1swXT8uQ2FsbGJhY2soJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJidXR0b25zRGlzYWJsZWRcIiBtYXQtYnV0dG9uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcHBlcmktYnRuLXRleHRcIj57eyBidXR0b25zWzBdPy5WYWx1ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGVwcGVyaS1idXR0b24gaWNvbi1idXR0b24gcHVsbC1yaWdodCBmbGlwIGxhc3QtYnV0dG9uIG1hdC1idXR0b24ge3sgYnV0dG9uc0NsYXNzIH19XCJcclxuICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjdGlvbnNNZW51XCIgW2Rpc2FibGVkXT1cImJ1dHRvbnNEaXNhYmxlZFwiIHBlcE1lbnVCbHVyIG1hdC1idXR0b24+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwie3sgc2NyZWVuU2l6ZSA8IDIgPyAnYXJyb3dfZG93bicgOiAnYXJyb3dfdXAnIH19XCI+XHJcbiAgICAgICAgICAgICAgICA8L3BlcC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICA8bWF0LW1lbnUgI2FjdGlvbnNNZW51PVwibWF0TWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uczsgbGV0IGkgPSBpbmRleDsgZmlyc3QgYXMgaXNGaXJzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFpc0ZpcnN0XCIgbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYnV0dG9uPy5DYWxsYmFjaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgYnV0dG9uPy5WYWx1ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidmlld1R5cGUgPT0gR1JPVVBfQlVUVE9OU19WSUVXX1RZUEUuU3BsaXRcIiBjbGFzcz1cInNwbGl0LWJ1dHRvbnNcIj5cclxuICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uczsgbGV0IGluZGV4OyBsZXQgaXNGaXJzdCA9IGZpcnN0OyBsZXQgaXNMYXN0ID0gbGFzdFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwicGVwcGVyaS1idXR0b24gIHNwbGl0LWJ1dHRvbiBtYXQtYnV0dG9uIHt7IGJ1dHRvbnNDbGFzcyB9fSB7eyBidXR0b24/LkNsYXNzIH19IHB1bGwtbGVmdCBmbGlwXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydmaXJzdC1idXR0b24nOiBpc0ZpcnN0LCAnbWlkZGxlLWJ1dHRvbic6ICFpc0ZpcnN0ICYmICFpc0xhc3QsICdsYXN0LWJ1dHRvbic6IGlzTGFzdCwgJ2ljb24tYnV0dG9uJzogYnV0dG9uPy5JY29ufVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXR0b25zRGlzYWJsZWRcIiBtYXQtYnV0dG9uIChjbGljayk9XCJidXR0b24/LkNhbGxiYWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiYnV0dG9uPy5JY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8cGVwLWljb24gbmFtZT1cInt7YnV0dG9uPy5JY29ufX1cIiAoY2xpY2spPVwiYnV0dG9uPy5DYWxsYmFjaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3BlcC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJ1dHRvbj8uVmFsdWVcIj57eyBidXR0b24/LlZhbHVlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=