ng-prime-tools 1.0.24 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/esm2022/lib/models/chart-config.model.mjs +1 -1
- package/esm2022/lib/pt-chart-comparison/index.mjs +2 -0
- package/esm2022/lib/pt-chart-comparison/pt-chart-comparison.component.mjs +153 -0
- package/esm2022/lib/pt-chart-comparison/pt-chart-comparison.module.mjs +18 -0
- package/esm2022/lib/pt-chart-comparison/public-api.mjs +3 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ng-prime-tools.mjs +164 -1
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/lib/models/chart-config.model.d.ts +15 -0
- package/lib/models/chart-config.model.d.ts.map +1 -1
- package/lib/pt-chart-comparison/index.d.ts +2 -0
- package/lib/pt-chart-comparison/index.d.ts.map +1 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.component.d.ts +42 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.component.d.ts.map +1 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.module.d.ts +9 -0
- package/lib/pt-chart-comparison/pt-chart-comparison.module.d.ts.map +1 -0
- package/lib/pt-chart-comparison/public-api.d.ts +3 -0
- package/lib/pt-chart-comparison/public-api.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
package/README.md
CHANGED
@@ -636,6 +636,10 @@ export class FormBuilderTesterComponent implements OnInit {
|
|
636
636
|
|
637
637
|
## Changelog
|
638
638
|
|
639
|
+
### Version 1.0.25 - Release Date: 06/03/2025
|
640
|
+
|
641
|
+
- adding pt-chart-comparison
|
642
|
+
|
639
643
|
### Version 1.0.24 - Release Date: 05/03/2025
|
640
644
|
|
641
645
|
- adding pt-group
|
@@ -1,2 +1,2 @@
|
|
1
1
|
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9tb2RlbHMvY2hhcnQtY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydERhdGEsIENoYXJ0T3B0aW9ucywgQ2hhcnRUeXBlIH0gZnJvbSAnY2hhcnQuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXQge1xuICBsYWJlbD86IHN0cmluZztcbiAgZGF0YTogbnVtYmVyW10gfCBhbnlbXTtcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGJvcmRlckNvbG9yPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGJvcmRlcldpZHRoPzogbnVtYmVyO1xuICBmaWxsPzogYm9vbGVhbjtcbiAgdGVuc2lvbj86IG51bWJlcjtcbiAgc3RhY2s/OiBzdHJpbmc7XG4gIHR5cGU/
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9tb2RlbHMvY2hhcnQtY29uZmlnLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFydERhdGEsIENoYXJ0T3B0aW9ucywgQ2hhcnRUeXBlIH0gZnJvbSAnY2hhcnQuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXQge1xuICBsYWJlbD86IHN0cmluZztcbiAgZGF0YTogbnVtYmVyW10gfCBhbnlbXTtcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGJvcmRlckNvbG9yPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGJvcmRlcldpZHRoPzogbnVtYmVyO1xuICBmaWxsPzogYm9vbGVhbjtcbiAgdGVuc2lvbj86IG51bWJlcjtcbiAgc3RhY2s/OiBzdHJpbmc7XG4gIHR5cGU/OiBDaGFydFR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRDb25maWcge1xuICB0eXBlOiBDaGFydFR5cGU7XG4gIGRhdGE6IENoYXJ0RGF0YTtcbiAgY2hhcnRIZWlnaHQ/OiBzdHJpbmc7IC8vIERpcmVjdGx5IGluc2lkZSBDaGFydENvbmZpZ1xuICBjaGFydFdpZHRoPzogc3RyaW5nOyAvLyBEaXJlY3RseSBpbnNpZGUgQ2hhcnRDb25maWdcbiAgbWVkaWFuVGl0bGU/OiBzdHJpbmc7IC8vIERpcmVjdGx5IGluc2lkZSBDaGFydENvbmZpZ1xuICB4QXhpc1RpdGxlPzogc3RyaW5nOyAvLyBEaXJlY3RseSBpbnNpZGUgQ2hhcnRDb25maWdcbiAgeUF4aXNUaXRsZT86IHN0cmluZzsgLy8gRGlyZWN0bHkgaW5zaWRlIENoYXJ0Q29uZmlnXG4gIHNjYWxlcz86IHtcbiAgICB5Pzoge1xuICAgICAgbWluPzogbnVtYmVyO1xuICAgICAgbWF4PzogbnVtYmVyO1xuICAgICAgdGlja3M/OiB7XG4gICAgICAgIHN0ZXBTaXplPzogbnVtYmVyO1xuICAgICAgICBiZWdpbkF0WmVybz86IGJvb2xlYW47XG4gICAgICB9O1xuICAgIH07XG4gIH07XG4gIG9wdGlvbnM/OiBDaGFydE9wdGlvbnM7IC8vIEtlZXBpbmcgdGhpcyBmb3Igb3RoZXIgQ2hhcnQuanMtc3BlY2lmaWMgY29uZmlndXJhdGlvbnNcbn1cbiJdfQ==
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './public-api';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWNoYXJ0LWNvbXBhcmlzb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
@@ -0,0 +1,153 @@
|
|
1
|
+
import { Component, Input, ViewChild, } from '@angular/core';
|
2
|
+
import { Chart, registerables, } from 'chart.js';
|
3
|
+
import ChartDataLabels from 'chartjs-plugin-datalabels';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class PTChartComparisonComponent {
|
6
|
+
constructor() {
|
7
|
+
this.medianTitle = 'Médiane';
|
8
|
+
this.xAxisTitle = 'Time';
|
9
|
+
this.yAxisTitle = 'Value';
|
10
|
+
// Chart dimension inputs
|
11
|
+
this.chartHeight = '400px';
|
12
|
+
this.chartWidth = '1200px';
|
13
|
+
Chart.register(...registerables, ChartDataLabels);
|
14
|
+
}
|
15
|
+
ngOnInit() {
|
16
|
+
this.initializeChart();
|
17
|
+
}
|
18
|
+
ngOnDestroy() {
|
19
|
+
this.destroyChart();
|
20
|
+
}
|
21
|
+
/**
|
22
|
+
* Initializes the chart with median and datasets
|
23
|
+
*/
|
24
|
+
initializeChart() {
|
25
|
+
const canvas = this.canvasRef.nativeElement;
|
26
|
+
this.destroyChart();
|
27
|
+
const config = {
|
28
|
+
type: this.chartConfig.type || 'line',
|
29
|
+
data: this.getFormattedChartData(), // Get data with median
|
30
|
+
options: this.getChartOptions(),
|
31
|
+
};
|
32
|
+
this.chart = new Chart(canvas, config);
|
33
|
+
}
|
34
|
+
/**
|
35
|
+
* Computes median values and adds them to the dataset
|
36
|
+
*/
|
37
|
+
getFormattedChartData() {
|
38
|
+
const medianValues = this.calculateMedian();
|
39
|
+
return {
|
40
|
+
labels: this.chartConfig.data.labels,
|
41
|
+
datasets: [
|
42
|
+
// Add median line dataset
|
43
|
+
{
|
44
|
+
label: this.medianTitle || 'Médiane',
|
45
|
+
data: medianValues,
|
46
|
+
borderColor: '#0000FF', // Blue color
|
47
|
+
borderWidth: 2,
|
48
|
+
backgroundColor: 'transparent',
|
49
|
+
pointRadius: 0,
|
50
|
+
fill: false,
|
51
|
+
tension: 0.1,
|
52
|
+
borderDash: [5, 5], // Dashed line
|
53
|
+
},
|
54
|
+
// Keep existing datasets
|
55
|
+
...this.chartConfig.data.datasets,
|
56
|
+
],
|
57
|
+
};
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* Computes median values from all datasets at each time point
|
61
|
+
*/
|
62
|
+
calculateMedian() {
|
63
|
+
const datasets = this.chartConfig.data.datasets;
|
64
|
+
return this.chartConfig.data.labels.map((_, index) => {
|
65
|
+
const valuesAtTime = datasets
|
66
|
+
.map((dataset) => dataset.data[index])
|
67
|
+
.filter((val) => val !== undefined);
|
68
|
+
if (valuesAtTime.length === 0)
|
69
|
+
return 0;
|
70
|
+
valuesAtTime.sort((a, b) => a - b);
|
71
|
+
const middle = Math.floor(valuesAtTime.length / 2);
|
72
|
+
return valuesAtTime.length % 2 === 0
|
73
|
+
? (valuesAtTime[middle - 1] + valuesAtTime[middle]) / 2
|
74
|
+
: valuesAtTime[middle];
|
75
|
+
});
|
76
|
+
}
|
77
|
+
/**
|
78
|
+
* Defines chart options including Y-axis scaling
|
79
|
+
*/
|
80
|
+
getChartOptions() {
|
81
|
+
return {
|
82
|
+
responsive: true,
|
83
|
+
maintainAspectRatio: false,
|
84
|
+
plugins: {
|
85
|
+
legend: { display: true, position: 'top' },
|
86
|
+
tooltip: { mode: 'index', intersect: false },
|
87
|
+
},
|
88
|
+
scales: {
|
89
|
+
x: {
|
90
|
+
title: { display: true, text: this.chartConfig.xAxisTitle || 'Time' },
|
91
|
+
ticks: { font: { size: 12 } },
|
92
|
+
},
|
93
|
+
y: {
|
94
|
+
title: {
|
95
|
+
display: true,
|
96
|
+
text: this.chartConfig.yAxisTitle || 'Value',
|
97
|
+
},
|
98
|
+
min: this.chartConfig.scales?.y?.min,
|
99
|
+
max: this.chartConfig.scales?.y?.max,
|
100
|
+
ticks: {
|
101
|
+
stepSize: this.chartConfig.scales?.y?.ticks?.stepSize,
|
102
|
+
font: { size: 16, weight: 'bold' },
|
103
|
+
color: '#333',
|
104
|
+
},
|
105
|
+
grid: {
|
106
|
+
color: 'rgba(0,0,0,0.1)',
|
107
|
+
},
|
108
|
+
border: {
|
109
|
+
display: true,
|
110
|
+
color: '#000',
|
111
|
+
},
|
112
|
+
},
|
113
|
+
},
|
114
|
+
};
|
115
|
+
}
|
116
|
+
/**
|
117
|
+
* Destroys the existing chart instance if present
|
118
|
+
*/
|
119
|
+
destroyChart() {
|
120
|
+
if (this.chart) {
|
121
|
+
this.chart.destroy();
|
122
|
+
this.chart = undefined;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTChartComparisonComponent, selector: "pt-chart-comparison", inputs: { chartConfig: "chartConfig", medianTitle: "medianTitle", xAxisTitle: "xAxisTitle", yAxisTitle: "yAxisTitle", yMin: "yMin", yMax: "yMax", yStepSize: "yStepSize", chartHeight: "chartHeight", chartWidth: "chartWidth" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["chartCanvas"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"chart-scroll-container\">\n <div\n class=\"chart-inner\"\n [style.width]=\"chartConfig.chartWidth || '1200px'\"\n [style.height]=\"chartConfig.chartHeight || '400px'\"\n >\n <canvas #chartCanvas></canvas>\n </div>\n</div>\n", styles: [".chart-scroll-container{width:100%;overflow-x:auto;white-space:nowrap;padding-bottom:10px}.chart-inner{display:inline-block}\n"] }); }
|
127
|
+
}
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonComponent, decorators: [{
|
129
|
+
type: Component,
|
130
|
+
args: [{ selector: 'pt-chart-comparison', template: "<div class=\"chart-scroll-container\">\n <div\n class=\"chart-inner\"\n [style.width]=\"chartConfig.chartWidth || '1200px'\"\n [style.height]=\"chartConfig.chartHeight || '400px'\"\n >\n <canvas #chartCanvas></canvas>\n </div>\n</div>\n", styles: [".chart-scroll-container{width:100%;overflow-x:auto;white-space:nowrap;padding-bottom:10px}.chart-inner{display:inline-block}\n"] }]
|
131
|
+
}], ctorParameters: () => [], propDecorators: { chartConfig: [{
|
132
|
+
type: Input
|
133
|
+
}], medianTitle: [{
|
134
|
+
type: Input
|
135
|
+
}], xAxisTitle: [{
|
136
|
+
type: Input
|
137
|
+
}], yAxisTitle: [{
|
138
|
+
type: Input
|
139
|
+
}], yMin: [{
|
140
|
+
type: Input
|
141
|
+
}], yMax: [{
|
142
|
+
type: Input
|
143
|
+
}], yStepSize: [{
|
144
|
+
type: Input
|
145
|
+
}], chartHeight: [{
|
146
|
+
type: Input
|
147
|
+
}], chartWidth: [{
|
148
|
+
type: Input
|
149
|
+
}], canvasRef: [{
|
150
|
+
type: ViewChild,
|
151
|
+
args: ['chartCanvas', { static: true }]
|
152
|
+
}] } });
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtY2hhcnQtY29tcGFyaXNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWNoYXJ0LWNvbXBhcmlzb24vcHQtY2hhcnQtY29tcGFyaXNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWNoYXJ0LWNvbXBhcmlzb24vcHQtY2hhcnQtY29tcGFyaXNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEtBQUssRUFFTCxhQUFhLEdBR2QsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxlQUFlLE1BQU0sMkJBQTJCLENBQUM7O0FBUXhELE1BQU0sT0FBTywwQkFBMEI7SUFvQnJDO1FBbEJTLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBQ2hDLGVBQVUsR0FBVyxNQUFNLENBQUM7UUFDNUIsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQU90Qyx5QkFBeUI7UUFDaEIsZ0JBQVcsR0FBVyxPQUFPLENBQUM7UUFDOUIsZUFBVSxHQUFXLFFBQVEsQ0FBQztRQVFyQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLFlBQVksRUFBRSxD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RkRjYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCO3dEQUt0QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENoYXJ0LFxuICBDaGFydENvbmZpZ3VyYXRpb24sXG4gIHJlZ2lzdGVyYWJsZXMsXG4gIENoYXJ0RGF0YSxcbiAgQ2hhcnRPcHRpb25zLFxufSBmcm9tICdjaGFydC5qcyc7XG5pbXBvcnQgQ2hhcnREYXRhTGFiZWxzIGZyb20gJ2NoYXJ0anMtcGx1Z2luLWRhdGFsYWJlbHMnO1xuaW1wb3J0IHsgQ2hhcnRDb25maWcsIERhdGFzZXQgfSBmcm9tICcuLi9tb2RlbHMvY2hhcnQtY29uZmlnLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtY2hhcnQtY29tcGFyaXNvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1jaGFydC1jb21wYXJpc29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtY2hhcnQtY29tcGFyaXNvbi5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBUQ2hhcnRDb21wYXJpc29uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjaGFydENvbmZpZyE6IENoYXJ0Q29uZmlnO1xuICBASW5wdXQoKSBtZWRpYW5UaXRsZTogc3RyaW5nID0gJ03DqWRpYW5lJztcbiAgQElucHV0KCkgeEF4aXNUaXRsZTogc3RyaW5nID0gJ1RpbWUnO1xuICBASW5wdXQoKSB5QXhpc1RpdGxlOiBzdHJpbmcgPSAnVmFsdWUnO1xuXG4gIC8vIFktQXhpcyBtYW51YWwgaW5wdXRzXG4gIEBJbnB1dCgpIHlNaW4hOiBudW1iZXI7XG4gIEBJbnB1dCgpIHlNYXghOiBudW1iZXI7XG4gIEBJbnB1dCgpIHlTdGVwU2l6ZSE6IG51bWJlcjtcblxuICAvLyBDaGFydCBkaW1lbnNpb24gaW5wdXRzXG4gIEBJbnB1dCgpIGNoYXJ0SGVpZ2h0OiBzdHJpbmcgPSAnNDAwcHgnO1xuICBASW5wdXQoKSBjaGFydFdpZHRoOiBzdHJpbmcgPSAnMTIwMHB4JztcblxuICBAVmlld0NoaWxkKCdjaGFydENhbnZhcycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGNhbnZhc1JlZiE6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuXG4gIHByaXZhdGUgY2hhcnQhOiBDaGFydDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBDaGFydC5yZWdpc3RlciguLi5yZWdpc3RlcmFibGVzLCBDaGFydERhdGFMYWJlbHMpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplQ2hhcnQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveUNoYXJ0KCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGNoYXJ0IHdpdGggbWVkaWFuIGFuZCBkYXRhc2V0c1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0aWFsaXplQ2hhcnQoKSB7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jYW52YXNSZWYubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmRlc3Ryb3lDaGFydCgpO1xuXG4gICAgY29uc3QgY29uZmlnOiBDaGFydENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICB0eXBlOiB0aGlzLmNoYXJ0Q29uZmlnLnR5cGUgfHwgJ2xpbmUnLFxuICAgICAgZGF0YTogdGhpcy5nZXRGb3JtYXR0ZWRDaGFydERhdGEoKSwgLy8gR2V0IGRhdGEgd2l0aCBtZWRpYW5cbiAgICAgIG9wdGlvbnM6IHRoaXMuZ2V0Q2hhcnRPcHRpb25zKCksXG4gICAgfTtcblxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQoY2FudmFzLCBjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIG1lZGlhbiB2YWx1ZXMgYW5kIGFkZHMgdGhlbSB0byB0aGUgZGF0YXNldFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRDaGFydERhdGEoKTogQ2hhcnREYXRhIHtcbiAgICBjb25zdCBtZWRpYW5WYWx1ZXMgPSB0aGlzLmNhbGN1bGF0ZU1lZGlhbigpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsczogdGhpcy5jaGFydENvbmZpZy5kYXRhLmxhYmVscyxcbiAgICAgIGRhdGFzZXRzOiBbXG4gICAgICAgIC8vIEFkZCBtZWRpYW4gbGluZSBkYXRhc2V0XG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogdGhpcy5tZWRpYW5UaXRsZSB8fCAnTcOpZGlhbmUnLFxuICAgICAgICAgIGRhdGE6IG1lZGlhblZhbHVlcyxcbiAgICAgICAgICBib3JkZXJDb2xvcjogJyMwMDAwRkYnLCAvLyBCbHVlIGNvbG9yXG4gICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgIHBvaW50UmFkaXVzOiAwLFxuICAgICAgICAgIGZpbGw6IGZhbHNlLFxuICAgICAgICAgIHRlbnNpb246IDAuMSxcbiAgICAgICAgICBib3JkZXJEYXNoOiBbNSwgNV0sIC8vIERhc2hlZCBsaW5lXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEtlZXAgZXhpc3RpbmcgZGF0YXNldHNcbiAgICAgICAgLi4uKHRoaXMuY2hhcnRDb25maWcuZGF0YS5kYXRhc2V0cyBhcyBEYXRhc2V0W10pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIG1lZGlhbiB2YWx1ZXMgZnJvbSBhbGwgZGF0YXNldHMgYXQgZWFjaCB0aW1lIHBvaW50XG4gICAqL1xuICBwcml2YXRlIGNhbGN1bGF0ZU1lZGlhbigpOiBudW1iZXJbXSB7XG4gICAgY29uc3QgZGF0YXNldHMgPSB0aGlzLmNoYXJ0Q29uZmlnLmRhdGEuZGF0YXNldHMgYXMgRGF0YXNldFtdO1xuXG4gICAgcmV0dXJuIHRoaXMuY2hhcnRDb25maWcuZGF0YS5sYWJlbHMhLm1hcCgoXywgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlc0F0VGltZSA9IGRhdGFzZXRzXG4gICAgICAgIC5tYXAoKGRhdGFzZXQpID0+IGRhdGFzZXQuZGF0YVtpbmRleF0pXG4gICAgICAgIC5maWx0ZXIoKHZhbCkgPT4gdmFsICE9PSB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAodmFsdWVzQXRUaW1lLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDA7XG5cbiAgICAgIHZhbHVlc0F0VGltZS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICBjb25zdCBtaWRkbGUgPSBNYXRoLmZsb29yKHZhbHVlc0F0VGltZS5sZW5ndGggLyAyKTtcblxuICAgICAgcmV0dXJuIHZhbHVlc0F0VGltZS5sZW5ndGggJSAyID09PSAwXG4gICAgICAgID8gKHZhbHVlc0F0VGltZVttaWRkbGUgLSAxXSArIHZhbHVlc0F0VGltZVttaWRkbGVdKSAvIDJcbiAgICAgICAgOiB2YWx1ZXNBdFRpbWVbbWlkZGxlXTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGNoYXJ0IG9wdGlvbnMgaW5jbHVkaW5nIFktYXhpcyBzY2FsaW5nXG4gICAqL1xuICBwcml2YXRlIGdldENoYXJ0T3B0aW9ucygpOiBDaGFydE9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICByZXNwb25zaXZlOiB0cnVlLFxuICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXG4gICAgICBwbHVnaW5zOiB7XG4gICAgICAgIGxlZ2VuZDogeyBkaXNwbGF5OiB0cnVlLCBwb3NpdGlvbjogJ3RvcCcgfSxcbiAgICAgICAgdG9vbHRpcDogeyBtb2RlOiAnaW5kZXgnLCBpbnRlcnNlY3Q6IGZhbHNlIH0sXG4gICAgICB9LFxuICAgICAgc2NhbGVzOiB7XG4gICAgICAgIHg6IHtcbiAgICAgICAgICB0aXRsZTogeyBkaXNwbGF5OiB0cnVlLCB0ZXh0OiB0aGlzLmNoYXJ0Q29uZmlnLnhBeGlzVGl0bGUgfHwgJ1RpbWUnIH0sXG4gICAgICAgICAgdGlja3M6IHsgZm9udDogeyBzaXplOiAxMiB9IH0sXG4gICAgICAgIH0sXG4gICAgICAgIHk6IHtcbiAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuY2hhcnRDb25maWcueUF4aXNUaXRsZSB8fCAnVmFsdWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWluOiB0aGlzLmNoYXJ0Q29uZmlnLnNjYWxlcz8ueT8ubWluLFxuICAgICAgICAgIG1heDogdGhpcy5jaGFydENvbmZpZy5zY2FsZXM/Lnk/Lm1heCxcbiAgICAgICAgICB0aWNrczoge1xuICAgICAgICAgICAgc3RlcFNpemU6IHRoaXMuY2hhcnRDb25maWcuc2NhbGVzPy55Py50aWNrcz8uc3RlcFNpemUsXG4gICAgICAgICAgICBmb250OiB7IHNpemU6IDE2LCB3ZWlnaHQ6ICdib2xkJyB9LFxuICAgICAgICAgICAgY29sb3I6ICcjMzMzJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLDAsMCwwLjEpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJvcmRlcjoge1xuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgZXhpc3RpbmcgY2hhcnQgaW5zdGFuY2UgaWYgcHJlc2VudFxuICAgKi9cbiAgcHJpdmF0ZSBkZXN0cm95Q2hhcnQoKSB7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnQuZGVzdHJveSgpO1xuICAgICAgdGhpcy5jaGFydCA9IHVuZGVmaW5lZCBhcyBhbnk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hhcnQtc2Nyb2xsLWNvbnRhaW5lclwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjaGFydC1pbm5lclwiXG4gICAgW3N0eWxlLndpZHRoXT1cImNoYXJ0Q29uZmlnLmNoYXJ0V2lkdGggfHwgJzEyMDBweCdcIlxuICAgIFtzdHlsZS5oZWlnaHRdPVwiY2hhcnRDb25maWcuY2hhcnRIZWlnaHQgfHwgJzQwMHB4J1wiXG4gID5cbiAgICA8Y2FudmFzICNjaGFydENhbnZhcz48L2NhbnZhcz5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { NgModule } from '@angular/core';
|
2
|
+
import { CommonModule } from '@angular/common';
|
3
|
+
import { PTChartComparisonComponent } from './pt-chart-comparison.component';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class PTChartComparisonModule {
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, declarations: [PTChartComparisonComponent], imports: [CommonModule], exports: [PTChartComparisonComponent] }); }
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, imports: [CommonModule] }); }
|
9
|
+
}
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, decorators: [{
|
11
|
+
type: NgModule,
|
12
|
+
args: [{
|
13
|
+
declarations: [PTChartComparisonComponent],
|
14
|
+
imports: [CommonModule],
|
15
|
+
exports: [PTChartComparisonComponent],
|
16
|
+
}]
|
17
|
+
}] });
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtY2hhcnQtY29tcGFyaXNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWNoYXJ0LWNvbXBhcmlzb24vcHQtY2hhcnQtY29tcGFyaXNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBTzdFLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLGlCQUpuQiwwQkFBMEIsYUFDL0IsWUFBWSxhQUNaLDBCQUEwQjtnSEFFekIsdUJBQXVCLFlBSHhCLFlBQVk7OzRGQUdYLHVCQUF1QjtrQkFMbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBUQ2hhcnRDb21wYXJpc29uQ29tcG9uZW50IH0gZnJvbSAnLi9wdC1jaGFydC1jb21wYXJpc29uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1BUQ2hhcnRDb21wYXJpc29uQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtQVENoYXJ0Q29tcGFyaXNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBUQ2hhcnRDb21wYXJpc29uTW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export * from './pt-chart-comparison.component';
|
2
|
+
export * from './pt-chart-comparison.module';
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtY2hhcnQtY29tcGFyaXNvbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHQtY2hhcnQtY29tcGFyaXNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wdC1jaGFydC1jb21wYXJpc29uLm1vZHVsZSc7XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
@@ -17,6 +17,7 @@ export * from './lib/pt-metric-card';
|
|
17
17
|
export * from './lib/pt-metric-card-group';
|
18
18
|
// Chart
|
19
19
|
export * from './lib/pt-chart';
|
20
|
+
export * from './lib/pt-chart-comparison';
|
20
21
|
export * from './lib/pt-line-chart';
|
21
22
|
// Cards
|
22
23
|
export * from './lib/pt-card';
|
@@ -44,4 +45,4 @@ export * from './lib/models';
|
|
44
45
|
export * from './lib/enums';
|
45
46
|
export * from './lib/types';
|
46
47
|
export * from './lib/pt-group';
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsaUJBQWlCO0FBQ2pCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxTQUFTO0FBQ1QsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFlBQVk7QUFDWixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxRQUFRO0FBQ1IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsUUFBUTtBQUNSLGNBQWMsZUFBZSxDQUFDO0FBRTlCLE9BQU87QUFDUCxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFNBQVM7QUFDVCxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLHdCQUF3QixDQUFDO0FBRXZDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWM7QUFDZCxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFNBQVM7QUFDVCxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFVBQVU7QUFDVixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbmctcHJpbWUtdG9vbHMubW9kdWxlJztcblxuLy8gQWR2YW5jZWQgdGFibGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWFkdmFuY2VkLXByaW1lLXRhYmxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL211bHRpLXNlYXJjaC1jcml0ZXJpYSc7XG5cbi8vIElucHV0c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtY2hlY2stYm94LWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWRhdGUtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZHJvcGRvd24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZm9ybS1idWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW51bWJlci1pbnB1dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1zd2l0Y2gtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtdGV4dC1hcmVhLWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LXRleHQtaW5wdXQnO1xuXG4vLyBEYXNoYm9hcmRcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1ldHJpYy1wYW5lbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1tZXRyaWMtY2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1tZXRyaWMtY2FyZC1ncm91cCc7XG5cbi8vIENoYXJ0XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jaGFydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1jaGFydC1jb21wYXJpc29uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWxpbmUtY2hhcnQnO1xuXG4vLyBDYXJkc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtY2FyZCc7XG5cbi8vIE1lbnVcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LW1lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbWVudS1mYW5jeSc7XG5cbi8vIE5hdmJhclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbmF2LWJhci1tZW51JztcblxuLy8gTmF2YmFyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1zaWRlLWJhci1tZW51JztcblxuLy8gUGFnZSBza2VsZXRvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtcGFnZS1za2VsZXRvbic7XG5cbi8vIGZvb3RlclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZm9vdGVyJztcblxuLy8gYnJlYWQgY3J1bWJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3B0LWJyZWFkLWNydW1iJztcblxuLy8gbG9naW4gcGFnZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtbG9naW4tcGFnZSc7XG5cbi8vIGJ1dHRvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtYnV0dG9uJztcblxuLy8gZGlhbG9nXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wdC1kaWFsb2cnO1xuXG4vLyBHZW5lcmljXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHQtZ3JvdXAnO1xuIl19
|
@@ -3948,6 +3948,169 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
3948
3948
|
}]
|
3949
3949
|
}] });
|
3950
3950
|
|
3951
|
+
class PTChartComparisonComponent {
|
3952
|
+
constructor() {
|
3953
|
+
this.medianTitle = 'Médiane';
|
3954
|
+
this.xAxisTitle = 'Time';
|
3955
|
+
this.yAxisTitle = 'Value';
|
3956
|
+
// Chart dimension inputs
|
3957
|
+
this.chartHeight = '400px';
|
3958
|
+
this.chartWidth = '1200px';
|
3959
|
+
Chart.register(...registerables, ChartDataLabels);
|
3960
|
+
}
|
3961
|
+
ngOnInit() {
|
3962
|
+
this.initializeChart();
|
3963
|
+
}
|
3964
|
+
ngOnDestroy() {
|
3965
|
+
this.destroyChart();
|
3966
|
+
}
|
3967
|
+
/**
|
3968
|
+
* Initializes the chart with median and datasets
|
3969
|
+
*/
|
3970
|
+
initializeChart() {
|
3971
|
+
const canvas = this.canvasRef.nativeElement;
|
3972
|
+
this.destroyChart();
|
3973
|
+
const config = {
|
3974
|
+
type: this.chartConfig.type || 'line',
|
3975
|
+
data: this.getFormattedChartData(), // Get data with median
|
3976
|
+
options: this.getChartOptions(),
|
3977
|
+
};
|
3978
|
+
this.chart = new Chart(canvas, config);
|
3979
|
+
}
|
3980
|
+
/**
|
3981
|
+
* Computes median values and adds them to the dataset
|
3982
|
+
*/
|
3983
|
+
getFormattedChartData() {
|
3984
|
+
const medianValues = this.calculateMedian();
|
3985
|
+
return {
|
3986
|
+
labels: this.chartConfig.data.labels,
|
3987
|
+
datasets: [
|
3988
|
+
// Add median line dataset
|
3989
|
+
{
|
3990
|
+
label: this.medianTitle || 'Médiane',
|
3991
|
+
data: medianValues,
|
3992
|
+
borderColor: '#0000FF', // Blue color
|
3993
|
+
borderWidth: 2,
|
3994
|
+
backgroundColor: 'transparent',
|
3995
|
+
pointRadius: 0,
|
3996
|
+
fill: false,
|
3997
|
+
tension: 0.1,
|
3998
|
+
borderDash: [5, 5], // Dashed line
|
3999
|
+
},
|
4000
|
+
// Keep existing datasets
|
4001
|
+
...this.chartConfig.data.datasets,
|
4002
|
+
],
|
4003
|
+
};
|
4004
|
+
}
|
4005
|
+
/**
|
4006
|
+
* Computes median values from all datasets at each time point
|
4007
|
+
*/
|
4008
|
+
calculateMedian() {
|
4009
|
+
const datasets = this.chartConfig.data.datasets;
|
4010
|
+
return this.chartConfig.data.labels.map((_, index) => {
|
4011
|
+
const valuesAtTime = datasets
|
4012
|
+
.map((dataset) => dataset.data[index])
|
4013
|
+
.filter((val) => val !== undefined);
|
4014
|
+
if (valuesAtTime.length === 0)
|
4015
|
+
return 0;
|
4016
|
+
valuesAtTime.sort((a, b) => a - b);
|
4017
|
+
const middle = Math.floor(valuesAtTime.length / 2);
|
4018
|
+
return valuesAtTime.length % 2 === 0
|
4019
|
+
? (valuesAtTime[middle - 1] + valuesAtTime[middle]) / 2
|
4020
|
+
: valuesAtTime[middle];
|
4021
|
+
});
|
4022
|
+
}
|
4023
|
+
/**
|
4024
|
+
* Defines chart options including Y-axis scaling
|
4025
|
+
*/
|
4026
|
+
getChartOptions() {
|
4027
|
+
return {
|
4028
|
+
responsive: true,
|
4029
|
+
maintainAspectRatio: false,
|
4030
|
+
plugins: {
|
4031
|
+
legend: { display: true, position: 'top' },
|
4032
|
+
tooltip: { mode: 'index', intersect: false },
|
4033
|
+
},
|
4034
|
+
scales: {
|
4035
|
+
x: {
|
4036
|
+
title: { display: true, text: this.chartConfig.xAxisTitle || 'Time' },
|
4037
|
+
ticks: { font: { size: 12 } },
|
4038
|
+
},
|
4039
|
+
y: {
|
4040
|
+
title: {
|
4041
|
+
display: true,
|
4042
|
+
text: this.chartConfig.yAxisTitle || 'Value',
|
4043
|
+
},
|
4044
|
+
min: this.chartConfig.scales?.y?.min,
|
4045
|
+
max: this.chartConfig.scales?.y?.max,
|
4046
|
+
ticks: {
|
4047
|
+
stepSize: this.chartConfig.scales?.y?.ticks?.stepSize,
|
4048
|
+
font: { size: 16, weight: 'bold' },
|
4049
|
+
color: '#333',
|
4050
|
+
},
|
4051
|
+
grid: {
|
4052
|
+
color: 'rgba(0,0,0,0.1)',
|
4053
|
+
},
|
4054
|
+
border: {
|
4055
|
+
display: true,
|
4056
|
+
color: '#000',
|
4057
|
+
},
|
4058
|
+
},
|
4059
|
+
},
|
4060
|
+
};
|
4061
|
+
}
|
4062
|
+
/**
|
4063
|
+
* Destroys the existing chart instance if present
|
4064
|
+
*/
|
4065
|
+
destroyChart() {
|
4066
|
+
if (this.chart) {
|
4067
|
+
this.chart.destroy();
|
4068
|
+
this.chart = undefined;
|
4069
|
+
}
|
4070
|
+
}
|
4071
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
4072
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTChartComparisonComponent, selector: "pt-chart-comparison", inputs: { chartConfig: "chartConfig", medianTitle: "medianTitle", xAxisTitle: "xAxisTitle", yAxisTitle: "yAxisTitle", yMin: "yMin", yMax: "yMax", yStepSize: "yStepSize", chartHeight: "chartHeight", chartWidth: "chartWidth" }, viewQueries: [{ propertyName: "canvasRef", first: true, predicate: ["chartCanvas"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"chart-scroll-container\">\n <div\n class=\"chart-inner\"\n [style.width]=\"chartConfig.chartWidth || '1200px'\"\n [style.height]=\"chartConfig.chartHeight || '400px'\"\n >\n <canvas #chartCanvas></canvas>\n </div>\n</div>\n", styles: [".chart-scroll-container{width:100%;overflow-x:auto;white-space:nowrap;padding-bottom:10px}.chart-inner{display:inline-block}\n"] }); }
|
4073
|
+
}
|
4074
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonComponent, decorators: [{
|
4075
|
+
type: Component,
|
4076
|
+
args: [{ selector: 'pt-chart-comparison', template: "<div class=\"chart-scroll-container\">\n <div\n class=\"chart-inner\"\n [style.width]=\"chartConfig.chartWidth || '1200px'\"\n [style.height]=\"chartConfig.chartHeight || '400px'\"\n >\n <canvas #chartCanvas></canvas>\n </div>\n</div>\n", styles: [".chart-scroll-container{width:100%;overflow-x:auto;white-space:nowrap;padding-bottom:10px}.chart-inner{display:inline-block}\n"] }]
|
4077
|
+
}], ctorParameters: () => [], propDecorators: { chartConfig: [{
|
4078
|
+
type: Input
|
4079
|
+
}], medianTitle: [{
|
4080
|
+
type: Input
|
4081
|
+
}], xAxisTitle: [{
|
4082
|
+
type: Input
|
4083
|
+
}], yAxisTitle: [{
|
4084
|
+
type: Input
|
4085
|
+
}], yMin: [{
|
4086
|
+
type: Input
|
4087
|
+
}], yMax: [{
|
4088
|
+
type: Input
|
4089
|
+
}], yStepSize: [{
|
4090
|
+
type: Input
|
4091
|
+
}], chartHeight: [{
|
4092
|
+
type: Input
|
4093
|
+
}], chartWidth: [{
|
4094
|
+
type: Input
|
4095
|
+
}], canvasRef: [{
|
4096
|
+
type: ViewChild,
|
4097
|
+
args: ['chartCanvas', { static: true }]
|
4098
|
+
}] } });
|
4099
|
+
|
4100
|
+
class PTChartComparisonModule {
|
4101
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
4102
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, declarations: [PTChartComparisonComponent], imports: [CommonModule], exports: [PTChartComparisonComponent] }); }
|
4103
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, imports: [CommonModule] }); }
|
4104
|
+
}
|
4105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTChartComparisonModule, decorators: [{
|
4106
|
+
type: NgModule,
|
4107
|
+
args: [{
|
4108
|
+
declarations: [PTChartComparisonComponent],
|
4109
|
+
imports: [CommonModule],
|
4110
|
+
exports: [PTChartComparisonComponent],
|
4111
|
+
}]
|
4112
|
+
}] });
|
4113
|
+
|
3951
4114
|
class PTLineChartComponent {
|
3952
4115
|
constructor() {
|
3953
4116
|
this.config = {
|
@@ -4119,5 +4282,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
4119
4282
|
* Generated bundle index. Do not edit.
|
4120
4283
|
*/
|
4121
4284
|
|
4122
|
-
export { BadgeType, BadgeTypeStyles, ButtonColorEnum, FormInputTypeEnum, InputValidationEnum, MultiSearchCriteriaComponent, MultiSearchCriteriaModule, NgPrimeToolsModule, PTAdvancedPrimeTableComponent, PTAdvancedPrimeTableModule, PTBreadCrumbComponent, PTBreadCrumbModule, PTButtonComponent, PTButtonModule, PTCardComponent, PTCardModule, PTChartComponent, PTChartModule, PTCheckBoxInputComponent, PTCheckBoxInputModule, PTDateInputComponent, PTDateInputModule, PTDialogComponent, PTDialogModule, PTDropdownComponent, PTDropdownModule, PTFooterComponent, PTFooterModule, PTFormBuilderComponent, PTFormBuilderModule, PTGroupComponent, PTGroupModule, PTLineChartComponent, PTLineChartModule, PTLoginPageComponent, PTLoginPageModule, PTMenuComponent, PTMenuFancyComponent, PTMenuFancyModule, PTMenuModule, PTMetricCardComponent, PTMetricCardGroupComponent, PTMetricCardGroupModule, PTMetricCardModule, PTMetricPanelComponent, PTMetricPanelModule, PTNavbarMenuComponent, PTNavbarMenuModule, PTNumberInputComponent, PTNumberInputModule, PTPageSkeletonComponent, PTPageSkeletonModule, PTSideBarMenuComponent, PTSideBarMenuModule, PTSwitchInputComponent, PTSwitchInputModule, PTTextAreaInputComponent, PTTextAreaInputModule, PTTextInputComponent, PTTextInputModule, SearchCriteriaTypeEnum, TableTypeEnum };
|
4285
|
+
export { BadgeType, BadgeTypeStyles, ButtonColorEnum, FormInputTypeEnum, InputValidationEnum, MultiSearchCriteriaComponent, MultiSearchCriteriaModule, NgPrimeToolsModule, PTAdvancedPrimeTableComponent, PTAdvancedPrimeTableModule, PTBreadCrumbComponent, PTBreadCrumbModule, PTButtonComponent, PTButtonModule, PTCardComponent, PTCardModule, PTChartComparisonComponent, PTChartComparisonModule, PTChartComponent, PTChartModule, PTCheckBoxInputComponent, PTCheckBoxInputModule, PTDateInputComponent, PTDateInputModule, PTDialogComponent, PTDialogModule, PTDropdownComponent, PTDropdownModule, PTFooterComponent, PTFooterModule, PTFormBuilderComponent, PTFormBuilderModule, PTGroupComponent, PTGroupModule, PTLineChartComponent, PTLineChartModule, PTLoginPageComponent, PTLoginPageModule, PTMenuComponent, PTMenuFancyComponent, PTMenuFancyModule, PTMenuModule, PTMetricCardComponent, PTMetricCardGroupComponent, PTMetricCardGroupModule, PTMetricCardModule, PTMetricPanelComponent, PTMetricPanelModule, PTNavbarMenuComponent, PTNavbarMenuModule, PTNumberInputComponent, PTNumberInputModule, PTPageSkeletonComponent, PTPageSkeletonModule, PTSideBarMenuComponent, PTSideBarMenuModule, PTSwitchInputComponent, PTSwitchInputModule, PTTextAreaInputComponent, PTTextAreaInputModule, PTTextInputComponent, PTTextInputModule, SearchCriteriaTypeEnum, TableTypeEnum };
|
4123
4286
|
//# sourceMappingURL=ng-prime-tools.mjs.map
|