UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

237 lines (236 loc) 18.6 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ElementRef, Input, Output, EventEmitter } from '@angular/core'; import { WizardModel } from '../model/WizardModel'; import { PhloxAppService } from '../../service/PhloxAppService.service'; import { AbstractWizardPane } from './AbstractWizardPane'; import { Option } from '../../decorator/Option.decorator'; import { I18N } from '../../decorator/I18N.decorator'; const /** @type {?} */ TYPE_NAME = "phx-pagination-wizard-pane"; export class PaginationWizardPane extends AbstractWizardPane { /** * @param {?} appSvc * @param {?} elementRef */ constructor(appSvc, elementRef) { super(appSvc, elementRef); } /** * @return {?} */ ngOnInit() { super.ngOnInit(); } /** * @param {?} index * @return {?} */ showStepContent(index) { } /** * @param {?} index * @return {?} */ getStepInstance(index) { } } PaginationWizardPane.TYPE_NAME = TYPE_NAME; PaginationWizardPane.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: `<div class="phx-pagination-wizard-pane"> <div class="left" [style.padding-top]="getHeaderHeight() + 'pt'" [style.padding-bottom]="getFooterHeight() + 'pt'"> <div class="header" [style.height]="getHeaderHeight() + 'pt'"> <ng-template [ngIf]="getModel() !== null && getModel().header !== null"> <ng-template [ngIf]="getModel().header.type === null"> <div *ngIf="getModel().header.imageURL !== null && getModel().header.imageURL !== ''" class="header-image"> <img src="{{getModel().header.imageURL}}"> </div> <div class="header-label">{{getModel().header.label}}</div> </ng-template> <ng-template [ngIf]="getModel().header.type !== null"> <phx-component-wrapper [type]="getModel().header.type" [data]="getModel().header.model"></phx-component-wrapper> </ng-template> </ng-template> </div> <div class="body"> <ng-template [ngIf]="getModel() !== null && getModel().steps !== null"> <div *ngFor="let item of getModel().steps; let i = index;" class="step" [class.active]="isStepSelected(i)" > <ng-template [ngIf]="item.type === null"> <div (click)="stepSelected(i)"> {{item.label}} </div> </ng-template> <ng-template [ngIf]="item.type !== null"> <phx-component-wrapper [type]="item.type" [data]="item.model" (click)="stepSelected(i)"></phx-component-wrapper> </ng-template> </div> </ng-template> </div> <div class="footer" [style.height]="getFooterHeight() + 'pt'"> <ng-template [ngIf]="getModel() !== null && getModel().footer !== null"> <ng-template [ngIf]="getModel().footer.type === null"> {{getModel().footer.label}} </ng-template> <ng-template [ngIf]="getModel().footer.type !== null"> <phx-component-wrapper [type]="getModel().footer.type" [data]="getModel().footer.model"></phx-component-wrapper> </ng-template> </ng-template> </div> </div> <div class="right"> <ng-template [ngIf]="getModel() !== null && getModel().steps !== null"> <!-- <phx-component-wrapper *ngFor="let item of model.steps; let i = index;" [class.active]="isStepSelected(i)" [type]="item.componentType" [data]="data" [model]="item.componentModel" [dataParent]="this" [handler]="stepsComponentHandler"></phx-component-wrapper> --> <phx-component-wrapper *ngFor="let item of getModel().steps; let i = index;" [class.active]="isStepSelected(i)" [type]="item.componentType" [data]="getData()" [model]="item.componentModel" [options]="item.componentOptions" [dataParent]="this"></phx-component-wrapper> </ng-template> </div> </div> ` },] }, ]; /** @nocollapse */ PaginationWizardPane.ctorParameters = () => [ { type: PhloxAppService, }, { type: ElementRef, }, ]; PaginationWizardPane.propDecorators = { "help": [{ type: Input },], "dataParent": [{ type: Input },], "ignoreParentData": [{ type: Input },], "data": [{ type: Input },], "ignoreParentDisabled": [{ type: Input },], "delegateHistory": [{ type: Input },], "onDisabled": [{ type: Input },], "onEnabled": [{ type: Input },], "loadingEnabled": [{ type: Input },], "i18nKey": [{ type: Input },], "bypass": [{ type: Input, args: ['i18nBypass',] },], "options": [{ type: Input },], "disabled": [{ type: Input },], "model": [{ type: Input },], "field": [{ type: Input },], "loadEvent": [{ type: Output, args: ['phxLoad',] },], "changeEvent": [{ type: Output, args: ['phxChange',] },], "beforeChangeEvent": [{ type: Output, args: ['phxBeforeChange',] },], }; tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", Object) ], PaginationWizardPane.prototype, "help", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], PaginationWizardPane.prototype, "dataParent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], PaginationWizardPane.prototype, "ignoreParentData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], PaginationWizardPane.prototype, "data", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], PaginationWizardPane.prototype, "ignoreParentDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], PaginationWizardPane.prototype, "delegateHistory", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], PaginationWizardPane.prototype, "onDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], PaginationWizardPane.prototype, "onEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], PaginationWizardPane.prototype, "loadingEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], PaginationWizardPane.prototype, "i18nKey", void 0); tslib_1.__decorate([ Option('i18nBypass'), tslib_1.__metadata("design:type", Boolean) ], PaginationWizardPane.prototype, "bypass", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], PaginationWizardPane.prototype, "disabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", WizardModel) ], PaginationWizardPane.prototype, "model", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], PaginationWizardPane.prototype, "field", void 0); tslib_1.__decorate([ Option('load'), tslib_1.__metadata("design:type", EventEmitter) ], PaginationWizardPane.prototype, "loadEvent", void 0); tslib_1.__decorate([ Option('change'), tslib_1.__metadata("design:type", EventEmitter) ], PaginationWizardPane.prototype, "changeEvent", void 0); tslib_1.__decorate([ Option('beforeChange'), tslib_1.__metadata("design:type", EventEmitter) ], PaginationWizardPane.prototype, "beforeChangeEvent", void 0); function PaginationWizardPane_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ PaginationWizardPane.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ PaginationWizardPane.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ PaginationWizardPane.propDecorators; /** @type {?} */ PaginationWizardPane.TYPE_NAME; /** @type {?} */ PaginationWizardPane.prototype.help; /** @type {?} */ PaginationWizardPane.prototype.dataParent; /** @type {?} */ PaginationWizardPane.prototype.ignoreParentData; /** @type {?} */ PaginationWizardPane.prototype.data; /** @type {?} */ PaginationWizardPane.prototype.ignoreParentDisabled; /** @type {?} */ PaginationWizardPane.prototype.delegateHistory; /** @type {?} */ PaginationWizardPane.prototype.onDisabled; /** @type {?} */ PaginationWizardPane.prototype.onEnabled; /** @type {?} */ PaginationWizardPane.prototype.loadingEnabled; /** @type {?} */ PaginationWizardPane.prototype.i18nKey; /** @type {?} */ PaginationWizardPane.prototype.bypass; /** @type {?} */ PaginationWizardPane.prototype.options; /** @type {?} */ PaginationWizardPane.prototype.disabled; /** @type {?} */ PaginationWizardPane.prototype.model; /** @type {?} */ PaginationWizardPane.prototype.field; /** @type {?} */ PaginationWizardPane.prototype.loadEvent; /** @type {?} */ PaginationWizardPane.prototype.changeEvent; /** @type {?} */ PaginationWizardPane.prototype.beforeChangeEvent; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5hdGlvbldpemFyZFBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2RhdGF2aWV3L1BhZ2luYXRpb25XaXphcmRQYW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUl0RCx1QkFBTSxTQUFTLEdBQVcsNEJBQTRCLENBQUM7QUFzRHZELE1BQU0sMkJBQTRCLFNBQVEsa0JBQWtCOzs7OztJQW9FMUQsWUFBWSxNQUF1QixFQUFFLFVBQXNCO1FBQ3pELEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDM0I7Ozs7SUFFTSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDOzs7Ozs7SUFHWixlQUFlLENBQUMsS0FBYTs7Ozs7SUFFN0IsZUFBZSxDQUFDLEtBQWE7O2lDQTVFTyxTQUFTOztZQXREckQsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDbkIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0ErQ1g7YUFDQTs7OztZQWhFUSxlQUFlO1lBRkksVUFBVTs7O3FCQXlFbkMsS0FBSzsyQkFLTCxLQUFLO2lDQUdMLEtBQUs7cUJBR0wsS0FBSztxQ0FHTCxLQUFLO2dDQUdMLEtBQUs7MkJBR0wsS0FBSzswQkFHTCxLQUFLOytCQUdMLEtBQUs7d0JBR0wsS0FBSzt1QkFHTCxLQUFLLFNBQUMsWUFBWTt3QkFHbEIsS0FBSzt5QkFFTCxLQUFLO3NCQUlMLEtBQUs7c0JBSUwsS0FBSzswQkFNTCxNQUFNLFNBQUMsU0FBUzs0QkFJaEIsTUFBTSxTQUFDLFdBQVc7a0NBR2xCLE1BQU0sU0FBQyxpQkFBaUI7OztJQXpEeEIsSUFBSSxFQUFFO0lBQ04sTUFBTSxFQUFFOzs7O0lBSVIsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFOzs7O0lBR1IsTUFBTSxFQUFFO3NDQUNhLFFBQVE7OztJQUU3QixNQUFNLEVBQUU7c0NBQ1ksUUFBUTs7O0lBRTVCLE1BQU0sRUFBRTs7OztJQUdSLE1BQU0sRUFBRTs7OztJQUdSLE1BQU0sQ0FBQyxZQUFZLENBQUM7Ozs7SUFLcEIsTUFBTSxFQUFFOzs7O0lBSVIsTUFBTSxFQUFFO3NDQUNRLFdBQVc7OztJQUczQixNQUFNLEVBQUU7Ozs7SUFNUixNQUFNLENBQUMsTUFBTSxDQUFDO3NDQUNNLFlBQVk7OztJQUdoQyxNQUFNLENBQUMsUUFBUSxDQUFDO3NDQUNNLFlBQVk7OztJQUVsQyxNQUFNLENBQUMsY0FBYyxDQUFDO3NDQUNNLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgRWxlbWVudFJlZiwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdpemFyZE1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvV2l6YXJkTW9kZWwnO1xuaW1wb3J0IHsgUGhsb3hBcHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9QaGxveEFwcFNlcnZpY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBJSGFzTW9kZWwgfSBmcm9tICcuLi9JSGFzTW9kZWwnO1xuaW1wb3J0IHsgSUhhc0RhdGEgfSBmcm9tICcuLi9JSGFzRGF0YSc7XG5pbXBvcnQgeyBQaGxveEFwcCB9IGZyb20gJy4uL1BobG94QXBwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFdpemFyZFBhbmUgfSBmcm9tICcuL0Fic3RyYWN0V2l6YXJkUGFuZSc7XG5pbXBvcnQgeyBJQ2hhbmdlYWJsZSB9IGZyb20gJy4uL0lDaGFuZ2VhYmxlJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi8uLi9kZWNvcmF0b3IvSTE4Ti5kZWNvcmF0b3InO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJwaHgtcGFnaW5hdGlvbi13aXphcmQtcGFuZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicGh4LXBhZ2luYXRpb24td2l6YXJkLXBhbmVcIj5cblx0PGRpdiBjbGFzcz1cImxlZnRcIiBbc3R5bGUucGFkZGluZy10b3BdPVwiZ2V0SGVhZGVySGVpZ2h0KCkgKyAncHQnXCIgW3N0eWxlLnBhZGRpbmctYm90dG9tXT1cImdldEZvb3RlckhlaWdodCgpICsgJ3B0J1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJoZWFkZXJcIiBbc3R5bGUuaGVpZ2h0XT1cImdldEhlYWRlckhlaWdodCgpICsgJ3B0J1wiPlxuXHRcdFx0PG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdldE1vZGVsKCkgIT09IG51bGwgJiYgZ2V0TW9kZWwoKS5oZWFkZXIgIT09IG51bGxcIj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdldE1vZGVsKCkuaGVhZGVyLnR5cGUgPT09IG51bGxcIj5cblx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiZ2V0TW9kZWwoKS5oZWFkZXIuaW1hZ2VVUkwgIT09IG51bGwgJiYgZ2V0TW9kZWwoKS5oZWFkZXIuaW1hZ2VVUkwgIT09ICcnXCIgY2xhc3M9XCJoZWFkZXItaW1hZ2VcIj5cblx0XHRcdFx0XHRcdDxpbWcgc3JjPVwie3tnZXRNb2RlbCgpLmhlYWRlci5pbWFnZVVSTH19XCI+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImhlYWRlci1sYWJlbFwiPnt7Z2V0TW9kZWwoKS5oZWFkZXIubGFiZWx9fTwvZGl2PlxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nSWZdPVwiZ2V0TW9kZWwoKS5oZWFkZXIudHlwZSAhPT0gbnVsbFwiPlxuXHRcdFx0XHRcdDxwaHgtY29tcG9uZW50LXdyYXBwZXIgW3R5cGVdPVwiZ2V0TW9kZWwoKS5oZWFkZXIudHlwZVwiIFtkYXRhXT1cImdldE1vZGVsKCkuaGVhZGVyLm1vZGVsXCI+PC9waHgtY29tcG9uZW50LXdyYXBwZXI+XG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJib2R5XCI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgW25nSWZdPVwiZ2V0TW9kZWwoKSAhPT0gbnVsbCAmJiBnZXRNb2RlbCgpLnN0ZXBzICE9PSBudWxsXCI+XG5cdFx0XHRcdDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0TW9kZWwoKS5zdGVwczsgbGV0IGkgPSBpbmRleDtcIiBjbGFzcz1cInN0ZXBcIiBbY2xhc3MuYWN0aXZlXT1cImlzU3RlcFNlbGVjdGVkKGkpXCIgPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpdGVtLnR5cGUgPT09IG51bGxcIj5cblx0XHRcdFx0XHRcdDxkaXYgKGNsaWNrKT1cInN0ZXBTZWxlY3RlZChpKVwiPiB7e2l0ZW0ubGFiZWx9fSA8L2Rpdj5cblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpdGVtLnR5cGUgIT09IG51bGxcIj5cblx0XHRcdFx0XHRcdDxwaHgtY29tcG9uZW50LXdyYXBwZXIgW3R5cGVdPVwiaXRlbS50eXBlXCIgW2RhdGFdPVwiaXRlbS5tb2RlbFwiIChjbGljayk9XCJzdGVwU2VsZWN0ZWQoaSlcIj48L3BoeC1jb21wb25lbnQtd3JhcHBlcj5cblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImZvb3RlclwiIFtzdHlsZS5oZWlnaHRdPVwiZ2V0Rm9vdGVySGVpZ2h0KCkgKyAncHQnXCI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgW25nSWZdPVwiZ2V0TW9kZWwoKSAhPT0gbnVsbCAmJiBnZXRNb2RlbCgpLmZvb3RlciAhPT0gbnVsbFwiPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nSWZdPVwiZ2V0TW9kZWwoKS5mb290ZXIudHlwZSA9PT0gbnVsbFwiPlxuXHRcdFx0XHRcdHt7Z2V0TW9kZWwoKS5mb290ZXIubGFiZWx9fVxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nSWZdPVwiZ2V0TW9kZWwoKS5mb290ZXIudHlwZSAhPT0gbnVsbFwiPlxuXHRcdFx0XHRcdDxwaHgtY29tcG9uZW50LXdyYXBwZXIgW3R5cGVdPVwiZ2V0TW9kZWwoKS5mb290ZXIudHlwZVwiIFtkYXRhXT1cImdldE1vZGVsKCkuZm9vdGVyLm1vZGVsXCI+PC9waHgtY29tcG9uZW50LXdyYXBwZXI+XG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cInJpZ2h0XCI+XG5cdFx0PG5nLXRlbXBsYXRlIFtuZ0lmXT1cImdldE1vZGVsKCkgIT09IG51bGwgJiYgZ2V0TW9kZWwoKS5zdGVwcyAhPT0gbnVsbFwiPlxuXHRcdFx0PCEtLSA8cGh4LWNvbXBvbmVudC13cmFwcGVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1vZGVsLnN0ZXBzOyBsZXQgaSA9IGluZGV4O1wiIFtjbGFzcy5hY3RpdmVdPVwiaXNTdGVwU2VsZWN0ZWQoaSlcIiBbdHlwZV09XCJpdGVtLmNvbXBvbmVudFR5cGVcIlxuXHRcdFx0XHRbZGF0YV09XCJkYXRhXCIgW21vZGVsXT1cIml0ZW0uY29tcG9uZW50TW9kZWxcIiBbZGF0YVBhcmVudF09XCJ0aGlzXCIgW2hhbmRsZXJdPVwic3RlcHNDb21wb25lbnRIYW5kbGVyXCI+PC9waHgtY29tcG9uZW50LXdyYXBwZXI+IC0tPlxuXHRcdFx0XHQ8cGh4LWNvbXBvbmVudC13cmFwcGVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldE1vZGVsKCkuc3RlcHM7IGxldCBpID0gaW5kZXg7XCIgW2NsYXNzLmFjdGl2ZV09XCJpc1N0ZXBTZWxlY3RlZChpKVwiIFt0eXBlXT1cIml0ZW0uY29tcG9uZW50VHlwZVwiXG5cdFx0XHRcdFx0W2RhdGFdPVwiZ2V0RGF0YSgpXCIgW21vZGVsXT1cIml0ZW0uY29tcG9uZW50TW9kZWxcIiBbb3B0aW9uc109XCJpdGVtLmNvbXBvbmVudE9wdGlvbnNcIiBbZGF0YVBhcmVudF09XCJ0aGlzXCI+PC9waHgtY29tcG9uZW50LXdyYXBwZXI+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0PC9kaXY+XG48L2Rpdj5cbmBcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbldpemFyZFBhbmUgZXh0ZW5kcyBBYnN0cmFjdFdpemFyZFBhbmUgaW1wbGVtZW50cyBPbkluaXQsIElIYXNNb2RlbCwgSUNoYW5nZWFibGUge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFlQRV9OQU1FOiBzdHJpbmcgPSBUWVBFX05BTUU7XG5cbiAgLy8gUmUtZGVjbGFyZSBmaWVsZCB0byBkZWNsYXJlIG5nIEBJbnB1dC5cbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhSGVscFxuICBASW5wdXQoKVxuICBASTE4TigpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaGVscDogYW55O1xuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBkYXRhUGFyZW50OiBJSGFzRGF0YTtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBpZ25vcmVQYXJlbnREYXRhOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRhdGE6IGFueTtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBpZ25vcmVQYXJlbnREaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBkZWxlZ2F0ZUhpc3Rvcnk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgb25EaXNhYmxlZDogRnVuY3Rpb247XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgb25FbmFibGVkOiBGdW5jdGlvbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBsb2FkaW5nRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBpMThuS2V5OiBzdHJpbmc7XG4gIEBJbnB1dCgnaTE4bkJ5cGFzcycpXG4gIEBPcHRpb24oJ2kxOG5CeXBhc3MnKVxuICBwcm90ZWN0ZWQgYnlwYXNzOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBwcm90ZWN0ZWQgb3B0aW9uczogYW55O1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRpc2FibGVkOiBib29sZWFuO1xuICAvLyAtLS0gZnJvbSBBYnN0cmFjdFdpemFyZFBhbmVcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBtb2RlbDogV2l6YXJkTW9kZWw7XG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0RGF0YVZpZXdcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBmaWVsZDogc3RyaW5nO1xuXG4gIC8vIFJlLWRlY2xhcmUgZmllbGQgdG8gZGVjbGFyZSBuZyBAT3V0cHV0LlxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcbiAgQE91dHB1dCgncGh4TG9hZCcpXG4gIEBPcHRpb24oJ2xvYWQnKVxuICBwcm90ZWN0ZWQgbG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RXaXphcmRQYW5lXG4gIEBPdXRwdXQoJ3BoeENoYW5nZScpXG4gIEBPcHRpb24oJ2NoYW5nZScpXG4gIHByb3RlY3RlZCBjaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUNoYW5nZScpXG4gIEBPcHRpb24oJ2JlZm9yZUNoYW5nZScpXG4gIHByb3RlY3RlZCBiZWZvcmVDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgY29uc3RydWN0b3IoYXBwU3ZjOiBQaGxveEFwcFNlcnZpY2UsIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihhcHBTdmMsIGVsZW1lbnRSZWYpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gIH1cblxuICBwdWJsaWMgc2hvd1N0ZXBDb250ZW50KGluZGV4OiBudW1iZXIpOiB2b2lkIHsgfVxuXG4gIHB1YmxpYyBnZXRTdGVwSW5zdGFuY2UoaW5kZXg6IG51bWJlcik6IGFueSB7IH1cbn1cbiJdfQ==