UNPKG

ng2-google-charts

Version:
74 lines 10.6 kB
import { __awaiter } from "tslib"; import { Component, Input, } from '@angular/core'; import { GoogleChartsDataTable } from '../google-charts-datatable'; import * as i0 from "@angular/core"; import * as i1 from "../google-charts-loader.service"; export class GoogleChartsDashboardComponent { constructor(el, loaderService) { this.el = el; this.loaderService = loaderService; this.el = el; this.loaderService = loaderService; } ngOnInit() { this.data.component = this; this.init().then(() => { if (!this.dataTable) { this.dataTable = new GoogleChartsDataTable(this.data); this.dataTable.dataTableChanged.subscribe((dt) => { this._draw(); }); } this.draw(); }); } init() { return __awaiter(this, void 0, void 0, function* () { yield this.loaderService.load({ packages: ['controls'] }); this.dashboard = new google.visualization.Dashboard(this.el.nativeElement.querySelector('div')); for (const b of this.data.bind) { let controls = b[0]; let charts = b[1]; if (!(controls instanceof Array)) { controls = [controls]; } if (!(charts instanceof Array)) { charts = [charts]; } for (const c of controls) { yield c.component.ensureInit(); } for (const c of charts) { if (!c.component) { continue; } yield c.component.init(); const data = c.component.data; if (data.dataTable !== undefined || data.dataSourceUrl !== undefined) { throw Error('dataTable and dataSourceUrl cannot be specified when ' + 'chart is drawn in a Dashboard'); } } this.dashboard.bind(controls.map(x => x.component.wrapper), charts.map(x => x.component.wrapper)); } }); } draw(value) { this.dataTable.init(value); } _draw() { this.dashboard.draw(this.dataTable.getDataTable()); } } GoogleChartsDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartsDashboardComponent, deps: [{ token: i0.ElementRef }, { token: i1.GoogleChartsLoaderService }], target: i0.ɵɵFactoryTarget.Component }); GoogleChartsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: GoogleChartsDashboardComponent, selector: "google-charts-dashboard", inputs: { data: "data" }, ngImport: i0, template: '<div></div>', isInline: true }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartsDashboardComponent, decorators: [{ type: Component, args: [{ selector: 'google-charts-dashboard', template: '<div></div>', }] }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.GoogleChartsLoaderService }]; }, propDecorators: { data: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNoYXJ0cy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcyLWdvb2dsZS1jaGFydHMvc3JjL2xpYi9nb29nbGUtY2hhcnRzLWRhc2hib2FyZC9nb29nbGUtY2hhcnRzLWRhc2hib2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFlbkUsTUFBTSxPQUFPLDhCQUE4QjtJQU96QyxZQUEyQixFQUFjLEVBQ2QsYUFBd0M7UUFEeEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUNqRSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTNCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFO29CQUNwRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVZLElBQUk7O1lBQ2YsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUV6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQ2pELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBRTlDLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQzlCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVsQixJQUFJLENBQUMsQ0FBQyxRQUFRLFlBQVksS0FBSyxDQUFDLEVBQUU7b0JBQ2hDLFFBQVEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUN2QjtnQkFFRCxJQUFJLENBQUMsQ0FBQyxNQUFNLFlBQVksS0FBSyxDQUFDLEVBQUU7b0JBQzlCLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNuQjtnQkFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRTtvQkFDeEIsTUFBTSxDQUFDLENBQUMsU0FBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUNqQztnQkFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRTtvQkFDdEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7d0JBQ2hCLFNBQVM7cUJBQ1Y7b0JBQ0QsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN6QixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTt3QkFDcEUsTUFBTSxLQUFLLENBQUMsdURBQXVEOzRCQUN2RCwrQkFBK0IsQ0FBQyxDQUFDO3FCQUM5QztpQkFDRjtnQkFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVUsQ0FBQyxPQUFPLENBQUMsRUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM1RDtRQUNILENBQUM7S0FBQTtJQUVNLElBQUksQ0FBQyxLQUE0QjtRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs0SEF4RVUsOEJBQThCO2dIQUE5Qiw4QkFBOEIseUZBRi9CLGFBQWE7NEZBRVosOEJBQThCO2tCQUoxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjt5SUFHaUIsSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImRlY2xhcmUgdmFyIGdvb2dsZTogYW55O1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uSW5pdCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHb29nbGVDaGFydHNMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ29vZ2xlLWNoYXJ0cy1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVDaGFydHNEYXRhVGFibGVJbnRlcmZhY2UgfSBmcm9tICcuLi9nb29nbGUtY2hhcnRzLWRhdGF0YWJsZSc7XG5pbXBvcnQgeyBHb29nbGVDaGFydHNDb250cm9sSW50ZXJmYWNlIH0gZnJvbSAnLi4vZ29vZ2xlLWNoYXJ0cy1jb250cm9sL2dvb2dsZS1jaGFydHMtY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR29vZ2xlQ2hhcnRJbnRlcmZhY2UgfSBmcm9tICcuLi9nb29nbGUtY2hhcnQvZ29vZ2xlLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb29nbGVDaGFydHNEYXRhVGFibGUgfSBmcm9tICcuLi9nb29nbGUtY2hhcnRzLWRhdGF0YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlQ2hhcnRzRGFzaGJvYXJkSW50ZXJmYWNlIGV4dGVuZHNcbiBHb29nbGVDaGFydHNEYXRhVGFibGVJbnRlcmZhY2Uge1xuICBiaW5kOiBbXG4gICAgR29vZ2xlQ2hhcnRzQ29udHJvbEludGVyZmFjZSB8IEdvb2dsZUNoYXJ0c0NvbnRyb2xJbnRlcmZhY2VbXSxcbiAgICBHb29nbGVDaGFydEludGVyZmFjZSB8IEdvb2dsZUNoYXJ0SW50ZXJmYWNlW11cbiAgXVtdO1xuICBjb21wb25lbnQ/OiBHb29nbGVDaGFydHNEYXNoYm9hcmRDb21wb25lbnQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dvb2dsZS1jaGFydHMtZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGU6ICc8ZGl2PjwvZGl2PicsXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZUNoYXJ0c0Rhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcHVibGljIGRhdGEhOiBHb29nbGVDaGFydHNEYXNoYm9hcmRJbnRlcmZhY2U7XG5cbiAgcHVibGljIGRhc2hib2FyZDogYW55O1xuICBwdWJsaWMgZGF0YVRhYmxlITogR29vZ2xlQ2hhcnRzRGF0YVRhYmxlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBHb29nbGVDaGFydHNMb2FkZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5lbCA9IGVsO1xuICAgIHRoaXMubG9hZGVyU2VydmljZSA9IGxvYWRlclNlcnZpY2U7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRhdGEuY29tcG9uZW50ID0gdGhpcztcblxuICAgIHRoaXMuaW5pdCgpLnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRhdGFUYWJsZSkge1xuICAgICAgICB0aGlzLmRhdGFUYWJsZSA9IG5ldyBHb29nbGVDaGFydHNEYXRhVGFibGUodGhpcy5kYXRhKTtcbiAgICAgICAgdGhpcy5kYXRhVGFibGUuZGF0YVRhYmxlQ2hhbmdlZC5zdWJzY3JpYmUoKGR0OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLl9kcmF3KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5kcmF3KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRlclNlcnZpY2UubG9hZCh7cGFja2FnZXM6IFsnY29udHJvbHMnXSB9KTtcblxuICAgIHRoaXMuZGFzaGJvYXJkID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhc2hib2FyZChcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYnKSk7XG5cbiAgICBmb3IgKGNvbnN0IGIgb2YgdGhpcy5kYXRhLmJpbmQpIHtcbiAgICAgIGxldCBjb250cm9scyA9IGJbMF07XG4gICAgICBsZXQgY2hhcnRzID0gYlsxXTtcblxuICAgICAgaWYgKCEoY29udHJvbHMgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgY29udHJvbHMgPSBbY29udHJvbHNdO1xuICAgICAgfVxuXG4gICAgICBpZiAoIShjaGFydHMgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgY2hhcnRzID0gW2NoYXJ0c107XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgYyBvZiBjb250cm9scykge1xuICAgICAgICBhd2FpdCBjLmNvbXBvbmVudCEuZW5zdXJlSW5pdCgpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGMgb2YgY2hhcnRzKSB7XG4gICAgICAgIGlmICghYy5jb21wb25lbnQpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBjLmNvbXBvbmVudC5pbml0KCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjLmNvbXBvbmVudC5kYXRhO1xuICAgICAgICBpZiAoZGF0YS5kYXRhVGFibGUgIT09IHVuZGVmaW5lZCB8fCBkYXRhLmRhdGFTb3VyY2VVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRocm93IEVycm9yKCdkYXRhVGFibGUgYW5kIGRhdGFTb3VyY2VVcmwgY2Fubm90IGJlIHNwZWNpZmllZCB3aGVuICcgK1xuICAgICAgICAgICAgICAgICAgICAgICdjaGFydCBpcyBkcmF3biBpbiBhIERhc2hib2FyZCcpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGFzaGJvYXJkLmJpbmQoY29udHJvbHMubWFwKHggPT4geC5jb21wb25lbnQhLndyYXBwZXIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFydHMubWFwKHggPT4geC5jb21wb25lbnQhLndyYXBwZXIpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZHJhdyh2YWx1ZT86IEdvb2dsZUNoYXJ0SW50ZXJmYWNlKSB7XG4gICAgdGhpcy5kYXRhVGFibGUuaW5pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9kcmF3KCkge1xuICAgIHRoaXMuZGFzaGJvYXJkLmRyYXcodGhpcy5kYXRhVGFibGUuZ2V0RGF0YVRhYmxlKCkpO1xuICB9XG59XG4iXX0=