UNPKG

ng-apexcharts

Version:
275 lines 19.4 kB
/** * @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(); })); } /** * @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctYXBleGNoYXJ0cy8iLCJzb3VyY2VzIjpbImxpYi9jaGFydC9jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBb0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0IxRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBU3JDLE1BQU0sT0FBTyxjQUFjO0lBTDNCO1FBU1csZUFBVSxHQUFtQixFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUVoRCxXQUFNLEdBQWUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFVM0MsU0FBSSxHQUFhO1lBQ3hCLEdBQUcsRUFBRTtnQkFDSCxNQUFNLEVBQUUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsR0FBRzthQUNiO1NBQ0YsQ0FBQztRQU9PLHFCQUFnQixHQUFHLElBQUksQ0FBQztJQTRGbkMsQ0FBQzs7OztJQXZGQyxRQUFRO1FBQ04sYUFBYSxDQUFDLFFBQVE7OztRQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxhQUFhLENBQUMsUUFBUTs7O1FBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTTs7OztZQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzFGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDckMsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFTyxhQUFhOztjQUNiLE9BQU8sR0FBUSxFQUFFO1FBRXZCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUFFLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUFFO1FBQ2pFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFFO1FBQy9DLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFFO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFFO1FBQzlELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFFO1FBQ2xELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFFO1FBQ2xELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFFO1FBQ2xELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFFO1FBQ2xELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFFO1FBQzVDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFFO1FBQ3JELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUFFLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUFFO1FBQ2pFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFFO1FBQzlELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFFO1FBQy9DLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFFO1FBQy9DLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFFO1FBQzVDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFFO1FBQ2xELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFFO1FBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFFO1FBQ3hELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFFO1FBRS9DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFVBQVUsQ0FDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQy9CLE9BQU8sQ0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7Ozs7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7Ozs7Ozs7SUFFTSxhQUFhLENBQUMsT0FBWSxFQUFFLFdBQW9CLEVBQUUsT0FBZ0I7UUFDdkUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Ozs7OztJQUVNLFlBQVksQ0FBQyxTQUF1RCxFQUFFLE9BQWdCO1FBQzNGLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7OztJQUVNLFlBQVksQ0FBQyxVQUFrQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7Ozs7O0lBRU0sa0JBQWtCLENBQUMsT0FBWSxFQUFFLFlBQXNCLEVBQUUsT0FBYTtRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7Ozs7OztJQUVNLGtCQUFrQixDQUFDLE9BQVksRUFBRSxZQUFzQixFQUFFLE9BQWE7UUFDM0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7Ozs7Ozs7SUFFTSxrQkFBa0IsQ0FBQyxPQUFZLEVBQUUsWUFBc0IsRUFBRSxPQUFhO1FBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs7Ozs7O0lBRU0sT0FBTyxDQUFDLE9BQVksRUFBRSxZQUFzQixFQUFFLE9BQWE7UUFDaEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDOzs7O0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs7WUE1SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixnQ0FBcUM7O2FBRXRDOzs7b0JBRUUsS0FBSzswQkFDTCxLQUFLO3FCQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBQ0wsS0FBSztxQkFDTCxLQUFLO21CQUNMLEtBQUs7c0JBQ0wsS0FBSzswQkFDTCxLQUFLO3lCQUNMLEtBQUs7b0JBQ0wsS0FBSztvQkFDTCxLQUFLO21CQUVMLEtBQUs7cUJBT0wsS0FBSztvQkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSzsrQkFFTCxLQUFLOzJCQUVMLFNBQVMsU0FBQyxPQUFPOzs7O0lBN0JsQiwrQkFBMEI7O0lBQzFCLHFDQUFzQzs7SUFDdEMsZ0NBQTBCOztJQUMxQixvQ0FBeUQ7O0lBQ3pELGdDQUE4RDs7SUFDOUQsZ0NBQW9EOztJQUNwRCxnQ0FBMEI7O0lBQzFCLGdDQUE0Qjs7SUFDNUIsOEJBQXdCOztJQUN4QixpQ0FBOEI7O0lBQzlCLHFDQUFzQzs7SUFDdEMsb0NBQXNDOztJQUN0QywrQkFBMEI7O0lBQzFCLCtCQUF3Qzs7SUFFeEMsOEJBS0U7O0lBRUYsZ0NBQTRCOztJQUM1QiwrQkFBa0M7O0lBQ2xDLGtDQUFxQzs7SUFDckMsK0JBQTBCOztJQUUxQiwwQ0FBaUM7Ozs7O0lBRWpDLHNDQUFxRDs7Ozs7SUFDckQsa0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXBleEFubm90YXRpb25zLFxuICBBcGV4QXhpc0NoYXJ0U2VyaWVzLFxuICBBcGV4Q2hhcnQsXG4gIEFwZXhEYXRhTGFiZWxzLFxuICBBcGV4RmlsbCxcbiAgQXBleEdyaWQsXG4gIEFwZXhMZWdlbmQsXG4gIEFwZXhOb25BeGlzQ2hhcnRTZXJpZXMsXG4gIEFwZXhQbG90T3B0aW9ucyxcbiAgQXBleFJlc3BvbnNpdmUsXG4gIEFwZXhTdGF0ZXMsXG4gIEFwZXhTdHJva2UsIEFwZXhUaGVtZSwgQXBleFRpdGxlU3VidGl0bGUsXG4gIEFwZXhUb29sdGlwLFxuICBBcGV4WEF4aXMsXG4gIEFwZXhZQXhpc1xufSBmcm9tICcuLi9tb2RlbC9hcGV4LXR5cGVzJztcbmltcG9ydCB7IGFzYXBTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcblxuZGVjbGFyZSB2YXIgQXBleENoYXJ0czogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHgtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNoYXJ0OiBBcGV4Q2hhcnQ7XG4gIEBJbnB1dCgpIGFubm90YXRpb25zOiBBcGV4QW5ub3RhdGlvbnM7XG4gIEBJbnB1dCgpIGNvbG9yczogc3RyaW5nW107XG4gIEBJbnB1dCgpIGRhdGFMYWJlbHM6IEFwZXhEYXRhTGFiZWxzID0geyBlbmFibGVkOiBmYWxzZSB9O1xuICBASW5wdXQoKSBzZXJpZXM6IEFwZXhBeGlzQ2hhcnRTZXJpZXMgfCBBcGV4Tm9uQXhpc0NoYXJ0U2VyaWVzO1xuICBASW5wdXQoKSBzdHJva2U6IEFwZXhTdHJva2UgPSB7IGN1cnZlOiAnc3RyYWlnaHQnIH07XG4gIEBJbnB1dCgpIGxhYmVsczogc3RyaW5nW107XG4gIEBJbnB1dCgpIGxlZ2VuZDogQXBleExlZ2VuZDtcbiAgQElucHV0KCkgZmlsbDogQXBleEZpbGw7XG4gIEBJbnB1dCgpIHRvb2x0aXA6IEFwZXhUb29sdGlwO1xuICBASW5wdXQoKSBwbG90T3B0aW9uczogQXBleFBsb3RPcHRpb25zO1xuICBASW5wdXQoKSByZXNwb25zaXZlOiBBcGV4UmVzcG9uc2l2ZVtdO1xuICBASW5wdXQoKSB4YXhpczogQXBleFhBeGlzO1xuICBASW5wdXQoKSB5YXhpczogQXBleFlBeGlzIHwgQXBleFlBeGlzW107XG5cbiAgQElucHV0KCkgZ3JpZDogQXBleEdyaWQgPSB7XG4gICAgcm93OiB7XG4gICAgICBjb2xvcnM6IFsnI2YzZjNmMycsICd0cmFuc3BhcmVudCddLFxuICAgICAgb3BhY2l0eTogMC41XG4gICAgfVxuICB9O1xuXG4gIEBJbnB1dCgpIHN0YXRlczogQXBleFN0YXRlcztcbiAgQElucHV0KCkgdGl0bGU6IEFwZXhUaXRsZVN1YnRpdGxlO1xuICBASW5wdXQoKSBzdWJ0aXRsZTogQXBleFRpdGxlU3VidGl0bGU7XG4gIEBJbnB1dCgpIHRoZW1lOiBBcGV4VGhlbWU7XG5cbiAgQElucHV0KCkgYXV0b1VwZGF0ZVNlcmllcyA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnY2hhcnQnKSBwcml2YXRlIGNoYXJ0RWxlbWVudDogRWxlbWVudFJlZjtcbiAgcHJpdmF0ZSBjaGFydE9iajogYW55O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGFzYXBTY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuICAgICAgdGhpcy5jcmVhdGVFbGVtZW50KCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgYXNhcFNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hdXRvVXBkYXRlU2VyaWVzICYmIE9iamVjdC5rZXlzKGNoYW5nZXMpLmZpbHRlcihjID0+IGMgIT09ICdzZXJpZXMnKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy51cGRhdGVTZXJpZXModGhpcy5zZXJpZXMsIHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3JlYXRlRWxlbWVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFbGVtZW50KCkge1xuICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHt9O1xuXG4gICAgaWYgKHRoaXMuYW5ub3RhdGlvbnMpIHsgb3B0aW9ucy5hbm5vdGF0aW9ucyA9IHRoaXMuYW5ub3RhdGlvbnM7IH1cbiAgICBpZiAodGhpcy5jaGFydCkgeyBvcHRpb25zLmNoYXJ0ID0gdGhpcy5jaGFydDsgfVxuICAgIGlmICh0aGlzLmNvbG9ycykgeyBvcHRpb25zLmNvbG9ycyA9IHRoaXMuY29sb3JzOyB9XG4gICAgaWYgKHRoaXMuZGF0YUxhYmVscykgeyBvcHRpb25zLmRhdGFMYWJlbHMgPSB0aGlzLmRhdGFMYWJlbHM7IH1cbiAgICBpZiAodGhpcy5zZXJpZXMpIHsgb3B0aW9ucy5zZXJpZXMgPSB0aGlzLnNlcmllczsgfVxuICAgIGlmICh0aGlzLnN0cm9rZSkgeyBvcHRpb25zLnN0cm9rZSA9IHRoaXMuc3Ryb2tlOyB9XG4gICAgaWYgKHRoaXMubGFiZWxzKSB7IG9wdGlvbnMubGFiZWxzID0gdGhpcy5sYWJlbHM7IH1cbiAgICBpZiAodGhpcy5sZWdlbmQpIHsgb3B0aW9ucy5sZWdlbmQgPSB0aGlzLmxlZ2VuZDsgfVxuICAgIGlmICh0aGlzLmZpbGwpIHsgb3B0aW9ucy5maWxsID0gdGhpcy5maWxsOyB9XG4gICAgaWYgKHRoaXMudG9vbHRpcCkgeyBvcHRpb25zLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXA7IH1cbiAgICBpZiAodGhpcy5wbG90T3B0aW9ucykgeyBvcHRpb25zLnBsb3RPcHRpb25zID0gdGhpcy5wbG90T3B0aW9uczsgfVxuICAgIGlmICh0aGlzLnJlc3BvbnNpdmUpIHsgb3B0aW9ucy5yZXNwb25zaXZlID0gdGhpcy5yZXNwb25zaXZlOyB9XG4gICAgaWYgKHRoaXMueGF4aXMpIHsgb3B0aW9ucy54YXhpcyA9IHRoaXMueGF4aXM7IH1cbiAgICBpZiAodGhpcy55YXhpcykgeyBvcHRpb25zLnlheGlzID0gdGhpcy55YXhpczsgfVxuICAgIGlmICh0aGlzLmdyaWQpIHsgb3B0aW9ucy5ncmlkID0gdGhpcy5ncmlkOyB9XG4gICAgaWYgKHRoaXMuc3RhdGVzKSB7IG9wdGlvbnMuc3RhdGVzID0gdGhpcy5zdGF0ZXM7IH1cbiAgICBpZiAodGhpcy50aXRsZSkgeyBvcHRpb25zLnRpdGxlID0gdGhpcy50aXRsZTsgfVxuICAgIGlmICh0aGlzLnN1YnRpdGxlKSB7IG9wdGlvbnMuc3VidGl0bGUgPSB0aGlzLnN1YnRpdGxlOyB9XG4gICAgaWYgKHRoaXMudGhlbWUpIHsgb3B0aW9ucy50aGVtZSA9IHRoaXMudGhlbWU7IH1cblxuICAgIGlmICh0aGlzLmNoYXJ0T2JqKSB7XG4gICAgICB0aGlzLmNoYXJ0T2JqLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICB0aGlzLmNoYXJ0T2JqID0gbmV3IEFwZXhDaGFydHMoXG4gICAgICB0aGlzLmNoYXJ0RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgb3B0aW9uc1xuICAgICk7XG5cbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFydE9iai5yZW5kZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVPcHRpb25zKG9wdGlvbnM6IGFueSwgcmVkcmF3UGF0aHM6IGJvb2xlYW4sIGFuaW1hdGU6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFydE9iai51cGRhdGVPcHRpb25zKG9wdGlvbnMsIHJlZHJhd1BhdGhzLCBhbmltYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTZXJpZXMobmV3U2VyaWVzOiBBcGV4QXhpc0NoYXJ0U2VyaWVzIHwgQXBleE5vbkF4aXNDaGFydFNlcmllcywgYW5pbWF0ZTogYm9vbGVhbikge1xuICAgIHRoaXMuY2hhcnRPYmoudXBkYXRlU2VyaWVzKG5ld1NlcmllcywgYW5pbWF0ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU2VyaWVzKHNlcmllc05hbWU6IHN0cmluZykge1xuICAgIHRoaXMuY2hhcnRPYmoudG9nZ2xlU2VyaWVzKHNlcmllc05hbWUpO1xuICB9XG5cbiAgcHVibGljIGFkZFhheGlzQW5ub3RhdGlvbihvcHRpb25zOiBhbnksIHB1c2hUb01lbW9yeT86IGJvb2xlYW4sIGNvbnRleHQ/OiBhbnkpIHtcbiAgICB0aGlzLmNoYXJ0T2JqLmFkZFhheGlzQW5ub3RhdGlvbihvcHRpb25zLCBwdXNoVG9NZW1vcnksIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGFkZFlheGlzQW5ub3RhdGlvbihvcHRpb25zOiBhbnksIHB1c2hUb01lbW9yeT86IGJvb2xlYW4sIGNvbnRleHQ/OiBhbnkpIHtcbiAgICB0aGlzLmNoYXJ0T2JqLmFkZFlheGlzQW5ub3RhdGlvbihvcHRpb25zLCBwdXNoVG9NZW1vcnksIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGFkZFBvaW50QW5ub3RhdGlvbihvcHRpb25zOiBhbnksIHB1c2hUb01lbW9yeT86IGJvb2xlYW4sIGNvbnRleHQ/OiBhbnkpIHtcbiAgICB0aGlzLmNoYXJ0T2JqLmFkZFBvaW50QW5ub3RhdGlvbihvcHRpb25zLCBwdXNoVG9NZW1vcnksIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGFkZFRleHQob3B0aW9uczogYW55LCBwdXNoVG9NZW1vcnk/OiBib29sZWFuLCBjb250ZXh0PzogYW55KSB7XG4gICAgdGhpcy5jaGFydE9iai5hZGRUZXh0KG9wdGlvbnMsIHB1c2hUb01lbW9yeSwgY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgZGF0YVVSSSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jaGFydE9iai5kYXRhVVJJKCk7XG4gIH1cbn1cbiJdfQ==