ng-apexcharts
Version:
An angular implementation of ApexCharts
335 lines • 21.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ElementRef, Input, ViewChild } from '@angular/core';
import { asapScheduler } from 'rxjs';
var ChartComponent = /** @class */ (function () {
function ChartComponent() {
this.dataLabels = { enabled: false };
this.stroke = { curve: 'straight' };
this.grid = {
row: {
colors: ['#f3f3f3', 'transparent'],
opacity: 0.5
}
};
this.autoUpdateSeries = true;
}
/**
* @return {?}
*/
ChartComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
asapScheduler.schedule((/**
* @return {?}
*/
function () {
_this.createElement();
}));
};
/**
* @param {?} changes
* @return {?}
*/
ChartComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
var _this = this;
asapScheduler.schedule((/**
* @return {?}
*/
function () {
if (_this.autoUpdateSeries && Object.keys(changes).filter((/**
* @param {?} c
* @return {?}
*/
function (c) { return c !== 'series'; })).length === 0) {
_this.updateSeries(_this.series, true);
return;
}
_this.createElement();
}));
};
/**
* @private
* @return {?}
*/
ChartComponent.prototype.createElement = /**
* @private
* @return {?}
*/
function () {
/** @type {?} */
var options = {};
if (this.annotations) {
options.annotations = this.annotations;
}
if (this.chart) {
options.chart = this.chart;
}
if (this.colors) {
options.colors = this.colors;
}
if (this.dataLabels) {
options.dataLabels = this.dataLabels;
}
if (this.series) {
options.series = this.series;
}
if (this.stroke) {
options.stroke = this.stroke;
}
if (this.labels) {
options.labels = this.labels;
}
if (this.legend) {
options.legend = this.legend;
}
if (this.fill) {
options.fill = this.fill;
}
if (this.tooltip) {
options.tooltip = this.tooltip;
}
if (this.plotOptions) {
options.plotOptions = this.plotOptions;
}
if (this.responsive) {
options.responsive = this.responsive;
}
if (this.xaxis) {
options.xaxis = this.xaxis;
}
if (this.yaxis) {
options.yaxis = this.yaxis;
}
if (this.grid) {
options.grid = this.grid;
}
if (this.states) {
options.states = this.states;
}
if (this.title) {
options.title = this.title;
}
if (this.subtitle) {
options.subtitle = this.subtitle;
}
if (this.theme) {
options.theme = this.theme;
}
if (this.chartObj) {
this.chartObj.destroy();
}
this.chartObj = new ApexCharts(this.chartElement.nativeElement, options);
this.render();
};
/**
* @return {?}
*/
ChartComponent.prototype.render = /**
* @return {?}
*/
function () {
return this.chartObj.render();
};
/**
* @param {?} options
* @param {?} redrawPaths
* @param {?} animate
* @return {?}
*/
ChartComponent.prototype.updateOptions = /**
* @param {?} options
* @param {?} redrawPaths
* @param {?} animate
* @return {?}
*/
function (options, redrawPaths, animate) {
return this.chartObj.updateOptions(options, redrawPaths, animate);
};
/**
* @param {?} newSeries
* @param {?} animate
* @return {?}
*/
ChartComponent.prototype.updateSeries = /**
* @param {?} newSeries
* @param {?} animate
* @return {?}
*/
function (newSeries, animate) {
this.chartObj.updateSeries(newSeries, animate);
};
/**
* @param {?} seriesName
* @return {?}
*/
ChartComponent.prototype.toggleSeries = /**
* @param {?} seriesName
* @return {?}
*/
function (seriesName) {
this.chartObj.toggleSeries(seriesName);
};
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
ChartComponent.prototype.addXaxisAnnotation = /**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
function (options, pushToMemory, context) {
this.chartObj.addXaxisAnnotation(options, pushToMemory, context);
};
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
ChartComponent.prototype.addYaxisAnnotation = /**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
function (options, pushToMemory, context) {
this.chartObj.addYaxisAnnotation(options, pushToMemory, context);
};
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
ChartComponent.prototype.addPointAnnotation = /**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
function (options, pushToMemory, context) {
this.chartObj.addPointAnnotation(options, pushToMemory, context);
};
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
ChartComponent.prototype.addText = /**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
function (options, pushToMemory, context) {
this.chartObj.addText(options, pushToMemory, context);
};
/**
* @return {?}
*/
ChartComponent.prototype.dataURI = /**
* @return {?}
*/
function () {
return this.chartObj.dataURI();
};
ChartComponent.decorators = [
{ type: Component, args: [{
selector: 'apx-chart',
template: "<div #chart></div>\n",
styles: [""]
}] }
];
ChartComponent.propDecorators = {
chart: [{ type: Input }],
annotations: [{ type: Input }],
colors: [{ type: Input }],
dataLabels: [{ type: Input }],
series: [{ type: Input }],
stroke: [{ type: Input }],
labels: [{ type: Input }],
legend: [{ type: Input }],
fill: [{ type: Input }],
tooltip: [{ type: Input }],
plotOptions: [{ type: Input }],
responsive: [{ type: Input }],
xaxis: [{ type: Input }],
yaxis: [{ type: Input }],
grid: [{ type: Input }],
states: [{ type: Input }],
title: [{ type: Input }],
subtitle: [{ type: Input }],
theme: [{ type: Input }],
autoUpdateSeries: [{ type: Input }],
chartElement: [{ type: ViewChild, args: ['chart',] }]
};
return ChartComponent;
}());
export { ChartComponent };
if (false) {
/** @type {?} */
ChartComponent.prototype.chart;
/** @type {?} */
ChartComponent.prototype.annotations;
/** @type {?} */
ChartComponent.prototype.colors;
/** @type {?} */
ChartComponent.prototype.dataLabels;
/** @type {?} */
ChartComponent.prototype.series;
/** @type {?} */
ChartComponent.prototype.stroke;
/** @type {?} */
ChartComponent.prototype.labels;
/** @type {?} */
ChartComponent.prototype.legend;
/** @type {?} */
ChartComponent.prototype.fill;
/** @type {?} */
ChartComponent.prototype.tooltip;
/** @type {?} */
ChartComponent.prototype.plotOptions;
/** @type {?} */
ChartComponent.prototype.responsive;
/** @type {?} */
ChartComponent.prototype.xaxis;
/** @type {?} */
ChartComponent.prototype.yaxis;
/** @type {?} */
ChartComponent.prototype.grid;
/** @type {?} */
ChartComponent.prototype.states;
/** @type {?} */
ChartComponent.prototype.title;
/** @type {?} */
ChartComponent.prototype.subtitle;
/** @type {?} */
ChartComponent.prototype.theme;
/** @type {?} */
ChartComponent.prototype.autoUpdateSeries;
/**
* @type {?}
* @private
*/
ChartComponent.prototype.chartElement;
/**
* @type {?}
* @private
*/
ChartComponent.prototype.chartObj;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctYXBleGNoYXJ0cy8iLCJzb3VyY2VzIjpbImxpYi9jaGFydC9jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBb0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0IxRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXJDO0lBQUE7UUFTVyxlQUFVLEdBQW1CLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRWhELFdBQU0sR0FBZSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQztRQVUzQyxTQUFJLEdBQWE7WUFDeEIsR0FBRyxFQUFFO2dCQUNILE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7Z0JBQ2xDLE9BQU8sRUFBRSxHQUFHO2FBQ2I7U0FDRixDQUFDO1FBT08scUJBQWdCLEdBQUcsSUFBSSxDQUFDO0lBNEZuQyxDQUFDOzs7O0lBdkZDLGlDQUFROzs7SUFBUjtRQUFBLGlCQUlDO1FBSEMsYUFBYSxDQUFDLFFBQVE7OztRQUFDO1lBQ3JCLEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsb0NBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQWxDLGlCQVNDO1FBUkMsYUFBYSxDQUFDLFFBQVE7OztRQUFDO1lBQ3JCLElBQUksS0FBSSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTTs7OztZQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxLQUFLLFFBQVEsRUFBZCxDQUFjLEVBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMxRixLQUFJLENBQUMsWUFBWSxDQUFDLEtBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLE9BQU87YUFDUjtZQUVELEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRU8sc0NBQWE7Ozs7SUFBckI7O1lBQ1EsT0FBTyxHQUFRLEVBQUU7UUFFdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQUU7UUFDakUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUU7UUFDOUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUU7UUFDNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUU7UUFDckQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQUU7UUFDakUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUU7UUFDOUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUU7UUFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUU7UUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFFL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksVUFBVSxDQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFDL0IsT0FBTyxDQUNSLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVNLCtCQUFNOzs7SUFBYjtRQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7Ozs7O0lBRU0sc0NBQWE7Ozs7OztJQUFwQixVQUFxQixPQUFZLEVBQUUsV0FBb0IsRUFBRSxPQUFnQjtRQUN2RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7Ozs7O0lBRU0scUNBQVk7Ozs7O0lBQW5CLFVBQW9CLFNBQXVELEVBQUUsT0FBZ0I7UUFDM0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Ozs7O0lBRU0scUNBQVk7Ozs7SUFBbkIsVUFBb0IsVUFBa0I7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7Ozs7OztJQUVNLDJDQUFrQjs7Ozs7O0lBQXpCLFVBQTBCLE9BQVksRUFBRSxZQUFzQixFQUFFLE9BQWE7UUFDM0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7Ozs7Ozs7SUFFTSwyQ0FBa0I7Ozs7OztJQUF6QixVQUEwQixPQUFZLEVBQUUsWUFBc0IsRUFBRSxPQUFhO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs7Ozs7O0lBRU0sMkNBQWtCOzs7Ozs7SUFBekIsVUFBMEIsT0FBWSxFQUFFLFlBQXNCLEVBQUUsT0FBYTtRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7Ozs7OztJQUVNLGdDQUFPOzs7Ozs7SUFBZCxVQUFlLE9BQVksRUFBRSxZQUFzQixFQUFFLE9BQWE7UUFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs7O0lBRU0sZ0NBQU87OztJQUFkO1FBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLENBQUM7O2dCQTVIRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGdDQUFxQzs7aUJBRXRDOzs7d0JBRUUsS0FBSzs4QkFDTCxLQUFLO3lCQUNMLEtBQUs7NkJBQ0wsS0FBSzt5QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3VCQUNMLEtBQUs7MEJBQ0wsS0FBSzs4QkFDTCxLQUFLOzZCQUNMLEtBQUs7d0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3VCQUVMLEtBQUs7eUJBT0wsS0FBSzt3QkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSzttQ0FFTCxLQUFLOytCQUVMLFNBQVMsU0FBQyxPQUFPOztJQTBGcEIscUJBQUM7Q0FBQSxBQTdIRCxJQTZIQztTQXhIWSxjQUFjOzs7SUFDekIsK0JBQTBCOztJQUMxQixxQ0FBc0M7O0lBQ3RDLGdDQUEwQjs7SUFDMUIsb0NBQXlEOztJQUN6RCxnQ0FBOEQ7O0lBQzlELGdDQUFvRDs7SUFDcEQsZ0NBQTBCOztJQUMxQixnQ0FBNEI7O0lBQzVCLDhCQUF3Qjs7SUFDeEIsaUNBQThCOztJQUM5QixxQ0FBc0M7O0lBQ3RDLG9DQUFzQzs7SUFDdEMsK0JBQTBCOztJQUMxQiwrQkFBd0M7O0lBRXhDLDhCQUtFOztJQUVGLGdDQUE0Qjs7SUFDNUIsK0JBQWtDOztJQUNsQyxrQ0FBcUM7O0lBQ3JDLCtCQUEwQjs7SUFFMUIsMENBQWlDOzs7OztJQUVqQyxzQ0FBcUQ7Ozs7O0lBQ3JELGtDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFwZXhBbm5vdGF0aW9ucyxcbiAgQXBleEF4aXNDaGFydFNlcmllcyxcbiAgQXBleENoYXJ0LFxuICBBcGV4RGF0YUxhYmVscyxcbiAgQXBleEZpbGwsXG4gIEFwZXhHcmlkLFxuICBBcGV4TGVnZW5kLFxuICBBcGV4Tm9uQXhpc0NoYXJ0U2VyaWVzLFxuICBBcGV4UGxvdE9wdGlvbnMsXG4gIEFwZXhSZXNwb25zaXZlLFxuICBBcGV4U3RhdGVzLFxuICBBcGV4U3Ryb2tlLCBBcGV4VGhlbWUsIEFwZXhUaXRsZVN1YnRpdGxlLFxuICBBcGV4VG9vbHRpcCxcbiAgQXBleFhBeGlzLFxuICBBcGV4WUF4aXNcbn0gZnJvbSAnLi4vbW9kZWwvYXBleC10eXBlcyc7XG5pbXBvcnQgeyBhc2FwU2NoZWR1bGVyIH0gZnJvbSAncnhqcyc7XG5cbmRlY2xhcmUgdmFyIEFwZXhDaGFydHM6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXB4LWNoYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjaGFydDogQXBleENoYXJ0O1xuICBASW5wdXQoKSBhbm5vdGF0aW9uczogQXBleEFubm90YXRpb25zO1xuICBASW5wdXQoKSBjb2xvcnM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBkYXRhTGFiZWxzOiBBcGV4RGF0YUxhYmVscyA9IHsgZW5hYmxlZDogZmFsc2UgfTtcbiAgQElucHV0KCkgc2VyaWVzOiBBcGV4QXhpc0NoYXJ0U2VyaWVzIHwgQXBleE5vbkF4aXNDaGFydFNlcmllcztcbiAgQElucHV0KCkgc3Ryb2tlOiBBcGV4U3Ryb2tlID0geyBjdXJ2ZTogJ3N0cmFpZ2h0JyB9O1xuICBASW5wdXQoKSBsYWJlbHM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBsZWdlbmQ6IEFwZXhMZWdlbmQ7XG4gIEBJbnB1dCgpIGZpbGw6IEFwZXhGaWxsO1xuICBASW5wdXQoKSB0b29sdGlwOiBBcGV4VG9vbHRpcDtcbiAgQElucHV0KCkgcGxvdE9wdGlvbnM6IEFwZXhQbG90T3B0aW9ucztcbiAgQElucHV0KCkgcmVzcG9uc2l2ZTogQXBleFJlc3BvbnNpdmVbXTtcbiAgQElucHV0KCkgeGF4aXM6IEFwZXhYQXhpcztcbiAgQElucHV0KCkgeWF4aXM6IEFwZXhZQXhpcyB8IEFwZXhZQXhpc1tdO1xuXG4gIEBJbnB1dCgpIGdyaWQ6IEFwZXhHcmlkID0ge1xuICAgIHJvdzoge1xuICAgICAgY29sb3JzOiBbJyNmM2YzZjMnLCAndHJhbnNwYXJlbnQnXSxcbiAgICAgIG9wYWNpdHk6IDAuNVxuICAgIH1cbiAgfTtcblxuICBASW5wdXQoKSBzdGF0ZXM6IEFwZXhTdGF0ZXM7XG4gIEBJbnB1dCgpIHRpdGxlOiBBcGV4VGl0bGVTdWJ0aXRsZTtcbiAgQElucHV0KCkgc3VidGl0bGU6IEFwZXhUaXRsZVN1YnRpdGxlO1xuICBASW5wdXQoKSB0aGVtZTogQXBleFRoZW1lO1xuXG4gIEBJbnB1dCgpIGF1dG9VcGRhdGVTZXJpZXMgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0JykgcHJpdmF0ZSBjaGFydEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgY2hhcnRPYmo6IGFueTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBhc2FwU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlRWxlbWVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGFzYXBTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXV0b1VwZGF0ZVNlcmllcyAmJiBPYmplY3Qua2V5cyhjaGFuZ2VzKS5maWx0ZXIoYyA9PiBjICE9PSAnc2VyaWVzJykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMudXBkYXRlU2VyaWVzKHRoaXMuc2VyaWVzLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNyZWF0ZUVsZW1lbnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRWxlbWVudCgpIHtcbiAgICBjb25zdCBvcHRpb25zOiBhbnkgPSB7fTtcblxuICAgIGlmICh0aGlzLmFubm90YXRpb25zKSB7IG9wdGlvbnMuYW5ub3RhdGlvbnMgPSB0aGlzLmFubm90YXRpb25zOyB9XG4gICAgaWYgKHRoaXMuY2hhcnQpIHsgb3B0aW9ucy5jaGFydCA9IHRoaXMuY2hhcnQ7IH1cbiAgICBpZiAodGhpcy5jb2xvcnMpIHsgb3B0aW9ucy5jb2xvcnMgPSB0aGlzLmNvbG9yczsgfVxuICAgIGlmICh0aGlzLmRhdGFMYWJlbHMpIHsgb3B0aW9ucy5kYXRhTGFiZWxzID0gdGhpcy5kYXRhTGFiZWxzOyB9XG4gICAgaWYgKHRoaXMuc2VyaWVzKSB7IG9wdGlvbnMuc2VyaWVzID0gdGhpcy5zZXJpZXM7IH1cbiAgICBpZiAodGhpcy5zdHJva2UpIHsgb3B0aW9ucy5zdHJva2UgPSB0aGlzLnN0cm9rZTsgfVxuICAgIGlmICh0aGlzLmxhYmVscykgeyBvcHRpb25zLmxhYmVscyA9IHRoaXMubGFiZWxzOyB9XG4gICAgaWYgKHRoaXMubGVnZW5kKSB7IG9wdGlvbnMubGVnZW5kID0gdGhpcy5sZWdlbmQ7IH1cbiAgICBpZiAodGhpcy5maWxsKSB7IG9wdGlvbnMuZmlsbCA9IHRoaXMuZmlsbDsgfVxuICAgIGlmICh0aGlzLnRvb2x0aXApIHsgb3B0aW9ucy50b29sdGlwID0gdGhpcy50b29sdGlwOyB9XG4gICAgaWYgKHRoaXMucGxvdE9wdGlvbnMpIHsgb3B0aW9ucy5wbG90T3B0aW9ucyA9IHRoaXMucGxvdE9wdGlvbnM7IH1cbiAgICBpZiAodGhpcy5yZXNwb25zaXZlKSB7IG9wdGlvbnMucmVzcG9uc2l2ZSA9IHRoaXMucmVzcG9uc2l2ZTsgfVxuICAgIGlmICh0aGlzLnhheGlzKSB7IG9wdGlvbnMueGF4aXMgPSB0aGlzLnhheGlzOyB9XG4gICAgaWYgKHRoaXMueWF4aXMpIHsgb3B0aW9ucy55YXhpcyA9IHRoaXMueWF4aXM7IH1cbiAgICBpZiAodGhpcy5ncmlkKSB7IG9wdGlvbnMuZ3JpZCA9IHRoaXMuZ3JpZDsgfVxuICAgIGlmICh0aGlzLnN0YXRlcykgeyBvcHRpb25zLnN0YXRlcyA9IHRoaXMuc3RhdGVzOyB9XG4gICAgaWYgKHRoaXMudGl0bGUpIHsgb3B0aW9ucy50aXRsZSA9IHRoaXMudGl0bGU7IH1cbiAgICBpZiAodGhpcy5zdWJ0aXRsZSkgeyBvcHRpb25zLnN1YnRpdGxlID0gdGhpcy5zdWJ0aXRsZTsgfVxuICAgIGlmICh0aGlzLnRoZW1lKSB7IG9wdGlvbnMudGhlbWUgPSB0aGlzLnRoZW1lOyB9XG5cbiAgICBpZiAodGhpcy5jaGFydE9iaikge1xuICAgICAgdGhpcy5jaGFydE9iai5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFydE9iaiA9IG5ldyBBcGV4Q2hhcnRzKFxuICAgICAgdGhpcy5jaGFydEVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRPYmoucmVuZGVyKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlT3B0aW9ucyhvcHRpb25zOiBhbnksIHJlZHJhd1BhdGhzOiBib29sZWFuLCBhbmltYXRlOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRPYmoudXBkYXRlT3B0aW9ucyhvcHRpb25zLCByZWRyYXdQYXRocywgYW5pbWF0ZSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU2VyaWVzKG5ld1NlcmllczogQXBleEF4aXNDaGFydFNlcmllcyB8IEFwZXhOb25BeGlzQ2hhcnRTZXJpZXMsIGFuaW1hdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoYXJ0T2JqLnVwZGF0ZVNlcmllcyhuZXdTZXJpZXMsIGFuaW1hdGUpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNlcmllcyhzZXJpZXNOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNoYXJ0T2JqLnRvZ2dsZVNlcmllcyhzZXJpZXNOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRYYXhpc0Fubm90YXRpb24ob3B0aW9uczogYW55LCBwdXNoVG9NZW1vcnk/OiBib29sZWFuLCBjb250ZXh0PzogYW55KSB7XG4gICAgdGhpcy5jaGFydE9iai5hZGRYYXhpc0Fubm90YXRpb24ob3B0aW9ucywgcHVzaFRvTWVtb3J5LCBjb250ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRZYXhpc0Fubm90YXRpb24ob3B0aW9uczogYW55LCBwdXNoVG9NZW1vcnk/OiBib29sZWFuLCBjb250ZXh0PzogYW55KSB7XG4gICAgdGhpcy5jaGFydE9iai5hZGRZYXhpc0Fubm90YXRpb24ob3B0aW9ucywgcHVzaFRvTWVtb3J5LCBjb250ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRQb2ludEFubm90YXRpb24ob3B0aW9uczogYW55LCBwdXNoVG9NZW1vcnk/OiBib29sZWFuLCBjb250ZXh0PzogYW55KSB7XG4gICAgdGhpcy5jaGFydE9iai5hZGRQb2ludEFubm90YXRpb24ob3B0aW9ucywgcHVzaFRvTWVtb3J5LCBjb250ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUZXh0KG9wdGlvbnM6IGFueSwgcHVzaFRvTWVtb3J5PzogYm9vbGVhbiwgY29udGV4dD86IGFueSkge1xuICAgIHRoaXMuY2hhcnRPYmouYWRkVGV4dChvcHRpb25zLCBwdXNoVG9NZW1vcnksIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGRhdGFVUkkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRPYmouZGF0YVVSSSgpO1xuICB9XG59XG4iXX0=