UNPKG

ng-prime-tools

Version:

An advanced PrimeNG table for Angular

104 lines 12.2 kB
import { Component, Input } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../pt-card/pt-card.component"; import * as i2 from "../pt-chart/pt-chart.component"; export class PTLineChartComponent { constructor() { this.config = { yAxisTitle: 'Values', xAxisTitle: 'Labels', chartIdentifier: 'line-chart', chartMenu: [], chartWidth: '100%', cardConfig: { identifier: 'line-chart-card', title: 'Line Chart', width: '100%', menu: { menuItems: [], }, }, }; this.lineChartConfig = this.createLineChartConfig(); } ngOnChanges(changes) { if (changes['chartData'] && this.chartData && this.chartData.length > 0) { this.updateChartData(); } } createLineChartConfig() { const chartTitle = typeof this.config.cardConfig?.title === 'string' ? this.config.cardConfig.title : this.config.cardConfig?.title?.text || 'Line Chart'; return { type: 'line', data: { labels: [], datasets: [ { label: chartTitle, data: [], borderColor: '#4aa0fa', backgroundColor: 'rgba(74, 160, 250, 0.2)', borderWidth: 2, tension: 0.4, fill: true, pointRadius: 5, pointBackgroundColor: '#4aa0fa', }, ], }, options: { responsive: true, plugins: { legend: { display: true, position: 'bottom', }, tooltip: { callbacks: { label: (context) => `${context.dataset.label}: ${context.raw.toFixed(2)}`, }, }, datalabels: { display: false, }, }, scales: { y: { beginAtZero: true, title: { display: !!this.config.yAxisTitle, text: this.config.yAxisTitle, }, }, x: { title: { display: !!this.config.xAxisTitle, text: this.config.xAxisTitle, }, }, }, }, }; } updateChartData() { const labels = this.chartData.map((item) => item.label); const data = this.chartData.map((item) => item.value); this.lineChartConfig.data.labels = labels; this.lineChartConfig.data.datasets[0].data = data; // Trigger chart update this.lineChartConfig._chart?.update(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLineChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTLineChartComponent, selector: "pt-line-chart", inputs: { chartData: "chartData", config: "config" }, usesOnChanges: true, ngImport: i0, template: "<pt-card [config]=\"config.cardConfig!\">\n <pt-chart [chartConfig]=\"lineChartConfig\"></pt-chart>\n</pt-card>\n", styles: [""], dependencies: [{ kind: "component", type: i1.PTCardComponent, selector: "pt-card", inputs: ["config"] }, { kind: "component", type: i2.PTChartComponent, selector: "pt-chart", inputs: ["chartConfig"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTLineChartComponent, decorators: [{ type: Component, args: [{ selector: 'pt-line-chart', template: "<pt-card [config]=\"config.cardConfig!\">\n <pt-chart [chartConfig]=\"lineChartConfig\"></pt-chart>\n</pt-card>\n" }] }], ctorParameters: () => [], propDecorators: { chartData: [{ type: Input }], config: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxpbmUtY2hhcnQvcHQtbGluZS1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWxpbmUtY2hhcnQvcHQtbGluZS1jaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFhM0UsTUFBTSxPQUFPLG9CQUFvQjtJQW9CL0I7UUFsQlMsV0FBTSxHQUFvQjtZQUNqQyxVQUFVLEVBQUUsUUFBUTtZQUNwQixVQUFVLEVBQUUsUUFBUTtZQUNwQixlQUFlLEVBQUUsWUFBWTtZQUM3QixTQUFTLEVBQUUsRUFBRTtZQUNiLFVBQVUsRUFBRSxNQUFNO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsaUJBQWlCO2dCQUM3QixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsSUFBSSxFQUFFO29CQUNKLFNBQVMsRUFBRSxFQUFFO2lCQUNkO2FBQ0Y7U0FDRixDQUFDO1FBS0EsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRU8scUJBQXFCO1FBQzNCLE1BQU0sVUFBVSxHQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxLQUFLLFFBQVE7WUFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUs7WUFDOUIsQ0FBQyxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQW9CLEVBQUUsSUFBSSxJQUFJLFlBQVksQ0FBQztRQUUxRSxPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsUUFBUSxFQUFFO29CQUNSO3dCQUNFLEtBQUssRUFBRSxVQUFVO3dCQUNqQixJQUFJLEVBQUUsRUFBRTt3QkFDUixXQUFXLEVBQUUsU0FBUzt3QkFDdEIsZUFBZSxFQUFFLHlCQUF5Qjt3QkFDMUMsV0FBVyxFQUFFLENBQUM7d0JBQ2QsT0FBTyxFQUFFLEdBQUc7d0JBQ1osSUFBSSxFQUFFLElBQUk7d0JBQ1YsV0FBVyxFQUFFLENBQUM7d0JBQ2Qsb0JBQW9CLEVBQUUsU0FBUztxQkFDaEM7aUJBQ0Y7YUFDRjtZQUNELE9BQU8sRUFBRTtnQkFDUCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFO29CQUNQLE1BQU0sRUFBRTt3QkFDTixPQUFPLEVBQUUsSUFBSTt3QkFDYixRQUFRLEVBQUUsUUFBUTtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFNBQVMsRUFBRTs0QkFDVCxLQUFLLEVBQUUsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUN0QixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO3lCQUN4RDtxQkFDRjtvQkFDRCxVQUFVLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLEtBQUs7cUJBQ2Y7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLENBQUMsRUFBRTt3QkFDRCxXQUFXLEVBQUUsSUFBSTt3QkFDakIsS0FBSyxFQUFFOzRCQUNMLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVOzRCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO3lCQUM3QjtxQkFDRjtvQkFDRCxDQUFDLEVBQUU7d0JBQ0QsS0FBSyxFQUFFOzRCQUNMLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVOzRCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO3lCQUM3QjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWxELHVCQUF1QjtRQUN0QixJQUFJLENBQUMsZUFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDakQsQ0FBQzsrR0FuR1Usb0JBQW9CO21HQUFwQixvQkFBb0IsZ0lDYmpDLG9IQUdBOzs0RkRVYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZTt3REFLaEIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEF4aXNDaGFydENvbmZpZyxcbiAgQXhpc0NoYXJ0RGF0YSxcbiAgQ2hhcnRDb25maWcsXG4gIFRpdGxlU3R5bGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LWxpbmUtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtbGluZS1jaGFydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWxpbmUtY2hhcnQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVExpbmVDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNoYXJ0RGF0YSE6IEF4aXNDaGFydERhdGFbXTtcbiAgQElucHV0KCkgY29uZmlnOiBBeGlzQ2hhcnRDb25maWcgPSB7XG4gICAgeUF4aXNUaXRsZTogJ1ZhbHVlcycsXG4gICAgeEF4aXNUaXRsZTogJ0xhYmVscycsXG4gICAgY2hhcnRJZGVudGlmaWVyOiAnbGluZS1jaGFydCcsXG4gICAgY2hhcnRNZW51OiBbXSxcbiAgICBjaGFydFdpZHRoOiAnMTAwJScsXG4gICAgY2FyZENvbmZpZzoge1xuICAgICAgaWRlbnRpZmllcjogJ2xpbmUtY2hhcnQtY2FyZCcsXG4gICAgICB0aXRsZTogJ0xpbmUgQ2hhcnQnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIG1lbnU6IHtcbiAgICAgICAgbWVudUl0ZW1zOiBbXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBsaW5lQ2hhcnRDb25maWc6IENoYXJ0Q29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMubGluZUNoYXJ0Q29uZmlnID0gdGhpcy5jcmVhdGVMaW5lQ2hhcnRDb25maWcoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY2hhcnREYXRhJ10gJiYgdGhpcy5jaGFydERhdGEgJiYgdGhpcy5jaGFydERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy51cGRhdGVDaGFydERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUxpbmVDaGFydENvbmZpZygpOiBDaGFydENvbmZpZyB7XG4gICAgY29uc3QgY2hhcnRUaXRsZSA9XG4gICAgICB0eXBlb2YgdGhpcy5jb25maWcuY2FyZENvbmZpZz8udGl0bGUgPT09ICdzdHJpbmcnXG4gICAgICAgID8gdGhpcy5jb25maWcuY2FyZENvbmZpZy50aXRsZVxuICAgICAgICA6ICh0aGlzLmNvbmZpZy5jYXJkQ29uZmlnPy50aXRsZSBhcyBUaXRsZVN0eWxlKT8udGV4dCB8fCAnTGluZSBDaGFydCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgZGF0YToge1xuICAgICAgICBsYWJlbHM6IFtdLFxuICAgICAgICBkYXRhc2V0czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBjaGFydFRpdGxlLFxuICAgICAgICAgICAgZGF0YTogW10sXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogJyM0YWEwZmEnLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSg3NCwgMTYwLCAyNTAsIDAuMiknLFxuICAgICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICAgICAgICB0ZW5zaW9uOiAwLjQsXG4gICAgICAgICAgICBmaWxsOiB0cnVlLFxuICAgICAgICAgICAgcG9pbnRSYWRpdXM6IDUsXG4gICAgICAgICAgICBwb2ludEJhY2tncm91bmRDb2xvcjogJyM0YWEwZmEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgICBwbHVnaW5zOiB7XG4gICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgICAgICAgcG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdG9vbHRpcDoge1xuICAgICAgICAgICAgY2FsbGJhY2tzOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAoY29udGV4dDogYW55KSA9PlxuICAgICAgICAgICAgICAgIGAke2NvbnRleHQuZGF0YXNldC5sYWJlbH06ICR7Y29udGV4dC5yYXcudG9GaXhlZCgyKX1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRhdGFsYWJlbHM6IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlczoge1xuICAgICAgICAgIHk6IHtcbiAgICAgICAgICAgIGJlZ2luQXRaZXJvOiB0cnVlLFxuICAgICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogISF0aGlzLmNvbmZpZy55QXhpc1RpdGxlLFxuICAgICAgICAgICAgICB0ZXh0OiB0aGlzLmNvbmZpZy55QXhpc1RpdGxlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHg6IHtcbiAgICAgICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhdGhpcy5jb25maWcueEF4aXNUaXRsZSxcbiAgICAgICAgICAgICAgdGV4dDogdGhpcy5jb25maWcueEF4aXNUaXRsZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2hhcnREYXRhKCk6IHZvaWQge1xuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMuY2hhcnREYXRhLm1hcCgoaXRlbSkgPT4gaXRlbS5sYWJlbCk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuY2hhcnREYXRhLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSk7XG5cbiAgICB0aGlzLmxpbmVDaGFydENvbmZpZy5kYXRhLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLmxpbmVDaGFydENvbmZpZy5kYXRhLmRhdGFzZXRzWzBdLmRhdGEgPSBkYXRhO1xuXG4gICAgLy8gVHJpZ2dlciBjaGFydCB1cGRhdGVcbiAgICAodGhpcy5saW5lQ2hhcnRDb25maWcgYXMgYW55KS5fY2hhcnQ/LnVwZGF0ZSgpO1xuICB9XG59XG4iLCI8cHQtY2FyZCBbY29uZmlnXT1cImNvbmZpZy5jYXJkQ29uZmlnIVwiPlxuICA8cHQtY2hhcnQgW2NoYXJ0Q29uZmlnXT1cImxpbmVDaGFydENvbmZpZ1wiPjwvcHQtY2hhcnQ+XG48L3B0LWNhcmQ+XG4iXX0=