@esfaenza/es-charts 20.3.11 → 20.3.13
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,10 +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
|
-
let text = "[bold]{
|
|
1437
|
+
let text = "[bold]{dl}[/]\n";
|
|
1306
1438
|
this.currentSeriesData.series.forEach((serie, sindex) => {
|
|
1307
1439
|
let uom = serie.uom ? " [fontStyle: italic]" + serie.uom + "[/]" : "";
|
|
1308
|
-
|
|
1440
|
+
let bullet = this.seriesColors[sindex] ? "[" + this.seriesColors[sindex].toString() + "]●[/] " : "";
|
|
1441
|
+
text += bullet + (serie.name ? (serie.name + ": ") : "") + "[bold]{v" + sindex + "}[/]" + uom + "\n";
|
|
1309
1442
|
});
|
|
1310
1443
|
return text;
|
|
1311
1444
|
}
|
|
@@ -1412,21 +1545,118 @@ class LineChartService {
|
|
|
1412
1545
|
}
|
|
1413
1546
|
/** @ignore */
|
|
1414
1547
|
getGridIntervals(baseTimeUnit) {
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1548
|
+
switch (baseTimeUnit) {
|
|
1549
|
+
case "millisecond":
|
|
1550
|
+
return [
|
|
1551
|
+
{ timeUnit: "millisecond", count: 1 },
|
|
1552
|
+
{ timeUnit: "millisecond", count: 5 },
|
|
1553
|
+
{ timeUnit: "millisecond", count: 10 },
|
|
1554
|
+
{ timeUnit: "millisecond", count: 50 },
|
|
1555
|
+
{ timeUnit: "millisecond", count: 100 },
|
|
1556
|
+
{ timeUnit: "millisecond", count: 500 },
|
|
1557
|
+
{ timeUnit: "second", count: 1 },
|
|
1558
|
+
{ timeUnit: "second", count: 5 },
|
|
1559
|
+
{ timeUnit: "second", count: 10 },
|
|
1560
|
+
{ timeUnit: "second", count: 30 },
|
|
1561
|
+
{ timeUnit: "minute", count: 1 },
|
|
1562
|
+
{ timeUnit: "minute", count: 5 },
|
|
1563
|
+
{ timeUnit: "minute", count: 10 },
|
|
1564
|
+
{ timeUnit: "minute", count: 30 },
|
|
1565
|
+
{ timeUnit: "hour", count: 1 },
|
|
1566
|
+
{ timeUnit: "hour", count: 3 },
|
|
1567
|
+
{ timeUnit: "hour", count: 6 },
|
|
1568
|
+
{ timeUnit: "hour", count: 12 },
|
|
1569
|
+
{ timeUnit: "day", count: 1 },
|
|
1570
|
+
{ timeUnit: "day", count: 2 },
|
|
1571
|
+
{ timeUnit: "day", count: 3 },
|
|
1572
|
+
{ timeUnit: "week", count: 1 },
|
|
1573
|
+
{ timeUnit: "month", count: 1 },
|
|
1574
|
+
{ timeUnit: "year", count: 1 }
|
|
1575
|
+
];
|
|
1576
|
+
case "second":
|
|
1577
|
+
return [
|
|
1578
|
+
{ timeUnit: "second", count: 1 },
|
|
1579
|
+
{ timeUnit: "second", count: 5 },
|
|
1580
|
+
{ timeUnit: "second", count: 10 },
|
|
1581
|
+
{ timeUnit: "second", count: 30 },
|
|
1582
|
+
{ timeUnit: "minute", count: 1 },
|
|
1583
|
+
{ timeUnit: "minute", count: 5 },
|
|
1584
|
+
{ timeUnit: "minute", count: 10 },
|
|
1585
|
+
{ timeUnit: "minute", count: 30 },
|
|
1586
|
+
{ timeUnit: "hour", count: 1 },
|
|
1587
|
+
{ timeUnit: "hour", count: 3 },
|
|
1588
|
+
{ timeUnit: "hour", count: 6 },
|
|
1589
|
+
{ timeUnit: "hour", count: 12 },
|
|
1590
|
+
{ timeUnit: "day", count: 1 },
|
|
1591
|
+
{ timeUnit: "day", count: 2 },
|
|
1592
|
+
{ timeUnit: "day", count: 3 },
|
|
1593
|
+
{ timeUnit: "week", count: 1 },
|
|
1594
|
+
{ timeUnit: "month", count: 1 },
|
|
1595
|
+
{ timeUnit: "year", count: 1 }
|
|
1596
|
+
];
|
|
1597
|
+
case "minute":
|
|
1598
|
+
return [
|
|
1599
|
+
{ timeUnit: "minute", count: 1 },
|
|
1600
|
+
{ timeUnit: "minute", count: 5 },
|
|
1601
|
+
{ timeUnit: "minute", count: 10 },
|
|
1602
|
+
{ timeUnit: "minute", count: 30 },
|
|
1603
|
+
{ timeUnit: "hour", count: 1 },
|
|
1604
|
+
{ timeUnit: "hour", count: 3 },
|
|
1605
|
+
{ timeUnit: "hour", count: 6 },
|
|
1606
|
+
{ timeUnit: "hour", count: 12 },
|
|
1607
|
+
{ timeUnit: "day", count: 1 },
|
|
1608
|
+
{ timeUnit: "day", count: 2 },
|
|
1609
|
+
{ timeUnit: "day", count: 3 },
|
|
1610
|
+
{ timeUnit: "week", count: 1 },
|
|
1611
|
+
{ timeUnit: "month", count: 1 },
|
|
1612
|
+
{ timeUnit: "year", count: 1 }
|
|
1613
|
+
];
|
|
1614
|
+
case "hour":
|
|
1615
|
+
return [
|
|
1616
|
+
{ timeUnit: "hour", count: 1 },
|
|
1617
|
+
{ timeUnit: "hour", count: 3 },
|
|
1618
|
+
{ timeUnit: "hour", count: 6 },
|
|
1619
|
+
{ timeUnit: "hour", count: 12 },
|
|
1620
|
+
{ timeUnit: "day", count: 1 },
|
|
1621
|
+
{ timeUnit: "day", count: 2 },
|
|
1622
|
+
{ timeUnit: "day", count: 3 },
|
|
1623
|
+
{ timeUnit: "week", count: 1 },
|
|
1624
|
+
{ timeUnit: "month", count: 1 },
|
|
1625
|
+
{ timeUnit: "year", count: 1 }
|
|
1626
|
+
];
|
|
1627
|
+
case "day":
|
|
1628
|
+
return [
|
|
1629
|
+
{ timeUnit: "day", count: 1 },
|
|
1630
|
+
{ timeUnit: "day", count: 2 },
|
|
1631
|
+
{ timeUnit: "day", count: 3 },
|
|
1632
|
+
{ timeUnit: "week", count: 1 },
|
|
1633
|
+
{ timeUnit: "month", count: 1 },
|
|
1634
|
+
{ timeUnit: "year", count: 1 }
|
|
1635
|
+
];
|
|
1636
|
+
case "week":
|
|
1637
|
+
return [
|
|
1638
|
+
{ timeUnit: "week", count: 1 },
|
|
1639
|
+
{ timeUnit: "week", count: 2 },
|
|
1640
|
+
{ timeUnit: "month", count: 1 },
|
|
1641
|
+
{ timeUnit: "month", count: 3 },
|
|
1642
|
+
{ timeUnit: "year", count: 1 }
|
|
1643
|
+
];
|
|
1644
|
+
case "month":
|
|
1645
|
+
return [
|
|
1646
|
+
{ timeUnit: "month", count: 1 },
|
|
1647
|
+
{ timeUnit: "month", count: 2 },
|
|
1648
|
+
{ timeUnit: "month", count: 3 },
|
|
1649
|
+
{ timeUnit: "month", count: 6 },
|
|
1650
|
+
{ timeUnit: "year", count: 1 }
|
|
1651
|
+
];
|
|
1652
|
+
case "year":
|
|
1653
|
+
return [
|
|
1654
|
+
{ timeUnit: "year", count: 1 },
|
|
1655
|
+
{ timeUnit: "year", count: 2 },
|
|
1656
|
+
{ timeUnit: "year", count: 5 },
|
|
1657
|
+
{ timeUnit: "year", count: 10 }
|
|
1658
|
+
];
|
|
1659
|
+
}
|
|
1430
1660
|
}
|
|
1431
1661
|
/** @ignore */
|
|
1432
1662
|
getTooltipDateFormat(baseTimeUnit) {
|
|
@@ -1595,6 +1825,11 @@ class PieChartService {
|
|
|
1595
1825
|
layout: this.ChartRoot.verticalLayout
|
|
1596
1826
|
}));
|
|
1597
1827
|
this.ChartInstance = ChartContainer.children.push(am5percent.PieChart.new(this.ChartRoot, {}));
|
|
1828
|
+
// Ripristina la palette storica ereditata da amCharts4 per le fette prive di colore esplicito
|
|
1829
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
1830
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
1831
|
+
if (settings.Animations)
|
|
1832
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
1598
1833
|
//#endregion
|
|
1599
1834
|
// Raggio Torta
|
|
1600
1835
|
// In am4 non c'era un modo automatico di calcolare il raggio sulle dimensioni del grafico, quindi si era fatto
|
|
@@ -1763,6 +1998,11 @@ class PieChartService {
|
|
|
1763
1998
|
});
|
|
1764
1999
|
this.ChartLegend.data.setAll(series.dataItems);
|
|
1765
2000
|
}
|
|
2001
|
+
// Comparsa animata iniziale di fette e grafico, come nella versione amCharts4
|
|
2002
|
+
if (settings.Animations) {
|
|
2003
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2004
|
+
this.ChartInstance.appear(1000, 100);
|
|
2005
|
+
}
|
|
1766
2006
|
return this;
|
|
1767
2007
|
}
|
|
1768
2008
|
/** @ignore */
|
|
@@ -1802,6 +2042,11 @@ class VerticalChartService {
|
|
|
1802
2042
|
this.ChartRoot?.dispose();
|
|
1803
2043
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
1804
2044
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2045
|
+
// Ripristina la palette storica ereditata da amCharts4 per le colonne prive di colore esplicito
|
|
2046
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2047
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2048
|
+
if (settings.Animations)
|
|
2049
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
1805
2050
|
//#endregion
|
|
1806
2051
|
let chartData = dataConverted.values.map(value => ({
|
|
1807
2052
|
...value,
|
|
@@ -1953,6 +2198,11 @@ class VerticalChartService {
|
|
|
1953
2198
|
if (settings.Legend) {
|
|
1954
2199
|
this.ChartLegend.data.setAll(this.ChartInstance.series.values);
|
|
1955
2200
|
}
|
|
2201
|
+
// Comparsa animata iniziale di colonne e grafico, come nella versione amCharts4
|
|
2202
|
+
if (settings.Animations) {
|
|
2203
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2204
|
+
this.ChartInstance.appear(1000, 100);
|
|
2205
|
+
}
|
|
1956
2206
|
return this;
|
|
1957
2207
|
}
|
|
1958
2208
|
/** @ignore */
|
|
@@ -1998,6 +2248,11 @@ class Vertical2DChartService {
|
|
|
1998
2248
|
this.ChartRoot?.dispose();
|
|
1999
2249
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
2000
2250
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2251
|
+
// Ripristina la palette storica ereditata da amCharts4 per le colonne prive di colore esplicito
|
|
2252
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2253
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2254
|
+
if (settings.Animations)
|
|
2255
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
2001
2256
|
//#endregion
|
|
2002
2257
|
//#region Carico la Legenda
|
|
2003
2258
|
if (settings.Legend) {
|
|
@@ -2131,6 +2386,11 @@ class Vertical2DChartService {
|
|
|
2131
2386
|
if (settings.Legend) {
|
|
2132
2387
|
this.ChartLegend.data.setAll(this.ChartInstance.series.values);
|
|
2133
2388
|
}
|
|
2389
|
+
// Comparsa animata iniziale di colonne e grafico, come nella versione amCharts4
|
|
2390
|
+
if (settings.Animations) {
|
|
2391
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2392
|
+
this.ChartInstance.appear(1000, 100);
|
|
2393
|
+
}
|
|
2134
2394
|
return this;
|
|
2135
2395
|
}
|
|
2136
2396
|
/** @ignore */
|
|
@@ -2219,6 +2479,11 @@ class VerticalStackedChartService {
|
|
|
2219
2479
|
this.ChartRoot?.dispose();
|
|
2220
2480
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
2221
2481
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2482
|
+
// Ripristina la palette storica ereditata da amCharts4 per le colonne prive di colore esplicito
|
|
2483
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2484
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2485
|
+
if (settings.Animations)
|
|
2486
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
2222
2487
|
//#endregion
|
|
2223
2488
|
//#region Carico la Legenda
|
|
2224
2489
|
if (settings.Legend) {
|
|
@@ -2347,6 +2612,11 @@ class VerticalStackedChartService {
|
|
|
2347
2612
|
if (settings.Legend) {
|
|
2348
2613
|
this.ChartLegend.data.setAll(this.ChartInstance.series.values);
|
|
2349
2614
|
}
|
|
2615
|
+
// Comparsa animata iniziale di colonne e grafico, come nella versione amCharts4
|
|
2616
|
+
if (settings.Animations) {
|
|
2617
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2618
|
+
this.ChartInstance.appear(1000, 100);
|
|
2619
|
+
}
|
|
2350
2620
|
return this;
|
|
2351
2621
|
}
|
|
2352
2622
|
/** @ignore */
|
|
@@ -2421,6 +2691,11 @@ class AreaChartService {
|
|
|
2421
2691
|
this.ChartRoot?.dispose();
|
|
2422
2692
|
this.ChartRoot = am5.Root.new(settings.Name);
|
|
2423
2693
|
this.ChartInstance = this.ChartRoot.container.children.push(am5xy.XYChart.new(this.ChartRoot, {}));
|
|
2694
|
+
// Ripristina la palette storica ereditata da amCharts4 per le serie prive di colore esplicito
|
|
2695
|
+
this.ChartInstance.set("colors", createSpiritedColorSet(this.ChartRoot));
|
|
2696
|
+
// Tema Animated (transizioni fluide) come nella versione amCharts4, se le animazioni sono attive
|
|
2697
|
+
if (settings.Animations)
|
|
2698
|
+
applyAnimatedTheme(this.ChartRoot);
|
|
2424
2699
|
//#endregion
|
|
2425
2700
|
//#region Carico la Legenda
|
|
2426
2701
|
if (settings.Legend) {
|
|
@@ -2544,6 +2819,11 @@ class AreaChartService {
|
|
|
2544
2819
|
// let cursor = ^, cursor.lineY.set("visible", false), per cursore verticale
|
|
2545
2820
|
dateAxis.on("start", () => { this.emitSelectionChanged(dateAxis, settings); });
|
|
2546
2821
|
dateAxis.on("end", () => { this.emitSelectionChanged(dateAxis, settings); });
|
|
2822
|
+
// Comparsa animata iniziale di serie e grafico, come nella versione amCharts4
|
|
2823
|
+
if (settings.Animations) {
|
|
2824
|
+
this.ChartInstance.series.each(s => s.appear(1000));
|
|
2825
|
+
this.ChartInstance.appear(1000, 100);
|
|
2826
|
+
}
|
|
2547
2827
|
return this;
|
|
2548
2828
|
}
|
|
2549
2829
|
fixTimeUnit(tu) {
|
|
@@ -2690,10 +2970,10 @@ class EsChartComponent extends BaseChartComponent {
|
|
|
2690
2970
|
return new VerticalStackedChartService().graphicate(this.Data, settings);
|
|
2691
2971
|
}
|
|
2692
2972
|
}
|
|
2693
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2694
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
2973
|
+
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 }); }
|
|
2974
|
+
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 }); }
|
|
2695
2975
|
}
|
|
2696
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
2976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartComponent, decorators: [{
|
|
2697
2977
|
type: Component,
|
|
2698
2978
|
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"] }]
|
|
2699
2979
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -2756,10 +3036,10 @@ class EsAreaChartComponent extends BaseChartComponent {
|
|
|
2756
3036
|
graphicate(settingsCasted) {
|
|
2757
3037
|
return new AreaChartService().graphicate(this.Data, settingsCasted);
|
|
2758
3038
|
}
|
|
2759
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2760
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3039
|
+
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 }); }
|
|
3040
|
+
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 }); }
|
|
2761
3041
|
}
|
|
2762
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3042
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsAreaChartComponent, decorators: [{
|
|
2763
3043
|
type: Component,
|
|
2764
3044
|
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"] }]
|
|
2765
3045
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -2832,10 +3112,10 @@ class EsLineChartComponent extends BaseChartComponent {
|
|
|
2832
3112
|
graphicate(settingsCasted) {
|
|
2833
3113
|
return new LineChartService(this.dateService).graphicate(this.Data, settingsCasted);
|
|
2834
3114
|
}
|
|
2835
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2836
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3115
|
+
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 }); }
|
|
3116
|
+
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 }); }
|
|
2837
3117
|
}
|
|
2838
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsLineChartComponent, decorators: [{
|
|
2839
3119
|
type: Component,
|
|
2840
3120
|
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"] }]
|
|
2841
3121
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i3.DateService }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -2925,10 +3205,10 @@ class EsPieChartComponent extends BaseChartComponent {
|
|
|
2925
3205
|
graphicate(settingsCasted) {
|
|
2926
3206
|
return new PieChartService().graphicate(this.Data, settingsCasted);
|
|
2927
3207
|
}
|
|
2928
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
2929
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3208
|
+
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 }); }
|
|
3209
|
+
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 }); }
|
|
2930
3210
|
}
|
|
2931
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsPieChartComponent, decorators: [{
|
|
2932
3212
|
type: Component,
|
|
2933
3213
|
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"] }]
|
|
2934
3214
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3011,10 +3291,10 @@ class EsVertical2DChartComponent extends BaseChartComponent {
|
|
|
3011
3291
|
graphicate(settingsCasted) {
|
|
3012
3292
|
return new Vertical2DChartService().graphicate(this.Data, settingsCasted);
|
|
3013
3293
|
}
|
|
3014
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3015
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3294
|
+
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 }); }
|
|
3295
|
+
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 }); }
|
|
3016
3296
|
}
|
|
3017
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3297
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVertical2DChartComponent, decorators: [{
|
|
3018
3298
|
type: Component,
|
|
3019
3299
|
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"] }]
|
|
3020
3300
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3092,10 +3372,10 @@ class EsVerticalChartComponent extends BaseChartComponent {
|
|
|
3092
3372
|
graphicate(settingsCasted) {
|
|
3093
3373
|
return new VerticalChartService().graphicate(this.Data, settingsCasted);
|
|
3094
3374
|
}
|
|
3095
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3096
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3375
|
+
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 }); }
|
|
3376
|
+
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 }); }
|
|
3097
3377
|
}
|
|
3098
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3378
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVerticalChartComponent, decorators: [{
|
|
3099
3379
|
type: Component,
|
|
3100
3380
|
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"] }]
|
|
3101
3381
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3171,10 +3451,10 @@ class EsVerticalStackedChartComponent extends BaseChartComponent {
|
|
|
3171
3451
|
graphicate(settingsCasted) {
|
|
3172
3452
|
return new VerticalStackedChartService().graphicate(this.Data, settingsCasted);
|
|
3173
3453
|
}
|
|
3174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
3454
|
+
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 }); }
|
|
3455
|
+
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 }); }
|
|
3176
3456
|
}
|
|
3177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3457
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsVerticalStackedChartComponent, decorators: [{
|
|
3178
3458
|
type: Component,
|
|
3179
3459
|
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"] }]
|
|
3180
3460
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: ChartLoader }, { type: ChartDispatcher }, { type: i0.NgZone }, { type: Object, decorators: [{
|
|
@@ -3249,8 +3529,8 @@ class EsChartsModule {
|
|
|
3249
3529
|
]
|
|
3250
3530
|
};
|
|
3251
3531
|
}
|
|
3252
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
3253
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
3532
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
3533
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, declarations: [EsChartComponent,
|
|
3254
3534
|
EsLineChartComponent,
|
|
3255
3535
|
EsPieChartComponent,
|
|
3256
3536
|
EsVertical2DChartComponent,
|
|
@@ -3265,9 +3545,9 @@ class EsChartsModule {
|
|
|
3265
3545
|
EsVerticalStackedChartComponent,
|
|
3266
3546
|
PageChartSelector,
|
|
3267
3547
|
EsAreaChartComponent] }); }
|
|
3268
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
3548
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, imports: [CommonModule] }); }
|
|
3269
3549
|
}
|
|
3270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
3550
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: EsChartsModule, decorators: [{
|
|
3271
3551
|
type: NgModule,
|
|
3272
3552
|
args: [{
|
|
3273
3553
|
imports: [CommonModule],
|