@esfaenza/es-charts 11.2.17 → 11.2.21
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/bundles/esfaenza-es-charts.umd.js +99 -54
- package/bundles/esfaenza-es-charts.umd.js.map +1 -1
- package/bundles/esfaenza-es-charts.umd.min.js +1 -1
- package/bundles/esfaenza-es-charts.umd.min.js.map +1 -1
- package/esfaenza-es-charts.d.ts +4 -5
- package/esfaenza-es-charts.metadata.json +1 -1
- package/esm2015/esfaenza-es-charts.js +5 -6
- package/esm2015/lib/components/base/base-chart.component.js +16 -3
- package/esm2015/lib/services/classes/LineChartService.js +65 -33
- package/esm2015/public-api.js +2 -1
- package/fesm2015/esfaenza-es-charts.js +81 -36
- package/fesm2015/esfaenza-es-charts.js.map +1 -1
- package/lib/components/base/base-chart.component.d.ts +9 -0
- package/lib/services/classes/LineChartService.d.ts +4 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@esfaenza/es-charts', ['exports', '@angular/core', '@
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.esfaenza = global.esfaenza || {}, global.esfaenza['es-charts'] = {}), global.ng.core, global.
|
|
5
|
-
}(this, (function (exports, core,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@amcharts/amcharts4/core'), require('@esfaenza/extensions'), require('@amcharts/amcharts4/charts')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@esfaenza/es-charts', ['exports', '@angular/core', '@angular/common', '@amcharts/amcharts4/core', '@esfaenza/extensions', '@amcharts/amcharts4/charts'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.esfaenza = global.esfaenza || {}, global.esfaenza['es-charts'] = {}), global.ng.core, global.ng.common, global.am4core, global.extensions, global.am4charts));
|
|
5
|
+
}(this, (function (exports, core, common, am4core, extensions, am4charts) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopNamespace(e) {
|
|
8
8
|
if (e && e.__esModule) return e;
|
|
@@ -1173,6 +1173,11 @@
|
|
|
1173
1173
|
* Evento lanciato al termine del caricamento di una nuova pagina del grafico
|
|
1174
1174
|
*/
|
|
1175
1175
|
this.onLoadEnd = new core.EventEmitter();
|
|
1176
|
+
/**
|
|
1177
|
+
* Evento lanciato al termine della creazione del grafico referenziando l'istanza nativa del grafico creato in modo da poter effettuare modifiche
|
|
1178
|
+
* post inizializzazione lato applicativo
|
|
1179
|
+
*/
|
|
1180
|
+
this.chartLoaded = new core.EventEmitter();
|
|
1176
1181
|
/**
|
|
1177
1182
|
* Serve a decidere se sarà presente l'interfaccia di paginazione
|
|
1178
1183
|
*/
|
|
@@ -1264,7 +1269,7 @@
|
|
|
1264
1269
|
_this.Chart = _this.ChartService.ChartInstance;
|
|
1265
1270
|
if (!_this.Chart)
|
|
1266
1271
|
_this.log("Chart " + _this.name + ": Could not create graph");
|
|
1267
|
-
return _this.Charter.applyLocale(_this.Chart, _this.Locale).then(function () {
|
|
1272
|
+
return _this.Charter.applyLocale(_this.Chart, _this.Locale).then(function () { _this.initDone = true; _this.chartLoaded.emit(_this); });
|
|
1268
1273
|
})
|
|
1269
1274
|
]);
|
|
1270
1275
|
};
|
|
@@ -1366,6 +1371,13 @@
|
|
|
1366
1371
|
});
|
|
1367
1372
|
this.Dispatcher.register(this.name, function () { return _this.loadChart(); });
|
|
1368
1373
|
};
|
|
1374
|
+
/**
|
|
1375
|
+
* Permette di aggiungere un blocco di dati in maniera "live" ad un grafico
|
|
1376
|
+
*/
|
|
1377
|
+
BaseChartComponent.prototype.addData = function (chartData) {
|
|
1378
|
+
this.ChartService.refreshData(chartData);
|
|
1379
|
+
};
|
|
1380
|
+
;
|
|
1369
1381
|
/**
|
|
1370
1382
|
* Funzione che si occupa di caricare i temi necessari per il grafico in oggetto. Prima applica il tema, poi, se serve, applica le animazioni
|
|
1371
1383
|
*/
|
|
@@ -1434,7 +1446,8 @@
|
|
|
1434
1446
|
onSelectionChanged: [{ type: core.Output }],
|
|
1435
1447
|
onSeriesClicked: [{ type: core.Output }],
|
|
1436
1448
|
onLoadStart: [{ type: core.Output }],
|
|
1437
|
-
onLoadEnd: [{ type: core.Output }]
|
|
1449
|
+
onLoadEnd: [{ type: core.Output }],
|
|
1450
|
+
chartLoaded: [{ type: core.Output }]
|
|
1438
1451
|
};
|
|
1439
1452
|
|
|
1440
1453
|
/**
|
|
@@ -1449,6 +1462,8 @@
|
|
|
1449
1462
|
this.DataGroupBucketSize = 1500;
|
|
1450
1463
|
/** @ignore */
|
|
1451
1464
|
this.OpacityOnSelected = 0.3;
|
|
1465
|
+
/** @ignore */
|
|
1466
|
+
this.singleDataSet = false;
|
|
1452
1467
|
//******************** Funzione di throttling per non spammare richieste in caso di animazioni attivate
|
|
1453
1468
|
//TODO: spostarla in un metodo di utilità (esfaenza/extensions)
|
|
1454
1469
|
/** @ignore */
|
|
@@ -1462,7 +1477,7 @@
|
|
|
1462
1477
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
1463
1478
|
var dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
|
|
1464
1479
|
var threshold = (_a = settings.DataGroupingThreshold) !== null && _a !== void 0 ? _a : 3000;
|
|
1465
|
-
|
|
1480
|
+
this.singleDataSet = (_b = settings.MergeDatasets) !== null && _b !== void 0 ? _b : false;
|
|
1466
1481
|
var showTicks = settings.ShowTicks == null ? true : settings === null || settings === void 0 ? void 0 : settings.ShowTicks;
|
|
1467
1482
|
var dataShouldBeGrouped = Math.max.apply(Math, __spread(dataConverted.series.map(function (t) { return t.values.length; }))) > threshold;
|
|
1468
1483
|
var showTimeline = settings.Timeline || dataShouldBeGrouped;
|
|
@@ -1541,31 +1556,9 @@
|
|
|
1541
1556
|
var seriesColors = [];
|
|
1542
1557
|
var defaultIndex = 0;
|
|
1543
1558
|
//-- Generazione di un unico dataset invece che N, per poter gestire un unico tooltip
|
|
1544
|
-
if (singleDataSet) {
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
for (var i = 0; i < vs.values.length; i++) {
|
|
1548
|
-
var dataitem = vs.values[i];
|
|
1549
|
-
var indexer = new Date(dataitem.d).valueOf();
|
|
1550
|
-
if (!dto_1[indexer])
|
|
1551
|
-
dto_1[indexer] = {};
|
|
1552
|
-
dto_1[indexer]['v' + index] = dataitem.v;
|
|
1553
|
-
}
|
|
1554
|
-
});
|
|
1555
|
-
var dates = Object.keys(dto_1);
|
|
1556
|
-
var singleDS = [];
|
|
1557
|
-
for (var i = 0; i < dates.length; i++) {
|
|
1558
|
-
var values = dto_1[dates[i]];
|
|
1559
|
-
var item = { d: new Date(parseInt(dates[i])) };
|
|
1560
|
-
var vals = Object.keys(values);
|
|
1561
|
-
for (var ii = 0; ii < vals.length; ii++) {
|
|
1562
|
-
var series = vals[ii];
|
|
1563
|
-
var singleVal = values[series];
|
|
1564
|
-
item[series] = singleVal;
|
|
1565
|
-
}
|
|
1566
|
-
singleDS.push(item);
|
|
1567
|
-
}
|
|
1568
|
-
this.ChartInstance.data = singleDS;
|
|
1559
|
+
if (this.singleDataSet) {
|
|
1560
|
+
this.ChartInstance.data = this.generateSingleDataset(dataConverted);
|
|
1561
|
+
;
|
|
1569
1562
|
dateAxis.cursorTooltipEnabled = false;
|
|
1570
1563
|
}
|
|
1571
1564
|
//-- Fine generazione
|
|
@@ -1589,14 +1582,14 @@
|
|
|
1589
1582
|
s.values.sort(function (d1, d2) { return d1.d.getTime() - d2.d.getTime(); });
|
|
1590
1583
|
var 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);
|
|
1591
1584
|
var series = (settings === null || settings === void 0 ? void 0 : settings.Step) ? new am4charts__namespace.StepLineSeries() : new am4charts__namespace.LineSeries();
|
|
1592
|
-
series.dataFields.valueY = "v" + (singleDataSet ? index : "");
|
|
1585
|
+
series.dataFields.valueY = "v" + (_this.singleDataSet ? index : "");
|
|
1593
1586
|
series.dataFields.dateX = "d";
|
|
1594
1587
|
series.dataFields.measureUnit = s.uom;
|
|
1595
1588
|
series.name = s.name;
|
|
1596
1589
|
series.strokeWidth = (_b = settings === null || settings === void 0 ? void 0 : settings.StrokeSize) !== null && _b !== void 0 ? _b : 1;
|
|
1597
1590
|
series.connect = !gapsAllowed;
|
|
1598
1591
|
series.minBulletDistance = 10;
|
|
1599
|
-
series.tooltipText = singleDataSet ? "" : "{name}: [bold]{valueY}[/]";
|
|
1592
|
+
series.tooltipText = _this.singleDataSet ? "" : s.name ? "{name}: [bold]{valueY}[/]" : "[bold]{valueY}[/]";
|
|
1600
1593
|
series.tooltip.pointerOrientation = "vertical";
|
|
1601
1594
|
series.tooltip.background.fillOpacity = 0.5;
|
|
1602
1595
|
series.tooltip.label.padding(12, 12, 12, 12);
|
|
@@ -1604,7 +1597,7 @@
|
|
|
1604
1597
|
series.stacked = fill;
|
|
1605
1598
|
//Dataset singolo, i dati sono registrati a livello di chart, creo il tooltip che permette di vederli tutti insieme
|
|
1606
1599
|
//altrimenti assegno i dati della serie direttamente alla serie
|
|
1607
|
-
if (singleDataSet) {
|
|
1600
|
+
if (_this.singleDataSet) {
|
|
1608
1601
|
series.tooltip.getFillFromObject = false;
|
|
1609
1602
|
series.tooltip.background.fill = am4core__namespace.color("#eee");
|
|
1610
1603
|
series.tooltip.label.fill = am4core__namespace.color("#00");
|
|
@@ -1635,7 +1628,7 @@
|
|
|
1635
1628
|
var text = "[bold]{dateX.formatDate()}[/]\n";
|
|
1636
1629
|
_this.ChartInstance.series.each(function (item) {
|
|
1637
1630
|
var uom = " [font-style: italic]" + series.dataFields.measureUnit || "" + "[/]";
|
|
1638
|
-
text += "[" + item.stroke.hex + "]●[/] " + item.name + ": [bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
|
|
1631
|
+
text += "[" + item.stroke.hex + "]●[/] " + (item.name ? (item.name + ": ") : "") + "[bold]{" + item.dataFields.valueY + "}[/]" + uom + "\n";
|
|
1639
1632
|
});
|
|
1640
1633
|
return text;
|
|
1641
1634
|
});
|
|
@@ -1694,7 +1687,7 @@
|
|
|
1694
1687
|
//******************************************************************************************************************************
|
|
1695
1688
|
this.ChartInstance.cursor.xAxis = dateAxis;
|
|
1696
1689
|
this.ChartInstance.cursor.yAxis = yAxis;
|
|
1697
|
-
if (singleDataSet)
|
|
1690
|
+
if (this.singleDataSet)
|
|
1698
1691
|
this.ChartInstance.cursor.maxTooltipDistance = -1;
|
|
1699
1692
|
//TODO: Cercare di capire perché è figlio di puttana......
|
|
1700
1693
|
dateAxis.events.on("startchanged", function (t) { return _this.emitSelectionChanged(t, settings); });
|
|
@@ -1703,7 +1696,59 @@
|
|
|
1703
1696
|
};
|
|
1704
1697
|
/** @ignore */
|
|
1705
1698
|
LineChartService.prototype.refreshData = function (data) {
|
|
1706
|
-
|
|
1699
|
+
var dataConverted = this.Adapter ? this.Adapter.adaptDataForLineChart(data) : data;
|
|
1700
|
+
if (this.singleDataSet) {
|
|
1701
|
+
var data = this.generateSingleDataset(dataConverted);
|
|
1702
|
+
this.ChartInstance.addData(data);
|
|
1703
|
+
return;
|
|
1704
|
+
}
|
|
1705
|
+
this.ChartInstance.series.each(function (s) {
|
|
1706
|
+
var relativeSerie = dataConverted.series.find(function (t) { return t.name == s.name; });
|
|
1707
|
+
// Una serie del grafico è stata ggiornata, ordino i datapoint e li aggiungo
|
|
1708
|
+
var correctOrder = true;
|
|
1709
|
+
var prevDate = null;
|
|
1710
|
+
for (var v = 0; v < relativeSerie.values.length; v++) {
|
|
1711
|
+
if (!prevDate)
|
|
1712
|
+
prevDate = relativeSerie.values[v].d;
|
|
1713
|
+
else if (relativeSerie.values[v].d < prevDate) {
|
|
1714
|
+
correctOrder = false;
|
|
1715
|
+
break;
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
if (!correctOrder)
|
|
1719
|
+
relativeSerie.values.sort(function (d1, d2) { return d1.d.getTime() - d2.d.getTime(); });
|
|
1720
|
+
for (var v = 0; v < relativeSerie.values.length; v++) {
|
|
1721
|
+
var obj = relativeSerie.values[v];
|
|
1722
|
+
s.addData({ date: obj.d, value: obj.v });
|
|
1723
|
+
}
|
|
1724
|
+
});
|
|
1725
|
+
};
|
|
1726
|
+
/** Partendo da dati divisi per seriue genera un dataset unito con la data come chiave e i vari valori dopo */
|
|
1727
|
+
LineChartService.prototype.generateSingleDataset = function (data) {
|
|
1728
|
+
var dto = {};
|
|
1729
|
+
data.series.forEach(function (vs, index) {
|
|
1730
|
+
for (var i = 0; i < vs.values.length; i++) {
|
|
1731
|
+
var dataitem = vs.values[i];
|
|
1732
|
+
var indexer = new Date(dataitem.d).valueOf();
|
|
1733
|
+
if (!dto[indexer])
|
|
1734
|
+
dto[indexer] = {};
|
|
1735
|
+
dto[indexer]['v' + index] = dataitem.v;
|
|
1736
|
+
}
|
|
1737
|
+
});
|
|
1738
|
+
var dates = Object.keys(dto);
|
|
1739
|
+
var ret = [];
|
|
1740
|
+
for (var i = 0; i < dates.length; i++) {
|
|
1741
|
+
var values = dto[dates[i]];
|
|
1742
|
+
var item = { d: new Date(parseInt(dates[i])) };
|
|
1743
|
+
var vals = Object.keys(values);
|
|
1744
|
+
for (var ii = 0; ii < vals.length; ii++) {
|
|
1745
|
+
var series = vals[ii];
|
|
1746
|
+
var singleVal = values[series];
|
|
1747
|
+
item[series] = singleVal;
|
|
1748
|
+
}
|
|
1749
|
+
ret.push(item);
|
|
1750
|
+
}
|
|
1751
|
+
return ret;
|
|
1707
1752
|
};
|
|
1708
1753
|
/** @ignore */
|
|
1709
1754
|
LineChartService.prototype.emitSelectionChanged = function (ev, settings) {
|
|
@@ -3162,6 +3207,7 @@
|
|
|
3162
3207
|
exports.AreaChartData = AreaChartData;
|
|
3163
3208
|
exports.AreaChartSettings = AreaChartSettings;
|
|
3164
3209
|
exports.BaseAdapter = BaseAdapter;
|
|
3210
|
+
exports.BaseChartComponent = BaseChartComponent;
|
|
3165
3211
|
exports.BaseInterval = BaseInterval;
|
|
3166
3212
|
exports.BaseSettings = BaseSettings;
|
|
3167
3213
|
exports.ChartThemes = ChartThemes;
|
|
@@ -3191,22 +3237,21 @@
|
|
|
3191
3237
|
exports.VerticalStackedChartData = VerticalStackedChartData;
|
|
3192
3238
|
exports.VerticalStackedChartSettings = VerticalStackedChartSettings;
|
|
3193
3239
|
exports.ɵa = BaseInterval;
|
|
3194
|
-
exports.ɵb =
|
|
3195
|
-
exports.ɵc =
|
|
3196
|
-
exports.ɵd =
|
|
3197
|
-
exports.ɵe =
|
|
3198
|
-
exports.ɵf =
|
|
3199
|
-
exports.ɵg =
|
|
3200
|
-
exports.ɵh =
|
|
3201
|
-
exports.ɵi =
|
|
3202
|
-
exports.ɵj =
|
|
3203
|
-
exports.ɵk =
|
|
3204
|
-
exports.ɵl =
|
|
3205
|
-
exports.ɵm =
|
|
3206
|
-
exports.ɵn =
|
|
3207
|
-
exports.ɵo =
|
|
3208
|
-
exports.ɵp =
|
|
3209
|
-
exports.ɵq = EsAreaChartComponent;
|
|
3240
|
+
exports.ɵb = ChartLoader;
|
|
3241
|
+
exports.ɵc = ChartDispatcher;
|
|
3242
|
+
exports.ɵd = ESC_LOCALE;
|
|
3243
|
+
exports.ɵe = ESC_ANIMATIONS;
|
|
3244
|
+
exports.ɵf = ESC_THEME;
|
|
3245
|
+
exports.ɵg = ESC_LOGS;
|
|
3246
|
+
exports.ɵh = BaseAdapter;
|
|
3247
|
+
exports.ɵi = EsChartComponent;
|
|
3248
|
+
exports.ɵj = EsLineChartComponent;
|
|
3249
|
+
exports.ɵk = EsPieChartComponent;
|
|
3250
|
+
exports.ɵl = EsVertical2DChartComponent;
|
|
3251
|
+
exports.ɵm = EsVerticalChartComponent;
|
|
3252
|
+
exports.ɵn = EsVerticalStackedChartComponent;
|
|
3253
|
+
exports.ɵo = PageChartSelector;
|
|
3254
|
+
exports.ɵp = EsAreaChartComponent;
|
|
3210
3255
|
|
|
3211
3256
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3212
3257
|
|