angular-google-charts
Version:
A wrapper for the Google Charts library written with Angular
38 lines • 4.54 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class DataTableService {
create(data, columns, formatters) {
if (data == null) {
return undefined;
}
let firstRowIsData = true;
if (columns != null) {
firstRowIsData = false;
}
const dataTable = google.visualization.arrayToDataTable(this.getDataAsTable(data, columns), firstRowIsData);
if (formatters) {
this.applyFormatters(dataTable, formatters);
}
return dataTable;
}
getDataAsTable(data, columns) {
if (columns) {
return [columns, ...data];
}
else {
return data;
}
}
applyFormatters(dataTable, formatters) {
for (const val of formatters) {
val.formatter.format(dataTable, val.colIndex);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1nb29nbGUtY2hhcnRzL3NyYy9saWIvc2VydmljZXMvZGF0YS10YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsTUFBTSxDQUNYLElBQXVCLEVBQ3ZCLE9BQWtCLEVBQ2xCLFVBQXdCO1FBRXhCLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUNoQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDbkIsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUN4QjtRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDNUcsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBVyxFQUFFLE9BQTZCO1FBQy9ELElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUF5QyxFQUFFLFVBQXVCO1FBQ3hGLEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO1lBQzVCLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDOytHQW5DVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQURILE1BQU07OzRGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb2x1bW4sIFJvdyB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2hhcnQtYmFzZS9jaGFydC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtYXR0ZXIgfSBmcm9tICcuLi90eXBlcy9mb3JtYXR0ZXInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZVNlcnZpY2Uge1xuICBwdWJsaWMgY3JlYXRlKFxuICAgIGRhdGE6IFJvd1tdIHwgdW5kZWZpbmVkLFxuICAgIGNvbHVtbnM/OiBDb2x1bW5bXSxcbiAgICBmb3JtYXR0ZXJzPzogRm9ybWF0dGVyW11cbiAgKTogZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZGF0YSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBmaXJzdFJvd0lzRGF0YSA9IHRydWU7XG4gICAgaWYgKGNvbHVtbnMgIT0gbnVsbCkge1xuICAgICAgZmlyc3RSb3dJc0RhdGEgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhVGFibGUgPSBnb29nbGUudmlzdWFsaXphdGlvbi5hcnJheVRvRGF0YVRhYmxlKHRoaXMuZ2V0RGF0YUFzVGFibGUoZGF0YSwgY29sdW1ucyksIGZpcnN0Um93SXNEYXRhKTtcbiAgICBpZiAoZm9ybWF0dGVycykge1xuICAgICAgdGhpcy5hcHBseUZvcm1hdHRlcnMoZGF0YVRhYmxlLCBmb3JtYXR0ZXJzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YVRhYmxlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREYXRhQXNUYWJsZShkYXRhOiBSb3dbXSwgY29sdW1uczogQ29sdW1uW10gfCB1bmRlZmluZWQpOiAoUm93IHwgQ29sdW1uW10pW10ge1xuICAgIGlmIChjb2x1bW5zKSB7XG4gICAgICByZXR1cm4gW2NvbHVtbnMsIC4uLmRhdGFdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Rm9ybWF0dGVycyhkYXRhVGFibGU6IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSwgZm9ybWF0dGVyczogRm9ybWF0dGVyW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiBmb3JtYXR0ZXJzKSB7XG4gICAgICB2YWwuZm9ybWF0dGVyLmZvcm1hdChkYXRhVGFibGUsIHZhbC5jb2xJbmRleCk7XG4gICAgfVxuICB9XG59XG4iXX0=