UNPKG

ag-charts-angular

Version:

<picture><source media="(prefers-color-scheme: dark)" srcset="./.github/banner-dark.png"><source media="(prefers-color-scheme: light)" srcset="./.github/banner-light.png"><img alt="AG Charts canvas-based charting trusted by the community, built for enterp

69 lines 9.72 kB
import { Component } from '@angular/core'; import * as i0 from "@angular/core"; export class AgChartsBase { chart; _nativeElement; _initialised = false; ngZone; ngAfterViewInit() { const options = this.patchChartOptions(this.options); this.chart = this.runOutsideAngular(() => this.createChart(options)); this._initialised = true; this.chart.chart.waitForUpdate().then(() => { this.onChartReady.emit(this.chart); }); } // noinspection JSUnusedGlobalSymbols,JSUnusedLocalSymbols ngOnChanges(_changes) { this.runOutsideAngular(() => { if (!this._initialised || !this.chart) { return; } this.chart.update(this.patchChartOptions(this.options)); }); } ngOnDestroy() { if (this._initialised && this.chart) { this.chart.destroy(); this.chart = undefined; this._initialised = false; } } patchChartOptions(propsOptions) { const patchListeners = (listenerConfig) => { const config = listenerConfig ?? {}; for (const listenerName of Object.keys(config)) { const listener = config[listenerName]; if (typeof listener !== 'function') continue; config[listenerName] = (...args) => { this.runInsideAngular(() => listener(...args)); }; } }; patchListeners(propsOptions?.legend?.listeners); patchListeners(propsOptions?.listeners); propsOptions.series?.forEach((series) => { patchListeners(series.listeners); }); if (propsOptions.container) { return propsOptions; } return { ...propsOptions, container: this._nativeElement }; } runOutsideAngular(callback) { return this.ngZone ? this.ngZone.runOutsideAngular(callback) : callback(); } runInsideAngular(callback) { return this.ngZone ? this.ngZone.run(callback) : callback(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AgChartsBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AgChartsBase, selector: "ng-component", usesOnChanges: true, ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AgChartsBase, decorators: [{ type: Component, args: [{ template: '', }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctY2hhcnRzLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1jaGFydHMtYW5ndWxhci9zcmMvbGliL2FnLWNoYXJ0cy1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUE4QyxNQUFNLGVBQWUsQ0FBQzs7QUFPckcsTUFBTSxPQUFnQixZQUFZO0lBQ3ZCLEtBQUssQ0FBbUI7SUFJckIsY0FBYyxDQUFNO0lBQ3BCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsTUFBTSxDQUFVO0lBSTFCLGVBQWU7UUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsV0FBVyxDQUFDLFFBQWE7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ25DLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxZQUFpQjtRQUN2QyxNQUFNLGNBQWMsR0FBRyxDQUNuQixjQUF1RyxFQUN6RyxFQUFFO1lBQ0EsTUFBTSxNQUFNLEdBQUcsY0FBYyxJQUFLLEVBQVUsQ0FBQztZQUM3QyxLQUFLLE1BQU0sWUFBWSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzVDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVO29CQUFFLFNBQVM7Z0JBRTdDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBUyxFQUFFLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDLENBQUM7YUFDTDtRQUNMLENBQUMsQ0FBQztRQUVGLGNBQWMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELGNBQWMsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUN6QyxjQUFjLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFO1lBQ3hCLE9BQU8sWUFBWSxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxFQUFFLEdBQUcsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVPLGlCQUFpQixDQUFJLFFBQWlCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVPLGdCQUFnQixDQUFJLFFBQWlCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hFLENBQUM7d0dBMUVpQixZQUFZOzRGQUFaLFlBQVkseUVBRnBCLEVBQUU7OzRGQUVNLFlBQVk7a0JBSGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBZ0Jhc2VDaGFydExpc3RlbmVycywgQWdDaGFydEluc3RhbmNlLCBBZ0NoYXJ0TGVnZW5kTGlzdGVuZXJzLCBBZ1Nlcmllc0xpc3RlbmVycyB9IGZyb20gJ2FnLWNoYXJ0cy1jb21tdW5pdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZTogJycsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFnQ2hhcnRzQmFzZTxPcHRpb25zIGV4dGVuZHMge30+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBjaGFydD86IEFnQ2hhcnRJbnN0YW5jZTtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgb3B0aW9uczogT3B0aW9ucztcbiAgICBwdWJsaWMgYWJzdHJhY3Qgb25DaGFydFJlYWR5OiBFdmVudEVtaXR0ZXI8QWdDaGFydEluc3RhbmNlPjtcblxuICAgIHByb3RlY3RlZCBfbmF0aXZlRWxlbWVudDogYW55O1xuICAgIHByb3RlY3RlZCBfaW5pdGlhbGlzZWQgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgbmdab25lITogTmdab25lO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUNoYXJ0KG9wdGlvbnM6IE9wdGlvbnMpOiBhbnk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnBhdGNoQ2hhcnRPcHRpb25zKHRoaXMub3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5jaGFydCA9IHRoaXMucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5jcmVhdGVDaGFydChvcHRpb25zKSk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpc2VkID0gdHJ1ZTtcblxuICAgICAgICAodGhpcy5jaGFydCBhcyBhbnkpLmNoYXJ0LndhaXRGb3JVcGRhdGUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25DaGFydFJlYWR5LmVtaXQodGhpcy5jaGFydCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIG5vaW5zcGVjdGlvbiBKU1VudXNlZEdsb2JhbFN5bWJvbHMsSlNVbnVzZWRMb2NhbFN5bWJvbHNcbiAgICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXNlZCB8fCAhdGhpcy5jaGFydCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhcnQudXBkYXRlKHRoaXMucGF0Y2hDaGFydE9wdGlvbnModGhpcy5vcHRpb25zKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpc2VkICYmIHRoaXMuY2hhcnQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jaGFydCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpc2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhdGNoQ2hhcnRPcHRpb25zKHByb3BzT3B0aW9uczogYW55KTogYW55IHtcbiAgICAgICAgY29uc3QgcGF0Y2hMaXN0ZW5lcnMgPSAoXG4gICAgICAgICAgICBsaXN0ZW5lckNvbmZpZzogdW5kZWZpbmVkIHwgQWdDaGFydExlZ2VuZExpc3RlbmVycyB8IEFnU2VyaWVzTGlzdGVuZXJzPGFueT4gfCBBZ0Jhc2VDaGFydExpc3RlbmVyczxhbnk+XG4gICAgICAgICkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gbGlzdGVuZXJDb25maWcgPz8gKHt9IGFzIGFueSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyTmFtZSBvZiBPYmplY3Qua2V5cyhjb25maWcpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBjb25maWdbbGlzdGVuZXJOYW1lXTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGxpc3RlbmVyICE9PSAnZnVuY3Rpb24nKSBjb250aW51ZTtcblxuICAgICAgICAgICAgICAgIGNvbmZpZ1tsaXN0ZW5lck5hbWVdID0gKC4uLmFyZ3M6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJ1bkluc2lkZUFuZ3VsYXIoKCkgPT4gbGlzdGVuZXIoLi4uYXJncykpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcGF0Y2hMaXN0ZW5lcnMocHJvcHNPcHRpb25zPy5sZWdlbmQ/Lmxpc3RlbmVycyk7XG4gICAgICAgIHBhdGNoTGlzdGVuZXJzKHByb3BzT3B0aW9ucz8ubGlzdGVuZXJzKTtcbiAgICAgICAgcHJvcHNPcHRpb25zLnNlcmllcz8uZm9yRWFjaCgoc2VyaWVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHBhdGNoTGlzdGVuZXJzKHNlcmllcy5saXN0ZW5lcnMpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocHJvcHNPcHRpb25zLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzT3B0aW9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IC4uLnByb3BzT3B0aW9ucywgY29udGFpbmVyOiB0aGlzLl9uYXRpdmVFbGVtZW50IH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5PdXRzaWRlQW5ndWxhcjxUPihjYWxsYmFjazogKCkgPT4gVCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ1pvbmUgPyB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihjYWxsYmFjaykgOiBjYWxsYmFjaygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuSW5zaWRlQW5ndWxhcjxUPihjYWxsYmFjazogKCkgPT4gVCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ1pvbmUgPyB0aGlzLm5nWm9uZS5ydW4oY2FsbGJhY2spIDogY2FsbGJhY2soKTtcbiAgICB9XG59XG4iXX0=