Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

vipera-npm-registry / wa-motif-open-api-kitchensink-module   js

Repository URL to install this package:

Version: 0.0.6 

/ esm5 / lib / components / dashboard / dashboard-test.component.js

/**
 * @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