@esfaenza/es-charts 13.1.3 → 13.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/base/base-chart.component.mjs +17 -3
- package/esm2020/lib/services/classes/LineChartService.mjs +64 -32
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/esfaenza-es-charts.mjs +80 -34
- package/fesm2015/esfaenza-es-charts.mjs.map +1 -1
- package/fesm2020/esfaenza-es-charts.mjs +80 -34
- package/fesm2020/esfaenza-es-charts.mjs.map +1 -1
- package/lib/components/base/base-chart.component.d.ts +10 -1
- package/lib/services/classes/LineChartService.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/esm2020/public-api.mjs
CHANGED
|
@@ -24,6 +24,7 @@ export * from './lib/models/data/classes/base/KeyValue';
|
|
|
24
24
|
export * from './lib/models/data/classes/base/KeyValueColor';
|
|
25
25
|
export * from './lib/models/data/classes/base/LineSerie';
|
|
26
26
|
export * from './lib/components/chart-pager/chart-pager.component';
|
|
27
|
+
export * from './lib/components/base/base-chart.component';
|
|
27
28
|
export * from './lib/components/specializations/es-chart.component';
|
|
28
29
|
export * from './lib/components/specializations/es-area-chart.component';
|
|
29
30
|
export * from './lib/components/specializations/es-line-chart.component';
|
|
@@ -34,4 +35,4 @@ export * from './lib/components/specializations/es-vertical-stacked-chart.compon
|
|
|
34
35
|
export * from './lib/models/core/classes/ChartThemes';
|
|
35
36
|
export * from './lib/models/data/classes/PagedChartData';
|
|
36
37
|
export * from './lib/es-charts.module';
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2VzLWNoYXJ0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZXMtY2hhcnRzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWRhcHRlcnMvY2xhc3Nlcy9CYXNlQWRhcHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FkYXB0ZXJzL2NsYXNzZXMvSUJhc2VBZGFwdGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RhdGEvY2xhc3Nlcy9MaW5lQ2hhcnREYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RhdGEvY2xhc3Nlcy9QaWVDaGFydERhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGF0YS9jbGFzc2VzL0FyZWFDaGFydERhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGF0YS9jbGFzc2VzL1ZlcnRpY2FsMkRDaGFydERhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGF0YS9jbGFzc2VzL1ZlcnRpY2FsQ2hhcnREYXRhJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RhdGEvY2xhc3Nlcy9WZXJ0aWNhbFN0YWNrZWRDaGFydERhdGEnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2V0dGluZ3MvY2xhc3Nlcy9BcmVhQ2hhcnRTZXR0aW5ncyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXR0aW5ncy9jbGFzc2VzL0xpbmVDaGFydFNldHRpbmdzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NldHRpbmdzL2NsYXNzZXMvUGllQ2hhcnRTZXR0aW5ncyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXR0aW5ncy9jbGFzc2VzL1ZlcnRpY2FsMkRDaGFydFNldHRpbmdzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NldHRpbmdzL2NsYXNzZXMvVmVydGljYWxDaGFydFNldHRpbmdzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NldHRpbmdzL2NsYXNzZXMvVmVydGljYWxTdGFja2VkQ2hhcnRTZXR0aW5ncyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9zZXR0aW5ncy9jbGFzc2VzL2Jhc2UvQmFzZVNldHRpbmdzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3NldHRpbmdzL2NsYXNzZXMvYmFzZS9CYXNlSW50ZXJ2YWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvc2V0dGluZ3MvY2xhc3Nlcy9iYXNlL0xlZ2VuZFBhZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kYXRhL2NsYXNzZXMvYmFzZS9MaW1pdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kYXRhL2NsYXNzZXMvYmFzZS9EYXRlVmFsdWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGF0YS9jbGFzc2VzL2Jhc2UvS2V5VmFsdWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZGF0YS9jbGFzc2VzL2Jhc2UvS2V5VmFsdWVDb2xvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9kYXRhL2NsYXNzZXMvYmFzZS9MaW5lU2VyaWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NoYXJ0LXBhZ2VyL2NoYXJ0LXBhZ2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3BlY2lhbGl6YXRpb25zL2VzLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3BlY2lhbGl6YXRpb25zL2VzLWFyZWEtY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGVjaWFsaXphdGlvbnMvZXMtbGluZS1jaGFydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NwZWNpYWxpemF0aW9ucy9lcy1waWUtY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGVjaWFsaXphdGlvbnMvZXMtdmVydGljYWwtMmQtY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGVjaWFsaXphdGlvbnMvZXMtdmVydGljYWwtY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGVjaWFsaXphdGlvbnMvZXMtdmVydGljYWwtc3RhY2tlZC1jaGFydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY29yZS9jbGFzc2VzL0NoYXJ0VGhlbWVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2RhdGEvY2xhc3Nlcy9QYWdlZENoYXJ0RGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VzLWNoYXJ0cy5tb2R1bGUnOyJdfQ==
|
|
@@ -799,6 +799,11 @@ class BaseChartComponent {
|
|
|
799
799
|
* Evento lanciato al termine del caricamento di una nuova pagina del grafico
|
|
800
800
|
*/
|
|
801
801
|
this.onLoadEnd = new EventEmitter();
|
|
802
|
+
/**
|
|
803
|
+
* Evento lanciato al termine della creazione del grafico referenziando l'istanza nativa del grafico creato in modo da poter effettuare modifiche
|
|
804
|
+
* post inizializzazione lato applicativo
|
|
805
|
+
*/
|
|
806
|
+
this.chartLoaded = new EventEmitter();
|
|
802
807
|
/**
|
|
803
808
|
* Serve a decidere se sarà presente l'interfaccia di paginazione
|
|
804
809
|
*/
|
|
@@ -887,7 +892,7 @@ class BaseChartComponent {
|
|
|
887
892
|
this.Chart = this.ChartService.ChartInstance;
|
|
888
893
|
if (!this.Chart)
|
|
889
894
|
this.log("Chart " + this.name + ": Could not create graph");
|
|
890
|
-
return this.Charter.applyLocale(this.Chart, this.Locale).then(() => this.initDone = true);
|
|
895
|
+
return this.Charter.applyLocale(this.Chart, this.Locale).then(() => { this.initDone = true; this.chartLoaded.emit(this); });
|
|
891
896
|
})
|
|
892
897
|
]);
|
|
893
898
|
}
|
|
@@ -986,6 +991,13 @@ class BaseChartComponent {
|
|
|
986
991
|
});
|
|
987
992
|
this.Dispatcher.register(this.name, () => { return this.loadChart(); });
|
|
988
993
|
}
|
|
994
|
+
/**
|
|
995
|
+
* Permette di aggiungere un blocco di dati in maniera "live" ad un grafico
|
|
996
|
+
*/
|
|
997
|
+
addData(chartData) {
|
|
998
|
+
this.ChartService.refreshData(chartData);
|
|
999
|
+
}
|
|
1000
|
+
;
|
|
989
1001
|
/**
|
|
990
1002
|
* Funzione che si occupa di caricare i temi necessari per il grafico in oggetto. Prima applica il tema, poi, se serve, applica le animazioni
|
|
991
1003
|
*/
|
|
@@ -1015,7 +1027,7 @@ class BaseChartComponent {
|
|
|
1015
1027
|
}
|
|
1016
1028
|
}
|
|
1017
1029
|
BaseChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseChartComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
1018
|
-
BaseChartComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseChartComponent, 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" }, queries: [{ propertyName: "header_tr", first: true, predicate: ["header"], descendants: true }, { propertyName: "loading_template", first: true, predicate: ["loading"], descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
1030
|
+
BaseChartComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.1", type: BaseChartComponent, 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 });
|
|
1019
1031
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: BaseChartComponent, decorators: [{
|
|
1020
1032
|
type: Directive
|
|
1021
1033
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Object }, { type: i0.NgZone }, { type: ChartLoader }, { type: ChartDispatcher }, { type: undefined }, { type: undefined }, { type: undefined }, { type: undefined }]; }, propDecorators: { XTitle: [{
|
|
@@ -1068,6 +1080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
1068
1080
|
type: Output
|
|
1069
1081
|
}], onLoadEnd: [{
|
|
1070
1082
|
type: Output
|
|
1083
|
+
}], chartLoaded: [{
|
|
1084
|
+
type: Output
|
|
1071
1085
|
}] } });
|
|
1072
1086
|
|
|
1073
1087
|
/**
|
|
@@ -1082,6 +1096,8 @@ class LineChartService {
|
|
|
1082
1096
|
this.DataGroupBucketSize = 1500;
|
|
1083
1097
|
/** @ignore */
|
|
1084
1098
|
this.OpacityOnSelected = 0.3;
|
|
1099
|
+
/** @ignore */
|
|
1100
|
+
this.singleDataSet = false;
|
|
1085
1101
|
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1086
1102
|
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1087
1103
|
/** @ignore */
|
|
@@ -1094,7 +1110,7 @@ class LineChartService {
|
|
|
1094
1110
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
1095
1111
|
let dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
|
|
1096
1112
|
let threshold = (_a = settings.DataGroupingThreshold) !== null && _a !== void 0 ? _a : 3000;
|
|
1097
|
-
|
|
1113
|
+
this.singleDataSet = (_b = settings.MergeDatasets) !== null && _b !== void 0 ? _b : false;
|
|
1098
1114
|
let showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
|
|
1099
1115
|
let dataShouldBeGrouped = Math.max(...dataConverted.series.map(t => t.values.length)) > threshold;
|
|
1100
1116
|
let showTimeline = settings.Timeline || dataShouldBeGrouped;
|
|
@@ -1173,31 +1189,9 @@ class LineChartService {
|
|
|
1173
1189
|
let seriesColors = [];
|
|
1174
1190
|
let defaultIndex = 0;
|
|
1175
1191
|
//-- Generazione di un unico dataset invece che N, per poter gestire un unico tooltip
|
|
1176
|
-
if (singleDataSet) {
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
for (let i = 0; i < vs.values.length; i++) {
|
|
1180
|
-
var dataitem = vs.values[i];
|
|
1181
|
-
var indexer = new Date(dataitem.d).valueOf();
|
|
1182
|
-
if (!dto[indexer])
|
|
1183
|
-
dto[indexer] = {};
|
|
1184
|
-
dto[indexer]['v' + index] = dataitem.v;
|
|
1185
|
-
}
|
|
1186
|
-
});
|
|
1187
|
-
var dates = Object.keys(dto);
|
|
1188
|
-
let singleDS = [];
|
|
1189
|
-
for (let i = 0; i < dates.length; i++) {
|
|
1190
|
-
let values = dto[dates[i]];
|
|
1191
|
-
let item = { d: new Date(parseInt(dates[i])) };
|
|
1192
|
-
var vals = Object.keys(values);
|
|
1193
|
-
for (let ii = 0; ii < vals.length; ii++) {
|
|
1194
|
-
let series = vals[ii];
|
|
1195
|
-
let singleVal = values[series];
|
|
1196
|
-
item[series] = singleVal;
|
|
1197
|
-
}
|
|
1198
|
-
singleDS.push(item);
|
|
1199
|
-
}
|
|
1200
|
-
this.ChartInstance.data = singleDS;
|
|
1192
|
+
if (this.singleDataSet) {
|
|
1193
|
+
this.ChartInstance.data = this.generateSingleDataset(dataConverted);
|
|
1194
|
+
;
|
|
1201
1195
|
dateAxis.cursorTooltipEnabled = false;
|
|
1202
1196
|
}
|
|
1203
1197
|
//-- Fine generazione
|
|
@@ -1221,14 +1215,14 @@ class LineChartService {
|
|
|
1221
1215
|
s.values.sort((d1, d2) => d1.d.getTime() - d2.d.getTime());
|
|
1222
1216
|
let fill = s.fill != null && s.fill != undefined ? s.fill : ((_a = settings === null || settings === void 0 ? void 0 : settings.Fill) !== null && _a !== void 0 ? _a : false);
|
|
1223
1217
|
let series = (settings === null || settings === void 0 ? void 0 : settings.Step) ? new am4charts.StepLineSeries() : new am4charts.LineSeries();
|
|
1224
|
-
series.dataFields.valueY = "v" + (singleDataSet ? index : "");
|
|
1218
|
+
series.dataFields.valueY = "v" + (this.singleDataSet ? index : "");
|
|
1225
1219
|
series.dataFields.dateX = "d";
|
|
1226
1220
|
series.dataFields.measureUnit = s.uom;
|
|
1227
1221
|
series.name = s.name;
|
|
1228
1222
|
series.strokeWidth = (_b = settings === null || settings === void 0 ? void 0 : settings.StrokeSize) !== null && _b !== void 0 ? _b : 1;
|
|
1229
1223
|
series.connect = !gapsAllowed;
|
|
1230
1224
|
series.minBulletDistance = 10;
|
|
1231
|
-
series.tooltipText = singleDataSet ? "" : "{name}: [bold]{valueY}[/]";
|
|
1225
|
+
series.tooltipText = this.singleDataSet ? "" : "{name}: [bold]{valueY}[/]";
|
|
1232
1226
|
series.tooltip.pointerOrientation = "vertical";
|
|
1233
1227
|
series.tooltip.background.fillOpacity = 0.5;
|
|
1234
1228
|
series.tooltip.label.padding(12, 12, 12, 12);
|
|
@@ -1236,7 +1230,7 @@ class LineChartService {
|
|
|
1236
1230
|
series.stacked = fill;
|
|
1237
1231
|
//Dataset singolo, i dati sono registrati a livello di chart, creo il tooltip che permette di vederli tutti insieme
|
|
1238
1232
|
//altrimenti assegno i dati della serie direttamente alla serie
|
|
1239
|
-
if (singleDataSet) {
|
|
1233
|
+
if (this.singleDataSet) {
|
|
1240
1234
|
series.tooltip.getFillFromObject = false;
|
|
1241
1235
|
series.tooltip.background.fill = am4core.color("#eee");
|
|
1242
1236
|
series.tooltip.label.fill = am4core.color("#00");
|
|
@@ -1326,7 +1320,7 @@ class LineChartService {
|
|
|
1326
1320
|
//******************************************************************************************************************************
|
|
1327
1321
|
this.ChartInstance.cursor.xAxis = dateAxis;
|
|
1328
1322
|
this.ChartInstance.cursor.yAxis = yAxis;
|
|
1329
|
-
if (singleDataSet)
|
|
1323
|
+
if (this.singleDataSet)
|
|
1330
1324
|
this.ChartInstance.cursor.maxTooltipDistance = -1;
|
|
1331
1325
|
//TODO: Cercare di capire perché è figlio di puttana......
|
|
1332
1326
|
dateAxis.events.on("startchanged", t => this.emitSelectionChanged(t, settings));
|
|
@@ -1335,7 +1329,59 @@ class LineChartService {
|
|
|
1335
1329
|
}
|
|
1336
1330
|
/** @ignore */
|
|
1337
1331
|
refreshData(data) {
|
|
1338
|
-
|
|
1332
|
+
let dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
|
|
1333
|
+
if (this.singleDataSet) {
|
|
1334
|
+
var data = this.generateSingleDataset(dataConverted);
|
|
1335
|
+
this.ChartInstance.addData(data);
|
|
1336
|
+
return;
|
|
1337
|
+
}
|
|
1338
|
+
this.ChartInstance.series.each(s => {
|
|
1339
|
+
var relativeSerie = dataConverted.series.find(t => t.name == s.name);
|
|
1340
|
+
// Una serie del grafico è stata ggiornata, ordino i datapoint e li aggiungo
|
|
1341
|
+
var correctOrder = true;
|
|
1342
|
+
var prevDate = null;
|
|
1343
|
+
for (let v = 0; v < relativeSerie.values.length; v++) {
|
|
1344
|
+
if (!prevDate)
|
|
1345
|
+
prevDate = relativeSerie.values[v].d;
|
|
1346
|
+
else if (relativeSerie.values[v].d < prevDate) {
|
|
1347
|
+
correctOrder = false;
|
|
1348
|
+
break;
|
|
1349
|
+
}
|
|
1350
|
+
}
|
|
1351
|
+
if (!correctOrder)
|
|
1352
|
+
relativeSerie.values.sort((d1, d2) => d1.d.getTime() - d2.d.getTime());
|
|
1353
|
+
for (let v = 0; v < relativeSerie.values.length; v++) {
|
|
1354
|
+
let obj = relativeSerie.values[v];
|
|
1355
|
+
s.addData({ date: obj.d, value: obj.v });
|
|
1356
|
+
}
|
|
1357
|
+
});
|
|
1358
|
+
}
|
|
1359
|
+
/** Partendo da dati divisi per seriue genera un dataset unito con la data come chiave e i vari valori dopo */
|
|
1360
|
+
generateSingleDataset(data) {
|
|
1361
|
+
let dto = {};
|
|
1362
|
+
data.series.forEach((vs, index) => {
|
|
1363
|
+
for (let i = 0; i < vs.values.length; i++) {
|
|
1364
|
+
var dataitem = vs.values[i];
|
|
1365
|
+
var indexer = new Date(dataitem.d).valueOf();
|
|
1366
|
+
if (!dto[indexer])
|
|
1367
|
+
dto[indexer] = {};
|
|
1368
|
+
dto[indexer]['v' + index] = dataitem.v;
|
|
1369
|
+
}
|
|
1370
|
+
});
|
|
1371
|
+
var dates = Object.keys(dto);
|
|
1372
|
+
var ret = [];
|
|
1373
|
+
for (let i = 0; i < dates.length; i++) {
|
|
1374
|
+
let values = dto[dates[i]];
|
|
1375
|
+
let item = { d: new Date(parseInt(dates[i])) };
|
|
1376
|
+
var vals = Object.keys(values);
|
|
1377
|
+
for (let ii = 0; ii < vals.length; ii++) {
|
|
1378
|
+
let series = vals[ii];
|
|
1379
|
+
let singleVal = values[series];
|
|
1380
|
+
item[series] = singleVal;
|
|
1381
|
+
}
|
|
1382
|
+
ret.push(item);
|
|
1383
|
+
}
|
|
1384
|
+
return ret;
|
|
1339
1385
|
}
|
|
1340
1386
|
/** @ignore */
|
|
1341
1387
|
emitSelectionChanged(ev, settings) {
|
|
@@ -2737,5 +2783,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
2737
2783
|
* Generated bundle index. Do not edit.
|
|
2738
2784
|
*/
|
|
2739
2785
|
|
|
2740
|
-
export { AreaChartData, AreaChartSettings, BaseAdapter, BaseInterval, BaseSettings, ChartThemes, DateValue, EsAreaChartComponent, EsChartComponent, EsChartsModule, EsLineChartComponent, EsPieChartComponent, EsVertical2DChartComponent, EsVerticalChartComponent, EsVerticalStackedChartComponent, KeyValue, KeyValueColor, LegendPad, Limit, LineChartData, LineChartSettings, LineSerie, PageChartSelector, PagedChartData, PieChartData, PieChartSettings, Vertical2DChartData, Vertical2DChartSettings, VerticalChartData, VerticalChartSettings, VerticalStackedChartData, VerticalStackedChartSettings };
|
|
2786
|
+
export { AreaChartData, AreaChartSettings, BaseAdapter, BaseChartComponent, BaseInterval, BaseSettings, ChartThemes, DateValue, EsAreaChartComponent, EsChartComponent, EsChartsModule, EsLineChartComponent, EsPieChartComponent, EsVertical2DChartComponent, EsVerticalChartComponent, EsVerticalStackedChartComponent, KeyValue, KeyValueColor, LegendPad, Limit, LineChartData, LineChartSettings, LineSerie, PageChartSelector, PagedChartData, PieChartData, PieChartSettings, Vertical2DChartData, Vertical2DChartSettings, VerticalChartData, VerticalChartSettings, VerticalStackedChartData, VerticalStackedChartSettings };
|
|
2741
2787
|
//# sourceMappingURL=esfaenza-es-charts.mjs.map
|