UNPKG

@ngx-performance-ui/ui

Version:
127 lines 11 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ElementRef, Input, ViewChild, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, } from '@angular/core'; import { take } from 'rxjs/operators'; import { LazyLoadScriptService } from '@ngx-performance-ui/core'; // https://developers.google.com/chart/interactive/docs/ export class GoogleChartComponent { /** * @param {?} lazyLoadScriptService */ constructor(lazyLoadScriptService) { this.lazyLoadScriptService = lazyLoadScriptService; this.chartType = 'AreaChart'; this.style = { width: '100%', height: 'auto' }; this.containerClasses = ''; this.drawFn = (/** * @param {?} _ * @return {?} */ _ => { if (this.dataTable && this.dataTable.length) { this.data = google.visualization.arrayToDataTable(this.dataTable); } else if (this.columns && this.columns.length && this.rows && this.rows.length) { this.data = new google.visualization.DataTable(); this.columns.forEach((/** * @param {?} column * @return {?} */ column => this.data.addColumn(column.type, column.label))); this.data.addRows(this.rows); } else { console.error('Must set datatable or columns and rows inputs'); return; } this.chart = new google.visualization[this.chartType](this.chartContainer.nativeElement); this.chart.draw(this.data, this.options); this.ready.emit(); }); this.ready = new EventEmitter(); } /** * @return {?} */ get packages() { if (this.chartType === 'AnnotationChart') return [this.chartType.toLowerCase()]; return ['corechart']; } /** * @return {?} */ ngAfterViewInit() { this.lazyLoadScriptService .loadScript('https://www.gstatic.com/charts/loader.js') .pipe(take(1)) .subscribe((/** * @param {?} _ * @return {?} */ _ => { google.charts.load('current', { packages: this.packages }); google.charts.setOnLoadCallback(this.drawFn); })); } } GoogleChartComponent.decorators = [ { type: Component, args: [{ selector: 'p-google-chart', template: ` <div #chartContainer class="{{ containerClasses }}" [ngStyle]="style"></div> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None }] } ]; /** @nocollapse */ GoogleChartComponent.ctorParameters = () => [ { type: LazyLoadScriptService } ]; GoogleChartComponent.propDecorators = { chartType: [{ type: Input }], dataTable: [{ type: Input }], columns: [{ type: Input }], rows: [{ type: Input }], options: [{ type: Input }], style: [{ type: Input }], containerClasses: [{ type: Input }], drawFn: [{ type: Input }], ready: [{ type: Output }], chartContainer: [{ type: ViewChild, args: ['chartContainer',] }] }; if (false) { /** @type {?} */ GoogleChartComponent.prototype.chartType; /** @type {?} */ GoogleChartComponent.prototype.dataTable; /** @type {?} */ GoogleChartComponent.prototype.columns; /** @type {?} */ GoogleChartComponent.prototype.rows; /** @type {?} */ GoogleChartComponent.prototype.options; /** @type {?} */ GoogleChartComponent.prototype.style; /** @type {?} */ GoogleChartComponent.prototype.containerClasses; /** @type {?} */ GoogleChartComponent.prototype.drawFn; /** @type {?} */ GoogleChartComponent.prototype.ready; /** @type {?} */ GoogleChartComponent.prototype.chartContainer; /** @type {?} */ GoogleChartComponent.prototype.chart; /** @type {?} */ GoogleChartComponent.prototype.data; /** * @type {?} * @private */ GoogleChartComponent.prototype.lazyLoadScriptService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtcGVyZm9ybWFuY2UtdWkvdWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9nb29nbGUtY2hhcnQvZ29vZ2xlLWNoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUN2QixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWFqRSxNQUFNLE9BQU8sb0JBQW9COzs7O0lBd0QvQixZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQXREaEUsY0FBUyxHQUFvQyxXQUFXLENBQUM7UUFlekQsVUFBSyxHQUF1QyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRzlFLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUc5QixXQUFNOzs7O1FBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDbkU7aUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQy9FLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU87Ozs7Z0JBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDO2dCQUMvRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO2dCQUMvRCxPQUFPO2FBQ1I7WUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV6QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUMsRUFBQztRQUdGLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBY2tDLENBQUM7Ozs7SUFOcEUsSUFBSSxRQUFRO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGlCQUFpQjtZQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFaEYsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Ozs7SUFJRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQjthQUN2QixVQUFVLENBQUMsMENBQTBDLENBQUM7YUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVM7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRTtZQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMzRCxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7OztZQTFFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsUUFBUSxFQUFFOztHQUVUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7OztZQVpRLHFCQUFxQjs7O3dCQWMzQixLQUFLO3dCQUdMLEtBQUs7c0JBR0wsS0FBSzttQkFHTCxLQUFLO3NCQUdMLEtBQUs7b0JBR0wsS0FBSzsrQkFHTCxLQUFLO3FCQUdMLEtBQUs7b0JBbUJMLE1BQU07NkJBR04sU0FBUyxTQUFDLGdCQUFnQjs7OztJQTNDM0IseUNBQ3lEOztJQUV6RCx5Q0FDaUI7O0lBRWpCLHVDQUM4Qjs7SUFFOUIsb0NBQ21COztJQUVuQix1Q0FDc0M7O0lBRXRDLHFDQUM4RTs7SUFFOUUsZ0RBQzhCOztJQUU5QixzQ0FpQkU7O0lBRUYscUNBQ2lDOztJQUVqQyw4Q0FBd0Q7O0lBRXhELHFDQUFrQjs7SUFFbEIsb0NBQWlCOzs7OztJQVFMLHFEQUFvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR29vZ2xlQ2hhcnQgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgTGF6eUxvYWRTY3JpcHRTZXJ2aWNlIH0gZnJvbSAnQG5neC1wZXJmb3JtYW5jZS11aS9jb3JlJztcblxuZGVjbGFyZSB2YXIgZ29vZ2xlO1xuXG4vLyBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9jaGFydC9pbnRlcmFjdGl2ZS9kb2NzL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncC1nb29nbGUtY2hhcnQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgI2NoYXJ0Q29udGFpbmVyIGNsYXNzPVwie3sgY29udGFpbmVyQ2xhc3NlcyB9fVwiIFtuZ1N0eWxlXT1cInN0eWxlXCI+PC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBHb29nbGVDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKVxuICBjaGFydFR5cGU6ICdBbm5vdGF0aW9uQ2hhcnQnIHwgJ0FyZWFDaGFydCcgPSAnQXJlYUNoYXJ0JztcblxuICBASW5wdXQoKVxuICBkYXRhVGFibGU6IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIGNvbHVtbnM6IEdvb2dsZUNoYXJ0LkNvbHVtbltdO1xuXG4gIEBJbnB1dCgpXG4gIHJvd3M6IEFycmF5PGFueVtdPjtcblxuICBASW5wdXQoKVxuICBvcHRpb25zOiBHb29nbGVDaGFydC5Bbm5vdGF0aW9uT3B0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHN0eWxlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB9ID0geyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyB9O1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRhaW5lckNsYXNzZXM6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGRyYXdGbiA9IF8gPT4ge1xuICAgIGlmICh0aGlzLmRhdGFUYWJsZSAmJiB0aGlzLmRhdGFUYWJsZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZGF0YSA9IGdvb2dsZS52aXN1YWxpemF0aW9uLmFycmF5VG9EYXRhVGFibGUodGhpcy5kYXRhVGFibGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggJiYgdGhpcy5yb3dzICYmIHRoaXMucm93cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTtcbiAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB0aGlzLmRhdGEuYWRkQ29sdW1uKGNvbHVtbi50eXBlLCBjb2x1bW4ubGFiZWwpKTtcbiAgICAgIHRoaXMuZGF0YS5hZGRSb3dzKHRoaXMucm93cyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ011c3Qgc2V0IGRhdGF0YWJsZSBvciBjb2x1bW5zIGFuZCByb3dzIGlucHV0cycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb25bdGhpcy5jaGFydFR5cGVdKHRoaXMuY2hhcnRDb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5jaGFydC5kcmF3KHRoaXMuZGF0YSwgdGhpcy5vcHRpb25zKTtcblxuICAgIHRoaXMucmVhZHkuZW1pdCgpO1xuICB9O1xuXG4gIEBPdXRwdXQoKVxuICByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCdjaGFydENvbnRhaW5lcicpIGNoYXJ0Q29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyBjaGFydDogYW55O1xuXG4gIHB1YmxpYyBkYXRhOiBhbnk7XG5cbiAgZ2V0IHBhY2thZ2VzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5jaGFydFR5cGUgPT09ICdBbm5vdGF0aW9uQ2hhcnQnKSByZXR1cm4gW3RoaXMuY2hhcnRUeXBlLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgcmV0dXJuIFsnY29yZWNoYXJ0J107XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxhenlMb2FkU2NyaXB0U2VydmljZTogTGF6eUxvYWRTY3JpcHRTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmxhenlMb2FkU2NyaXB0U2VydmljZVxuICAgICAgLmxvYWRTY3JpcHQoJ2h0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2NoYXJ0cy9sb2FkZXIuanMnKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgIGdvb2dsZS5jaGFydHMubG9hZCgnY3VycmVudCcsIHsgcGFja2FnZXM6IHRoaXMucGFja2FnZXMgfSk7XG4gICAgICAgIGdvb2dsZS5jaGFydHMuc2V0T25Mb2FkQ2FsbGJhY2sodGhpcy5kcmF3Rm4pO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==