angular-google-charts
Version:
A wrapper for the Google Charts library written with Angular
36 lines • 4.74 kB
JavaScript
/// <reference path="./chart-editor.ts" />
import { Subject } from 'rxjs';
export class ChartEditorRef {
constructor(editor) {
this.editor = editor;
this.doneSubject = new Subject();
this.addEventListeners();
}
/**
* Gets an observable that is notified when the dialog is saved.
* Emits either the result if the dialog was saved or `null` if editing was cancelled.
*/
afterClosed() {
return this.doneSubject.asObservable();
}
/**
* Stops editing the chart and closes the dialog.
*/
cancel() {
this.editor.closeDialog();
}
addEventListeners() {
google.visualization.events.addOneTimeListener(this.editor, 'ok', () => {
google.visualization.events.removeAllListeners(this.editor);
const updatedChartWrapper = this.editor.getChartWrapper();
this.doneSubject.next(updatedChartWrapper);
this.doneSubject.complete();
});
google.visualization.events.addOneTimeListener(this.editor, 'cancel', () => {
google.visualization.events.removeAllListeners(this.editor);
this.doneSubject.next(null);
this.doneSubject.complete();
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtZWRpdG9yLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItZ29vZ2xlLWNoYXJ0cy9zcmMvbGliL2NvbXBvbmVudHMvY2hhcnQtZWRpdG9yL2NoYXJ0LWVkaXRvci1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMENBQTBDO0FBRTFDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJM0MsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBNkIsTUFBd0M7UUFBeEMsV0FBTSxHQUFOLE1BQU0sQ0FBa0M7UUFGcEQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUc1RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDckUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTVELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUUxRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDekUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9jaGFydC1lZGl0b3IudHNcIiAvPlxuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEVkaXRDaGFydFJlc3VsdCA9IGdvb2dsZS52aXN1YWxpemF0aW9uLkNoYXJ0V3JhcHBlciB8IG51bGw7XG5cbmV4cG9ydCBjbGFzcyBDaGFydEVkaXRvclJlZiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9uZVN1YmplY3QgPSBuZXcgU3ViamVjdDxFZGl0Q2hhcnRSZXN1bHQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlZGl0b3I6IGdvb2dsZS52aXN1YWxpemF0aW9uLkNoYXJ0RWRpdG9yKSB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGlzIG5vdGlmaWVkIHdoZW4gdGhlIGRpYWxvZyBpcyBzYXZlZC5cbiAgICogRW1pdHMgZWl0aGVyIHRoZSByZXN1bHQgaWYgdGhlIGRpYWxvZyB3YXMgc2F2ZWQgb3IgYG51bGxgIGlmIGVkaXRpbmcgd2FzIGNhbmNlbGxlZC5cbiAgICovXG4gIHB1YmxpYyBhZnRlckNsb3NlZCgpOiBPYnNlcnZhYmxlPEVkaXRDaGFydFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmRvbmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIGVkaXRpbmcgdGhlIGNoYXJ0IGFuZCBjbG9zZXMgdGhlIGRpYWxvZy5cbiAgICovXG4gIHB1YmxpYyBjYW5jZWwoKSB7XG4gICAgdGhpcy5lZGl0b3IuY2xvc2VEaWFsb2coKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgZ29vZ2xlLnZpc3VhbGl6YXRpb24uZXZlbnRzLmFkZE9uZVRpbWVMaXN0ZW5lcih0aGlzLmVkaXRvciwgJ29rJywgKCkgPT4ge1xuICAgICAgZ29vZ2xlLnZpc3VhbGl6YXRpb24uZXZlbnRzLnJlbW92ZUFsbExpc3RlbmVycyh0aGlzLmVkaXRvcik7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRDaGFydFdyYXBwZXIgPSB0aGlzLmVkaXRvci5nZXRDaGFydFdyYXBwZXIoKTtcblxuICAgICAgdGhpcy5kb25lU3ViamVjdC5uZXh0KHVwZGF0ZWRDaGFydFdyYXBwZXIpO1xuICAgICAgdGhpcy5kb25lU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgIH0pO1xuXG4gICAgZ29vZ2xlLnZpc3VhbGl6YXRpb24uZXZlbnRzLmFkZE9uZVRpbWVMaXN0ZW5lcih0aGlzLmVkaXRvciwgJ2NhbmNlbCcsICgpID0+IHtcbiAgICAgIGdvb2dsZS52aXN1YWxpemF0aW9uLmV2ZW50cy5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcy5lZGl0b3IpO1xuXG4gICAgICB0aGlzLmRvbmVTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgICB0aGlzLmRvbmVTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==