UNPKG

@hpe/angular-toolkit

Version:

Hewlett-Packard Enterprise : Angular toolkit for rapid project development

245 lines (235 loc) 20.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ //============================================================================= //=== //=== (C) Copyright 2018 Hewlett Packard Enterprise Development LP. //=== //=== Use of this source code is governed by an MIT-style license that can be //=== found in the LICENSE file //============================================================================= import { Component, EventEmitter, Input, Output } from '@angular/core'; import { LabelService } from "@hpe/angular-toolkit/service"; /** * @template T */ //============================================================================= export class ListPanel { /** * @param {?} labelService */ constructor(labelService) { this.labelService = labelService; //------------------------------------------------------------------------- this.onRowSelected = new EventEmitter(); this.onRowUnselected = new EventEmitter(); } /** * @return {?} */ refresh() { this.loading = false; this.failed = false; this.overflow = false; this.filteredSize = null; //--- Remove subscription to service (if any) if (this.service != null) { this.loading = true; this.service().subscribe(result => { this.loading = false; this.data = (result.results); this.filteredSize = (result.results.length); this.overflow = (result.overflow); }, error => { console.log("Service raised an error : " + JSON.stringify(error)); this.data = []; this.loading = false; this.failed = true; }); } } /** * @return {?} */ get color() { return (this.overflow) ? 'orange' : 'slate'; } /** * @return {?} */ get exportSelTooltip() { return this.loc("exportSel.tooltip"); } /** * @return {?} */ get exportAllTooltip() { return this.loc("exportAll.tooltip"); } /** * @return {?} */ get refreshTooltip() { return this.loc("refresh.tooltip"); } /** * @return {?} */ ngOnInit() { this.refresh(); } /** * @param {?} event * @return {?} */ onFilterChange(event) { this.filteredSize = event.filteredSize; } /** * @param {?} event * @return {?} */ onRowSelect(event) { this.onRowSelected.emit(event.row); } /** * @param {?} event * @return {?} */ onRowUnselect(event) { this.onRowUnselected.emit(event.row); } /** * @param {?} code * @return {?} */ loc(code) { return this.labelService.getLabel("list-panel", code); } } ListPanel.decorators = [ { type: Component, args: [{ selector: 'hpe-list-panel', template: `<!-- ============================================================================= === === (C) Copyright 2018 Hewlett Packard Enterprise Development LP. === === Use of this source code is governed by an MIT-style license that can be === found in the LICENSE file ============================================================================= --> <hpe-card-panel icon="{{icon}}" title="{{title}}"> <hpe-rounded-text [text]="filteredSize" [color]="color" cpPostTitle></hpe-rounded-text> <ng-content select="lpButtons"></ng-content> <hpe-title-button cpControl icon = "fa-file-o" [tooltip] = "exportSelTooltip" [disabled] = "loading || failed" (click) = "lt.exportSelected()" ></hpe-title-button> <hpe-title-button cpControl icon = "fa-files-o" [tooltip] = "exportAllTooltip" [disabled] = "loading || failed" (click) = "lt.exportAll()" ></hpe-title-button> <hpe-title-button cpControl icon = "fa-refresh" [tooltip] = "refreshTooltip" [disabled] = "loading" (click) = "refresh()" ></hpe-title-button> <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> <div cpBody class="innerPanel"> <hpe-list-table #lt [rowId] = "rowId" [columns] = "columns" [visibleColumns] = "visibleColumns" [data] = "data" [contextMenu] = "contextMenu" [multiSelection] = "multiSelection" [menuSelector] = "menuSelector" [loading] = "loading" [labelGroup] = "labelGroup" (onFilterChange) = "onFilterChange($event)" (onRowSelected) = "onRowSelect($event)" (onRowUnselected)= "onRowUnselect($event)" ></hpe-list-table> <ng-content select="lpControls"></ng-content> </div> </hpe-card-panel> `, styles: [`.innerPanel{padding:8px}`] },] }, ]; /** @nocollapse */ ListPanel.ctorParameters = () => [ { type: LabelService, }, ]; ListPanel.propDecorators = { "icon": [{ type: Input },], "title": [{ type: Input },], "rowId": [{ type: Input },], "columns": [{ type: Input },], "visibleColumns": [{ type: Input },], "multiSelection": [{ type: Input },], "contextMenu": [{ type: Input },], "menuSelector": [{ type: Input },], "service": [{ type: Input },], "labelGroup": [{ type: Input },], "onRowSelected": [{ type: Output },], "onRowUnselected": [{ type: Output },], }; function ListPanel_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ ListPanel.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ ListPanel.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ ListPanel.propDecorators; /** @type {?} */ ListPanel.prototype.icon; /** @type {?} */ ListPanel.prototype.title; /** @type {?} */ ListPanel.prototype.rowId; /** @type {?} */ ListPanel.prototype.columns; /** @type {?} */ ListPanel.prototype.visibleColumns; /** @type {?} */ ListPanel.prototype.multiSelection; /** @type {?} */ ListPanel.prototype.contextMenu; /** @type {?} */ ListPanel.prototype.menuSelector; /** @type {?} */ ListPanel.prototype.service; /** @type {?} */ ListPanel.prototype.labelGroup; /** @type {?} */ ListPanel.prototype.onRowSelected; /** @type {?} */ ListPanel.prototype.onRowUnselected; /** @type {?} */ ListPanel.prototype.loading; /** @type {?} */ ListPanel.prototype.failed; /** @type {?} */ ListPanel.prototype.overflow; /** @type {?} */ ListPanel.prototype.filteredSize; /** @type {?} */ ListPanel.prototype.data; /** @type {?} */ ListPanel.prototype.labelService; } //============================================================================= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BocGUvYW5ndWxhci10b29sa2l0L2d1aS9wYW5lbC8iLCJzb3VyY2VzIjpbImxpc3QtcGFuZWwvbGlzdC1wYW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQVFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFTN0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFZLDhCQUE4QixDQUFDOzs7O0FBSWhFO0FBa0VBLE1BQU07Ozs7SUFzQ0wsWUFBb0IsWUFBMkI7UUFBM0IsaUJBQVksR0FBWixZQUFZLENBQWU7OzZCQWpCZ0IsSUFBSSxZQUFZLEVBQW9COytCQUNwQyxJQUFJLFlBQVksRUFBc0I7S0FpQnBHOzs7O0lBUU0sT0FBTztRQUViLElBQUksQ0FBQyxPQUFPLEdBQVEsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQVMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQU8sS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDOztRQUl6QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFFcEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FDdkIsTUFBTSxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBUSxLQUFLLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxJQUFJLEdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDLEVBQ0QsS0FBSyxDQUFDLEVBQUU7Z0JBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsR0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxJQUFJLEdBQU0sRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBSSxJQUFJLENBQUM7YUFDcEIsQ0FBQyxDQUFDO1NBQ0o7Ozs7O0lBS0YsSUFBSSxLQUFLO1FBQ1IsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNuQixDQUFDLENBQUMsUUFBUTtZQUNWLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDYjs7OztJQU1ELElBQUksZ0JBQWdCO1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDckM7Ozs7SUFJRCxJQUFJLGdCQUFnQjtRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBQ3JDOzs7O0lBSUQsSUFBSSxjQUFjO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDbkM7Ozs7SUFRRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ2Y7Ozs7O0lBUUQsY0FBYyxDQUFDLEtBQXlCO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztLQUN2Qzs7Ozs7SUFJRCxXQUFXLENBQUMsS0FBd0I7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ25DOzs7OztJQUlELGFBQWEsQ0FBQyxLQUEwQjtRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckM7Ozs7O0lBUU8sR0FBRyxDQUFDLElBQWE7UUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQzs7OztZQWhOdkQsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBVSxnQkFBZ0I7Z0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTBEVjtnQkFDQSxNQUFNLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzthQUNwQzs7OztZQWxFTyxZQUFZOzs7cUJBOEVsQixLQUFLO3NCQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLOytCQUNMLEtBQUs7K0JBQ0wsS0FBSzs0QkFDTCxLQUFLOzZCQUNMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLOzhCQUlMLE1BQU07Z0NBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vPT09XG4vLz09PSAoQykgQ29weXJpZ2h0IDIwMTggSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFAuXG4vLz09PVxuLy89PT0gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbi8vPT09IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGVcbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtMaXN0VGFibGVDb2x1bW59ICAgIGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuaW1wb3J0IHtNZW51fSAgICAgICAgICAgICAgIGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuaW1wb3J0IHtMaXN0QmFja2VuZFNlcnZpY2V9IGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuaW1wb3J0IHtGaWx0ZXJDaGFuZ2VFdmVudH0gIGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuaW1wb3J0IHtNZW51U2VsZWN0b3J9ICAgICAgIGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuaW1wb3J0IHtSb3dTZWxlY3RlZEV2ZW50fSAgIGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuaW1wb3J0IHtSb3dVbnNlbGVjdGVkRXZlbnR9IGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuaW1wb3J0IHtMYWJlbFNlcnZpY2V9ICAgICAgIGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9zZXJ2aWNlXCI7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yICAgIDogICAgICdocGUtbGlzdC1wYW5lbCcsXG5cdHRlbXBsYXRlOiBgPCEtLVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbj09PVxuPT09IChDKSBDb3B5cmlnaHQgMjAxOCBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUC5cbj09PVxuPT09IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG49PT0gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi0tPlxuXG48aHBlLWNhcmQtcGFuZWwgaWNvbj1cInt7aWNvbn19XCIgdGl0bGU9XCJ7e3RpdGxlfX1cIj5cblx0PGhwZS1yb3VuZGVkLXRleHQgW3RleHRdPVwiZmlsdGVyZWRTaXplXCIgW2NvbG9yXT1cImNvbG9yXCIgY3BQb3N0VGl0bGU+PC9ocGUtcm91bmRlZC10ZXh0PlxuXG5cdDxuZy1jb250ZW50IHNlbGVjdD1cImxwQnV0dG9uc1wiPjwvbmctY29udGVudD5cblxuXHQ8aHBlLXRpdGxlLWJ1dHRvbiAgIGNwQ29udHJvbFxuXHQgICAgICAgICAgICAgICAgaWNvbiAgICAgICA9IFwiZmEtZmlsZS1vXCJcblx0ICAgICAgICAgICAgICAgIFt0b29sdGlwXSAgPSBcImV4cG9ydFNlbFRvb2x0aXBcIlxuXHQgICAgICAgICAgICAgICAgW2Rpc2FibGVkXSA9IFwibG9hZGluZyB8fCBmYWlsZWRcIlxuXHQgICAgICAgICAgICAgICAgKGNsaWNrKSAgICA9IFwibHQuZXhwb3J0U2VsZWN0ZWQoKVwiXG5cdFx0XHRcdFx0PjwvaHBlLXRpdGxlLWJ1dHRvbj5cblxuXHQ8aHBlLXRpdGxlLWJ1dHRvbiAgIGNwQ29udHJvbFxuXHRcdFx0XHRcdGljb24gICAgICAgPSBcImZhLWZpbGVzLW9cIlxuXHRcdFx0XHRcdFt0b29sdGlwXSAgPSBcImV4cG9ydEFsbFRvb2x0aXBcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF0gPSBcImxvYWRpbmcgfHwgZmFpbGVkXCJcblx0XHRcdFx0XHQoY2xpY2spICAgID0gXCJsdC5leHBvcnRBbGwoKVwiXG5cdFx0XHRcdFx0PjwvaHBlLXRpdGxlLWJ1dHRvbj5cblxuXHQ8aHBlLXRpdGxlLWJ1dHRvbiAgIGNwQ29udHJvbFxuXHRcdFx0XHRcdGljb24gICAgICAgPSBcImZhLXJlZnJlc2hcIlxuXHRcdFx0XHRcdFt0b29sdGlwXSAgPSBcInJlZnJlc2hUb29sdGlwXCJcblx0XHRcdFx0XHRbZGlzYWJsZWRdID0gXCJsb2FkaW5nXCJcblx0XHRcdFx0XHQoY2xpY2spICAgID0gXCJyZWZyZXNoKClcIlxuXHRcdFx0XHRcdD48L2hwZS10aXRsZS1idXR0b24+XG5cblx0PCEtLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLS0+XG5cblx0PGRpdiBjcEJvZHkgY2xhc3M9XCJpbm5lclBhbmVsXCI+XG5cdFx0PGhwZS1saXN0LXRhYmxlICNsdFxuXHRcdFx0XHRcdFtyb3dJZF0gICAgICAgICAgPSBcInJvd0lkXCJcblx0XHRcdFx0XHRbY29sdW1uc10gICAgICAgID0gXCJjb2x1bW5zXCJcblx0XHRcdFx0XHRbdmlzaWJsZUNvbHVtbnNdID0gXCJ2aXNpYmxlQ29sdW1uc1wiXG5cdFx0XHRcdFx0W2RhdGFdICAgICAgICAgICA9IFwiZGF0YVwiXG5cdFx0XHRcdFx0W2NvbnRleHRNZW51XSAgICA9IFwiY29udGV4dE1lbnVcIlxuXHRcdFx0XHRcdFttdWx0aVNlbGVjdGlvbl0gPSBcIm11bHRpU2VsZWN0aW9uXCJcblx0XHRcdFx0XHRbbWVudVNlbGVjdG9yXSAgID0gXCJtZW51U2VsZWN0b3JcIlxuXHRcdFx0XHRcdFtsb2FkaW5nXSAgICAgICAgPSBcImxvYWRpbmdcIlxuXHRcdFx0XHRcdFtsYWJlbEdyb3VwXSAgICAgPSBcImxhYmVsR3JvdXBcIlxuXHRcdFx0XHRcdChvbkZpbHRlckNoYW5nZSkgPSBcIm9uRmlsdGVyQ2hhbmdlKCRldmVudClcIlxuXHRcdFx0XHRcdChvblJvd1NlbGVjdGVkKSAgPSBcIm9uUm93U2VsZWN0KCRldmVudClcIlxuXHRcdCAgICAgICAgICAgIChvblJvd1Vuc2VsZWN0ZWQpPSBcIm9uUm93VW5zZWxlY3QoJGV2ZW50KVwiXG5cdFx0XHRcdFx0PjwvaHBlLWxpc3QtdGFibGU+XG5cblx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJscENvbnRyb2xzXCI+PC9uZy1jb250ZW50PlxuXHQ8L2Rpdj5cblxuPC9ocGUtY2FyZC1wYW5lbD5cbmAsXG5cdHN0eWxlczogW2AuaW5uZXJQYW5lbHtwYWRkaW5nOjhweH1gXVxufSlcblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY2xhc3MgTGlzdFBhbmVsPFQ+IGltcGxlbWVudHMgT25Jbml0IHtcblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8tLS1cblx0Ly8tLS0gVmFyaWFibGVzXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdEBJbnB1dCgpIGljb24gICAgICAgICAgIDogc3RyaW5nO1xuXHRASW5wdXQoKSB0aXRsZSAgICAgICAgICA6IHN0cmluZztcblx0QElucHV0KCkgcm93SWQgICAgICAgICAgOiBhbnk7XG5cdEBJbnB1dCgpIGNvbHVtbnMgICAgICAgIDogTGlzdFRhYmxlQ29sdW1uW107XG5cdEBJbnB1dCgpIHZpc2libGVDb2x1bW5zIDogc3RyaW5nW107XG5cdEBJbnB1dCgpIG11bHRpU2VsZWN0aW9uIDogYm9vbGVhbjtcblx0QElucHV0KCkgY29udGV4dE1lbnUgICAgOiBNZW51W107XG5cdEBJbnB1dCgpIG1lbnVTZWxlY3RvciAgIDogTWVudVNlbGVjdG9yO1xuXHRASW5wdXQoKSBzZXJ2aWNlICAgICAgICA6IExpc3RCYWNrZW5kU2VydmljZTxUPjtcblx0QElucHV0KCkgbGFiZWxHcm91cCAgICAgOiBzdHJpbmc7XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0QE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgICA6IEV2ZW50RW1pdHRlcjxSb3dTZWxlY3RlZEV2ZW50PiAgID0gbmV3IEV2ZW50RW1pdHRlcjxSb3dTZWxlY3RlZEV2ZW50PigpO1xuXHRAT3V0cHV0KCkgb25Sb3dVbnNlbGVjdGVkIDogRXZlbnRFbWl0dGVyPFJvd1Vuc2VsZWN0ZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJvd1Vuc2VsZWN0ZWRFdmVudD4oKTtcblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRsb2FkaW5nICAgICAgOiBib29sZWFuO1xuXHRmYWlsZWQgICAgICAgOiBib29sZWFuO1xuXHRvdmVyZmxvdyAgICAgOiBib29sZWFuO1xuXHRmaWx0ZXJlZFNpemUgOiBudW1iZXI7XG5cdGRhdGEgICAgICAgICA6IGFueVtdO1xuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBDb25zdHJ1Y3RvclxuXHQvLy0tLVxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGxhYmVsU2VydmljZSA6IExhYmVsU2VydmljZSkge1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vLS0tXG5cdC8vLS0tIEFQSSBtZXRob2RzXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyByZWZyZXNoKCkgOiB2b2lkIHtcblxuXHRcdHRoaXMubG9hZGluZyAgICAgID0gZmFsc2U7XG5cdFx0dGhpcy5mYWlsZWQgICAgICAgPSBmYWxzZTtcblx0XHR0aGlzLm92ZXJmbG93ICAgICA9IGZhbHNlO1xuXHRcdHRoaXMuZmlsdGVyZWRTaXplID0gbnVsbDtcblxuXHRcdC8vLS0tIFJlbW92ZSBzdWJzY3JpcHRpb24gdG8gc2VydmljZSAoaWYgYW55KVxuXG5cdFx0aWYgKHRoaXMuc2VydmljZSAhPSBudWxsKSB7XG5cdFx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG5cdFx0XHR0aGlzLnNlcnZpY2UoKS5zdWJzY3JpYmUoXG5cdFx0XHRcdHJlc3VsdCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5sb2FkaW5nICAgICAgPSBmYWxzZTtcblx0XHRcdFx0XHR0aGlzLmRhdGEgICAgICAgICA9IChyZXN1bHQucmVzdWx0cyk7XG5cdFx0XHRcdFx0dGhpcy5maWx0ZXJlZFNpemUgPSAocmVzdWx0LnJlc3VsdHMubGVuZ3RoKTtcblx0XHRcdFx0XHR0aGlzLm92ZXJmbG93ICAgICA9IChyZXN1bHQub3ZlcmZsb3cpO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRlcnJvciA9PiB7XG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXCJTZXJ2aWNlIHJhaXNlZCBhbiBlcnJvciA6IFwiKyBKU09OLnN0cmluZ2lmeShlcnJvcikpO1xuXHRcdFx0XHRcdHRoaXMuZGF0YSAgICA9IFtdO1xuXHRcdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuZmFpbGVkICA9IHRydWU7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdGdldCBjb2xvcigpIDogc3RyaW5nIHtcblx0XHRyZXR1cm4gKHRoaXMub3ZlcmZsb3cpXG5cdFx0XHRcdFx0PyAnb3JhbmdlJ1xuXHRcdFx0XHRcdDogJ3NsYXRlJztcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLSBMb2NhbGl6YXRpb24gc3R1ZmZcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0Z2V0IGV4cG9ydFNlbFRvb2x0aXAoKSA6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubG9jKFwiZXhwb3J0U2VsLnRvb2x0aXBcIik7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRnZXQgZXhwb3J0QWxsVG9vbHRpcCgpIDogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5sb2MoXCJleHBvcnRBbGwudG9vbHRpcFwiKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdGdldCByZWZyZXNoVG9vbHRpcCgpIDogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5sb2MoXCJyZWZyZXNoLnRvb2x0aXBcIik7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8tLS1cblx0Ly8tLS0gTGlmZWN5Y2xlIGV2ZW50c1xuXHQvLy0tLVxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLnJlZnJlc2goKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBMaXN0VGFibGUgZXZlbnRzXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdG9uRmlsdGVyQ2hhbmdlKGV2ZW50IDogRmlsdGVyQ2hhbmdlRXZlbnQpIHtcblx0XHR0aGlzLmZpbHRlcmVkU2l6ZSA9IGV2ZW50LmZpbHRlcmVkU2l6ZTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdG9uUm93U2VsZWN0KGV2ZW50IDogUm93U2VsZWN0ZWRFdmVudCkge1xuXHRcdHRoaXMub25Sb3dTZWxlY3RlZC5lbWl0KGV2ZW50LnJvdyk7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRvblJvd1Vuc2VsZWN0KGV2ZW50IDogUm93VW5zZWxlY3RlZEV2ZW50KSB7XG5cdFx0dGhpcy5vblJvd1Vuc2VsZWN0ZWQuZW1pdChldmVudC5yb3cpO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vLS0tXG5cdC8vLS0tIFByaXZhdGUgbWV0aG9kc1xuXHQvLy0tLVxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwcml2YXRlIGxvYyhjb2RlIDogc3RyaW5nKSA6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubGFiZWxTZXJ2aWNlLmdldExhYmVsKFwibGlzdC1wYW5lbFwiLCBjb2RlKTtcblx0fVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iXX0=