UNPKG

ng2-google-charts

Version:
111 lines 14.3 kB
import { __awaiter } from "tslib"; import { Injectable, EventEmitter, LOCALE_ID, Inject, Optional } from '@angular/core'; import * as i0 from "@angular/core"; export class GoogleChartsLoaderService { constructor(localeId, googleChartsSettings) { this.googleChartsSettings = googleChartsSettings; this.loadedPackages = []; this.loaded = false; const defaultSettings = { googleChartsVersion: '50', language: localeId, }; this.googleChartsSettings = Object.assign(Object.assign({}, defaultSettings), this.googleChartsSettings); this.googleScriptLoadingNotifier = new EventEmitter(); this.googleChartLoadingNotifier = new EventEmitter(); this.googleScriptIsLoading = false; this.googleChartIsLoading = false; this.loadGoogleChartsScriptPromise = new Promise((resolve, reject) => { if (typeof google !== 'undefined' && google.charts) { resolve(); } else if (!this.googleScriptIsLoading) { this.googleScriptIsLoading = true; const script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'https://www.gstatic.com/charts/loader.js'; script.async = true; script.defer = true; script.onload = () => { this.googleScriptIsLoading = false; this.googleScriptLoadingNotifier.emit(true); resolve(); }; script.onerror = () => { this.googleScriptIsLoading = false; this.googleScriptLoadingNotifier.emit(false); reject(); }; document.getElementsByTagName('head')[0].appendChild(script); } else { this.googleScriptLoadingNotifier.subscribe((loaded) => { if (loaded) { resolve(); } else { reject(); } }); } }); } load(settings) { return __awaiter(this, void 0, void 0, function* () { yield this.loadGoogleChartsScriptPromise; yield new Promise((resolve) => { if (this.googleChartIsLoading) { this.googleChartLoadingNotifier.subscribe(() => { this.doLoad(resolve, settings); }); return; } this.doLoad(resolve, settings); }); }); } doLoad(resolve, settings) { settings = Object.assign(Object.assign({}, this.googleChartsSettings), settings); if (!settings.packages && this.loaded) { resolve(); return; } if (settings.packages) { let pkgs = settings.packages.filter(p => this.loadedPackages.indexOf(p) < 0); if (pkgs.length == 0 && this.loaded) { resolve(); return; } settings.packages = pkgs; } const _settings = settings; _settings.callback = () => { this.googleChartIsLoading = false; if (_settings.packages !== undefined) { this.loadedPackages = this.loadedPackages.concat(_settings.packages); } this.loaded = true; this.googleChartLoadingNotifier.emit(); resolve(); }; this.googleChartIsLoading = true; google.charts.load(settings.googleChartsVersion, _settings); } } GoogleChartsLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartsLoaderService, deps: [{ token: LOCALE_ID }, { token: 'googleChartsSettings', optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); GoogleChartsLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartsLoaderService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: GoogleChartsLoaderService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [LOCALE_ID] }] }, { type: undefined, decorators: [{ type: Inject, args: ['googleChartsSettings'] }, { type: Optional }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLWNoYXJ0cy1sb2FkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nMi1nb29nbGUtY2hhcnRzL3NyYy9saWIvZ29vZ2xlLWNoYXJ0cy1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXRGLE1BQU0sT0FBTyx5QkFBeUI7SUFVcEMsWUFDcUIsUUFBZ0IsRUFDaUIsb0JBQTBDO1FBQTFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFMeEYsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDOUIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQU1yQixNQUFNLGVBQWUsR0FBeUI7WUFDNUMsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDO1FBQ0YsSUFBSSxDQUFDLG9CQUFvQixtQ0FBTyxlQUFlLEdBQUssSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBRWxDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNsRCxPQUFPLEVBQUUsQ0FBQzthQUNYO2lCQUFNLElBQUksQ0FBQyxJQUFJLENB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eEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN0RTtZQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUM7O3VIQS9HVSx5QkFBeUIsa0JBVzFCLFNBQVMsYUFDVCxzQkFBc0I7MkhBWnJCLHlCQUF5QixjQUZ4QixNQUFNOzRGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVlJLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMsc0JBQXNCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiZGVjbGFyZSB2YXIgZ29vZ2xlOiBhbnk7XG5cbmltcG9ydCB7IEluamVjdGFibGUsIEV2ZW50RW1pdHRlciwgTE9DQUxFX0lELCBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHb29nbGVDaGFydHNTZXR0aW5ncyB9IGZyb20gJy4vZ29vZ2xlLWNoYXJ0cy1pbnRlcmZhY2VzJztcblxuaW50ZXJmYWNlIEludGVybmFsR29vZ2xlQ2hhcnRzU2V0dGluZ3MgZXh0ZW5kcyBHb29nbGVDaGFydHNTZXR0aW5ncyB7XG4gIGNhbGxiYWNrPygpOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEdvb2dsZUNoYXJ0c0xvYWRlclNlcnZpY2Uge1xuXG4gIHByaXZhdGUgZ29vZ2xlU2NyaXB0TG9hZGluZ05vdGlmaWVyOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gIHByaXZhdGUgZ29vZ2xlQ2hhcnRMb2FkaW5nTm90aWZpZXI6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbiAgcHJpdmF0ZSBnb29nbGVTY3JpcHRJc0xvYWRpbmc6IGJvb2xlYW47XG4gIHByaXZhdGUgZ29vZ2xlQ2hhcnRJc0xvYWRpbmc6IGJvb2xlYW47XG4gIHByaXZhdGUgbG9hZEdvb2dsZUNoYXJ0c1NjcmlwdFByb21pc2U6IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgbG9hZGVkUGFja2FnZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgbG9hZGVkID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBsb2NhbGVJZDogc3RyaW5nLFxuICAgIEBJbmplY3QoJ2dvb2dsZUNoYXJ0c1NldHRpbmdzJykgQE9wdGlvbmFsKCkgcHJpdmF0ZSBnb29nbGVDaGFydHNTZXR0aW5nczogR29vZ2xlQ2hhcnRzU2V0dGluZ3MsXG4gICkge1xuICAgIGNvbnN0IGRlZmF1bHRTZXR0aW5nczogR29vZ2xlQ2hhcnRzU2V0dGluZ3MgPSB7XG4gICAgICBnb29nbGVDaGFydHNWZXJzaW9uOiAnNTAnLFxuICAgICAgbGFuZ3VhZ2U6IGxvY2FsZUlkLFxuICAgIH07XG4gICAgdGhpcy5nb29nbGVDaGFydHNTZXR0aW5ncyA9IHsuLi5kZWZhdWx0U2V0dGluZ3MsIC4uLnRoaXMuZ29vZ2xlQ2hhcnRzU2V0dGluZ3N9O1xuXG4gICAgdGhpcy5nb29nbGVTY3JpcHRMb2FkaW5nTm90aWZpZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgdGhpcy5nb29nbGVDaGFydExvYWRpbmdOb3RpZmllciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICB0aGlzLmdvb2dsZVNjcmlwdElzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZ29vZ2xlQ2hhcnRJc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIHRoaXMubG9hZEdvb2dsZUNoYXJ0c1NjcmlwdFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGdvb2dsZSAhPT0gJ3VuZGVmaW5lZCcgJiYgZ29vZ2xlLmNoYXJ0cykge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLmdvb2dsZVNjcmlwdElzTG9hZGluZykge1xuXG4gICAgICAgIHRoaXMuZ29vZ2xlU2NyaXB0SXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgc2NyaXB0LnNyYyA9ICdodHRwczovL3d3dy5nc3RhdGljLmNvbS9jaGFydHMvbG9hZGVyLmpzJztcbiAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmdvb2dsZVNjcmlwdElzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ29vZ2xlU2NyaXB0TG9hZGluZ05vdGlmaWVyLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9O1xuICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmdvb2dsZVNjcmlwdElzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZ29vZ2xlU2NyaXB0TG9hZGluZ05vdGlmaWVyLmVtaXQoZmFsc2UpO1xuICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ29vZ2xlU2NyaXB0TG9hZGluZ05vdGlmaWVyLnN1YnNjcmliZSgobG9hZGVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgaWYgKGxvYWRlZCkge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWQoc2V0dGluZ3M/OiBHb29nbGVDaGFydHNTZXR0aW5ncyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubG9hZEdvb2dsZUNoYXJ0c1NjcmlwdFByb21pc2U7XG5cbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuXG4gICAgICBpZiAodGhpcy5nb29nbGVDaGFydElzTG9hZGluZykge1xuICAgICAgICB0aGlzLmdvb2dsZUNoYXJ0TG9hZGluZ05vdGlmaWVyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kb0xvYWQocmVzb2x2ZSwgc2V0dGluZ3MpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZG9Mb2FkKHJlc29sdmUsIHNldHRpbmdzKTtcblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkb0xvYWQocmVzb2x2ZTogKHZhbHVlPzogdW5rbm93bikgPT4gdm9pZCwgc2V0dGluZ3M/OiBHb29nbGVDaGFydHNTZXR0aW5ncykge1xuICAgIHNldHRpbmdzID0gey4uLnRoaXMuZ29vZ2xlQ2hhcnRzU2V0dGluZ3MsIC4uLnNldHRpbmdzfVxuXG4gICAgaWYgKCFzZXR0aW5ncy5wYWNrYWdlcyAmJiB0aGlzLmxvYWRlZCkge1xuICAgICAgcmVzb2x2ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5ncy5wYWNrYWdlcykge1xuICAgICAgbGV0IHBrZ3MgPSBzZXR0aW5ncy5wYWNrYWdlcy5maWx0ZXIocCA9PiB0aGlzLmxvYWRlZFBhY2thZ2VzLmluZGV4T2YocCkgPCAwKTtcblxuICAgICAgaWYgKHBrZ3MubGVuZ3RoID09IDAgJiYgdGhpcy5sb2FkZWQpIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNldHRpbmdzLnBhY2thZ2VzID0gcGtncztcbiAgICB9XG5cbiAgICBjb25zdCBfc2V0dGluZ3M6IEludGVybmFsR29vZ2xlQ2hhcnRzU2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICBfc2V0dGluZ3MuY2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICB0aGlzLmdvb2dsZUNoYXJ0SXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICBpZiAoX3NldHRpbmdzLnBhY2thZ2VzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5sb2FkZWRQYWNrYWdlcyA9IHRoaXMubG9hZGVkUGFja2FnZXMuY29uY2F0KF9zZXR0aW5ncy5wYWNrYWdlcyk7XG4gICAgICB9XG4gICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICB0aGlzLmdvb2dsZUNoYXJ0TG9hZGluZ05vdGlmaWVyLmVtaXQoKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9O1xuXG4gICAgdGhpcy5nb29nbGVDaGFydElzTG9hZGluZyA9IHRydWU7XG4gICAgZ29vZ2xlLmNoYXJ0cy5sb2FkKHNldHRpbmdzLmdvb2dsZUNoYXJ0c1ZlcnNpb24sIF9zZXR0aW5ncyk7XG4gIH1cbn1cbiJdfQ==