Repository URL to install this package:
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component } from '@angular/core';
import { PluginView } from 'web-console-core';
import { WCToasterService } from 'web-console-ui-kit';
import { Gridster } from 'web-console-ui-kit';
import { timer } from 'rxjs';
var DashboardTestComponent = /** @class */ (function () {
//chart <<=======
function DashboardTestComponent(toaster) {
this.toaster = toaster;
this.dateTime = new Date;
this.counter = 1;
this.numOfSessions = 4;
this.gaugeType = "semi";
this.gaugeValue = 33;
this.gaugeLabel = "";
this.gaugeAppendText = "%";
this.view = [700, 400];
// options
this.showXAxis = true;
this.showYAxis = true;
this.gradient = false;
this.showLegend = true;
this.showXAxisLabel = true;
this.xAxisLabel = 'Country';
this.showYAxisLabel = true;
this.yAxisLabel = 'Population';
this.colorScheme = {
domain: ['#5AA454', '#A10A28', '#C7B42C', '#AAAAAA']
};
// line, area
this.autoScale = true;
this.single = [
{
"name": "Germany",
"value": 8940000
},
{
"name": "USA",
"value": 5000000
},
{
"name": "France",
"value": 7200000
}
];
this.multi = [
{
"name": "Germany",
"series": [
{
"name": "2010",
"value": 7300000
},
{
"name": "2011",
"value": 8940000
}
]
},
{
"name": "USA",
"series": [
{
"name": "2010",
"value": 7870000
},
{
"name": "2011",
"value": 8270000
}
]
},
{
"name": "France",
"series": [
{
"name": "2010",
"value": 5000002
},
{
"name": "2011",
"value": 5800000
}
]
}
];
}
/**
* @param {?} item
* @param {?} itemComponent
* @return {?}
*/
DashboardTestComponent.prototype.itemChange = /**
* @param {?} item
* @param {?} itemComponent
* @return {?}
*/
function (item, itemComponent) {
console.info('itemChanged', item, itemComponent);
};
/**
* @param {?} item
* @param {?} itemComponent
* @return {?}
*/
DashboardTestComponent.prototype.itemResize = /**
* @param {?} item
* @param {?} itemComponent
* @return {?}
*/
function (item, itemComponent) {
console.info('itemResized', item, itemComponent);
};
/**
* @return {?}
*/
DashboardTestComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.options = {
itemChangeCallback: this.itemChange,
itemResizeCallback: this.itemResize,
gridType: Gridster.GridType.Fixed,
compactType: Gridster.CompactType.None,
draggable: {
enabled: true
},
resizable: {
enabled: true,
},
displayGrid: 'onDrag&Resize',
minCols: 3,
maxCols: 100,
minRows: 3,
maxRows: 100,
maxItemCols: 100,
minItemCols: 1,
maxItemRows: 100,
minItemRows: 1,
maxItemArea: 2500,
minItemArea: 1,
defaultItemCols: 1,
defaultItemRows: 1,
fixedColWidth: 70,
fixedRowHeight: 70
};
this.operationCountsItem = { cols: 3, rows: 2, y: 0, x: 0 };
this.dateTimeItem = { cols: 5, rows: 2, y: 0, x: 3 };
this.gaugeItem = { cols: 3, rows: 3, y: 0, x: 8 };
timer(0, 1560).subscribe(function (x) {
_this.counter++;
});
timer(0, 1000).subscribe(function (x) {
_this.dateTime = new Date();
});
};
/**
* @return {?}
*/
DashboardTestComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
DashboardTestComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
};
/**
* @param {?} event
* @return {?}
*/
DashboardTestComponent.prototype.onSelect = /**
* @param {?} event
* @return {?}
*/
function (event) {
console.log(event);
};
DashboardTestComponent.decorators = [
{ type: Component, args: [{
selector: 'wc-uikit-ks-dashboard-test',
template: "<wc-dashboard-header [title]=\"'Dashboard'\"></wc-dashboard-header>\n\n <gridster [options]=\"options\" class=\"row\">\n\n <ng-template [aclPermission]=\"['test23']\" >\n <gridster-item [item]=\"operationCountsItem\">\n <wc-panel [title]=\"'Operations Count'\">\n <wc-data-counter [title]=\"'REST Calls'\" [value]=\"counter\"></wc-data-counter>\n </wc-panel>\n </gridster-item>\n </ng-template>\n \n \n <ng-template [aclPermissionOneOf]=\"['test20', 'test1']\" >\n <gridster-item [item]=\"dateTimeItem\">\n <wc-panel [title]=\"'Today'\"> \n <wc-data-counter [title]=\"dateTime | date \" [value]=\"dateTime | date:'h:mm.ss a' \"></wc-data-counter>\n </wc-panel>\n </gridster-item>\n </ng-template>\n \n\n <gridster-item [item]=\"gaugeItem\">\n <wc-panel [title]=\"'CPU Usage'\">\n <ngx-gauge [type]=\"gaugeType\" \n [value]=\"gaugeValue\" \n [label]=\"gaugeLabel\" \n [append]=\"gaugeAppendText\"\n [thick]=\"10\"\n [foregroundColor]=\"'#fc0'\"\n [cap]=\"'flat'\">\n </ngx-gauge>\n </wc-panel>\n </gridster-item>\n\n <gridster-item [item]=\"{cols: 8, rows: 3, y: 2, x: 0}\">\n <wc-panel [title]=\"'Chart Demo'\">\n <ngx-charts-area-chart\n [view]=\"view\"\n [scheme]=\"colorScheme\"\n [results]=\"multi\"\n [gradient]=\"gradient\"\n [xAxis]=\"showXAxis\"\n [yAxis]=\"showYAxis\"\n [legend]=\"showLegend\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxisLabel]=\"xAxisLabel\"\n [yAxisLabel]=\"yAxisLabel\"\n [autoScale]=\"autoScale\"\n (select)=\"onSelect($event)\">\n </ngx-charts-area-chart>\n </wc-panel>\n </gridster-item>\n \n <gridster-item [item]=\"{cols: 8, rows: 3, y: 2, x: 8}\">\n <wc-panel [title]=\"'Chart Demo'\">\n <ngx-charts-heat-map\n [view]=\"view\"\n [scheme]=\"colorScheme\"\n [results]=\"multi\"\n [legend]=\"showLegend\"\n [gradient]=\"gradient\"\n [xAxis]=\"showXAxis\"\n [yAxis]=\"showYAxis\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxisLabel]=\"xAxisLabel\"\n [yAxisLabel]=\"yAxisLabel\"\n (select)=\"onSelect($event)\">\n </ngx-charts-heat-map>\n </wc-panel>\n </gridster-item>\n\n\n <gridster-item [item]=\"{cols: 8, rows: 3, y: 2, x: 8}\">\n <wc-panel [title]=\"'Chart Demo'\">\n <ngx-charts-gauge\n [view]=\"view\"\n [scheme]=\"colorScheme\"\n [results]=\"single\"\n [min]=\"0\"\n [max]=\"100\"\n [angleSpan]=\"240\"\n [startAngle]=\"-120\"\n [units]=\"'alerts'\"\n [bigSegments]=\"10\"\n [smallSegments]=\"5\"\n (select)=\"onSelect($event)\">\n </ngx-charts-gauge>\n </wc-panel>\n</gridster-item>\n\n\n</gridster>\n\n\n\n",
styles: [""]
},] },
];
DashboardTestComponent.ctorParameters = function () { return [
{ type: WCToasterService }
]; };
DashboardTestComponent = tslib_1.__decorate([
PluginView("Dashboard", {
iconName: "ico-json"
}),
tslib_1.__metadata("design:paramtypes", [WCToasterService])
], DashboardTestComponent);
return DashboardTestComponent;
}());
export { DashboardTestComponent };
if (false) {
/** @type {?} */
DashboardTestComponent.prototype.dateTime;
/** @type {?} */
DashboardTestComponent.prototype.counter;
/** @type {?} */
DashboardTestComponent.prototype.options;
/** @type {?} */
DashboardTestComponent.prototype.operationCountsItem;
/** @type {?} */
DashboardTestComponent.prototype.dateTimeItem;
/** @type {?} */
DashboardTestComponent.prototype.gaugeItem;
/** @type {?} */
DashboardTestComponent.prototype.numOfSessions;
/** @type {?} */
DashboardTestComponent.prototype.gaugeType;
/** @type {?} */
DashboardTestComponent.prototype.gaugeValue;
/** @type {?} */
DashboardTestComponent.prototype.gaugeLabel;
/** @type {?} */
DashboardTestComponent.prototype.gaugeAppendText;
/** @type {?} */
DashboardTestComponent.prototype.single;
/** @type {?} */
DashboardTestComponent.prototype.multi;
/** @type {?} */
DashboardTestComponent.prototype.view;
/** @type {?} */
DashboardTestComponent.prototype.showXAxis;
/** @type {?} */
DashboardTestComponent.prototype.showYAxis;
/** @type {?} */
DashboardTestComponent.prototype.gradient;
/** @type {?} */
DashboardTestComponent.prototype.showLegend;
/** @type {?} */
DashboardTestComponent.prototype.showXAxisLabel;
/** @type {?} */
DashboardTestComponent.prototype.xAxisLabel;
/** @type {?} */
DashboardTestComponent.prototype.showYAxisLabel;
/** @type {?} */
DashboardTestComponent.prototype.yAxisLabel;
/** @type {?} */
DashboardTestComponent.prototype.colorScheme;
/** @type {?} */
DashboardTestComponent.prototype.autoScale;
/** @type {?} */
DashboardTestComponent.prototype.toaster;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXRlc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vd2EtbW90aWYtb3Blbi1hcGkta2l0Y2hlbnNpbmstbW9kdWxlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZGFzaGJvYXJkL2Rhc2hib2FyZC10ZXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNELE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQW1DLE1BQU0sa0JBQWtCLENBQUE7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7O0lBc0ozQixpQkFBaUI7SUFFakIsZ0NBQW9CLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBMUM3QyxhQUFRLEdBQVEsSUFBSSxJQUFJLENBQUM7UUFDekIsWUFBTyxHQUFXLENBQUMsQ0FBQztRQU9iLGtCQUFhLEdBQVEsQ0FBQyxDQUFDO1FBRTlCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFDbkIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO1FBT3RCLFNBQUksR0FBVSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV6QixVQUFVO1FBQ1YsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixlQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsSUFB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d0tsQztJQUFELDZCQUFDO0NBQUEsSUFBQTtTQXhLWSxzQkFBc0I7OztJQUVqQywwQ0FBeUI7O0lBQ3pCLHlDQUFvQjs7SUFDcEIseUNBQWlDOztJQUVqQyxxREFBMEM7O0lBQzFDLDhDQUFtQzs7SUFDbkMsMkNBQWdDOztJQUVoQywrQ0FBOEI7O0lBRTlCLDJDQUFtQjs7SUFDbkIsNENBQWdCOztJQUNoQiw0Q0FBZ0I7O0lBQ2hCLGlEQUFzQjs7SUFJdEIsd0NBQWM7O0lBQ2QsdUNBQWE7O0lBRWIsc0NBQXlCOztJQUd6QiwyQ0FBaUI7O0lBQ2pCLDJDQUFpQjs7SUFDakIsMENBQWlCOztJQUNqQiw0Q0FBa0I7O0lBQ2xCLGdEQUFzQjs7SUFDdEIsNENBQXVCOztJQUN2QixnREFBc0I7O0lBQ3RCLDRDQUEwQjs7SUFFMUIsNkNBRUU7O0lBR0YsMkNBQWlCOztJQUtMLHlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGx1Z2luVmlldywgU3RhdHVzQmFyU2VydmljZSwgU3RhdHVzQmFySXRlbSB9IGZyb20gJ3dlYi1jb25zb2xlLWNvcmUnXHJcbmltcG9ydCB7IFdDVG9hc3RlclNlcnZpY2UgfSBmcm9tICd3ZWItY29uc29sZS11aS1raXQnXHJcbmltcG9ydCB7IEdyaWRzdGVyIH0gZnJvbSAnd2ViLWNvbnNvbGUtdWkta2l0J1xyXG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3Yy11aWtpdC1rcy1kYXNoYm9hcmQtdGVzdCcsXHJcbiAgdGVtcGxhdGU6IGA8d2MtZGFzaGJvYXJkLWhlYWRlciBbdGl0bGVdPVwiJ0Rhc2hib2FyZCdcIj48L3djLWRhc2hib2FyZC1oZWFkZXI+XHJcblxyXG4gIDxncmlkc3RlciBbb3B0aW9uc109XCJvcHRpb25zXCIgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgW2FjbFBlcm1pc3Npb25dPVwiWyd0ZXN0MjMnXVwiID5cclxuICAgICAgICA8Z3JpZHN0ZXItaXRlbSBbaXRlbV09XCJvcGVyYXRpb25Db3VudHNJdGVtXCI+XHJcbiAgICAgICAgICAgIDx3Yy1wYW5lbCBbdGl0bGVdPVwiJ09wZXJhdGlvbnMgQ291bnQnXCI+XHJcbiAgICAgICAgICAgICAgICA8d2MtZGF0YS1jb3VudGVyIFt0aXRsZV09XCInUkVTVCBDYWxscydcIiBbdmFsdWVdPVwiY291bnRlclwiPjwvd2MtZGF0YS1jb3VudGVyPlxyXG4gICAgICAgICAgICA8L3djLXBhbmVsPlxyXG4gICAgICAgIDwvZ3JpZHN0ZXItaXRlbT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgXHJcbiAgICBcclxuICAgIDxuZy10ZW1wbGF0ZSBbYWNsUGVybWlzc2lvbk9uZU9mXT1cIlsndGVzdDIwJywgJ3Rlc3QxJ11cIiA+XHJcbiAgICAgICAgPGdyaWRzdGVyLWl0ZW0gW2l0ZW1dPVwiZGF0ZVRpbWVJdGVtXCI+XHJcbiAgICAgICAgICAgIDx3Yy1wYW5lbCBbdGl0bGVdPVwiJ1RvZGF5J1wiPiBcclxuICAgICAgICAgICAgICAgIDx3Yy1kYXRhLWNvdW50ZXIgW3RpdGxlXT1cImRhdGVUaW1lIHwgZGF0ZSBcIiBbdmFsdWVdPVwiZGF0ZVRpbWUgfCBkYXRlOidoOm1tLnNzIGEnIFwiPjwvd2MtZGF0YS1jb3VudGVyPlxyXG4gICAgICAgICAgICA8L3djLXBhbmVsPlxyXG4gICAgICAgIDwvZ3JpZHN0ZXItaXRlbT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuXHJcbiAgICA8Z3JpZHN0ZXItaXRlbSBbaXRlbV09XCJnYXVnZUl0ZW1cIj5cclxuICAgICAgICAgICAgPHdjLXBhbmVsIFt0aXRsZV09XCInQ1BVIFVzYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgPG5neC1nYXVnZSBbdHlwZV09XCJnYXVnZVR5cGVcIiBcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2F1Z2VWYWx1ZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJnYXVnZUxhYmVsXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgIFthcHBlbmRdPVwiZ2F1Z2VBcHBlbmRUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbdGhpY2tdPVwiMTBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JlZ3JvdW5kQ29sb3JdPVwiJyNmYzAnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2FwXT1cIidmbGF0J1wiPlxyXG4gICAgICAgICAgICAgICAgPC9uZ3gtZ2F1Z2U+XHJcbiAgICAgICAgICAgIDwvd2MtcGFuZWw+XHJcbiAgICA8L2dyaWRzdGVyLWl0ZW0+XHJcblxyXG4gICAgPGdyaWRzdGVyLWl0ZW0gW2l0ZW1dPVwie2NvbHM6IDgsIHJvd3M6IDMsIHk6IDIsIHg6IDB9XCI+XHJcbiAgICAgICAgPHdjLXBhbmVsIFt0aXRsZV09XCInQ2hhcnQgRGVtbydcIj5cclxuICAgICAgICAgICAgICAgIDxuZ3gtY2hhcnRzLWFyZWEtY2hhcnRcclxuICAgICAgICAgICAgICAgIFt2aWV3XT1cInZpZXdcIlxyXG4gICAgICAgICAgICAgICAgW3NjaGVtZV09XCJjb2xvclNjaGVtZVwiXHJcbiAgICAgICAgICAgICAgICBbcmVzdWx0c109XCJtdWx0aVwiXHJcbiAgICAgICAgICAgICAgICBbZ3JhZGllbnRdPVwiZ3JhZGllbnRcIlxyXG4gICAgICAgICAgICAgICAgW3hBeGlzXT1cInNob3dYQXhpc1wiXHJcbiAgICAgICAgICAgICAgICBbeUF4aXNdPVwic2hvd1lBeGlzXCJcclxuICAgICAgICAgICAgICAgIFtsZWdlbmRdPVwic2hvd0xlZ2VuZFwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd1hBeGlzTGFiZWxdPVwic2hvd1hBeGlzTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dZQXhpc0xhYmVsXT1cInNob3dZQXhpc0xhYmVsXCJcclxuICAgICAgICAgICAgICAgIFt4QXhpc0xhYmVsXT1cInhBeGlzTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgW3lBeGlzTGFiZWxdPVwieUF4aXNMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBbYXV0b1NjYWxlXT1cImF1dG9TY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9uZ3gtY2hhcnRzLWFyZWEtY2hhcnQ+XHJcbiAgICAgICAgPC93Yy1wYW5lbD5cclxuICAgIDwvZ3JpZHN0ZXItaXRlbT5cclxuICBcclxuICAgIDxncmlkc3Rlci1pdGVtIFtpdGVtXT1cIntjb2xzOiA4LCByb3dzOiAzLCB5OiAyLCB4OiA4fVwiPlxyXG4gICAgICAgICAgICA8d2MtcGFuZWwgW3RpdGxlXT1cIidDaGFydCBEZW1vJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtY2hhcnRzLWhlYXQtbWFwXHJcbiAgICAgICAgICAgICAgICAgICAgW3ZpZXddPVwidmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NjaGVtZV09XCJjb2xvclNjaGVtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Jlc3VsdHNdPVwibXVsdGlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRdPVwic2hvd0xlZ2VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2dyYWRpZW50XT1cImdyYWRpZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBbeEF4aXNdPVwic2hvd1hBeGlzXCJcclxuICAgICAgICAgICAgICAgICAgICBbeUF4aXNdPVwic2hvd1lBeGlzXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd1hBeGlzTGFiZWxdPVwic2hvd1hBeGlzTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93WUF4aXNMYWJlbF09XCJzaG93WUF4aXNMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3hBeGlzTGFiZWxdPVwieEF4aXNMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3lBeGlzTGFiZWxdPVwieUF4aXNMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmd4LWNoYXJ0cy1oZWF0LW1hcD5cclxuICAgICAgICAgICAgPC93Yy1wYW5lbD5cclxuICAgICAgICA8L2dyaWRzdGVyLWl0ZW0+XHJcblxyXG5cclxuICAgICAgICA8Z3JpZHN0ZXItaXRlbSBbaXRlbV09XCJ7Y29sczogOCwgcm93czogMywgeTogMiwgeDogOH1cIj5cclxuICAgICAgICAgICAgICAgIDx3Yy1wYW5lbCBbdGl0bGVdPVwiJ0NoYXJ0IERlbW8nXCI+XHJcbiAgICAgICAgICAgIDxuZ3gtY2hhcnRzLWdhdWdlXHJcbiAgICAgICAgW3ZpZXddPVwidmlld1wiXHJcbiAgICAgICAgW3NjaGVtZV09XCJjb2xvclNjaGVtZVwiXHJcbiAgICAgICAgW3Jlc3VsdHNdPVwic2luZ2xlXCJcclxuICAgICAgICBbbWluXT1cIjBcIlxyXG4gICAgICAgIFttYXhdPVwiMTAwXCJcclxuICAgICAgICBbYW5nbGVTcGFuXT1cIjI0MFwiXHJcbiAgICAgICAgW3N0YXJ0QW5nbGVdPVwiLTEyMFwiXHJcbiAgICAgICAgW3VuaXRzXT1cIidhbGVydHMnXCJcclxuICAgICAgICBbYmlnU2VnbWVudHNdPVwiMTBcIlxyXG4gICAgICAgIFtzbWFsbFNlZ21lbnRzXT1cIjVcIlxyXG4gICAgICAgIChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiPlxyXG4gICAgICA8L25neC1jaGFydHMtZ2F1Z2U+XHJcbiAgICA8L3djLXBhbmVsPlxyXG48L2dyaWRzdGVyLWl0ZW0+XHJcblxyXG5cclxuPC9ncmlkc3Rlcj5cclxuXHJcblxyXG5cclxuYCxcclxuICBzdHlsZXM6IFtgYF1cclxufSlcclxuQFBsdWdpblZpZXcoXCJEYXNoYm9hcmRcIix7XHJcbiAgaWNvbk5hbWU6IFwiaWNvLWpzb25cIiBcclxufSlcclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZFRlc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIGRhdGVUaW1lOkRhdGUgPSBuZXcgRGF0ZTtcclxuICBjb3VudGVyOiBudW1iZXIgPSAxO1xyXG4gIG9wdGlvbnM6IEdyaWRzdGVyLkdyaWRzdGVyQ29uZmlnO1xyXG4gIFxyXG4gIG9wZXJhdGlvbkNvdW50c0l0ZW06R3JpZHN0ZXIuR3JpZHN0ZXJJdGVtO1xyXG4gIGRhdGVUaW1lSXRlbTpHcmlkc3Rlci5Hcmlkc3Rlckl0ZW07XHJcbiAgZ2F1Z2VJdGVtOkdyaWRzdGVyLkdyaWRzdGVySXRlbTtcclxuXHJcbiAgcHVibGljIG51bU9mU2Vzc2lvbnM6bnVtYmVyPTQ7XHJcblxyXG4gIGdhdWdlVHlwZSA9IFwic2VtaVwiO1xyXG4gIGdhdWdlVmFsdWUgPSAzMztcclxuICBnYXVnZUxhYmVsID0gXCJcIjtcclxuICBnYXVnZUFwcGVuZFRleHQgPSBcIiVcIjtcclxuXHJcbiAgLy9jaGFydCA9PT09PT09Pj5cclxuXHJcbiAgc2luZ2xlOiBhbnlbXTtcclxuICBtdWx0aTogYW55W107XHJcblxyXG4gIHZpZXc6IGFueVtdID0gWzcwMCwgNDAwXTtcclxuXHJcbiAgLy8gb3B0aW9uc1xyXG4gIHNob3dYQXhpcyA9IHRydWU7XHJcbiAgc2hvd1lBeGlzID0gdHJ1ZTtcclxuICBncmFkaWVudCA9IGZhbHNlO1xyXG4gIHNob3dMZWdlbmQgPSB0cnVlO1xyXG4gIHNob3dYQXhpc0xhYmVsID0gdHJ1ZTtcclxuICB4QXhpc0xhYmVsID0gJ0NvdW50cnknO1xyXG4gIHNob3dZQXhpc0xhYmVsID0gdHJ1ZTtcclxuICB5QXhpc0xhYmVsID0gJ1BvcHVsYXRpb24nO1xyXG5cclxuICBjb2xvclNjaGVtZSA9IHtcclxuICAgIGRvbWFpbjogWycjNUFBNDU0JywgJyNBMTBBMjgnLCAnI0M3QjQyQycsICcjQUFBQUFBJ11cclxuICB9O1xyXG5cclxuICAvLyBsaW5lLCBhcmVhXHJcbiAgYXV0b1NjYWxlID0gdHJ1ZTtcclxuICBcclxuICBcclxuICAvL2NoYXJ0IDw8PT09PT09PVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0ZXI6IFdDVG9hc3RlclNlcnZpY2UgKSB7XHJcblxyXG4gICAgdGhpcy5zaW5nbGUgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBcIm5hbWVcIjogXCJHZXJtYW55XCIsXHJcbiAgICAgICAgXCJ2YWx1ZVwiOiA4OTQwMDAwXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBcIm5hbWVcIjogXCJVU0FcIixcclxuICAgICAgICBcInZhbHVlXCI6IDUwMDAwMDBcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIFwibmFtZVwiOiBcIkZyYW5jZVwiLFxyXG4gICAgICAgIFwidmFsdWVcIjogNzIwMDAwMFxyXG4gICAgICB9XHJcbiAgICBdO1xyXG5cclxuICAgIHRoaXMubXVsdGkgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBcIm5hbWVcIjogXCJHZXJtYW55XCIsXHJcbiAgICAgICAgXCJzZXJpZXNcIjogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcIm5hbWVcIjogXCIyMDEwXCIsXHJcbiAgICAgICAgICAgIFwidmFsdWVcIjogNzMwMDAwMFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJuYW1lXCI6IFwiMjAxMVwiLFxyXG4gICAgICAgICAgICBcInZhbHVlXCI6IDg5NDAwMDBcclxuICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICBcclxuICAgICAge1xyXG4gICAgICAgIFwibmFtZVwiOiBcIlVTQVwiLFxyXG4gICAgICAgIFwic2VyaWVzXCI6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJuYW1lXCI6IFwiMjAxMFwiLFxyXG4gICAgICAgICAgICBcInZhbHVlXCI6IDc4NzAwMDBcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIjIwMTFcIixcclxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiA4MjcwMDAwXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgXHJcbiAgICAgIHtcclxuICAgICAgICBcIm5hbWVcIjogXCJGcmFuY2VcIixcclxuICAgICAgICBcInNlcmllc1wiOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwibmFtZVwiOiBcIjIwMTBcIixcclxuICAgICAgICAgICAgXCJ2YWx1ZVwiOiA1MDAwMDAyXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcIm5hbWVcIjogXCIyMDExXCIsXHJcbiAgICAgICAgICAgIFwidmFsdWVcIjogNTgwMDAwMFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXRlbUNoYW5nZShpdGVtLCBpdGVtQ29tcG9uZW50KSB7XHJcbiAgICBjb25zb2xlLmluZm8oJ2l0ZW1DaGFuZ2VkJywgaXRlbSwgaXRlbUNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGl0ZW1SZXNpemUoaXRlbSwgaXRlbUNvbXBvbmVudCkge1xyXG4gICAgY29uc29sZS5pbmZvKCdpdGVtUmVzaXplZCcsIGl0ZW0sIGl0ZW1Db21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5vcHRpb25zID0ge1xyXG4gICAgICBpdGVtQ2hhbmdlQ2FsbGJhY2s6IHRoaXMuaXRlbUNoYW5nZSxcclxuICAgICAgaXRlbVJlc2l6ZUNhbGxiYWNrOiB0aGlzLml0ZW1SZXNpemUsXHJcbiAgICAgIGdyaWRUeXBlOiBHcmlkc3Rlci5HcmlkVHlwZS5GaXhlZCxcclxuICAgICAgY29tcGFjdFR5cGU6IEdyaWRzdGVyLkNvbXBhY3RUeXBlLk5vbmUsXHJcbiAgICAgIGRyYWdnYWJsZToge1xyXG4gICAgICAgIGVuYWJsZWQ6IHRydWVcclxuICAgICAgfSxcclxuICAgICAgcmVzaXphYmxlOiB7XHJcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcclxuICAgICAgfSxcclxuICAgICAgZGlzcGxheUdyaWQ6ICdvbkRyYWcmUmVzaXplJyxcclxuICAgICAgbWluQ29sczogMyxcclxuICAgICAgbWF4Q29sczogMTAwLFxyXG4gICAgICBtaW5Sb3dzOiAzLFxyXG4gICAgICBtYXhSb3dzOiAxMDAsXHJcbiAgICAgIG1heEl0ZW1Db2xzOiAxMDAsXHJcbiAgICAgIG1pbkl0ZW1Db2xzOiAxLFxyXG4gICAgICBtYXhJdGVtUm93czogMTAwLFxyXG4gICAgICBtaW5JdGVtUm93czogMSxcclxuICAgICAgbWF4SXRlbUFyZWE6IDI1MDAsXHJcbiAgICAgIG1pbkl0ZW1BcmVhOiAxLFxyXG4gICAgICBkZWZhdWx0SXRlbUNvbHM6IDEsXHJcbiAgICAgIGRlZmF1bHRJdGVtUm93czogMSxcclxuICAgICAgZml4ZWRDb2xXaWR0aDogNzAsXHJcbiAgICAgIGZpeGVkUm93SGVpZ2h0OiA3MFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLm9wZXJhdGlvbkNvdW50c0l0ZW0gPSB7Y29sczogMywgcm93czogMiwgeTogMCwgeDogMH07XHJcbiAgICB0aGlzLmRhdGVUaW1lSXRlbSA9IHtjb2xzOiA1LCByb3dzOiAyLCB5OiAwLCB4OiAzfTtcclxuICAgIHRoaXMuZ2F1Z2VJdGVtID0gIHtjb2xzOiAzLCByb3dzOiAzLCB5OiAwLCB4OiA4fTtcclxuXHJcbiAgICB0aW1lcigwLCAxNTYwKS5zdWJzY3JpYmUoeD0+e1xyXG4gICAgICAgIHRoaXMuY291bnRlcisrO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGltZXIoMCwgMTAwMCkuc3Vic2NyaWJlKHg9PntcclxuICAgICAgdGhpcy5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9KTtcclxuICAgXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpe1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCl7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdChldmVudCkge1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19