@netgrif/components
Version:
Netgrif Application Engine frontend Angular components
54 lines • 12.9 kB
JavaScript
import { Component, EventEmitter, Output } from '@angular/core';
import { AbstractCustomCardComponent, DashboardMultiData, DashboardSingleData } from '@netgrif/components-core';
import * as i0 from "@angular/core";
import * as i1 from "@netgrif/components-core";
import * as i2 from "@ngx-translate/core";
import * as i3 from "@ngbracket/ngx-layout";
import * as i4 from "@angular/material/card";
import * as i5 from "@swimlane/ngx-charts";
export class LineChartCardComponent extends AbstractCustomCardComponent {
_injector;
resourceService;
translateService;
loggerService;
timeline = true;
selectEvent;
constructor(_injector, resourceService, translateService, loggerService) {
super(_injector, resourceService, translateService, loggerService);
this._injector = _injector;
this.resourceService = resourceService;
this.translateService = translateService;
this.loggerService = loggerService;
this.selectEvent = new EventEmitter();
}
ngOnInit() {
super.ngOnInit();
}
onSelect(data) {
this.loggerService.info('Line chart selected.');
this.selectEvent.emit(data);
}
convertData(json) {
let index = 0;
let result;
for (result in json.aggregations) {
if (json.aggregations.hasOwnProperty(result)) {
this.multi.push(new DashboardMultiData(result, new Array()));
json.aggregations[result].buckets.forEach(bucket => {
this.multi[index].series.push(new DashboardSingleData(bucket.key, bucket.doc_count));
});
index++;
}
}
this.multi = [...this.multi];
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LineChartCardComponent, deps: [{ token: i0.Injector }, { token: i1.DashboardResourceService }, { token: i2.TranslateService }, { token: i1.LoggerService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LineChartCardComponent, selector: "nc-line-chart-card", outputs: { selectEvent: "selectEvent" }, usesInheritance: true, ngImport: i0, template: "<mat-card class=\"dashboard-card custom-mat-card\" fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <ngx-charts-line-chart class=\"custom-chart dashboard-line-chart\"\n [legend]=\"showLegend\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [xAxisLabel]=\"card.xAxisLabel\"\n [yAxisLabel]=\"card.yAxisLabel\"\n [timeline]=\"timeline\"\n [results]=\"multi\"\n [legendTitle]=\"card.title\"\n (select)=\"onSelect($event)\">\n </ngx-charts-line-chart>\n</mat-card>\n", styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-mat-card{padding-left:0;padding-top:0}\n"], dependencies: [{ kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i5.LineChartComponent, selector: "ngx-charts-line-chart", inputs: ["legend", "legendTitle", "legendPosition", "xAxis", "yAxis", "showXAxisLabel", "showYAxisLabel", "xAxisLabel", "yAxisLabel", "autoScale", "timeline", "gradient", "showGridLines", "curve", "activeEntries", "schemeType", "rangeFillOpacity", "trimXAxisTicks", "trimYAxisTicks", "rotateXAxisTicks", "maxXAxisTickLength", "maxYAxisTickLength", "xAxisTickFormatting", "yAxisTickFormatting", "xAxisTicks", "yAxisTicks", "roundDomains", "tooltipDisabled", "showRefLines", "referenceLines", "showRefLabels", "xScaleMin", "xScaleMax", "yScaleMin", "yScaleMax"], outputs: ["activate", "deactivate"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LineChartCardComponent, decorators: [{
type: Component,
args: [{ selector: 'nc-line-chart-card', template: "<mat-card class=\"dashboard-card custom-mat-card\" fxLayout=\"row\" fxLayoutAlign=\"start start\">\n <ngx-charts-line-chart class=\"custom-chart dashboard-line-chart\"\n [legend]=\"showLegend\"\n [showXAxisLabel]=\"showXAxisLabel\"\n [showYAxisLabel]=\"showYAxisLabel\"\n [xAxis]=\"xAxis\"\n [yAxis]=\"yAxis\"\n [xAxisLabel]=\"card.xAxisLabel\"\n [yAxisLabel]=\"card.yAxisLabel\"\n [timeline]=\"timeline\"\n [results]=\"multi\"\n [legendTitle]=\"card.title\"\n (select)=\"onSelect($event)\">\n </ngx-charts-line-chart>\n</mat-card>\n", styles: [".dashboard-card{width:calc(100% - 16px);height:calc(100% - 16px);margin:8px}.full-size{width:100%;height:100%;margin:0;padding:0}.custom-mat-card{padding-left:0;padding-top:0}\n"] }]
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.DashboardResourceService }, { type: i2.TranslateService }, { type: i1.LoggerService }], propDecorators: { selectEvent: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2Rhc2hib2FyZC9jYXJkcy9saW5lY2hhcnQtY2FyZC9saW5lLWNoYXJ0LWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzL3NyYy9saWIvZGFzaGJvYXJkL2NhcmRzL2xpbmVjaGFydC1jYXJkL2xpbmUtY2hhcnQtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBb0IsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFDSCwyQkFBMkIsRUFFM0Isa0JBQWtCLEVBRWxCLG1CQUFtQixFQUN0QixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBU2xDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSwyQkFBMkI7SUFLN0M7SUFDQTtJQUNBO0lBQ0E7SUFOdEIsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNOLFdBQVcsQ0FBc0M7SUFFM0QsWUFBc0IsU0FBbUIsRUFDbkIsZUFBeUMsRUFDekMsZ0JBQWtDLEVBQ2xDLGFBQTRCO1FBQzlDLEtBQUssQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSmpELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ3pDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFFOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBMkI7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQXVCO1FBQy9CLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksTUFBVyxDQUFDO1FBQ2hCLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDOUIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLEVBQXVCLENBQUMsQ0FBQyxDQUFDO2dCQUNsRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQy9DLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pGLENBQUMsQ0FBQyxDQUFDO2dCQUNILEtBQUssRUFBRSxDQUFDO2FBQ1g7U0FDSjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQW5DUSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwwSENoQm5DLDJ6QkFlQTs7NEZEQ2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQjsrS0FPcEIsV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdG9yLCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q3VzdG9tQ2FyZENvbXBvbmVudCxcbiAgICBEYXNoYm9hcmRFdmVudENvbnRlbnQsXG4gICAgRGFzaGJvYXJkTXVsdGlEYXRhLFxuICAgIERhc2hib2FyZFJlc291cmNlU2VydmljZSxcbiAgICBEYXNoYm9hcmRTaW5nbGVEYXRhXG59IGZyb20gJ0BuZXRncmlmL2NvbXBvbmVudHMtY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBZ2dyZWdhdGlvblJlc3VsdCwgTG9nZ2VyU2VydmljZX0gZnJvbSAnQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1saW5lLWNoYXJ0LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saW5lLWNoYXJ0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpbmUtY2hhcnQtY2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIExpbmVDaGFydENhcmRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEN1c3RvbUNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgdGltZWxpbmUgPSB0cnVlO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RFdmVudDogRXZlbnRFbWl0dGVyPERhc2hib2FyZEV2ZW50Q29udGVudD47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgcmVzb3VyY2VTZXJ2aWNlOiBEYXNoYm9hcmRSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoX2luamVjdG9yLCByZXNvdXJjZVNlcnZpY2UsIHRyYW5zbGF0ZVNlcnZpY2UsIGxvZ2dlclNlcnZpY2UpO1xuICAgICAgICB0aGlzLnNlbGVjdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0KGRhdGE6IERhc2hib2FyZEV2ZW50Q29udGVudCkge1xuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnTGluZSBjaGFydCBzZWxlY3RlZC4nKTtcbiAgICAgICAgdGhpcy5zZWxlY3RFdmVudC5lbWl0KGRhdGEpO1xuICAgIH1cblxuICAgIGNvbnZlcnREYXRhKGpzb246IEFnZ3JlZ2F0aW9uUmVzdWx0KTogdm9pZCB7XG4gICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICAgICAgZm9yIChyZXN1bHQgaW4ganNvbi5hZ2dyZWdhdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChqc29uLmFnZ3JlZ2F0aW9ucy5oYXNPd25Qcm9wZXJ0eShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aS5wdXNoKG5ldyBEYXNoYm9hcmRNdWx0aURhdGEocmVzdWx0LCBuZXcgQXJyYXk8RGFzaGJvYXJkU2luZ2xlRGF0YT4oKSkpO1xuICAgICAgICAgICAgICAgIGpzb24uYWdncmVnYXRpb25zW3Jlc3VsdF0uYnVja2V0cy5mb3JFYWNoKGJ1Y2tldCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubXVsdGlbaW5kZXhdLnNlcmllcy5wdXNoKG5ldyBEYXNoYm9hcmRTaW5nbGVEYXRhKGJ1Y2tldC5rZXksIGJ1Y2tldC5kb2NfY291bnQpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubXVsdGkgPSBbLi4udGhpcy5tdWx0aV07XG4gICAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZGFzaGJvYXJkLWNhcmQgY3VzdG9tLW1hdC1jYXJkXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgc3RhcnRcIj5cbiAgICA8bmd4LWNoYXJ0cy1saW5lLWNoYXJ0IGNsYXNzPVwiY3VzdG9tLWNoYXJ0IGRhc2hib2FyZC1saW5lLWNoYXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZWdlbmRdPVwic2hvd0xlZ2VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1hBeGlzTGFiZWxdPVwic2hvd1hBeGlzTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dZQXhpc0xhYmVsXT1cInNob3dZQXhpc0xhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt4QXhpc109XCJ4QXhpc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbeUF4aXNdPVwieUF4aXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3hBeGlzTGFiZWxdPVwiY2FyZC54QXhpc0xhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt5QXhpc0xhYmVsXT1cImNhcmQueUF4aXNMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdGltZWxpbmVdPVwidGltZWxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3VsdHNdPVwibXVsdGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZFRpdGxlXT1cImNhcmQudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XG4gICAgPC9uZ3gtY2hhcnRzLWxpbmUtY2hhcnQ+XG48L21hdC1jYXJkPlxuIl19