ng-apexcharts-gogo
Version:
An angular implementation of ApexCharts
276 lines • 19.5 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';
export class ChartComponent {
constructor() {
this.dataLabels = { enabled: false };
this.stroke = { curve: 'straight' };
this.grid = {
row: {
colors: ['#f3f3f3', 'transparent'],
opacity: 0.5
}
};
this.autoUpdateSeries = true;
}
/**
* @return {?}
*/
ngOnInit() {
asapScheduler.schedule((/**
* @return {?}
*/
() => {
this.createElement();
console.log('asu');
}));
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
asapScheduler.schedule((/**
* @return {?}
*/
() => {
if (this.autoUpdateSeries && Object.keys(changes).filter((/**
* @param {?} c
* @return {?}
*/
c => c !== 'series')).length === 0) {
this.updateSeries(this.series, true);
return;
}
this.createElement();
}));
}
/**
* @private
* @return {?}
*/
createElement() {
/** @type {?} */
const 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 {?}
*/
render() {
return this.chartObj.render();
}
/**
* @param {?} options
* @param {?} redrawPaths
* @param {?} animate
* @return {?}
*/
updateOptions(options, redrawPaths, animate) {
return this.chartObj.updateOptions(options, redrawPaths, animate);
}
/**
* @param {?} newSeries
* @param {?} animate
* @return {?}
*/
updateSeries(newSeries, animate) {
this.chartObj.updateSeries(newSeries, animate);
}
/**
* @param {?} seriesName
* @return {?}
*/
toggleSeries(seriesName) {
this.chartObj.toggleSeries(seriesName);
}
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
addXaxisAnnotation(options, pushToMemory, context) {
this.chartObj.addXaxisAnnotation(options, pushToMemory, context);
}
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
addYaxisAnnotation(options, pushToMemory, context) {
this.chartObj.addYaxisAnnotation(options, pushToMemory, context);
}
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
addPointAnnotation(options, pushToMemory, context) {
this.chartObj.addPointAnnotation(options, pushToMemory, context);
}
/**
* @param {?} options
* @param {?=} pushToMemory
* @param {?=} context
* @return {?}
*/
addText(options, pushToMemory, context) {
this.chartObj.addText(options, pushToMemory, context);
}
/**
* @return {?}
*/
dataURI() {
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',] }]
};
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctYXBleGNoYXJ0cy8iLCJzb3VyY2VzIjpbImxpYi9jaGFydC9jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBb0MsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBa0J4RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBU3JDLE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBU1csZUFBVSxHQUFtQixFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUU5QyxXQUFNLEdBQWUsRUFBQyxLQUFLLEVBQUUsVUFBVSxFQUFDLENBQUM7UUFVekMsU0FBSSxHQUFhO1lBQ3hCLEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsR0FBRzthQUNiO1NBQ0YsQ0FBQztRQU9PLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQTZGbkMsQ0FBQzs7OztJQXhGQyxRQUFRO1FBQ04sYUFBYSxDQUFDLFFBQVE7OztRQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7Ozs7O0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLGFBQWEsQ0FBQyxRQUFROzs7UUFBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNOzs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDMUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxPQUFPO2FBQ1I7WUFFRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVPLGFBQWE7O2NBQ2IsT0FBTyxHQUFRLEVBQUU7UUFFdkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQUU7UUFDakUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUU7UUFDOUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUU7UUFDNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQUUsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUU7UUFDckQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQUU7UUFDakUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQUUsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQUU7UUFDOUQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUU7UUFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUU7UUFDbEQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFDL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUU7UUFDeEQsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUU7UUFFL0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksVUFBVSxDQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFDL0IsT0FBTyxDQUNSLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7Ozs7OztJQUVNLGFBQWEsQ0FBQyxPQUFZLEVBQUUsV0FBb0IsRUFBRSxPQUFnQjtRQUN2RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7Ozs7O0lBRU0sWUFBWSxDQUFDLFNBQXVELEVBQUUsT0FBZ0I7UUFDM0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Ozs7O0lBRU0sWUFBWSxDQUFDLFVBQWtCO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7Ozs7SUFFTSxrQkFBa0IsQ0FBQyxPQUFZLEVBQUUsWUFBc0IsRUFBRSxPQUFhO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs7Ozs7O0lBRU0sa0JBQWtCLENBQUMsT0FBWSxFQUFFLFlBQXNCLEVBQUUsT0FBYTtRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7Ozs7OztJQUVNLGtCQUFrQixDQUFDLE9BQVksRUFBRSxZQUFzQixFQUFFLE9BQWE7UUFDM0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7Ozs7Ozs7SUFFTSxPQUFPLENBQUMsT0FBWSxFQUFFLFlBQXNCLEVBQUUsT0FBYTtRQUNoRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7Ozs7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLENBQUM7OztZQTdIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLGdDQUFxQzs7YUFFdEM7OztvQkFFRSxLQUFLOzBCQUNMLEtBQUs7cUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUs7bUJBQ0wsS0FBSztzQkFDTCxLQUFLOzBCQUNMLEtBQUs7eUJBQ0wsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7bUJBRUwsS0FBSztxQkFPTCxLQUFLO29CQUNMLEtBQUs7dUJBQ0wsS0FBSztvQkFDTCxLQUFLOytCQUVMLEtBQUs7MkJBRUwsU0FBUyxTQUFDLE9BQU87Ozs7SUE3QmxCLCtCQUEwQjs7SUFDMUIscUNBQXNDOztJQUN0QyxnQ0FBMEI7O0lBQzFCLG9DQUF1RDs7SUFDdkQsZ0NBQThEOztJQUM5RCxnQ0FBa0Q7O0lBQ2xELGdDQUEwQjs7SUFDMUIsZ0NBQTRCOztJQUM1Qiw4QkFBd0I7O0lBQ3hCLGlDQUE4Qjs7SUFDOUIscUNBQXNDOztJQUN0QyxvQ0FBc0M7O0lBQ3RDLCtCQUEwQjs7SUFDMUIsK0JBQXdDOztJQUV4Qyw4QkFLRTs7SUFFRixnQ0FBNEI7O0lBQzVCLCtCQUFrQzs7SUFDbEMsa0NBQXFDOztJQUNyQywrQkFBMEI7O0lBRTFCLDBDQUFpQzs7Ozs7SUFFakMsc0NBQXFEOzs7OztJQUNyRCxrQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXBleEFubm90YXRpb25zLFxuICBBcGV4QXhpc0NoYXJ0U2VyaWVzLFxuICBBcGV4Q2hhcnQsXG4gIEFwZXhEYXRhTGFiZWxzLFxuICBBcGV4RmlsbCxcbiAgQXBleEdyaWQsXG4gIEFwZXhMZWdlbmQsXG4gIEFwZXhOb25BeGlzQ2hhcnRTZXJpZXMsXG4gIEFwZXhQbG90T3B0aW9ucyxcbiAgQXBleFJlc3BvbnNpdmUsXG4gIEFwZXhTdGF0ZXMsXG4gIEFwZXhTdHJva2UsIEFwZXhUaGVtZSwgQXBleFRpdGxlU3VidGl0bGUsXG4gIEFwZXhUb29sdGlwLFxuICBBcGV4WEF4aXMsXG4gIEFwZXhZQXhpc1xufSBmcm9tICcuLi9tb2RlbC9hcGV4LXR5cGVzJztcbmltcG9ydCB7IGFzYXBTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcblxuZGVjbGFyZSB2YXIgQXBleENoYXJ0czogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHgtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNoYXJ0OiBBcGV4Q2hhcnQ7XG4gIEBJbnB1dCgpIGFubm90YXRpb25zOiBBcGV4QW5ub3RhdGlvbnM7XG4gIEBJbnB1dCgpIGNvbG9yczogc3RyaW5nW107XG4gIEBJbnB1dCgpIGRhdGFMYWJlbHM6IEFwZXhEYXRhTGFiZWxzID0ge2VuYWJsZWQ6IGZhbHNlfTtcbiAgQElucHV0KCkgc2VyaWVzOiBBcGV4QXhpc0NoYXJ0U2VyaWVzIHwgQXBleE5vbkF4aXNDaGFydFNlcmllcztcbiAgQElucHV0KCkgc3Ryb2tlOiBBcGV4U3Ryb2tlID0ge2N1cnZlOiAnc3RyYWlnaHQnfTtcbiAgQElucHV0KCkgbGFiZWxzOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgbGVnZW5kOiBBcGV4TGVnZW5kO1xuICBASW5wdXQoKSBmaWxsOiBBcGV4RmlsbDtcbiAgQElucHV0KCkgdG9vbHRpcDogQXBleFRvb2x0aXA7XG4gIEBJbnB1dCgpIHBsb3RPcHRpb25zOiBBcGV4UGxvdE9wdGlvbnM7XG4gIEBJbnB1dCgpIHJlc3BvbnNpdmU6IEFwZXhSZXNwb25zaXZlW107XG4gIEBJbnB1dCgpIHhheGlzOiBBcGV4WEF4aXM7XG4gIEBJbnB1dCgpIHlheGlzOiBBcGV4WUF4aXMgfCBBcGV4WUF4aXNbXTtcblxuICBASW5wdXQoKSBncmlkOiBBcGV4R3JpZCA9IHtcbiAgICByb3c6IHtcbiAgICAgIGNvbG9yczogWycjZjNmM2YzJywgJ3RyYW5zcGFyZW50J10sXG4gICAgICBvcGFjaXR5OiAwLjVcbiAgICB9XG4gIH07XG5cbiAgQElucHV0KCkgc3RhdGVzOiBBcGV4U3RhdGVzO1xuICBASW5wdXQoKSB0aXRsZTogQXBleFRpdGxlU3VidGl0bGU7XG4gIEBJbnB1dCgpIHN1YnRpdGxlOiBBcGV4VGl0bGVTdWJ0aXRsZTtcbiAgQElucHV0KCkgdGhlbWU6IEFwZXhUaGVtZTtcblxuICBASW5wdXQoKSBhdXRvVXBkYXRlU2VyaWVzID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKCdjaGFydCcpIHByaXZhdGUgY2hhcnRFbGVtZW50OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIGNoYXJ0T2JqOiBhbnk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgYXNhcFNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiB7XG4gICAgICB0aGlzLmNyZWF0ZUVsZW1lbnQoKTtcbiAgICAgIGNvbnNvbGUubG9nKCdhc3UnKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBhc2FwU2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmF1dG9VcGRhdGVTZXJpZXMgJiYgT2JqZWN0LmtleXMoY2hhbmdlcykuZmlsdGVyKGMgPT4gYyAhPT0gJ3NlcmllcycpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlcmllcyh0aGlzLnNlcmllcywgdHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUVsZW1lbnQoKSB7XG4gICAgY29uc3Qgb3B0aW9uczogYW55ID0ge307XG5cbiAgICBpZiAodGhpcy5hbm5vdGF0aW9ucykgeyBvcHRpb25zLmFubm90YXRpb25zID0gdGhpcy5hbm5vdGF0aW9uczsgfVxuICAgIGlmICh0aGlzLmNoYXJ0KSB7IG9wdGlvbnMuY2hhcnQgPSB0aGlzLmNoYXJ0OyB9XG4gICAgaWYgKHRoaXMuY29sb3JzKSB7IG9wdGlvbnMuY29sb3JzID0gdGhpcy5jb2xvcnM7IH1cbiAgICBpZiAodGhpcy5kYXRhTGFiZWxzKSB7IG9wdGlvbnMuZGF0YUxhYmVscyA9IHRoaXMuZGF0YUxhYmVsczsgfVxuICAgIGlmICh0aGlzLnNlcmllcykgeyBvcHRpb25zLnNlcmllcyA9IHRoaXMuc2VyaWVzOyB9XG4gICAgaWYgKHRoaXMuc3Ryb2tlKSB7IG9wdGlvbnMuc3Ryb2tlID0gdGhpcy5zdHJva2U7IH1cbiAgICBpZiAodGhpcy5sYWJlbHMpIHsgb3B0aW9ucy5sYWJlbHMgPSB0aGlzLmxhYmVsczsgfVxuICAgIGlmICh0aGlzLmxlZ2VuZCkgeyBvcHRpb25zLmxlZ2VuZCA9IHRoaXMubGVnZW5kOyB9XG4gICAgaWYgKHRoaXMuZmlsbCkgeyBvcHRpb25zLmZpbGwgPSB0aGlzLmZpbGw7IH1cbiAgICBpZiAodGhpcy50b29sdGlwKSB7IG9wdGlvbnMudG9vbHRpcCA9IHRoaXMudG9vbHRpcDsgfVxuICAgIGlmICh0aGlzLnBsb3RPcHRpb25zKSB7IG9wdGlvbnMucGxvdE9wdGlvbnMgPSB0aGlzLnBsb3RPcHRpb25zOyB9XG4gICAgaWYgKHRoaXMucmVzcG9uc2l2ZSkgeyBvcHRpb25zLnJlc3BvbnNpdmUgPSB0aGlzLnJlc3BvbnNpdmU7IH1cbiAgICBpZiAodGhpcy54YXhpcykgeyBvcHRpb25zLnhheGlzID0gdGhpcy54YXhpczsgfVxuICAgIGlmICh0aGlzLnlheGlzKSB7IG9wdGlvbnMueWF4aXMgPSB0aGlzLnlheGlzOyB9XG4gICAgaWYgKHRoaXMuZ3JpZCkgeyBvcHRpb25zLmdyaWQgPSB0aGlzLmdyaWQ7IH1cbiAgICBpZiAodGhpcy5zdGF0ZXMpIHsgb3B0aW9ucy5zdGF0ZXMgPSB0aGlzLnN0YXRlczsgfVxuICAgIGlmICh0aGlzLnRpdGxlKSB7IG9wdGlvbnMudGl0bGUgPSB0aGlzLnRpdGxlOyB9XG4gICAgaWYgKHRoaXMuc3VidGl0bGUpIHsgb3B0aW9ucy5zdWJ0aXRsZSA9IHRoaXMuc3VidGl0bGU7IH1cbiAgICBpZiAodGhpcy50aGVtZSkgeyBvcHRpb25zLnRoZW1lID0gdGhpcy50aGVtZTsgfVxuXG4gICAgaWYgKHRoaXMuY2hhcnRPYmopIHtcbiAgICAgIHRoaXMuY2hhcnRPYmouZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMuY2hhcnRPYmogPSBuZXcgQXBleENoYXJ0cyhcbiAgICAgIHRoaXMuY2hhcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICBvcHRpb25zXG4gICAgKTtcblxuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0T2JqLnJlbmRlcigpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZU9wdGlvbnMob3B0aW9uczogYW55LCByZWRyYXdQYXRoczogYm9vbGVhbiwgYW5pbWF0ZTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0T2JqLnVwZGF0ZU9wdGlvbnMob3B0aW9ucywgcmVkcmF3UGF0aHMsIGFuaW1hdGUpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVNlcmllcyhuZXdTZXJpZXM6IEFwZXhBeGlzQ2hhcnRTZXJpZXMgfCBBcGV4Tm9uQXhpc0NoYXJ0U2VyaWVzLCBhbmltYXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGFydE9iai51cGRhdGVTZXJpZXMobmV3U2VyaWVzLCBhbmltYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTZXJpZXMoc2VyaWVzTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5jaGFydE9iai50b2dnbGVTZXJpZXMoc2VyaWVzTmFtZSk7XG4gIH1cblxuICBwdWJsaWMgYWRkWGF4aXNBbm5vdGF0aW9uKG9wdGlvbnM6IGFueSwgcHVzaFRvTWVtb3J5PzogYm9vbGVhbiwgY29udGV4dD86IGFueSkge1xuICAgIHRoaXMuY2hhcnRPYmouYWRkWGF4aXNBbm5vdGF0aW9uKG9wdGlvbnMsIHB1c2hUb01lbW9yeSwgY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgYWRkWWF4aXNBbm5vdGF0aW9uKG9wdGlvbnM6IGFueSwgcHVzaFRvTWVtb3J5PzogYm9vbGVhbiwgY29udGV4dD86IGFueSkge1xuICAgIHRoaXMuY2hhcnRPYmouYWRkWWF4aXNBbm5vdGF0aW9uKG9wdGlvbnMsIHB1c2hUb01lbW9yeSwgY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgYWRkUG9pbnRBbm5vdGF0aW9uKG9wdGlvbnM6IGFueSwgcHVzaFRvTWVtb3J5PzogYm9vbGVhbiwgY29udGV4dD86IGFueSkge1xuICAgIHRoaXMuY2hhcnRPYmouYWRkUG9pbnRBbm5vdGF0aW9uKG9wdGlvbnMsIHB1c2hUb01lbW9yeSwgY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVGV4dChvcHRpb25zOiBhbnksIHB1c2hUb01lbW9yeT86IGJvb2xlYW4sIGNvbnRleHQ/OiBhbnkpIHtcbiAgICB0aGlzLmNoYXJ0T2JqLmFkZFRleHQob3B0aW9ucywgcHVzaFRvTWVtb3J5LCBjb250ZXh0KTtcbiAgfVxuXG4gIHB1YmxpYyBkYXRhVVJJKCkge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0T2JqLmRhdGFVUkkoKTtcbiAgfVxufVxuIl19