UNPKG

angular-google-charts

Version:

A wrapper for the Google Charts library written with Angular

55 lines 8.33 kB
/// <reference path="./chart-editor.ts" /> /// <reference path="./chart-editor.ts" /> import { ChangeDetectionStrategy, Component } from '@angular/core'; import { Subject } from 'rxjs'; import { ScriptLoaderService } from '../../services/script-loader.service'; import { ChartEditorRef } from './chart-editor-ref'; import * as i0 from "@angular/core"; import * as i1 from "../../services/script-loader.service"; export class ChartEditorComponent { constructor(scriptLoaderService) { this.scriptLoaderService = scriptLoaderService; this.initializedSubject = new Subject(); } /** * Emits as soon as the chart editor is fully initialized. */ get initialized$() { return this.initializedSubject.asObservable(); } ngOnInit() { this.scriptLoaderService.loadChartPackages('charteditor').subscribe(() => { this.editor = new google.visualization.ChartEditor(); this.initializedSubject.next(this.editor); this.initializedSubject.complete(); }); } editChart(component, options) { if (!component.chartWrapper) { throw new Error('Chart wrapper is `undefined`. Please wait for the `initialized$` observable before trying to edit a chart.'); } if (!this.editor) { throw new Error('Chart editor is `undefined`. Please wait for the `initialized$` observable before trying to edit a chart.'); } const handle = new ChartEditorRef(this.editor); this.editor.openDialog(component.chartWrapper, options || {}); handle.afterClosed().subscribe(result => { if (result) { component.chartWrapper = result; } }); return handle; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChartEditorComponent, deps: [{ token: i1.ScriptLoaderService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ChartEditorComponent, selector: "chart-editor", host: { classAttribute: "chart-editor" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ChartEditorComponent, decorators: [{ type: Component, args: [{ selector: 'chart-editor', template: `<ng-content></ng-content>`, host: { class: 'chart-editor' }, changeDetection: ChangeDetectionStrategy.OnPush }] }], ctorParameters: function () { return [{ type: i1.ScriptLoaderService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZ29vZ2xlLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnQtZWRpdG9yL2NoYXJ0LWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBQTFDLDBDQUEwQztBQUUxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFRcEQsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUZwRCx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBb0MsQ0FBQztJQUVkLENBQUM7SUFFaEU7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBV00sU0FBUyxDQUFDLFNBQW9CLEVBQUUsT0FBaUQ7UUFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FDYiw0R0FBNEcsQ0FDN0csQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwyR0FBMkcsQ0FDNUcsQ0FBQztTQUNIO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlELE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsU0FBUyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7K0dBcERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDhGQUpyQiwyQkFBMkI7OzRGQUkxQixvQkFBb0I7a0JBTmhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUU7b0JBQy9CLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuL2NoYXJ0LWVkaXRvci50c1wiIC8+XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY3JpcHRMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2NyaXB0LWxvYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENoYXJ0QmFzZSB9IGZyb20gJy4uL2NoYXJ0LWJhc2UvY2hhcnQtYmFzZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBDaGFydEVkaXRvclJlZiB9IGZyb20gJy4vY2hhcnQtZWRpdG9yLXJlZic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NoYXJ0LWVkaXRvcicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjaGFydC1lZGl0b3InIH0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0RWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBlZGl0b3I6IGdvb2dsZS52aXN1YWxpemF0aW9uLkNoYXJ0RWRpdG9yIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGluaXRpYWxpemVkU3ViamVjdCA9IG5ldyBTdWJqZWN0PGdvb2dsZS52aXN1YWxpemF0aW9uLkNoYXJ0RWRpdG9yPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2NyaXB0TG9hZGVyU2VydmljZTogU2NyaXB0TG9hZGVyU2VydmljZSkge31cblxuICAvKipcbiAgICogRW1pdHMgYXMgc29vbiBhcyB0aGUgY2hhcnQgZWRpdG9yIGlzIGZ1bGx5IGluaXRpYWxpemVkLlxuICAgKi9cbiAgcHVibGljIGdldCBpbml0aWFsaXplZCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2NyaXB0TG9hZGVyU2VydmljZS5sb2FkQ2hhcnRQYWNrYWdlcygnY2hhcnRlZGl0b3InKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5lZGl0b3IgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ2hhcnRFZGl0b3IoKTtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQodGhpcy5lZGl0b3IpO1xuICAgICAgdGhpcy5pbml0aWFsaXplZFN1YmplY3QuY29tcGxldGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgY2hhcnQgZWRpdG9yIGFzIGFuIGVtYmVkZGVkIGRpYWxvZyBib3ggb24gdGhlIHBhZ2UuXG4gICAqIElmIHRoZSBlZGl0b3IgZ2V0cyBzYXZlZCwgdGhlIGNvbXBvbmVudHMnIGNoYXJ0IHdpbGwgYmUgdXBkYXRlZCB3aXRoIHRoZSByZXN1bHQuXG4gICAqXG4gICAqIEBwYXJhbSBjb21wb25lbnQgVGhlIGNoYXJ0IHRvIGJlIGVkaXRlZC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIG9wZW4gZWRpdG9yLlxuICAgKi9cbiAgcHVibGljIGVkaXRDaGFydChjb21wb25lbnQ6IENoYXJ0QmFzZSk6IENoYXJ0RWRpdG9yUmVmO1xuICBwdWJsaWMgZWRpdENoYXJ0KGNvbXBvbmVudDogQ2hhcnRCYXNlLCBvcHRpb25zOiBnb29nbGUudmlzdWFsaXphdGlvbi5DaGFydEVkaXRvck9wdGlvbnMpOiBDaGFydEVkaXRvclJlZjtcbiAgcHVibGljIGVkaXRDaGFydChjb21wb25lbnQ6IENoYXJ0QmFzZSwgb3B0aW9ucz86IGdvb2dsZS52aXN1YWxpemF0aW9uLkNoYXJ0RWRpdG9yT3B0aW9ucykge1xuICAgIGlmICghY29tcG9uZW50LmNoYXJ0V3JhcHBlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQ2hhcnQgd3JhcHBlciBpcyBgdW5kZWZpbmVkYC4gUGxlYXNlIHdhaXQgZm9yIHRoZSBgaW5pdGlhbGl6ZWQkYCBvYnNlcnZhYmxlIGJlZm9yZSB0cnlpbmcgdG8gZWRpdCBhIGNoYXJ0LidcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghdGhpcy5lZGl0b3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0NoYXJ0IGVkaXRvciBpcyBgdW5kZWZpbmVkYC4gUGxlYXNlIHdhaXQgZm9yIHRoZSBgaW5pdGlhbGl6ZWQkYCBvYnNlcnZhYmxlIGJlZm9yZSB0cnlpbmcgdG8gZWRpdCBhIGNoYXJ0LidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlID0gbmV3IENoYXJ0RWRpdG9yUmVmKHRoaXMuZWRpdG9yKTtcbiAgICB0aGlzLmVkaXRvci5vcGVuRGlhbG9nKGNvbXBvbmVudC5jaGFydFdyYXBwZXIsIG9wdGlvbnMgfHwge30pO1xuXG4gICAgaGFuZGxlLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGNvbXBvbmVudC5jaGFydFdyYXBwZXIgPSByZXN1bHQ7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaGFuZGxlO1xuICB9XG59XG4iXX0=