@esfaenza/es-charts 20.3.12 → 20.3.14
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.
|
@@ -3,6 +3,7 @@ import { EventEmitter, ContentChild, Output, Input, ChangeDetectionStrategy, Com
|
|
|
3
3
|
import * as i4 from '@angular/common';
|
|
4
4
|
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
5
5
|
import * as am5 from '@amcharts/amcharts5';
|
|
6
|
+
import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
|
|
6
7
|
import * as am5xy from '@amcharts/amcharts5/xy';
|
|
7
8
|
import am5locales_it_IT from '@amcharts/amcharts5/locales/it_IT';
|
|
8
9
|
import * as am5percent from '@amcharts/amcharts5/percent';
|
|
@@ -317,10 +318,10 @@ class PageChartSelector {
|
|
|
317
318
|
this.currentindex--;
|
|
318
319
|
}, this.BrowseDelayMs);
|
|
319
320
|
}
|
|
320
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
321
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
321
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PageChartSelector, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
322
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: PageChartSelector, isStandalone: false, selector: "chart-pager", inputs: { Items: "Items", Dtos: "Dtos", BrowseDelayMs: "BrowseDelayMs", StartIndex: "StartIndex" }, outputs: { onPageChange: "onPageChange" }, queries: [{ propertyName: "headerInner_tr", first: true, predicate: ["header_inner"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos)?.length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos)?.length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
322
323
|
}
|
|
323
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
324
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PageChartSelector, decorators: [{
|
|
324
325
|
type: Component,
|
|
325
326
|
args: [{ selector: "chart-pager", changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div *ngIf=\"(Items || Dtos) && (Items || Dtos).length > 0\" class=\"pcs-no-selection\">\r\n <div class=\"pcs-button pcs-backward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"currentpage != 1 && Previous(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"currentpage == 1 ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-left\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"pcs-infos\">\r\n <ng-container *ngIf=\"headerInner_tr\">\r\n <ng-container *ngTemplateOutlet=\"headerInner_tr; context : {$implicit: (Items || Dtos)[currentpage - 1]}\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"pcs-button pcs-forward\">\r\n <svg class=\"pcs-svg-header\">\r\n <g class=\"pcs-svg-button-container\" role=\"button\" (click)=\"(Items || Dtos)?.length != currentpage && Next(); $event.stopPropagation(); $event.preventDefault();\">\r\n <!--Pulsante e freccettina all'interno-->\r\n <g class=\"pcs-svg-button\" [style.cursor]=\"(Items || Dtos)?.length == currentpage ? 'not-allowed' : 'pointer'\"><path d=\"M3,0 L53.027,0 a3,3 0 0 1 3,3 L56.027,36.817 a3,3 0 0 1 -3,3 L3,39.817 a3,3 0 0 1 -3,-3 L0,3 a3,3 0 0 1 3,-3 Z\"></path></g>\r\n <g class=\"pcs-svg-arrow pcs-svg-arrow-right\"><path d=\"M26,14H10l5.17-6.79A2,2,0,0,0,12,4.79l-7.62,10a2,2,0,0,0,0,2.42l7.62,10a2,2,0,0,0,3.18-2.42L10,18H26a2,2,0,0,0,0-4Z\"></path></g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div style=\"clear: both;\"></div>\r\n</div>", styles: [".pcs-button{width:60px}.pcs-forward{float:right;text-align:end}.pcs-backward{float:left}.pcs-svg-header{width:57px;height:40px}.pcs-svg-button-container{outline:currentcolor none medium}.pcs-svg-arrow{pointer-events:none;fill:#555}.pcs-svg-arrow-right{transform:translate(44px,36px) rotate(180deg)}.pcs-svg-arrow-left{transform:translate(13px,4px)}.pcs-svg-button{fill:#d9d9d9;stroke:#fff;fill-opacity:1;stroke-opacity:1}.pcs-svg-button:hover{fill:#a3a3a3;cursor:pointer}.pcs-infos{width:calc(100% - 120px);height:44px;float:left}.pcs-no-selection{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}\n"] }]
|
|
326
327
|
}], propDecorators: { Items: [{
|
|
@@ -561,10 +562,10 @@ class ChartLoader {
|
|
|
561
562
|
if (this.logs)
|
|
562
563
|
console.log("@esfaenza/es-charts: " + text);
|
|
563
564
|
}
|
|
564
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
565
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
565
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ChartLoader, deps: [{ token: ESC_DEBUG_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
566
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ChartLoader }); }
|
|
566
567
|
}
|
|
567
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
568
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ChartLoader, decorators: [{
|
|
568
569
|
type: Injectable
|
|
569
570
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
570
571
|
type: Inject,
|
|
@@ -649,10 +650,10 @@ class ChartDispatcher {
|
|
|
649
650
|
if (this.logs)
|
|
650
651
|
console.log("@esfaenza/es-charts: " + text);
|
|
651
652
|
}
|
|
652
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
653
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
653
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ChartDispatcher, deps: [{ token: ESC_DEBUG_MODE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
654
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ChartDispatcher }); }
|
|
654
655
|
}
|
|
655
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
656
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ChartDispatcher, decorators: [{
|
|
656
657
|
type: Injectable
|
|
657
658
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
658
659
|
type: Inject,
|
|
@@ -944,10 +945,10 @@ class BaseChartComponent {
|
|
|
944
945
|
});
|
|
945
946
|
}
|
|
946
947
|
}
|
|
947
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
948
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.
|
|
948
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BaseChartComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
949
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: BaseChartComponent, isStandalone: true, inputs: { XTitle: "XTitle", YTitle: "YTitle", Settings: "Settings", Legend: "Legend", LegendPosition: "LegendPosition", Timeline: "Timeline", name: "name", Animations: "Animations", Theme: "Theme", Locale: "Locale", HideSeriesOnLabelClick: "HideSeriesOnLabelClick", MinGridDistance: "MinGridDistance", AdaptLabelSizeAndOrientation: "AdaptLabelSizeAndOrientation", LegendPadding: "LegendPadding", DataDtos: "DataDtos", DataDtoStartIndex: "DataDtoStartIndex", DataRetrieve: "DataRetrieve", BrowseDelayMs: "BrowseDelayMs" }, outputs: { onSelectionChanged: "onSelectionChanged", onSeriesClicked: "onSeriesClicked", onLoadStart: "onLoadStart", onLoadEnd: "onLoadEnd", chartLoaded: "chartLoaded" }, queries: [{ propertyName: "header_tr", first: true, predicate: ["header"], descendants: true }, { propertyName: "loading_template", first: true, predicate: ["loading"], descendants: true }], usesOnChanges: true, ngImport: i0 }); }
|
|
949
950
|
}
|
|
950
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
951
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: BaseChartComponent, decorators: [{
|
|
951
952
|
type: Directive
|
|
952
953
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: Object }, { type: i0.NgZone }, { type: ChartLoader }, { type: ChartDispatcher }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }], propDecorators: { XTitle: [{
|
|
953
954
|
type: Input
|
|
@@ -1003,6 +1004,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.28", ngImpo
|
|
|
1003
1004
|
type: Output
|
|
1004
1005
|
}] } });
|
|
1005
1006
|
|
|
1007
|
+
/**
|
|
1008
|
+
* Palette storica "Spirited Away" ereditata da amCharts4.
|
|
1009
|
+
*
|
|
1010
|
+
* In amCharts4 il tema di default della libreria ('spiritedaway') veniva applicato globalmente
|
|
1011
|
+
* (am4core.useTheme) e impostava questa esatta lista di colori sul ColorSet di ogni grafico.
|
|
1012
|
+
* Le serie/colonne prive di un colore esplicito pescavano da qui in ordine.
|
|
1013
|
+
*
|
|
1014
|
+
* Con la migrazione ad amCharts5 il sistema dei temi e stato disabilitato, percio i grafici
|
|
1015
|
+
* mostravano la palette di default di amCharts5. Questa costante ripristina i colori originali.
|
|
1016
|
+
*
|
|
1017
|
+
* Valori estratti dal tema Spirited di @amcharts/amcharts4@4.10.40
|
|
1018
|
+
* (.internal/themes/spiritedaway.js, "Color set from Spirited away movie").
|
|
1019
|
+
*/
|
|
1020
|
+
const SPIRITED_PALETTE = [
|
|
1021
|
+
0x65738e,
|
|
1022
|
+
0x766c91,
|
|
1023
|
+
0x78566f,
|
|
1024
|
+
0x523b58,
|
|
1025
|
+
0x813b3d,
|
|
1026
|
+
0xbc5e52,
|
|
1027
|
+
0xee8b78,
|
|
1028
|
+
0xf9c885,
|
|
1029
|
+
0xeba05c,
|
|
1030
|
+
0x9b5134
|
|
1031
|
+
];
|
|
1032
|
+
/**
|
|
1033
|
+
* Crea un ColorSet con la palette storica {@link SPIRITED_PALETTE} da applicare a un grafico
|
|
1034
|
+
* tramite `chart.set("colors", createSpiritedColorSet(root))`.
|
|
1035
|
+
*
|
|
1036
|
+
* `reuse: true` replica il comportamento del tema amCharts4: quando le serie superano i colori
|
|
1037
|
+
* disponibili, la palette viene riciclata invece di generare tinte arbitrarie.
|
|
1038
|
+
*
|
|
1039
|
+
* @param {am5.Root} root Root del grafico a cui il ColorSet appartiene
|
|
1040
|
+
* @returns {am5.ColorSet} ColorSet pronto da assegnare al setting "colors" del grafico
|
|
1041
|
+
*/
|
|
1042
|
+
function createSpiritedColorSet(root) {
|
|
1043
|
+
return am5.ColorSet.new(root, {
|
|
1044
|
+
colors: SPIRITED_PALETTE.map(c => am5.color(c)),
|
|
1045
|
+
reuse: true
|
|
1046
|
+
});
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
/**
|
|
1050
|
+
* Applica il tema "Animated" di amCharts5 al root del grafico.
|
|
1051
|
+
*
|
|
1052
|
+
* Replica il comportamento della versione amCharts4 della libreria, dove il tema animated veniva applicato
|
|
1053
|
+
* globalmente quando l'input/Setting `Animations` era attivo, fornendo transizioni fluide (zoom, hover,
|
|
1054
|
+
* mostra/nascondi serie, cursore).
|
|
1055
|
+
*
|
|
1056
|
+
* Va invocato subito dopo la creazione del root, prima di costruire il grafico e le serie, in modo che il
|
|
1057
|
+
* tema venga applicato a tutti gli elementi. La comparsa animata iniziale va invece innescata a parte con
|
|
1058
|
+
* le chiamate `appear()` su grafico e serie (in amCharts5 il tema non anima piu automaticamente il primo disegno).
|
|
1059
|
+
*
|
|
1060
|
+
* @param {am5.Root} root Root del grafico
|
|
1061
|
+
*/
|
|
1062
|
+
function applyAnimatedTheme(root) {
|
|
1063
|
+
root.setThemes([am5themes_Animated.new(root)]);
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1006
1066
|
/**
|
|
1007
1067
|
* Classe il cui unico scopo e gestire il setup e rendering di un LineChart
|
|
1008
1068
|
*/
|
|
@@ -1020,6 +1080,10 @@ class LineChartService {
|
|
|
1020
1080
|
this.singleDataSet = false;
|
|
1021
1081
|
/** @ignore */
|
|
1022
1082
|
this.mergedData = [];
|
|
1083
|
+
/** Flag "istante finale" corrente, memorizzato per riformattare le date nei refresh */
|
|
1084
|
+
this.currentFinalInstant = true;
|
|
1085
|
+
/** Colori assegnati a ciascuna serie, usati anche per i pallini nel tooltip unificato */
|
|
1086
|
+
this.seriesColors = [];
|
|
1023
1087
|
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1024
1088
|
//TODO: spostarla in un metodo di utilita (esfaenza/extensions)
|
|
1025
1089
|
/** @ignore */
|
|
@@ -1050,7 +1114,12 @@ class LineChartService {
|
|
|
1050
1114
|
this.ChartRoot?.dispose();
|
|
1051
1115
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
1052
1116
|
this.applyLocale(settings);
|
|
1117
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
1118
|
+
if (settings.Animations)
|
|
1119
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
1053
1120
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
1121
|
+
// Ripristina la palette storica ereditata da amCharts4 per le serie prive di colore esplicito
|
|
1122
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
1054
1123
|
//#endregion
|
|
1055
1124
|
// Carico l'Asse Y
|
|
1056
1125
|
let yRenderer = am5xy.AxisRendererY.new(this.ChartRoot, {});
|
|
@@ -1113,15 +1182,23 @@ class LineChartService {
|
|
|
1113
1182
|
centerX: am5.p50
|
|
1114
1183
|
}));
|
|
1115
1184
|
}
|
|
1185
|
+
this.currentInterval = interval;
|
|
1186
|
+
this.currentFinalInstant = finalInstant;
|
|
1116
1187
|
if (this.singleDataSet)
|
|
1117
1188
|
this.mergedData = this.generateSingleDataset(dataConverted);
|
|
1189
|
+
// Pre-calcolo i colori di tutte le serie prima di crearle: il tooltip unificato mostra un pallino
|
|
1190
|
+
// colorato per ogni serie, quindi ha bisogno dell'intera lista di colori gia al primo createSeries
|
|
1118
1191
|
let seriesColors = [];
|
|
1119
1192
|
let defaultIndex = 0;
|
|
1193
|
+
dataConverted.series.forEach(s => {
|
|
1194
|
+
let color = s.color ? am5.color(s.color) : this.ChartInstance.get("colors").getIndex(defaultIndex++);
|
|
1195
|
+
seriesColors.push(color);
|
|
1196
|
+
});
|
|
1197
|
+
this.seriesColors = seriesColors;
|
|
1120
1198
|
dataConverted.series.forEach((s, index) => {
|
|
1121
1199
|
let stacked = s.stacked != null && s.stacked != undefined ? s.stacked : (settings?.Stacked ?? false);
|
|
1122
1200
|
let fill = stacked || (s.fill != null && s.fill != undefined ? s.fill : (settings?.Fill ?? false));
|
|
1123
|
-
let color =
|
|
1124
|
-
seriesColors.push(color);
|
|
1201
|
+
let color = seriesColors[index];
|
|
1125
1202
|
let series = this.createSeries(s, index, dateAxis, yAxis, settings, gapsAllowed, fill, stacked, color, interval, finalInstant);
|
|
1126
1203
|
if (showTimeline)
|
|
1127
1204
|
this.addSeriesToScrollbar(series, s, index, dateAxis, yAxis, settings, gapsAllowed, color);
|
|
@@ -1186,13 +1263,22 @@ class LineChartService {
|
|
|
1186
1263
|
//#endregion
|
|
1187
1264
|
let cursor = am5xy.XYCursor.new(this.ChartRoot, {
|
|
1188
1265
|
xAxis: dateAxis,
|
|
1189
|
-
yAxis
|
|
1266
|
+
yAxis,
|
|
1267
|
+
// Ripristina lo zoom con click-and-drag su un range di date (comportamento di default di amCharts4,
|
|
1268
|
+
// perso nella migrazione ad amCharts5 dove il behavior di default del cursore e "none").
|
|
1269
|
+
// "zoomX" gestisce nativamente il drag in entrambe le direzioni (destra->sinistra e sinistra->destra)
|
|
1270
|
+
behavior: "zoomX"
|
|
1190
1271
|
});
|
|
1191
1272
|
this.ChartInstance.set("cursor", cursor);
|
|
1192
1273
|
if (this.singleDataSet)
|
|
1193
1274
|
this.ChartInstance.set("maxTooltipDistance", -1);
|
|
1194
1275
|
dateAxis.on("start", () => this.emitSelectionChanged(dateAxis, settings));
|
|
1195
1276
|
dateAxis.on("end", () => this.emitSelectionChanged(dateAxis, settings));
|
|
1277
|
+
// Comparsa animata iniziale di serie e grafico, come nella versione amCharts4
|
|
1278
|
+
if (settings.Animations) {
|
|
1279
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
1280
|
+
this.ChartInstance.appear(1000, 100);
|
|
1281
|
+
}
|
|
1196
1282
|
return this;
|
|
1197
1283
|
}
|
|
1198
1284
|
fixTimeUnit(tu) {
|
|
@@ -1254,10 +1340,42 @@ class LineChartService {
|
|
|
1254
1340
|
let singleVal = values[series];
|
|
1255
1341
|
item[series] = singleVal;
|
|
1256
1342
|
}
|
|
1343
|
+
// Data gia formattata col DateService applicativo, cosi il tooltip non dipende dal formatter di amCharts
|
|
1344
|
+
item.dl = this.formatTooltipDate(new Date(item.d), this.currentInterval, this.currentFinalInstant);
|
|
1257
1345
|
ret.push(item);
|
|
1258
1346
|
}
|
|
1259
1347
|
return ret;
|
|
1260
1348
|
}
|
|
1349
|
+
/**
|
|
1350
|
+
* Formatta una data per il tooltip usando il DateService applicativo, replicando il comportamento di amCharts4.
|
|
1351
|
+
*
|
|
1352
|
+
* Con "istante finale" attivo e intervalli a livello di ora/minuto/secondo la data viene riportata alla fine
|
|
1353
|
+
* del periodo; negli altri casi si usa la formattazione standard (senza orario per intervalli giornalieri o piu ampi).
|
|
1354
|
+
*
|
|
1355
|
+
* @param {Date} date Data da formattare
|
|
1356
|
+
* @param {any} interval Intervallo delle serie (puo essere null)
|
|
1357
|
+
* @param {boolean} finalInstant Indica se le date rappresentano l'istante finale del periodo
|
|
1358
|
+
* @returns {string} Data formattata (es. "25/08/2026 09:29", con o senza orario in base all'intervallo)
|
|
1359
|
+
*/
|
|
1360
|
+
formatTooltipDate(date, interval, finalInstant) {
|
|
1361
|
+
if (interval && finalInstant && ["hour", "minute", "second"].includes(interval.timeunit)) {
|
|
1362
|
+
let timepart = null;
|
|
1363
|
+
switch (interval.timeunit) {
|
|
1364
|
+
case "hour":
|
|
1365
|
+
timepart = 'day';
|
|
1366
|
+
break;
|
|
1367
|
+
case "minute":
|
|
1368
|
+
timepart = 'hour';
|
|
1369
|
+
break;
|
|
1370
|
+
case "second":
|
|
1371
|
+
timepart = 'minute';
|
|
1372
|
+
break;
|
|
1373
|
+
}
|
|
1374
|
+
if (timepart)
|
|
1375
|
+
return this.dateExts.adjustDateToFinalInstant(date, timepart, interval.timeunit == "second");
|
|
1376
|
+
}
|
|
1377
|
+
return this.dateExts.getFormatted(date, interval ? ["day", "week", "month", "year"].includes(interval.timeunit) : false, interval ? interval.timeunit == "second" : false);
|
|
1378
|
+
}
|
|
1261
1379
|
/** @ignore */
|
|
1262
1380
|
createSeries(source, index, dateAxis, yAxis, settings, gapsAllowed, fill, stacked, color, interval, finalInstant) {
|
|
1263
1381
|
let SeriesClass = settings?.Step ? am5xy.StepLineSeries : am5xy.LineSeries;
|
|
@@ -1282,14 +1400,28 @@ class LineChartService {
|
|
|
1282
1400
|
visible: true
|
|
1283
1401
|
});
|
|
1284
1402
|
series.set("minBulletDistance", 10);
|
|
1285
|
-
|
|
1403
|
+
let tooltip = am5.Tooltip.new(this.ChartRoot, {
|
|
1286
1404
|
pointerOrientation: "vertical",
|
|
1287
1405
|
labelText: this.getTooltipText(source, index, interval, finalInstant)
|
|
1288
|
-
}));
|
|
1289
|
-
series.get("tooltip")?.get("background")?.setAll({
|
|
1290
|
-
fillOpacity: this.singleDataSet ? 1 : 0.5,
|
|
1291
|
-
fill: this.singleDataSet ? am5.color(0xeeeeee) : undefined
|
|
1292
1406
|
});
|
|
1407
|
+
series.set("tooltip", tooltip);
|
|
1408
|
+
if (this.singleDataSet) {
|
|
1409
|
+
// Comportamento ereditato da amCharts4: tooltip unico grigio con testo scuro, indipendente dal
|
|
1410
|
+
// colore della serie (altrimenti amCharts5 lo colorerebbe con il colore della serie attiva)
|
|
1411
|
+
tooltip.set("getFillFromSprite", false);
|
|
1412
|
+
tooltip.get("background")?.setAll({
|
|
1413
|
+
fillOpacity: 1,
|
|
1414
|
+
fill: am5.color(0xeeeeee)
|
|
1415
|
+
});
|
|
1416
|
+
// Adapter e non set: amCharts5 reimposta il colore del testo del tooltip ad ogni aggiornamento
|
|
1417
|
+
// interno, quindi un semplice set verrebbe sovrascritto. L'adapter forza sempre il testo scuro.
|
|
1418
|
+
tooltip.label.adapters.add("fill", () => am5.color(0x000000));
|
|
1419
|
+
}
|
|
1420
|
+
else {
|
|
1421
|
+
tooltip.get("background")?.setAll({
|
|
1422
|
+
fillOpacity: 0.5
|
|
1423
|
+
});
|
|
1424
|
+
}
|
|
1293
1425
|
if (this.singleDataSet)
|
|
1294
1426
|
series.data.setAll(this.mergedData);
|
|
1295
1427
|
else
|
|
@@ -1302,12 +1434,11 @@ class LineChartService {
|
|
|
1302
1434
|
getTooltipText(source, index, interval, finalInstant) {
|
|
1303
1435
|
if (!this.singleDataSet)
|
|
1304
1436
|
return source.name ? "{name}: [bold]{valueY}[/]" : "[bold]{valueY}[/]";
|
|
1305
|
-
|
|
1306
|
-
debugger;
|
|
1307
|
-
let text = "[bold]{valueX.formatDate()}[/]\n";
|
|
1437
|
+
let text = "[bold]{dl}[/]\n";
|
|
1308
1438
|
this.currentSeriesData.series.forEach((serie, sindex) => {
|
|
1309
1439
|
let uom = serie.uom ? " [fontStyle: italic]" + serie.uom + "[/]" : "";
|
|
1310
|
-
|
|
1440
|
+
let bullet = this.seriesColors[sindex] ? "[" + this.seriesColors[sindex].toString() + "]●[/] " : "";
|
|
1441
|
+
text += bullet + (serie.name ? (serie.name + ": ") : "") + "[bold]{v" + sindex + "}[/]" + uom + "\n";
|
|
1311
1442
|
});
|
|
1312
1443
|
return text;
|
|
1313
1444
|
}
|
|
@@ -1688,12 +1819,18 @@ class PieChartService {
|
|
|
1688
1819
|
//#region Carico il Grafico
|
|
1689
1820
|
this.ChartRoot?.dispose();
|
|
1690
1821
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
1822
|
+
this.applyLocale(settings);
|
|
1691
1823
|
let ChartContainer = this.ChartRoot.container.children.push(am5.Container.new(this.ChartRoot, {
|
|
1692
1824
|
width: am5.percent(100),
|
|
1693
1825
|
height: am5.percent(100),
|
|
1694
1826
|
layout: this.ChartRoot.verticalLayout
|
|
1695
1827
|
}));
|
|
1696
1828
|
this.ChartInstance = ChartContainer.children.push(am5percent.PieChart.new(this.ChartRoot, {}));
|
|
1829
|
+
// Ripristina la palette storica ereditata da amCharts4 per le fette prive di colore esplicito
|
|
1830
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
1831
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
1832
|
+
if (settings.Animations)
|
|
1833
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
1697
1834
|
//#endregion
|
|
1698
1835
|
// Raggio Torta
|
|
1699
1836
|
// In am4 non c'era un modo automatico di calcolare il raggio sulle dimensioni del grafico, quindi si era fatto
|
|
@@ -1819,9 +1956,14 @@ class PieChartService {
|
|
|
1819
1956
|
else if (settings.LabelsTruncate)
|
|
1820
1957
|
series.labels.template.setAll({ oversizedBehavior: "truncate" });
|
|
1821
1958
|
}
|
|
1959
|
+
// I dati vanno assegnati PRIMA di calcolare il totale e registrare gli handler: altrimenti i dataItems
|
|
1960
|
+
// non esistono ancora e il totale verrebbe calcolato su una serie vuota (restando a 0)
|
|
1961
|
+
series.data.setAll(dataConverted.values);
|
|
1822
1962
|
// Configurazione "Mostra Totale"
|
|
1823
1963
|
if (settings.Total?.Show) {
|
|
1824
|
-
|
|
1964
|
+
// La label va agganciata al seriesContainer (la cui origine e il centro della torta) e centrata su
|
|
1965
|
+
// di esso: cosi compare esattamente al centro della ciambella, come nella versione amCharts4
|
|
1966
|
+
let label = this.ChartInstance.seriesContainer.children.push(am5.Label.new(this.ChartRoot, {
|
|
1825
1967
|
centerX: am5.p50,
|
|
1826
1968
|
centerY: am5.p50,
|
|
1827
1969
|
textAlign: "center"
|
|
@@ -1833,7 +1975,9 @@ class PieChartService {
|
|
|
1833
1975
|
return;
|
|
1834
1976
|
total += di.get("valueWorking") ?? di.get("value") ?? 0;
|
|
1835
1977
|
});
|
|
1836
|
-
|
|
1978
|
+
// Tronco a 2 decimali e formatto coi separatori del locale (es. "11.506.370,17")
|
|
1979
|
+
let truncated = Math.trunc(total * 100) / 100;
|
|
1980
|
+
let sumString = this.ChartRoot.numberFormatter.format(truncated, "#,###.00");
|
|
1837
1981
|
let fs = 28;
|
|
1838
1982
|
if (sumString.length >= 9)
|
|
1839
1983
|
fs = 18;
|
|
@@ -1842,7 +1986,7 @@ class PieChartService {
|
|
|
1842
1986
|
else if (sumString.length == 7)
|
|
1843
1987
|
fs = 23;
|
|
1844
1988
|
label.set("html", `<div style="text-align:center">
|
|
1845
|
-
<div style="font-size:${settings.Total?.TitleSize || 18}px">Totale
|
|
1989
|
+
<div style="font-size:${settings.Total?.TitleSize || 18}px">Totale:</div>
|
|
1846
1990
|
<div style="font-weight:bold;font-size:${settings.Total?.NumberSize || fs}px">
|
|
1847
1991
|
<span>${sumString}${settings.Total?.UnitOfMeasure ? " " + settings.Total.UnitOfMeasure : ""}</span>
|
|
1848
1992
|
</div>
|
|
@@ -1854,16 +1998,31 @@ class PieChartService {
|
|
|
1854
1998
|
di.on("valueWorking", updateTotal);
|
|
1855
1999
|
});
|
|
1856
2000
|
}
|
|
1857
|
-
series.data.setAll(dataConverted.values);
|
|
1858
2001
|
if (settings.Legend) {
|
|
2002
|
+
// Valore formattato coi separatori del locale e due decimali (es. "4.662.970,79"), come in amCharts4
|
|
1859
2003
|
series.setAll({
|
|
1860
|
-
legendLabelText: "{category}
|
|
1861
|
-
legendValueText: "{value}"
|
|
2004
|
+
legendLabelText: "{category}",
|
|
2005
|
+
legendValueText: "{value.formatNumber('#,###.00')}"
|
|
1862
2006
|
});
|
|
1863
2007
|
this.ChartLegend.data.setAll(series.dataItems);
|
|
1864
2008
|
}
|
|
2009
|
+
// Comparsa animata iniziale di fette e grafico, come nella versione amCharts4
|
|
2010
|
+
if (settings.Animations) {
|
|
2011
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2012
|
+
this.ChartInstance.appear(1000, 100);
|
|
2013
|
+
}
|
|
1865
2014
|
return this;
|
|
1866
2015
|
}
|
|
2016
|
+
/**
|
|
2017
|
+
* Applica il locale italiano al root del grafico quando richiesto, cosi che il numberFormatter usi i
|
|
2018
|
+
* separatori corretti (es. 4.662.970,79). Senza questo amCharts5 userebbe il formato di default (4,662,970).
|
|
2019
|
+
*
|
|
2020
|
+
* @param {PieChartSettings} settings Impostazioni del grafico (da cui si legge il Locale)
|
|
2021
|
+
*/
|
|
2022
|
+
applyLocale(settings) {
|
|
2023
|
+
if ((settings.Locale ?? "").toLowerCase().startsWith("it"))
|
|
2024
|
+
this.ChartRoot.locale = am5locales_it_IT;
|
|
2025
|
+
}
|
|
1867
2026
|
/** @ignore */
|
|
1868
2027
|
setSelection(from, to) { }
|
|
1869
2028
|
/** @ignore */
|
|
@@ -1901,6 +2060,11 @@ class VerticalChartService {
|
|
|
1901
2060
|
this.ChartRoot?.dispose();
|
|
1902
2061
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
1903
2062
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2063
|
+
// Ripristina la palette storica ereditata da amCharts4 per le colonne prive di colore esplicito
|
|
2064
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2065
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2066
|
+
if (settings.Animations)
|
|
2067
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
1904
2068
|
//#endregion
|
|
1905
2069
|
let chartData = dataConverted.values.map(value => ({
|
|
1906
2070
|
...value,
|
|
@@ -2052,6 +2216,11 @@ class VerticalChartService {
|
|
|
2052
2216
|
if (settings.Legend) {
|
|
2053
2217
|
this.ChartLegend.data.setAll(this.ChartInstance.series.values);
|
|
2054
2218
|
}
|
|
2219
|
+
// Comparsa animata iniziale di colonne e grafico, come nella versione amCharts4
|
|
2220
|
+
if (settings.Animations) {
|
|
2221
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2222
|
+
this.ChartInstance.appear(1000, 100);
|
|
2223
|
+
}
|
|
2055
2224
|
return this;
|
|
2056
2225
|
}
|
|
2057
2226
|
/** @ignore */
|
|
@@ -2097,6 +2266,11 @@ class Vertical2DChartService {
|
|
|
2097
2266
|
this.ChartRoot?.dispose();
|
|
2098
2267
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
2099
2268
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2269
|
+
// Ripristina la palette storica ereditata da amCharts4 per le colonne prive di colore esplicito
|
|
2270
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2271
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2272
|
+
if (settings.Animations)
|
|
2273
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
2100
2274
|
//#endregion
|
|
2101
2275
|
//#region Carico la Legenda
|
|
2102
2276
|
if (settings.Legend) {
|
|
@@ -2230,6 +2404,11 @@ class Vertical2DChartService {
|
|
|
2230
2404
|
if (settings.Legend) {
|
|
2231
2405
|
this.ChartLegend.data.setAll(this.ChartInstance.series.values);
|
|
2232
2406
|
}
|
|
2407
|
+
// Comparsa animata iniziale di colonne e grafico, come nella versione amCharts4
|
|
2408
|
+
if (settings.Animations) {
|
|
2409
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2410
|
+
this.ChartInstance.appear(1000, 100);
|
|
2411
|
+
}
|
|
2233
2412
|
return this;
|
|
2234
2413
|
}
|
|
2235
2414
|
/** @ignore */
|
|
@@ -2318,6 +2497,11 @@ class VerticalStackedChartService {
|
|
|
2318
2497
|
this.ChartRoot?.dispose();
|
|
2319
2498
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
2320
2499
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2500
|
+
// Ripristina la palette storica ereditata da amCharts4 per le colonne prive di colore esplicito
|
|
2501
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2502
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2503
|
+
if (settings.Animations)
|
|
2504
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
2321
2505
|
//#endregion
|
|
2322
2506
|
//#region Carico la Legenda
|
|
2323
2507
|
if (settings.Legend) {
|
|
@@ -2446,6 +2630,11 @@ class VerticalStackedChartService {
|
|
|
2446
2630
|
if (settings.Legend) {
|
|
2447
2631
|
this.ChartLegend.data.setAll(this.ChartInstance.series.values);
|
|
2448
2632
|
}
|
|
2633
|
+
// Comparsa animata iniziale di colonne e grafico, come nella versione amCharts4
|
|
2634
|
+
if (settings.Animations) {
|
|
2635
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2636
|
+
this.ChartInstance.appear(1000, 100);
|
|
2637
|
+
}
|
|
2449
2638
|
return this;
|
|
2450
2639
|
}
|
|
2451
2640
|
/** @ignore */
|
|
@@ -2520,6 +2709,11 @@ class AreaChartService {
|
|
|
2520
2709
|
this.ChartRoot?.dispose();
|
|
2521
2710
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
2522
2711
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2712
|
+
// Ripristina la palette storica ereditata da amCharts4 per le serie prive di colore esplicito
|
|
2713
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2714
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2715
|
+
if (settings.Animations)
|
|
2716
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
2523
2717
|
//#endregion
|
|
2524
2718
|
//#region Carico la Legenda
|
|
2525
2719
|
if (settings.Legend) {
|
|
@@ -2643,6 +2837,11 @@ class AreaChartService {
|
|
|
2643
2837
|
// let cursor = ^, cursor.lineY.set("visible", false), per cursore verticale
|
|
2644
2838
|
dateAxis.on("start", () => { this.emitSelectionChanged(dateAxis, settings); });
|
|
2645
2839
|
dateAxis.on("end", () => { this.emitSelectionChanged(dateAxis, settings); });
|
|
2840
|
+
// Comparsa animata iniziale di serie e grafico, come nella versione amCharts4
|
|
2841
|
+
if (settings.Animations) {
|
|
2842
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2843
|
+
this.ChartInstance.appear(1000, 100);
|
|
2844
|
+
}
|
|
2646
2845
|
return this;
|
|
2647
2846
|
}
|
|
2648
2847
|
fixTimeUnit(tu) {
|
|
@@ -2789,10 +2988,10 @@ class EsChartComponent extends BaseChartComponent {
|
|
|
2789
2988
|
return new VerticalStackedChartService().graphicate(this.Data, settings);
|
|
2790
2989
|
}
|
|
2791
2990
|
}
|
|
2792
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2793
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2991
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i3.DateService }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2992
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: EsChartComponent, isStandalone: false, selector: "es-chart", inputs: { Type: "Type", Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2794
2993
|
}
|
|
2795
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2994
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartComponent, decorators: [{
|
|
2796
2995
|
type: Component,
|
|
2797
2996
|
args: [{ selector: 'es-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
2798
2997
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -2855,10 +3054,10 @@ class EsAreaChartComponent extends BaseChartComponent {
|
|
|
2855
3054
|
graphicate(settingsCasted) {
|
|
2856
3055
|
return new AreaChartService().graphicate(this.Data, settingsCasted);
|
|
2857
3056
|
}
|
|
2858
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2859
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3057
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsAreaChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3058
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: EsAreaChartComponent, isStandalone: false, selector: "es-area-chart", inputs: { Data: "Data", DataArray: "DataArray" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2860
3059
|
}
|
|
2861
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3060
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsAreaChartComponent, decorators: [{
|
|
2862
3061
|
type: Component,
|
|
2863
3062
|
args: [{ selector: 'es-area-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
2864
3063
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -2931,10 +3130,10 @@ class EsLineChartComponent extends BaseChartComponent {
|
|
|
2931
3130
|
graphicate(settingsCasted) {
|
|
2932
3131
|
return new LineChartService(this.dateService).graphicate(this.Data, settingsCasted);
|
|
2933
3132
|
}
|
|
2934
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2935
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsLineChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i3.DateService }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3134
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: EsLineChartComponent, isStandalone: false, selector: "es-line-chart", inputs: { Data: "Data", DataArray: "DataArray", Step: "Step", DataGroupBucketSize: "DataGroupBucketSize", DataGroupingThreshold: "DataGroupingThreshold", StrokeSize: "StrokeSize", AllowGaps: "AllowGaps", MergeDatasets: "MergeDatasets", FinalInstants: "FinalInstants", Min: "Min", Max: "Max", Fill: "Fill", Stacked: "Stacked" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2936
3135
|
}
|
|
2937
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsLineChartComponent, decorators: [{
|
|
2938
3137
|
type: Component,
|
|
2939
3138
|
args: [{ selector: 'es-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
2940
3139
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3024,10 +3223,10 @@ class EsPieChartComponent extends BaseChartComponent {
|
|
|
3024
3223
|
graphicate(settingsCasted) {
|
|
3025
3224
|
return new PieChartService().graphicate(this.Data, settingsCasted);
|
|
3026
3225
|
}
|
|
3027
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3028
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3226
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsPieChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: EsPieChartComponent, isStandalone: false, selector: "es-pie-chart", inputs: { Data: "Data", DataArray: "DataArray", HideZeroes: "HideZeroes", Mode3D: "Mode3D", DonutRadiusPercentage: "DonutRadiusPercentage", LabelsWrap: "LabelsWrap", LabelsTruncate: "LabelsTruncate", LabelsWidth: "LabelsWidth", LabelsVisible: "LabelsVisible", Total: "Total" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3029
3228
|
}
|
|
3030
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsPieChartComponent, decorators: [{
|
|
3031
3230
|
type: Component,
|
|
3032
3231
|
args: [{ selector: 'es-pie-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
3033
3232
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3110,10 +3309,10 @@ class EsVertical2DChartComponent extends BaseChartComponent {
|
|
|
3110
3309
|
graphicate(settingsCasted) {
|
|
3111
3310
|
return new Vertical2DChartService().graphicate(this.Data, settingsCasted);
|
|
3112
3311
|
}
|
|
3113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3312
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVertical2DChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3313
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: EsVertical2DChartComponent, isStandalone: false, selector: "es-vertical-2d-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", GroupPaddingPercentage: "GroupPaddingPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3115
3314
|
}
|
|
3116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVertical2DChartComponent, decorators: [{
|
|
3117
3316
|
type: Component,
|
|
3118
3317
|
args: [{ selector: 'es-vertical-2d-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
3119
3318
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3191,10 +3390,10 @@ class EsVerticalChartComponent extends BaseChartComponent {
|
|
|
3191
3390
|
graphicate(settingsCasted) {
|
|
3192
3391
|
return new VerticalChartService().graphicate(this.Data, settingsCasted);
|
|
3193
3392
|
}
|
|
3194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3195
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3393
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVerticalChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3394
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: EsVerticalChartComponent, isStandalone: false, selector: "es-vertical-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3196
3395
|
}
|
|
3197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVerticalChartComponent, decorators: [{
|
|
3198
3397
|
type: Component,
|
|
3199
3398
|
args: [{ selector: 'es-vertical-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
3200
3399
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3270,10 +3469,10 @@ class EsVerticalStackedChartComponent extends BaseChartComponent {
|
|
|
3270
3469
|
graphicate(settingsCasted) {
|
|
3271
3470
|
return new VerticalStackedChartService().graphicate(this.Data, settingsCasted);
|
|
3272
3471
|
}
|
|
3273
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3274
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3472
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVerticalStackedChartComponent, deps: [{ token: i0.ElementRef }, { token: ChartLoader }, { token: ChartDispatcher }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: ESC_DEBUG_MODE }, { token: ESC_ANIMATIONS }, { token: ESC_THEME }, { token: i3$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3473
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: EsVerticalStackedChartComponent, isStandalone: false, selector: "es-vertical-stacked-chart", inputs: { Data: "Data", DataArray: "DataArray", ColumnWidthPercentage: "ColumnWidthPercentage", LabelWidth: "LabelWidth", LabelVerticalOrientationCutoffWidth: "LabelVerticalOrientationCutoffWidth", LabelRightWhenCompressed: "LabelRightWhenCompressed", LabelTopWhenCompressed: "LabelTopWhenCompressed" }, usesInheritance: true, ngImport: i0, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PageChartSelector, selector: "chart-pager", inputs: ["Items", "Dtos", "BrowseDelayMs", "StartIndex"], outputs: ["onPageChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3275
3474
|
}
|
|
3276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3475
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
|
|
3277
3476
|
type: Component,
|
|
3278
3477
|
args: [{ selector: 'es-vertical-stacked-chart', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<chart-pager *ngIf=\"isPaged\" (onPageChange)=\"changePage($event)\" [Items]=\"DataArray\" [Dtos]=\"DataDtos\" [StartIndex]=\"DataDtoStartIndex\"\r\n [BrowseDelayMs]=\"BrowseDelayMs\">\r\n <ng-template #header_inner let-headerItem>\r\n <ng-container *ngTemplateOutlet=\"header_tr; context : {$implicit: headerItem}\"></ng-container>\r\n </ng-template>\r\n</chart-pager>\r\n\r\n<ng-container *ngIf=\"loadingChart && loading_template\">\r\n <div style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <ng-container *ngTemplateOutlet=\"loading_template\"></ng-container>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"loadingChart && !loading_template\">\r\n <div class=\"esc-loading-overlay\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\">\r\n <p class=\"label\">Loading....</p>\r\n </div>\r\n</ng-container>\r\n\r\n<div [class.hide-block]=\"loadingChart\" id=\"{{name}}\" style=\"width: 100%;\" [style.height]=\"isPaged ? 'calc(100% - 44px)' : '100%'\"></div>", styles: [".esc-loading-overlay{background:#9999;text-transform:uppercase;font-size:30px;font-weight:700;color:#fff;text-align:center;font-family:monospace}.esc-loading-overlay .label{margin:0;padding-top:7%}.hide-block{display:none}\n"] }]
|
|
3279
3478
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3348,8 +3547,8 @@ class EsChartsModule {
|
|
|
3348
3547
|
]
|
|
3349
3548
|
};
|
|
3350
3549
|
}
|
|
3351
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3352
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
3550
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3551
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, declarations: [EsChartComponent,
|
|
3353
3552
|
EsLineChartComponent,
|
|
3354
3553
|
EsPieChartComponent,
|
|
3355
3554
|
EsVertical2DChartComponent,
|
|
@@ -3364,9 +3563,9 @@ class EsChartsModule {
|
|
|
3364
3563
|
EsVerticalStackedChartComponent,
|
|
3365
3564
|
PageChartSelector,
|
|
3366
3565
|
EsAreaChartComponent] }); }
|
|
3367
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
3566
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, imports: [CommonModule] }); }
|
|
3368
3567
|
}
|
|
3369
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3568
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, decorators: [{
|
|
3370
3569
|
type: NgModule,
|
|
3371
3570
|
args: [{
|
|
3372
3571
|
imports: [CommonModule],
|