ng2-google-charts
Version:
Google Charts module for Angular 2 and beyond
54 lines • 7.94 kB
JavaScript
import { __awaiter } from "tslib";
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "./google-charts-loader.service";
function isComponent(chart) {
return chart.wrapper !== undefined;
}
export class GoogleChartEditor {
constructor(loaderService) {
this.loaderService = loaderService;
}
createEditor() {
return __awaiter(this, void 0, void 0, function* () {
if (this.chartEditor !== undefined) {
return;
}
yield this.loaderService.load({ packages: ['charteditor'] });
this.chartEditor = new google.visualization.ChartEditor();
google.visualization.events.addListener(this.chartEditor, 'ok', () => {
const wrapper = this.chartEditor.getChartWrapper();
this.comp.wrapper = wrapper;
this.comp.data.chartType = wrapper.getChartType();
if (this.comp.data.options !== undefined || Object.isExtensible(this.comp.data)) {
this.comp.data.options = wrapper.getOptions();
}
this.comp.wrapper.draw();
});
});
}
openDialog(chart, options) {
return __awaiter(this, void 0, void 0, function* () {
yield this.createEditor();
return new Promise((resolve, reject) => {
this.comp = isComponent(chart) ? chart : chart.component;
google.visualization.events.addListener(this.chartEditor, 'ok', () => {
resolve(this.comp.wrapper);
});
google.visualization.events.addListener(this.chartEditor, 'cancel', () => {
reject();
});
this.chartEditor.openDialog(this.comp.wrapper, options);
});
});
}
}
GoogleChartEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartEditor, deps: [{ token: i1.GoogleChartsLoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
GoogleChartEditor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartEditor, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartEditor, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i1.GoogleChartsLoaderService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNoYXJ0LWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nMi1nb29nbGUtY2hhcnRzL3NyYy9saWIvZ29vZ2xlLWNoYXJ0LWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTNDLFNBQVMsV0FBVyxDQUFDLEtBQWtEO0lBQ3JFLE9BQVEsS0FBOEIsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO0FBQy9ELENBQUM7QUFXRCxNQUFNLE9BQU8saUJBQWlCO0lBTTVCLFlBQTJCLGFBQXdDO1FBQXhDLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtJQUFFLENBQUM7SUFFeEQsWUFBWTs7WUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtnQkFDbEMsT0FBTzthQUNSO1lBQ0QsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMxRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNuRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNuRCxJQUFJLENBQUMsSUFBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxJQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ25ELElBQUksSUFBSSxDQUFDLElBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ2pGLElBQUksQ0FBQyxJQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7aUJBQ2hEO2dCQUNELElBQUksQ0FBQyxJQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRVksVUFBVSxDQUFDLEtBQWtELEVBQUUsT0FBa0M7O1lBQzVHLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRTFCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFVLENBQUM7Z0JBQzFELE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQ25FLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTs7K0dBdENVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgR29vZ2xlQ2hhcnRzTG9hZGVyU2VydmljZSB9IGZyb20gJy4vZ29vZ2xlLWNoYXJ0cy1sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHb29nbGVDaGFydENvbXBvbmVudCwgR29vZ2xlQ2hhcnRJbnRlcmZhY2UgfSBmcm9tICcuL2dvb2dsZS1jaGFydC9nb29nbGUtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEdvb2dsZUNoYXJ0V3JhcHBlciB9IGZyb20gJy4vZ29vZ2xlLWNoYXJ0cy1pbnRlcmZhY2VzJztcblxuZnVuY3Rpb24gaXNDb21wb25lbnQoY2hhcnQ6IEdvb2dsZUNoYXJ0Q29tcG9uZW50IHwgR29vZ2xlQ2hhcnRJbnRlcmZhY2UpOiBjaGFydCBpcyBHb29nbGVDaGFydENvbXBvbmVudCB7XG4gIHJldHVybiAoY2hhcnQgYXMgR29vZ2xlQ2hhcnRDb21wb25lbnQpLndyYXBwZXIgIT09IHVuZGVmaW5lZDtcbn1cblxuZGVjbGFyZSB2YXIgZ29vZ2xlOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlQ2hhcnRFZGl0b3JPcHRpb25zIHtcbiAgZGF0YVNvdXJjZUlucHV0PzogYW55O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBHb29nbGVDaGFydEVkaXRvciB7XG5cbiAgY2hhcnRFZGl0b3I6IGFueTtcblxuICBwcml2YXRlIGNvbXAhOiBHb29nbGVDaGFydENvbXBvbmVudDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBHb29nbGVDaGFydHNMb2FkZXJTZXJ2aWNlKXt9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVFZGl0b3IoKSB7XG4gICAgaWYgKHRoaXMuY2hhcnRFZGl0b3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLmxvYWRlclNlcnZpY2UubG9hZCh7IHBhY2thZ2VzOiBbJ2NoYXJ0ZWRpdG9yJ10gfSk7XG4gICAgdGhpcy5jaGFydEVkaXRvciA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5DaGFydEVkaXRvcigpO1xuICAgIGdvb2dsZS52aXN1YWxpemF0aW9uLmV2ZW50cy5hZGRMaXN0ZW5lcih0aGlzLmNoYXJ0RWRpdG9yLCAnb2snLCAoKSA9PiB7XG4gICAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5jaGFydEVkaXRvci5nZXRDaGFydFdyYXBwZXIoKTtcbiAgICAgIHRoaXMuY29tcCEud3JhcHBlciA9IHdyYXBwZXI7XG4gICAgICB0aGlzLmNvbXAhLmRhdGEuY2hhcnRUeXBlID0gd3JhcHBlci5nZXRDaGFydFR5cGUoKTtcbiAgICAgIGlmICh0aGlzLmNvbXAhLmRhdGEub3B0aW9ucyAhPT0gdW5kZWZpbmVkIHx8IE9iamVjdC5pc0V4dGVuc2libGUodGhpcy5jb21wIS5kYXRhKSkge1xuICAgICAgICB0aGlzLmNvbXAhLmRhdGEub3B0aW9ucyA9IHdyYXBwZXIuZ2V0T3B0aW9ucygpO1xuICAgICAgfVxuICAgICAgdGhpcy5jb21wIS53cmFwcGVyLmRyYXcoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvcGVuRGlhbG9nKGNoYXJ0OiBHb29nbGVDaGFydENvbXBvbmVudCB8IEdvb2dsZUNoYXJ0SW50ZXJmYWNlLCBvcHRpb25zPzogR29vZ2xlQ2hhcnRFZGl0b3JPcHRpb25zKTogUHJvbWlzZTxHb29nbGVDaGFydFdyYXBwZXIgfCBhbnk+IHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZUVkaXRvcigpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuY29tcCA9IGlzQ29tcG9uZW50KGNoYXJ0KSA/IGNoYXJ0IDogY2hhcnQuY29tcG9uZW50ITtcbiAgICAgIGdvb2dsZS52aXN1YWxpemF0aW9uLmV2ZW50cy5hZGRMaXN0ZW5lcih0aGlzLmNoYXJ0RWRpdG9yLCAnb2snLCAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUodGhpcy5jb21wIS53cmFwcGVyKTtcbiAgICAgIH0pO1xuICAgICAgZ29vZ2xlLnZpc3VhbGl6YXRpb24uZXZlbnRzLmFkZExpc3RlbmVyKHRoaXMuY2hhcnRFZGl0b3IsICdjYW5jZWwnLCAoKSA9PiB7XG4gICAgICAgIHJlamVjdCgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmNoYXJ0RWRpdG9yLm9wZW5EaWFsb2codGhpcy5jb21wIS53cmFwcGVyLCBvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=