ng-flexmonster
Version:
Angular 4+ Module for Flexmonster Pivot Table & Charts
320 lines • 35.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { Component, ElementRef, Input, Output, EventEmitter } from '@angular/core';
import * as Flexmonster from 'flexmonster';
var FlexmonsterPivot = /** @class */ (function () {
function FlexmonsterPivot(el) {
// events
this.cellclick = new EventEmitter();
this.celldoubleclick = new EventEmitter();
this.chartclick = new EventEmitter();
this.dataerror = new EventEmitter();
this.datafilecancelled = new EventEmitter();
this.dataloaded = new EventEmitter();
this.datachanged = new EventEmitter();
this.fieldslistclose = new EventEmitter();
this.fieldslistopen = new EventEmitter();
this.filterclose = new EventEmitter();
this.filteropen = new EventEmitter();
this.drillthroughopen = new EventEmitter();
this.exportcomplete = new EventEmitter();
this.exportstart = new EventEmitter();
this.drillthroughclose = new EventEmitter();
this.fullscreen = new EventEmitter();
this.loadingdata = new EventEmitter();
this.loadinglocalization = new EventEmitter();
this.loadingolapstructure = new EventEmitter();
this.loadingreportfile = new EventEmitter();
this.localizationerror = new EventEmitter();
this.localizationloaded = new EventEmitter();
this.olapstructureerror = new EventEmitter();
this.olapstructureloaded = new EventEmitter();
this.openingreportfile = new EventEmitter();
this.printcomplete = new EventEmitter();
this.printstart = new EventEmitter();
this.querycomplete = new EventEmitter();
this.queryerror = new EventEmitter();
this.ready = new EventEmitter();
this.reportchange = new EventEmitter();
this.reportcomplete = new EventEmitter();
this.reportfilecancelled = new EventEmitter();
this.reportfileerror = new EventEmitter();
this.runningquery = new EventEmitter();
this.unauthorizederror = new EventEmitter();
this.update = new EventEmitter();
this.beforetoolbarcreated = new EventEmitter();
this.beforegriddraw = new EventEmitter();
this.aftergriddraw = new EventEmitter();
this.afterchartdraw = new EventEmitter();
this.root = (/** @type {?} */ (el.nativeElement));
}
/**
* @return {?}
*/
FlexmonsterPivot.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
this.flexmonster = new Flexmonster({
container: this.root.getElementsByClassName('fm-ng-wrapper')[0],
componentFolder: this.componentFolder,
width: this.width,
height: this.height,
toolbar: this.toolbar,
licenseKey: this.licenseKey,
licenseFilePath: this.licenseFilePath,
report: this.report,
global: this.global,
accessibility: this.accessibility,
shareReportConnection: this.shareReportConnection,
customizeAPIRequest: this.customizeAPIRequest,
customizeCell: this.customizeCell,
customizeChartElement: this.customizeChartElement,
customizeContextMenu: this.customizeContextMenu,
sortFieldsList: this.sortFieldsList,
cellclick: function (cell) { return _this.cellclick.next(cell); },
celldoubleclick: function (cell) { return _this.celldoubleclick.next(cell); },
chartclick: function (event) { return _this.chartclick.next(event); },
datachanged: function (event) { return _this.datachanged.next(event); },
dataerror: function (event) { return _this.dataerror.next(event); },
datafilecancelled: function () { return _this.datafilecancelled.next(); },
dataloaded: function () { return _this.dataloaded.next(); },
fieldslistclose: function () { return _this.fieldslistclose.next(); },
fieldslistopen: function () { return _this.fieldslistopen.next(); },
filterclose: function () { return _this.filterclose.next(); },
filteropen: function (event) { return _this.filteropen.next(event); },
drillthroughopen: function (cell) { return _this.drillthroughopen.next(cell); },
exportcomplete: function () { return _this.exportcomplete.next(); },
exportstart: function () { return _this.exportstart.next(); },
drillthroughclose: function () { return _this.drillthroughclose.next(); },
loadingdata: function () { return _this.loadingdata.next(); },
loadinglocalization: function () { return _this.loadinglocalization.next(); },
loadingolapstructure: function () { return _this.loadingolapstructure.next(); },
loadingreportfile: function () { return _this.loadingreportfile.next(); },
localizationerror: function () { return _this.localizationerror.next(); },
localizationloaded: function () { return _this.localizationloaded.next(); },
olapstructureerror: function (event) { return _this.olapstructureerror.next(event); },
olapstructureloaded: function () { return _this.olapstructureloaded.next(); },
openingreportfile: function () { return _this.openingreportfile.next(); },
printcomplete: function () { return _this.printcomplete.next(); },
printstart: function () { return _this.printstart.next(); },
querycomplete: function () { return _this.querycomplete.next(); },
queryerror: function (event) { return _this.queryerror.next(event); },
ready: function () { return _this.ready.next(_this.flexmonster); },
reportchange: function () { return _this.reportchange.next(); },
reportcomplete: function () { return _this.reportcomplete.next(); },
reportfilecancelled: function () { return _this.reportfilecancelled.next(); },
reportfileerror: function () { return _this.reportfileerror.next(); },
runningquery: function () { return _this.runningquery.next(); },
unauthorizederror: function (done) { return _this.unauthorizederror.next(done); },
update: function () { return _this.update.next(); },
beforetoolbarcreated: function (toolbar) { return _this.beforetoolbarcreated.next(toolbar); },
beforegriddraw: function (event) { return _this.beforegriddraw.next(event); },
aftergriddraw: function (event) { return _this.aftergriddraw.next(event); },
afterchartdraw: function () { return _this.afterchartdraw.next(); }
});
};
/**
* @return {?}
*/
FlexmonsterPivot.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this.flexmonster) {
this.flexmonster.dispose();
this.flexmonster = null;
}
};
FlexmonsterPivot.decorators = [
{ type: Component, args: [{
selector: 'fm-pivot',
template: '<div style="width:100%;height:100%;"><div class="fm-ng-wrapper"></div></div>'
},] },
];
FlexmonsterPivot.ctorParameters = function () { return [
{ type: ElementRef }
]; };
FlexmonsterPivot.propDecorators = {
toolbar: [{ type: Input }],
licenseKey: [{ type: Input }],
licenseFilePath: [{ type: Input }],
width: [{ type: Input }],
height: [{ type: Input }],
componentFolder: [{ type: Input }],
report: [{ type: Input }],
shareReportConnection: [{ type: Input }],
global: [{ type: Input }],
accessibility: [{ type: Input }],
customizeAPIRequest: [{ type: Input }],
customizeCell: [{ type: Input }],
customizeChartElement: [{ type: Input }],
customizeContextMenu: [{ type: Input }],
sortFieldsList: [{ type: Input }],
cellclick: [{ type: Output }],
celldoubleclick: [{ type: Output }],
chartclick: [{ type: Output }],
dataerror: [{ type: Output }],
datafilecancelled: [{ type: Output }],
dataloaded: [{ type: Output }],
datachanged: [{ type: Output }],
fieldslistclose: [{ type: Output }],
fieldslistopen: [{ type: Output }],
filterclose: [{ type: Output }],
filteropen: [{ type: Output }],
drillthroughopen: [{ type: Output }],
exportcomplete: [{ type: Output }],
exportstart: [{ type: Output }],
drillthroughclose: [{ type: Output }],
fullscreen: [{ type: Output }],
loadingdata: [{ type: Output }],
loadinglocalization: [{ type: Output }],
loadingolapstructure: [{ type: Output }],
loadingreportfile: [{ type: Output }],
localizationerror: [{ type: Output }],
localizationloaded: [{ type: Output }],
olapstructureerror: [{ type: Output }],
olapstructureloaded: [{ type: Output }],
openingreportfile: [{ type: Output }],
printcomplete: [{ type: Output }],
printstart: [{ type: Output }],
querycomplete: [{ type: Output }],
queryerror: [{ type: Output }],
ready: [{ type: Output }],
reportchange: [{ type: Output }],
reportcomplete: [{ type: Output }],
reportfilecancelled: [{ type: Output }],
reportfileerror: [{ type: Output }],
runningquery: [{ type: Output }],
unauthorizederror: [{ type: Output }],
update: [{ type: Output }],
beforetoolbarcreated: [{ type: Output }],
beforegriddraw: [{ type: Output }],
aftergriddraw: [{ type: Output }],
afterchartdraw: [{ type: Output }]
};
return FlexmonsterPivot;
}());
export { FlexmonsterPivot };
if (false) {
/** @type {?} */
FlexmonsterPivot.prototype.toolbar;
/** @type {?} */
FlexmonsterPivot.prototype.licenseKey;
/** @type {?} */
FlexmonsterPivot.prototype.licenseFilePath;
/** @type {?} */
FlexmonsterPivot.prototype.width;
/** @type {?} */
FlexmonsterPivot.prototype.height;
/** @type {?} */
FlexmonsterPivot.prototype.componentFolder;
/** @type {?} */
FlexmonsterPivot.prototype.report;
/** @type {?} */
FlexmonsterPivot.prototype.shareReportConnection;
/** @type {?} */
FlexmonsterPivot.prototype.global;
/** @type {?} */
FlexmonsterPivot.prototype.accessibility;
/** @type {?} */
FlexmonsterPivot.prototype.customizeAPIRequest;
/** @type {?} */
FlexmonsterPivot.prototype.customizeCell;
/** @type {?} */
FlexmonsterPivot.prototype.customizeChartElement;
/** @type {?} */
FlexmonsterPivot.prototype.customizeContextMenu;
/** @type {?} */
FlexmonsterPivot.prototype.sortFieldsList;
/** @type {?} */
FlexmonsterPivot.prototype.cellclick;
/** @type {?} */
FlexmonsterPivot.prototype.celldoubleclick;
/** @type {?} */
FlexmonsterPivot.prototype.chartclick;
/** @type {?} */
FlexmonsterPivot.prototype.dataerror;
/** @type {?} */
FlexmonsterPivot.prototype.datafilecancelled;
/** @type {?} */
FlexmonsterPivot.prototype.dataloaded;
/** @type {?} */
FlexmonsterPivot.prototype.datachanged;
/** @type {?} */
FlexmonsterPivot.prototype.fieldslistclose;
/** @type {?} */
FlexmonsterPivot.prototype.fieldslistopen;
/** @type {?} */
FlexmonsterPivot.prototype.filterclose;
/** @type {?} */
FlexmonsterPivot.prototype.filteropen;
/** @type {?} */
FlexmonsterPivot.prototype.drillthroughopen;
/** @type {?} */
FlexmonsterPivot.prototype.exportcomplete;
/** @type {?} */
FlexmonsterPivot.prototype.exportstart;
/** @type {?} */
FlexmonsterPivot.prototype.drillthroughclose;
/** @type {?} */
FlexmonsterPivot.prototype.fullscreen;
/** @type {?} */
FlexmonsterPivot.prototype.loadingdata;
/** @type {?} */
FlexmonsterPivot.prototype.loadinglocalization;
/** @type {?} */
FlexmonsterPivot.prototype.loadingolapstructure;
/** @type {?} */
FlexmonsterPivot.prototype.loadingreportfile;
/** @type {?} */
FlexmonsterPivot.prototype.localizationerror;
/** @type {?} */
FlexmonsterPivot.prototype.localizationloaded;
/** @type {?} */
FlexmonsterPivot.prototype.olapstructureerror;
/** @type {?} */
FlexmonsterPivot.prototype.olapstructureloaded;
/** @type {?} */
FlexmonsterPivot.prototype.openingreportfile;
/** @type {?} */
FlexmonsterPivot.prototype.printcomplete;
/** @type {?} */
FlexmonsterPivot.prototype.printstart;
/** @type {?} */
FlexmonsterPivot.prototype.querycomplete;
/** @type {?} */
FlexmonsterPivot.prototype.queryerror;
/** @type {?} */
FlexmonsterPivot.prototype.ready;
/** @type {?} */
FlexmonsterPivot.prototype.reportchange;
/** @type {?} */
FlexmonsterPivot.prototype.reportcomplete;
/** @type {?} */
FlexmonsterPivot.prototype.reportfilecancelled;
/** @type {?} */
FlexmonsterPivot.prototype.reportfileerror;
/** @type {?} */
FlexmonsterPivot.prototype.runningquery;
/** @type {?} */
FlexmonsterPivot.prototype.unauthorizederror;
/** @type {?} */
FlexmonsterPivot.prototype.update;
/** @type {?} */
FlexmonsterPivot.prototype.beforetoolbarcreated;
/** @type {?} */
FlexmonsterPivot.prototype.beforegriddraw;
/** @type {?} */
FlexmonsterPivot.prototype.aftergriddraw;
/** @type {?} */
FlexmonsterPivot.prototype.afterchartdraw;
/** @type {?} */
FlexmonsterPivot.prototype.flexmonster;
/** @type {?} */
FlexmonsterPivot.prototype.root;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxleG1vbnN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZmxleG1vbnN0ZXIvIiwic291cmNlcyI6WyJmbGV4bW9uc3Rlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sS0FBSyxXQUFXLE1BQU0sYUFBYSxDQUFDO0FBRTNDO0lBcUVFLDBCQUFZLEVBQWM7UUEvQzFCLFNBQVM7UUFDQyxjQUFTLEdBQXVDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkUsb0JBQWUsR0FBdUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RSxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckUsY0FBUyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JFLHNCQUFpQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNELGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELG9CQUFlLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekQsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCxxQkFBZ0IsR0FBK0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRyxtQkFBYyxHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckQsc0JBQWlCLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0QsZUFBVSxHQUF1QixJQUFJLFlBQVksRUFBRSxD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bEUsK0NBQXVFOztJQUN2RSwyQ0FBbUU7O0lBQ25FLHdDQUFnRTs7SUFDaEUsNkNBQXFHOztJQUNyRyxrQ0FBMEQ7O0lBQzFELGdEQUF1Rjs7SUFDdkYsMENBQW9FOztJQUNwRSx5Q0FBbUU7O0lBQ25FLDBDQUFrRTs7SUFFbEUsdUNBQXNDOztJQUV0QyxnQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIEZsZXhtb25zdGVyIGZyb20gJ2ZsZXhtb25zdGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZm0tcGl2b3QnLFxyXG4gIHRlbXBsYXRlOiAnPGRpdiBzdHlsZT1cIndpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7XCI+PGRpdiBjbGFzcz1cImZtLW5nLXdyYXBwZXJcIj48L2Rpdj48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGbGV4bW9uc3RlclBpdm90IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvLyBwYXJhbXNcclxuICBASW5wdXQoKSB0b29sYmFyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGxpY2Vuc2VLZXk6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIGxpY2Vuc2VGaWxlUGF0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KCkgY29tcG9uZW50Rm9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVwb3J0OiBGbGV4bW9uc3Rlci5SZXBvcnQgfCBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hhcmVSZXBvcnRDb25uZWN0aW9uOiBGbGV4bW9uc3Rlci5BUElDbGllbnRPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGdsb2JhbDogRmxleG1vbnN0ZXIuUmVwb3J0O1xyXG4gIEBJbnB1dCgpIGFjY2Vzc2liaWxpdHk6IEZsZXhtb25zdGVyLkFjY2Vzc2liaWxpdHlPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWl6ZUFQSVJlcXVlc3Q6IChyZXF1ZXN0OiBPYmplY3QpID0+IE9iamVjdDtcclxuICBASW5wdXQoKSBjdXN0b21pemVDZWxsOiAoY2VsbDogRmxleG1vbnN0ZXIuQ2VsbEJ1aWxkZXIsIGRhdGE6IEZsZXhtb25zdGVyLkNlbGxEYXRhKSA9PiB2b2lkO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWl6ZUNoYXJ0RWxlbWVudDogKGVsZW1lbnQ6IEVsZW1lbnQsIGRhdGE6IEZsZXhtb25zdGVyLkNoYXJ0RGF0YSB8IEZsZXhtb25zdGVyLkNoYXJ0TGVnZW5kSXRlbURhdGEpID0+IHZvaWQ7XHJcbiAgQElucHV0KCkgY3VzdG9taXplQ29udGV4dE1lbnU6IChjZWxsOiBGbGV4bW9uc3Rlci5Db250ZXh0TWVudUl0ZW1bXSwgZGF0YTogRmxleG1vbnN0ZXIuQ2VsbERhdGEgfCBGbGV4bW9uc3Rlci5DaGFydERhdGEsIHZpZXdUeXBlOiBzdHJpbmcpID0+IEZsZXhtb25zdGVyLkNvbnRleHRNZW51SXRlbVtdO1xyXG4gIEBJbnB1dCgpIHNvcnRGaWVsZHNMaXN0OiAoZmlyc3Q6IEZsZXhtb25zdGVyLkZpZWxkc0xpc3RTb3J0aW5nSXRlbSwgc2Vjb25kOiBGbGV4bW9uc3Rlci5GaWVsZHNMaXN0U29ydGluZ0l0ZW0sIGZpZWxkc0xpc3RUeXBlOiBzdHJpbmcpID0+IG51bWJlcjtcclxuXHJcbiAgLy8gZXZlbnRzXHJcbiAgQE91dHB1dCgpIGNlbGxjbGljazogRXZlbnRFbWl0dGVyPEZsZXhtb25zdGVyLkNlbGxEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2VsbGRvdWJsZWNsaWNrOiBFdmVudEVtaXR0ZXI8RmxleG1vbnN0ZXIuQ2VsbERhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjaGFydGNsaWNrOiBFdmVudEVtaXR0ZXI8RmxleG1vbnN0ZXIuQ2hhcnREYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGF0YWVycm9yOiBFdmVudEVtaXR0ZXI8RmxleG1vbnN0ZXIuRXJyb3JFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRhdGFmaWxlY2FuY2VsbGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRhdGFsb2FkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGF0YWNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmaWVsZHNsaXN0Y2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmllbGRzbGlzdG9wZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsdGVyY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsdGVyb3BlbjogRXZlbnRFbWl0dGVyPE9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRyaWxsdGhyb3VnaG9wZW46IEV2ZW50RW1pdHRlcjxGbGV4bW9uc3Rlci5DZWxsRGF0YSB8IEZsZXhtb25zdGVyLkNoYXJ0RGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGV4cG9ydGNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGV4cG9ydHN0YXJ0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGRyaWxsdGhyb3VnaGNsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZ1bGxzY3JlZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbG9hZGluZ2RhdGE6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbG9hZGluZ2xvY2FsaXphdGlvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2FkaW5nb2xhcHN0cnVjdHVyZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2FkaW5ncmVwb3J0ZmlsZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2NhbGl6YXRpb25lcnJvcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsb2NhbGl6YXRpb25sb2FkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb2xhcHN0cnVjdHVyZWVycm9yOiBFdmVudEVtaXR0ZXI8RmxleG1vbnN0ZXIuRXJyb3JFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9sYXBzdHJ1Y3R1cmVsb2FkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb3BlbmluZ3JlcG9ydGZpbGU6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcHJpbnRjb21wbGV0ZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwcmludHN0YXJ0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHF1ZXJ5Y29tcGxldGU6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcXVlcnllcnJvcjogRXZlbnRFbWl0dGVyPEZsZXhtb25zdGVyLkVycm9yRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSByZWFkeTogRXZlbnRFbWl0dGVyPEZsZXhtb25zdGVyLlBpdm90PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVwb3J0Y2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlcG9ydGNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlcG9ydGZpbGVjYW5jZWxsZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVwb3J0ZmlsZWVycm9yOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJ1bm5pbmdxdWVyeTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB1bmF1dGhvcml6ZWRlcnJvcjogRXZlbnRFbWl0dGVyPEZsZXhtb25zdGVyLlVuYXV0aG9yaXplZEVycm9ySGFuZGxlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHVwZGF0ZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBiZWZvcmV0b29sYmFyY3JlYXRlZDogRXZlbnRFbWl0dGVyPEZsZXhtb25zdGVyLlRvb2xiYXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBiZWZvcmVncmlkZHJhdzogRXZlbnRFbWl0dGVyPE9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyZ3JpZGRyYXc6IEV2ZW50RW1pdHRlcjxPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBhZnRlcmNoYXJ0ZHJhdzogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8vIGFwaVxyXG4gIHB1YmxpYyBmbGV4bW9uc3RlcjogRmxleG1vbnN0ZXIuUGl2b3Q7XHJcbiAgLy8gcHJpdmF0ZVxyXG4gIHByaXZhdGUgcm9vdDogSFRNTEVsZW1lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLnJvb3QgPSA8SFRNTEVsZW1lbnQ+ZWwubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mbGV4bW9uc3RlciA9IG5ldyBGbGV4bW9uc3Rlcih7XHJcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5yb290LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZtLW5nLXdyYXBwZXInKVswXSxcclxuICAgICAgY29tcG9uZW50Rm9sZGVyOiB0aGlzLmNvbXBvbmVudEZvbGRlcixcclxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXHJcbiAgICAgIHRvb2xiYXI6IHRoaXMudG9vbGJhcixcclxuICAgICAgbGljZW5zZUtleTogdGhpcy5saWNlbnNlS2V5LFxyXG4gICAgICBsaWNlbnNlRmlsZVBhdGg6IHRoaXMubGljZW5zZUZpbGVQYXRoLFxyXG4gICAgICByZXBvcnQ6IHRoaXMucmVwb3J0LFxyXG4gICAgICBnbG9iYWw6IHRoaXMuZ2xvYmFsLFxyXG4gICAgICBhY2Nlc3NpYmlsaXR5OiB0aGlzLmFjY2Vzc2liaWxpdHksXHJcbiAgICAgIHNoYXJlUmVwb3J0Q29ubmVjdGlvbjogdGhpcy5zaGFyZVJlcG9ydENvbm5lY3Rpb24sXHJcbiAgICAgIGN1c3RvbWl6ZUFQSVJlcXVlc3Q6IHRoaXMuY3VzdG9taXplQVBJUmVxdWVzdCxcclxuICAgICAgY3VzdG9taXplQ2VsbDogdGhpcy5jdXN0b21pemVDZWxsLFxyXG4gICAgICBjdXN0b21pemVDaGFydEVsZW1lbnQ6IHRoaXMuY3VzdG9taXplQ2hhcnRFbGVtZW50LFxyXG4gICAgICBjdXN0b21pemVDb250ZXh0TWVudTogdGhpcy5jdXN0b21pemVDb250ZXh0TWVudSxcclxuICAgICAgc29ydEZpZWxkc0xpc3Q6IHRoaXMuc29ydEZpZWxkc0xpc3QsXHJcbiAgICAgIGNlbGxjbGljazogKGNlbGw6IEZsZXhtb25zdGVyLkNlbGxEYXRhKSA9PiB0aGlzLmNlbGxjbGljay5uZXh0KGNlbGwpLFxyXG4gICAgICBjZWxsZG91YmxlY2xpY2s6IChjZWxsOiBGbGV4bW9uc3Rlci5DZWxsRGF0YSkgPT4gdGhpcy5jZWxsZG91YmxlY2xpY2submV4dChjZWxsKSxcclxuICAgICAgY2hhcnRjbGljazogKGV2ZW50OiBGbGV4bW9uc3Rlci5DaGFydERhdGEpID0+IHRoaXMuY2hhcnRjbGljay5uZXh0KGV2ZW50KSxcclxuICAgICAgZGF0YWNoYW5nZWQ6IChldmVudDogT2JqZWN0KSA9PiB0aGlzLmRhdGFjaGFuZ2VkLm5leHQoZXZlbnQpLFxyXG4gICAgICBkYXRhZXJyb3I6IChldmVudDogT2JqZWN0KSA9PiB0aGlzLmRhdGFlcnJvci5uZXh0KGV2ZW50KSxcclxuICAgICAgZGF0YWZpbGVjYW5jZWxsZWQ6ICgpID0+IHRoaXMuZGF0YWZpbGVjYW5jZWxsZWQubmV4dCgpLFxyXG4gICAgICBkYXRhbG9hZGVkOiAoKSA9PiB0aGlzLmRhdGFsb2FkZWQubmV4dCgpLFxyXG4gICAgICBmaWVsZHNsaXN0Y2xvc2U6ICgpID0+IHRoaXMuZmllbGRzbGlzdGNsb3NlLm5leHQoKSxcclxuICAgICAgZmllbGRzbGlzdG9wZW46ICgpID0+IHRoaXMuZmllbGRzbGlzdG9wZW4ubmV4dCgpLFxyXG4gICAgICBmaWx0ZXJjbG9zZTogKCkgPT4gdGhpcy5maWx0ZXJjbG9zZS5uZXh0KCksXHJcbiAgICAgIGZpbHRlcm9wZW46IChldmVudDogT2JqZWN0KSA9PiB0aGlzLmZpbHRlcm9wZW4ubmV4dChldmVudCksXHJcbiAgICAgIGRyaWxsdGhyb3VnaG9wZW46IChjZWxsOiBGbGV4bW9uc3Rlci5DZWxsRGF0YSB8IEZsZXhtb25zdGVyLkNoYXJ0RGF0YSkgPT4gdGhpcy5kcmlsbHRocm91Z2hvcGVuLm5leHQoY2VsbCksXHJcbiAgICAgIGV4cG9ydGNvbXBsZXRlOiAoKSA9PiB0aGlzLmV4cG9ydGNvbXBsZXRlLm5leHQoKSxcclxuICAgICAgZXhwb3J0c3RhcnQ6ICgpID0+IHRoaXMuZXhwb3J0c3RhcnQubmV4dCgpLFxyXG4gICAgICBkcmlsbHRocm91Z2hjbG9zZTogKCkgPT4gdGhpcy5kcmlsbHRocm91Z2hjbG9zZS5uZXh0KCksXHJcbiAgICAgIGxvYWRpbmdkYXRhOiAoKSA9PiB0aGlzLmxvYWRpbmdkYXRhLm5leHQoKSxcclxuICAgICAgbG9hZGluZ2xvY2FsaXphdGlvbjogKCkgPT4gdGhpcy5sb2FkaW5nbG9jYWxpemF0aW9uLm5leHQoKSxcclxuICAgICAgbG9hZGluZ29sYXBzdHJ1Y3R1cmU6ICgpID0+IHRoaXMubG9hZGluZ29sYXBzdHJ1Y3R1cmUubmV4dCgpLFxyXG4gICAgICBsb2FkaW5ncmVwb3J0ZmlsZTogKCkgPT4gdGhpcy5sb2FkaW5ncmVwb3J0ZmlsZS5uZXh0KCksXHJcbiAgICAgIGxvY2FsaXphdGlvbmVycm9yOiAoKSA9PiB0aGlzLmxvY2FsaXphdGlvbmVycm9yLm5leHQoKSxcclxuICAgICAgbG9jYWxpemF0aW9ubG9hZGVkOiAoKSA9PiB0aGlzLmxvY2FsaXphdGlvbmxvYWRlZC5uZXh0KCksXHJcbiAgICAgIG9sYXBzdHJ1Y3R1cmVlcnJvcjogKGV2ZW50OiBGbGV4bW9uc3Rlci5FcnJvckV2ZW50KSA9PiB0aGlzLm9sYXBzdHJ1Y3R1cmVlcnJvci5uZXh0KGV2ZW50KSxcclxuICAgICAgb2xhcHN0cnVjdHVyZWxvYWRlZDogKCkgPT4gdGhpcy5vbGFwc3RydWN0dXJlbG9hZGVkLm5leHQoKSxcclxuICAgICAgb3BlbmluZ3JlcG9ydGZpbGU6ICgpID0+IHRoaXMub3BlbmluZ3JlcG9ydGZpbGUubmV4dCgpLFxyXG4gICAgICBwcmludGNvbXBsZXRlOiAoKSA9PiB0aGlzLnByaW50Y29tcGxldGUubmV4dCgpLFxyXG4gICAgICBwcmludHN0YXJ0OiAoKSA9PiB0aGlzLnByaW50c3RhcnQubmV4dCgpLFxyXG4gICAgICBxdWVyeWNvbXBsZXRlOiAoKSA9PiB0aGlzLnF1ZXJ5Y29tcGxldGUubmV4dCgpLFxyXG4gICAgICBxdWVyeWVycm9yOiAoZXZlbnQ6IEZsZXhtb25zdGVyLkVycm9yRXZlbnQpID0+IHRoaXMucXVlcnllcnJvci5uZXh0KGV2ZW50KSxcclxuICAgICAgcmVhZHk6ICgpID0+IHRoaXMucmVhZHkubmV4dCh0aGlzLmZsZXhtb25zdGVyKSxcclxuICAgICAgcmVwb3J0Y2hhbmdlOiAoKSA9PiB0aGlzLnJlcG9ydGNoYW5nZS5uZXh0KCksXHJcbiAgICAgIHJlcG9ydGNvbXBsZXRlOiAoKSA9PiB0aGlzLnJlcG9ydGNvbXBsZXRlLm5leHQoKSxcclxuICAgICAgcmVwb3J0ZmlsZWNhbmNlbGxlZDogKCkgPT4gdGhpcy5yZXBvcnRmaWxlY2FuY2VsbGVkLm5leHQoKSxcclxuICAgICAgcmVwb3J0ZmlsZWVycm9yOiAoKSA9PiB0aGlzLnJlcG9ydGZpbGVlcnJvci5uZXh0KCksXHJcbiAgICAgIHJ1bm5pbmdxdWVyeTogKCkgPT4gdGhpcy5ydW5uaW5ncXVlcnkubmV4dCgpLFxyXG4gICAgICB1bmF1dGhvcml6ZWRlcnJvcjogKGRvbmU6IEZsZXhtb25zdGVyLlVuYXV0aG9yaXplZEVycm9ySGFuZGxlcikgPT4gdGhpcy51bmF1dGhvcml6ZWRlcnJvci5uZXh0KGRvbmUpLFxyXG4gICAgICB1cGRhdGU6ICgpID0+IHRoaXMudXBkYXRlLm5leHQoKSxcclxuICAgICAgYmVmb3JldG9vbGJhcmNyZWF0ZWQ6ICh0b29sYmFyOiBGbGV4bW9uc3Rlci5Ub29sYmFyKSA9PiB0aGlzLmJlZm9yZXRvb2xiYXJjcmVhdGVkLm5leHQodG9vbGJhciksXHJcbiAgICAgIGJlZm9yZWdyaWRkcmF3OiAoZXZlbnQ6IE9iamVjdCkgPT4gdGhpcy5iZWZvcmVncmlkZHJhdy5uZXh0KGV2ZW50KSxcclxuICAgICAgYWZ0ZXJncmlkZHJhdzogKGV2ZW50OiBPYmplY3QpID0+IHRoaXMuYWZ0ZXJncmlkZHJhdy5uZXh0KGV2ZW50KSxcclxuICAgICAgYWZ0ZXJjaGFydGRyYXc6ICgpID0+IHRoaXMuYWZ0ZXJjaGFydGRyYXcubmV4dCgpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICBpZiAodGhpcy5mbGV4bW9uc3Rlcikge1xyXG4gICAgICAgICAgdGhpcy5mbGV4bW9uc3Rlci5kaXNwb3NlKCk7XHJcbiAgICAgICAgICB0aGlzLmZsZXhtb25zdGVyID0gbnVsbDtcclxuICAgICAgfVxyXG4gIH1cclxufVxyXG4iXX0=