@datarailsshared/dr_renderer 1.2.45-beta → 1.2.47-beta
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/package.json +1 -1
- package/src/highcharts_renderer.js +532 -144
package/package.json
CHANGED
|
@@ -891,13 +891,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
891
891
|
return chartOptions;
|
|
892
892
|
};
|
|
893
893
|
|
|
894
|
-
|
|
894
|
+
// Generate series for charts functions
|
|
895
|
+
highchartsRenderer.ptCreateBasicLineSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, additionOptions, opts, chartOptions) {
|
|
895
896
|
var chart_series = [],
|
|
896
897
|
row_n_keys = pivotData.getRowKeys(),
|
|
897
898
|
col_n_keys = pivotData.getColKeys();
|
|
898
899
|
|
|
899
900
|
var num_cols = col_n_keys.length;
|
|
900
901
|
var num_rows = row_n_keys.length;
|
|
902
|
+
let averages = {};
|
|
901
903
|
|
|
902
904
|
var has_delta = false;
|
|
903
905
|
if (additionOptions && lodash.has(additionOptions, "delta_column.field") && additionOptions.delta_column.field == "series") {
|
|
@@ -919,6 +921,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
919
921
|
lodash.forEach(col_n_keys, function (col_n_value) {
|
|
920
922
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
921
923
|
var val = agg.value();
|
|
924
|
+
|
|
925
|
+
if (averages[col_n_value.toString()]) {
|
|
926
|
+
averages[col_n_value.toString()].push(val);
|
|
927
|
+
} else {
|
|
928
|
+
averages[col_n_value.toString()] = [val];
|
|
929
|
+
}
|
|
922
930
|
if (isUniqueVals && agg.uniq)
|
|
923
931
|
val = agg.uniq.join('<br>');
|
|
924
932
|
|
|
@@ -970,11 +978,63 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
970
978
|
}
|
|
971
979
|
}
|
|
972
980
|
|
|
981
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts);
|
|
982
|
+
|
|
983
|
+
if (opts.total) {
|
|
984
|
+
const newSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
985
|
+
newSeries.name = 'Total';
|
|
986
|
+
newSeries.data = [];
|
|
987
|
+
col_n_keys.forEach(columnKey => {
|
|
988
|
+
let totalKey = columnKey;
|
|
989
|
+
if (lodash.isArray(columnKey)) {
|
|
990
|
+
totalKey = totalKey.join(' , ');
|
|
991
|
+
}
|
|
992
|
+
newSeries.data.push(pivotData.colTotals[totalKey].sum);
|
|
993
|
+
})
|
|
994
|
+
|
|
995
|
+
chart_series.push(newSeries);
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
if (opts.trendLine) {
|
|
999
|
+
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1000
|
+
trendSeries.name = 'Trend Line';
|
|
1001
|
+
trendSeries.data = [];
|
|
1002
|
+
const n = col_n_keys.length;
|
|
1003
|
+
const xSum = (1 + n) / 2 * n;
|
|
1004
|
+
let ySum = 0;
|
|
1005
|
+
let xySum = 0;
|
|
1006
|
+
let squareXSum = 0;
|
|
1007
|
+
|
|
1008
|
+
col_n_keys.forEach((columnKey, x) => {
|
|
1009
|
+
const y = averages[columnKey.toString()] = averages[columnKey.toString()].reduce((acc, el, index) => {
|
|
1010
|
+
acc += Number(el);
|
|
1011
|
+
if (index === averages[columnKey.toString()].length - 1) {
|
|
1012
|
+
acc = acc / averages[columnKey.toString()].length;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
return acc;
|
|
1016
|
+
}, 0);
|
|
1017
|
+
xySum += y * (x+1);
|
|
1018
|
+
ySum += y;
|
|
1019
|
+
squareXSum += (x+1) * (x+1);
|
|
1020
|
+
});
|
|
1021
|
+
|
|
1022
|
+
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1023
|
+
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1024
|
+
|
|
1025
|
+
col_n_keys.forEach((columnKey, index) => {
|
|
1026
|
+
trendSeries.data.push(a + b * (index + 1));
|
|
1027
|
+
});
|
|
1028
|
+
|
|
1029
|
+
trendSeries.type = 'line';
|
|
1030
|
+
|
|
1031
|
+
chart_series.push(trendSeries);
|
|
1032
|
+
}
|
|
1033
|
+
|
|
973
1034
|
return chart_series;
|
|
974
1035
|
};
|
|
975
1036
|
|
|
976
|
-
|
|
977
|
-
highchartsRenderer.ptCreateColumnSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, isNotDrilldown, additionOptions) {
|
|
1037
|
+
highchartsRenderer.ptCreateColumnSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, isNotDrilldown, additionOptions, opts, chartOptions) {
|
|
978
1038
|
var chart_series = [],
|
|
979
1039
|
row_n_keys = pivotData.getRowKeys(),
|
|
980
1040
|
col_n_keys = pivotData.getColKeys();
|
|
@@ -986,12 +1046,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
986
1046
|
has_delta = true;
|
|
987
1047
|
}
|
|
988
1048
|
|
|
989
|
-
|
|
990
1049
|
if (row_n_keys.length == 0)
|
|
991
1050
|
row_n_keys.push([]);
|
|
992
1051
|
|
|
993
1052
|
var i = 0;
|
|
994
1053
|
var variat_serias = null;
|
|
1054
|
+
let averages = {};
|
|
995
1055
|
|
|
996
1056
|
lodash.forEach(row_n_keys, function (row_n_value) {
|
|
997
1057
|
var ob = {};
|
|
@@ -1009,6 +1069,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1009
1069
|
lodash.forEach(col_n_keys, function (col_n_value) {
|
|
1010
1070
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
1011
1071
|
var val = agg.value();
|
|
1072
|
+
if (averages[col_n_value.toString()]) {
|
|
1073
|
+
averages[col_n_value.toString()].push(val);
|
|
1074
|
+
} else {
|
|
1075
|
+
averages[col_n_value.toString()] = [val];
|
|
1076
|
+
}
|
|
1012
1077
|
|
|
1013
1078
|
if (val != null) {
|
|
1014
1079
|
if ($.isNumeric(val)) {
|
|
@@ -1064,18 +1129,111 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1064
1129
|
}
|
|
1065
1130
|
}
|
|
1066
1131
|
|
|
1132
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts);
|
|
1133
|
+
|
|
1134
|
+
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1135
|
+
|
|
1136
|
+
if (opts.comboOptions && opts.comboOptions.seriesOptions.length) {
|
|
1137
|
+
opts.comboOptions.seriesOptions.forEach(option => {
|
|
1138
|
+
chart_series.forEach(series => {
|
|
1139
|
+
if (option.series === series.name) {
|
|
1140
|
+
switch (option.chartType) {
|
|
1141
|
+
case 'line-chart':
|
|
1142
|
+
series.type = 'line';
|
|
1143
|
+
break;
|
|
1144
|
+
case 'line-chart-smooth':
|
|
1145
|
+
series.type = 'spline';
|
|
1146
|
+
break;
|
|
1147
|
+
case 'area-chart':
|
|
1148
|
+
series.type = 'area';
|
|
1149
|
+
break;
|
|
1150
|
+
case 'area-chart-smooth':
|
|
1151
|
+
series.type = 'areaspline';
|
|
1152
|
+
break;
|
|
1153
|
+
case 'scatter-chart':
|
|
1154
|
+
series.type = 'scatter';
|
|
1155
|
+
break;
|
|
1156
|
+
case 'column-chart' || 'column-chart-stacked':
|
|
1157
|
+
delete series.type;
|
|
1158
|
+
break;
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
})
|
|
1162
|
+
})
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
if (opts.total) {
|
|
1166
|
+
const totalSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1167
|
+
totalSeries.name = 'Total';
|
|
1168
|
+
totalSeries.data = [];
|
|
1169
|
+
col_n_keys.forEach(columnKey => {
|
|
1170
|
+
let key = columnKey;
|
|
1171
|
+
let totalKey = columnKey;
|
|
1172
|
+
if (lodash.isArray(columnKey)) {
|
|
1173
|
+
key = columnKey[0];
|
|
1174
|
+
totalKey = totalKey.join(' , ');
|
|
1175
|
+
}
|
|
1176
|
+
totalSeries.data.push({name: lodash.unescape(key), y: pivotData.colTotals[totalKey].sum});
|
|
1177
|
+
});
|
|
1178
|
+
|
|
1179
|
+
chart_series.push(totalSeries);
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
if (opts.trendLine) {
|
|
1183
|
+
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1184
|
+
trendSeries.name = 'Trend Line';
|
|
1185
|
+
trendSeries.data = [];
|
|
1186
|
+
const n = col_n_keys.length;
|
|
1187
|
+
const xSum = (1 + n) / 2 * n;
|
|
1188
|
+
let ySum = 0;
|
|
1189
|
+
let xySum = 0;
|
|
1190
|
+
let squareXSum = 0;
|
|
1191
|
+
|
|
1192
|
+
col_n_keys.forEach((columnKey, x) => {
|
|
1193
|
+
const y = averages[columnKey.toString()] = averages[columnKey.toString()].reduce((acc, el, index) => {
|
|
1194
|
+
acc += Number(el);
|
|
1195
|
+
if (index === averages[columnKey.toString()].length - 1) {
|
|
1196
|
+
acc = acc / averages[columnKey.toString()].length;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
return acc;
|
|
1200
|
+
}, 0);
|
|
1201
|
+
xySum += y * (x+1);
|
|
1202
|
+
ySum += y;
|
|
1203
|
+
squareXSum += (x+1) * (x+1);
|
|
1204
|
+
});
|
|
1205
|
+
|
|
1206
|
+
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1207
|
+
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1208
|
+
|
|
1209
|
+
col_n_keys.forEach((columnKey, index) => {
|
|
1210
|
+
let key = columnKey;
|
|
1211
|
+
if (lodash.isArray(columnKey)) {
|
|
1212
|
+
key = columnKey[0];
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
trendSeries.data.push({
|
|
1216
|
+
name: lodash.unescape(key), y: a + b * (index + 1)
|
|
1217
|
+
});
|
|
1218
|
+
});
|
|
1219
|
+
|
|
1220
|
+
trendSeries.type = 'line';
|
|
1221
|
+
|
|
1222
|
+
chart_series.push(trendSeries);
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
chart_series.sort((a,b) => {
|
|
1226
|
+
return (weights[a.type] || 0) > (weights[b.type] || 0) ? 1 : (weights[a.type] || 0) < (weights[b.type] || 0) ? -1 : 0
|
|
1227
|
+
});
|
|
1228
|
+
|
|
1067
1229
|
return chart_series;
|
|
1068
|
-
}
|
|
1230
|
+
}
|
|
1069
1231
|
|
|
1070
1232
|
highchartsRenderer.getVariantSeries = function (series, delta_column_options) {
|
|
1071
1233
|
const varianceColor = delta_column_options.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1072
1234
|
series.name = delta_column_options.name.replace('_', '');
|
|
1073
1235
|
series.color = varianceColor;
|
|
1074
1236
|
|
|
1075
|
-
if (!delta_column_options.only_variant && !delta_column_options.same_yaxis) {
|
|
1076
|
-
series.yAxis = 1;
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
1237
|
if (delta_column_options.point_click_event) {
|
|
1080
1238
|
series.allowPointSelect = true;
|
|
1081
1239
|
series.point = {
|
|
@@ -1103,7 +1261,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1103
1261
|
series.marker = {
|
|
1104
1262
|
lineColor: varianceColor
|
|
1105
1263
|
};
|
|
1106
|
-
} else if (delta_column_options.chart == 'column') {
|
|
1264
|
+
} else if (delta_column_options.chart == 'column' || delta_column_options.chart == 'combo') {
|
|
1107
1265
|
series.type = 'column';
|
|
1108
1266
|
} else {
|
|
1109
1267
|
series.type = 'spline';
|
|
@@ -1148,8 +1306,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1148
1306
|
return series;
|
|
1149
1307
|
}
|
|
1150
1308
|
|
|
1151
|
-
|
|
1152
|
-
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData) {
|
|
1309
|
+
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1153
1310
|
var pie_series = [];
|
|
1154
1311
|
|
|
1155
1312
|
var col_n_keys = pivotData.getColKeys();
|
|
@@ -1180,13 +1337,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1180
1337
|
pie_series.push(ob);
|
|
1181
1338
|
});
|
|
1182
1339
|
|
|
1340
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_series, pivotData, chartOptions, additionOptions, opts);
|
|
1341
|
+
|
|
1183
1342
|
return ([{
|
|
1184
1343
|
colorByPoint: true,
|
|
1185
1344
|
data: pie_series
|
|
1186
1345
|
}]);
|
|
1187
1346
|
};
|
|
1188
1347
|
|
|
1189
|
-
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData) {
|
|
1348
|
+
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1190
1349
|
|
|
1191
1350
|
var pie_drill_down_series = [],
|
|
1192
1351
|
row_n_keys = pivotData.getRowKeys(),
|
|
@@ -1224,12 +1383,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1224
1383
|
}
|
|
1225
1384
|
});
|
|
1226
1385
|
|
|
1386
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_drill_down_series, pivotData, chartOptions, additionOptions, opts);
|
|
1227
1387
|
|
|
1228
1388
|
return ({
|
|
1229
1389
|
series: pie_drill_down_series
|
|
1230
1390
|
});
|
|
1231
1391
|
};
|
|
1232
1392
|
|
|
1393
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded = function(chartSeries, pivotData, chartOptions, additionOptions, opts) {
|
|
1394
|
+
if (!opts || !opts.comboOptions) {
|
|
1395
|
+
return;
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
let addSecondYAxis = false;
|
|
1399
|
+
lodash.forEach(chartSeries, function (series) {
|
|
1400
|
+
let sOptions = lodash.find(opts.comboOptions.seriesOptions, function(sOptions) {
|
|
1401
|
+
return sOptions.series === series.name || sOptions.series.replace('_', '') === series.name
|
|
1402
|
+
});
|
|
1403
|
+
if (sOptions && sOptions.secondaryAxis) {
|
|
1404
|
+
series.yAxis = 1;
|
|
1405
|
+
addSecondYAxis = true;
|
|
1406
|
+
}
|
|
1407
|
+
});
|
|
1408
|
+
|
|
1409
|
+
if (addSecondYAxis) {
|
|
1410
|
+
highchartsRenderer.addSecondYAxis(pivotData, chartOptions, additionOptions, opts);
|
|
1411
|
+
}
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1414
|
+
highchartsRenderer.addSecondYAxis = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1415
|
+
const varianceColor = additionOptions.delta_column.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1416
|
+
let labels_formatter = opts.comboOptions.secondaryAxisSettings.is_percentage ?
|
|
1417
|
+
highchartsRenderer.persantageValueLabelsFormatter(pivotData, opts) :
|
|
1418
|
+
highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts);
|
|
1419
|
+
|
|
1420
|
+
chartOptions.yAxis = [chartOptions.yAxis];
|
|
1421
|
+
chartOptions.yAxis[1] = {
|
|
1422
|
+
min: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.min)) ? opts.comboOptions.secondaryAxisSettings.min : null,
|
|
1423
|
+
max: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.max)) ? opts.comboOptions.secondaryAxisSettings.max : null,
|
|
1424
|
+
title: {
|
|
1425
|
+
text: opts.comboOptions.secondaryAxisSettings.name,
|
|
1426
|
+
style: {
|
|
1427
|
+
color: varianceColor
|
|
1428
|
+
}
|
|
1429
|
+
},
|
|
1430
|
+
labels: {
|
|
1431
|
+
formatter: labels_formatter,
|
|
1432
|
+
style: {
|
|
1433
|
+
color: varianceColor
|
|
1434
|
+
}
|
|
1435
|
+
},
|
|
1436
|
+
opposite: true
|
|
1437
|
+
}
|
|
1438
|
+
};
|
|
1439
|
+
|
|
1233
1440
|
highchartsRenderer.ptRenderBasicPie = function (pivotData, opts) {
|
|
1234
1441
|
var chartOptions = {};
|
|
1235
1442
|
var additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('pie-chart');
|
|
@@ -1409,7 +1616,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1409
1616
|
}
|
|
1410
1617
|
|
|
1411
1618
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1412
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1619
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1413
1620
|
|
|
1414
1621
|
var total = [];
|
|
1415
1622
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1550,7 +1757,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1550
1757
|
|
|
1551
1758
|
|
|
1552
1759
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1553
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1760
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1554
1761
|
|
|
1555
1762
|
var total = [];
|
|
1556
1763
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1644,7 +1851,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1644
1851
|
};
|
|
1645
1852
|
var uniqueVals = kpioptions.value.value == "Unique";
|
|
1646
1853
|
|
|
1647
|
-
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals);
|
|
1854
|
+
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals, null, opts, chartOptions);
|
|
1648
1855
|
|
|
1649
1856
|
var total = [];
|
|
1650
1857
|
lodash.forEach(temp_series, function (obj) {
|
|
@@ -1764,12 +1971,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1764
1971
|
if (useNewUx) {
|
|
1765
1972
|
chartOptions.tooltip.borderColor = '#fff';
|
|
1766
1973
|
}
|
|
1767
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
1974
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1768
1975
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 1, false, true);
|
|
1769
1976
|
if (drilldownFunc)
|
|
1770
1977
|
chartOptions.drilldown = {}
|
|
1771
1978
|
else
|
|
1772
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
1979
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1773
1980
|
|
|
1774
1981
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
1775
1982
|
|
|
@@ -1826,7 +2033,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1826
2033
|
formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
|
|
1827
2034
|
}
|
|
1828
2035
|
};
|
|
1829
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1830
2036
|
|
|
1831
2037
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1832
2038
|
|
|
@@ -1871,7 +2077,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1871
2077
|
}
|
|
1872
2078
|
};
|
|
1873
2079
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1874
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2080
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
1875
2081
|
|
|
1876
2082
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1877
2083
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -1902,8 +2108,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1902
2108
|
}
|
|
1903
2109
|
};
|
|
1904
2110
|
|
|
1905
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1906
|
-
|
|
1907
2111
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1908
2112
|
|
|
1909
2113
|
chartOptions.plotOptions = {
|
|
@@ -1950,7 +2154,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1950
2154
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1951
2155
|
|
|
1952
2156
|
var colors = ['#ff0202', '#b3060e', '#70000a'];
|
|
1953
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions);
|
|
2157
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions, opts, chartOptions);
|
|
1954
2158
|
|
|
1955
2159
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1956
2160
|
|
|
@@ -1972,34 +2176,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1972
2176
|
|
|
1973
2177
|
}
|
|
1974
2178
|
|
|
1975
|
-
highchartsRenderer.addSecondYAxisIfNeed = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1976
|
-
if (additionOptions && additionOptions.delta_column && additionOptions.delta_column.field == "series") {
|
|
1977
|
-
chartOptions.yAxis = [chartOptions.yAxis];
|
|
1978
|
-
|
|
1979
|
-
let labels_formatter = highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts);
|
|
1980
|
-
if (additionOptions.delta_column.is_percentage) {
|
|
1981
|
-
labels_formatter = highchartsRenderer.persantageValueLabelsFormatter(pivotData, opts);
|
|
1982
|
-
}
|
|
1983
|
-
|
|
1984
|
-
const varianceColor = additionOptions.delta_column.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1985
|
-
chartOptions.yAxis[1] = {
|
|
1986
|
-
title: {
|
|
1987
|
-
text: additionOptions.delta_column.name.replace('_', ''),
|
|
1988
|
-
style: {
|
|
1989
|
-
color: varianceColor
|
|
1990
|
-
}
|
|
1991
|
-
},
|
|
1992
|
-
labels: {
|
|
1993
|
-
formatter: labels_formatter,
|
|
1994
|
-
style: {
|
|
1995
|
-
color: varianceColor
|
|
1996
|
-
}
|
|
1997
|
-
},
|
|
1998
|
-
opposite: true
|
|
1999
|
-
}
|
|
2000
|
-
}
|
|
2001
|
-
};
|
|
2002
|
-
|
|
2003
2179
|
highchartsRenderer.ptRenderSpLine = function (pivotData, opts) {
|
|
2004
2180
|
var chartOptions = {};
|
|
2005
2181
|
var rowAttrs = pivotData.rowAttrs;
|
|
@@ -2025,8 +2201,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2025
2201
|
}
|
|
2026
2202
|
};
|
|
2027
2203
|
|
|
2028
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2029
|
-
|
|
2030
2204
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
2031
2205
|
|
|
2032
2206
|
chartOptions.plotOptions = {
|
|
@@ -2068,7 +2242,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2068
2242
|
}
|
|
2069
2243
|
};
|
|
2070
2244
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2071
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2245
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
2072
2246
|
|
|
2073
2247
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2074
2248
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -2116,7 +2290,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2116
2290
|
}
|
|
2117
2291
|
};
|
|
2118
2292
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2119
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2293
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2120
2294
|
|
|
2121
2295
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2122
2296
|
|
|
@@ -2213,7 +2387,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2213
2387
|
},
|
|
2214
2388
|
lineWidth: 0
|
|
2215
2389
|
};
|
|
2216
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2390
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2217
2391
|
|
|
2218
2392
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
|
|
2219
2393
|
|
|
@@ -2275,8 +2449,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2275
2449
|
}
|
|
2276
2450
|
};
|
|
2277
2451
|
|
|
2278
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2279
|
-
|
|
2280
2452
|
chartOptions.tooltip = {
|
|
2281
2453
|
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
|
2282
2454
|
shadow: highchartsRenderer.tooltipShadow,
|
|
@@ -2290,7 +2462,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2290
2462
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2291
2463
|
|
|
2292
2464
|
var isNotDrilldown = !(colAttrs && colAttrs.length > 1);
|
|
2293
|
-
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, null, null, null, isNotDrilldown, additionOptions);
|
|
2465
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, null, null, null, isNotDrilldown, additionOptions, opts, chartOptions);
|
|
2294
2466
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2295
2467
|
chartOptions.plotOptions = {
|
|
2296
2468
|
column: {
|
|
@@ -2458,7 +2630,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2458
2630
|
};
|
|
2459
2631
|
//chartOptions.xAxis = { categories: pivotData.getColKeys() };
|
|
2460
2632
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2461
|
-
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, null, null, true, true);
|
|
2633
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, null, null, true, true, null, opts, chartOptions);
|
|
2462
2634
|
//chartOptions.drilldown = {}
|
|
2463
2635
|
|
|
2464
2636
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
@@ -2535,11 +2707,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2535
2707
|
|
|
2536
2708
|
chartOptions.xAxis = {type: 'category'};
|
|
2537
2709
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2538
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
2710
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2539
2711
|
//if (drilldownFunc)
|
|
2540
2712
|
// chartOptions.drilldown = {}
|
|
2541
2713
|
//else
|
|
2542
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
2714
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2543
2715
|
|
|
2544
2716
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2545
2717
|
|
|
@@ -2610,7 +2782,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2610
2782
|
}
|
|
2611
2783
|
};
|
|
2612
2784
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2613
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2785
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2614
2786
|
|
|
2615
2787
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2616
2788
|
|
|
@@ -2724,7 +2896,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2724
2896
|
}
|
|
2725
2897
|
};
|
|
2726
2898
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2727
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2899
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2728
2900
|
|
|
2729
2901
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2730
2902
|
|
|
@@ -2813,6 +2985,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2813
2985
|
return format;
|
|
2814
2986
|
}
|
|
2815
2987
|
|
|
2988
|
+
highchartsRenderer.isRowKeyShouldBePercentage = function(render_options, rowKey) {
|
|
2989
|
+
if (render_options && render_options.comboOptions && render_options.comboOptions.secondaryAxisSettings &&
|
|
2990
|
+
render_options.comboOptions.secondaryAxisSettings.is_percentage) {
|
|
2991
|
+
const rowKeyString = rowKey.join(highchartsRenderer.delimer);
|
|
2992
|
+
const rowKeyOptions = lodash.find(render_options.comboOptions.seriesOptions, {series: rowKeyString});
|
|
2993
|
+
if (rowKeyOptions && rowKeyOptions.secondaryAxis) {
|
|
2994
|
+
return true;
|
|
2995
|
+
}
|
|
2996
|
+
}
|
|
2997
|
+
return false;
|
|
2998
|
+
}
|
|
2999
|
+
|
|
2816
3000
|
highchartsRenderer.ignoreIfCalculatedValue = function(data, rowKey, colKey, record, associatedFields, renderOptions, isGraph) {
|
|
2817
3001
|
var eliminate = renderOptions && renderOptions.chartOptions && renderOptions.chartOptions.table_options &&
|
|
2818
3002
|
renderOptions.chartOptions.table_options.eliminate_calc_totals && !_.isEmpty(associatedFields) && !isGraph;
|
|
@@ -2832,17 +3016,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2832
3016
|
|
|
2833
3017
|
highchartsRenderer.rhPivotCount = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
2834
3018
|
var attr = arg[0];
|
|
2835
|
-
var has_variants_persentage = false;
|
|
2836
|
-
var variant_name = '';
|
|
2837
|
-
|
|
2838
|
-
if (render_options && render_options.chartOptions &&
|
|
2839
|
-
render_options.chartOptions.delta_column &&
|
|
2840
|
-
render_options.chartOptions.delta_column.field === 'series' &&
|
|
2841
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
2842
|
-
has_variants_persentage = true;
|
|
2843
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
2844
|
-
}
|
|
2845
|
-
|
|
2846
3019
|
return function (data, rowKey, colKey) {
|
|
2847
3020
|
return {
|
|
2848
3021
|
sum: 0,
|
|
@@ -2864,10 +3037,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2864
3037
|
this.formats = lodash.uniq(this.formats);
|
|
2865
3038
|
}
|
|
2866
3039
|
|
|
2867
|
-
if (
|
|
2868
|
-
|
|
2869
|
-
this.widget_values_format = "#,###%";
|
|
2870
|
-
}
|
|
3040
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3041
|
+
this.widget_values_format = "#,###%";
|
|
2871
3042
|
}
|
|
2872
3043
|
|
|
2873
3044
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -2987,17 +3158,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2987
3158
|
};
|
|
2988
3159
|
|
|
2989
3160
|
highchartsRenderer.rhPivotAggregatorSum = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
2990
|
-
var attr;
|
|
2991
|
-
attr = arg[0];
|
|
2992
|
-
var has_variants_persentage = false;
|
|
2993
|
-
var variant_name = '';
|
|
2994
|
-
if (render_options && render_options.chartOptions &&
|
|
2995
|
-
render_options.chartOptions.delta_column &&
|
|
2996
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
2997
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
2998
|
-
has_variants_persentage = true;
|
|
2999
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3000
|
-
}
|
|
3161
|
+
var attr = arg[0];
|
|
3001
3162
|
return function (data, rowKey, colKey) {
|
|
3002
3163
|
return {
|
|
3003
3164
|
sum: 0,
|
|
@@ -3030,10 +3191,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3030
3191
|
this.formats = lodash.uniq(this.formats);
|
|
3031
3192
|
}
|
|
3032
3193
|
|
|
3033
|
-
if (
|
|
3034
|
-
|
|
3035
|
-
this.widget_values_format = "#,###%";
|
|
3036
|
-
}
|
|
3194
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3195
|
+
this.widget_values_format = "#,###%";
|
|
3037
3196
|
}
|
|
3038
3197
|
|
|
3039
3198
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3087,17 +3246,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3087
3246
|
};
|
|
3088
3247
|
|
|
3089
3248
|
highchartsRenderer.rhPivotAggregatorMin = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
3090
|
-
var attr;
|
|
3091
|
-
attr = arg[0];
|
|
3092
|
-
var has_variants_persentage = false;
|
|
3093
|
-
var variant_name = '';
|
|
3094
|
-
if (render_options && render_options.chartOptions &&
|
|
3095
|
-
render_options.chartOptions.delta_column &&
|
|
3096
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
3097
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
3098
|
-
has_variants_persentage = true;
|
|
3099
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3100
|
-
}
|
|
3249
|
+
var attr = arg[0];
|
|
3101
3250
|
return function (data, rowKey, colKey) {
|
|
3102
3251
|
return {
|
|
3103
3252
|
val: null,
|
|
@@ -3131,10 +3280,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3131
3280
|
this.formats = lodash.uniq(this.formats);
|
|
3132
3281
|
}
|
|
3133
3282
|
|
|
3134
|
-
if (
|
|
3135
|
-
|
|
3136
|
-
this.widget_values_format = "#,###%";
|
|
3137
|
-
}
|
|
3283
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3284
|
+
this.widget_values_format = "#,###%";
|
|
3138
3285
|
}
|
|
3139
3286
|
|
|
3140
3287
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3185,17 +3332,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3185
3332
|
};
|
|
3186
3333
|
|
|
3187
3334
|
highchartsRenderer.rhPivotAggregatorMax = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
3188
|
-
var attr;
|
|
3189
|
-
attr = arg[0];
|
|
3190
|
-
var has_variants_persentage = false;
|
|
3191
|
-
var variant_name = '';
|
|
3192
|
-
if (render_options && render_options.chartOptions &&
|
|
3193
|
-
render_options.chartOptions.delta_column &&
|
|
3194
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
3195
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
3196
|
-
has_variants_persentage = true;
|
|
3197
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3198
|
-
}
|
|
3335
|
+
var attr = arg[0];
|
|
3199
3336
|
return function (data, rowKey, colKey) {
|
|
3200
3337
|
return {
|
|
3201
3338
|
val: null,
|
|
@@ -3229,10 +3366,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3229
3366
|
this.formats = lodash.uniq(this.formats);
|
|
3230
3367
|
}
|
|
3231
3368
|
|
|
3232
|
-
if (
|
|
3233
|
-
|
|
3234
|
-
this.widget_values_format = "#,###%";
|
|
3235
|
-
}
|
|
3369
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3370
|
+
this.widget_values_format = "#,###%";
|
|
3236
3371
|
}
|
|
3237
3372
|
|
|
3238
3373
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3283,17 +3418,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3283
3418
|
};
|
|
3284
3419
|
|
|
3285
3420
|
highchartsRenderer.rhPivotAggregatorAverage = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
3286
|
-
var attr;
|
|
3287
|
-
attr = arg[0];
|
|
3288
|
-
var has_variants_persentage = false;
|
|
3289
|
-
var variant_name = '';
|
|
3290
|
-
if (render_options && render_options.chartOptions &&
|
|
3291
|
-
render_options.chartOptions.delta_column &&
|
|
3292
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
3293
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
3294
|
-
has_variants_persentage = true;
|
|
3295
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3296
|
-
}
|
|
3421
|
+
var attr = arg[0];
|
|
3297
3422
|
return function (data, rowKey, colKey) {
|
|
3298
3423
|
return {
|
|
3299
3424
|
sum: 0,
|
|
@@ -3328,10 +3453,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3328
3453
|
this.formats = lodash.uniq(this.formats);
|
|
3329
3454
|
}
|
|
3330
3455
|
|
|
3331
|
-
if (
|
|
3332
|
-
|
|
3333
|
-
this.widget_values_format = "#,###%";
|
|
3334
|
-
}
|
|
3456
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3457
|
+
this.widget_values_format = "#,###%";
|
|
3335
3458
|
}
|
|
3336
3459
|
|
|
3337
3460
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -4283,6 +4406,27 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4283
4406
|
delete options.chartOptions.label;
|
|
4284
4407
|
}
|
|
4285
4408
|
}
|
|
4409
|
+
|
|
4410
|
+
if (!options.comboOptions) {
|
|
4411
|
+
options.comboOptions = {
|
|
4412
|
+
secondaryAxisSettings: {
|
|
4413
|
+
name: 'Secondary Axis',
|
|
4414
|
+
max: null,
|
|
4415
|
+
min: null,
|
|
4416
|
+
is_percentage: false,
|
|
4417
|
+
},
|
|
4418
|
+
seriesOptions: []
|
|
4419
|
+
}
|
|
4420
|
+
if (options.chartOptions.delta_column && options.chartOptions.delta_column.field === 'series') {
|
|
4421
|
+
options.comboOptions.seriesOptions.push({
|
|
4422
|
+
series: options.chartOptions.delta_column.name,
|
|
4423
|
+
chartType: options.chartOptions.delta_column.chart,
|
|
4424
|
+
secondaryAxis: !options.chartOptions.delta_column.same_yaxis,
|
|
4425
|
+
});
|
|
4426
|
+
options.comboOptions.secondaryAxisSettings.name = options.chartOptions.delta_column.name.replace('_', '');
|
|
4427
|
+
options.comboOptions.secondaryAxisSettings.is_percentage = options.chartOptions.delta_column.is_percentage;
|
|
4428
|
+
}
|
|
4429
|
+
}
|
|
4286
4430
|
};
|
|
4287
4431
|
|
|
4288
4432
|
highchartsRenderer.addPivotOptions = function (selectedTemplateWOData, widgetOptions, drilldownFunction, drillDownListFunction) {
|
|
@@ -4421,7 +4565,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4421
4565
|
|
|
4422
4566
|
// fill selected fields
|
|
4423
4567
|
lodash.forEach(dynamicRangeOptions.fields, function (valObj) {
|
|
4424
|
-
fieldOb = lodash.find(fields, {id: valObj.
|
|
4568
|
+
fieldOb = lodash.find(fields, {id: valObj.field});
|
|
4425
4569
|
if (fieldOb) {
|
|
4426
4570
|
selectedFields.push(fieldOb);
|
|
4427
4571
|
lodash.remove(fields, {id: fieldOb.id});
|
|
@@ -5412,7 +5556,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5412
5556
|
element_options: [
|
|
5413
5557
|
{label: 'Markers', value: ''},
|
|
5414
5558
|
{label: 'Line', value: 'line'},
|
|
5559
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5415
5560
|
{label: 'Column', value: 'column'},
|
|
5561
|
+
{label: 'Area', value: 'area'},
|
|
5562
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5416
5563
|
],
|
|
5417
5564
|
default_value: ''
|
|
5418
5565
|
}, {
|
|
@@ -5424,7 +5571,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5424
5571
|
element_type: 'checkbox',
|
|
5425
5572
|
element_label: 'Same yAxis',
|
|
5426
5573
|
value_name: 'same_yaxis',
|
|
5427
|
-
default_value: false
|
|
5574
|
+
default_value: false,
|
|
5575
|
+
hidden: true,
|
|
5428
5576
|
}, {
|
|
5429
5577
|
element_type: 'checkbox',
|
|
5430
5578
|
element_label: 'Same xAxis',
|
|
@@ -5434,7 +5582,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5434
5582
|
element_type: 'checkbox',
|
|
5435
5583
|
element_label: 'Percentage',
|
|
5436
5584
|
value_name: 'is_percentage',
|
|
5437
|
-
default_value: false
|
|
5585
|
+
default_value: false,
|
|
5586
|
+
hidden: true,
|
|
5438
5587
|
}, {
|
|
5439
5588
|
element_type: 'checkbox',
|
|
5440
5589
|
element_label: 'Sort by variance',
|
|
@@ -5483,7 +5632,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5483
5632
|
element_options: [
|
|
5484
5633
|
{label: 'Markers', value: ''},
|
|
5485
5634
|
{label: 'Line', value: 'line'},
|
|
5635
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5486
5636
|
{label: 'Column', value: 'column'},
|
|
5637
|
+
{label: 'Area', value: 'area'},
|
|
5638
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5487
5639
|
],
|
|
5488
5640
|
default_value: ''
|
|
5489
5641
|
}, {
|
|
@@ -5495,7 +5647,85 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5495
5647
|
element_type: 'checkbox',
|
|
5496
5648
|
element_label: 'Same yAxis',
|
|
5497
5649
|
value_name: 'same_yaxis',
|
|
5650
|
+
default_value: false,
|
|
5651
|
+
hidden: true,
|
|
5652
|
+
}, {
|
|
5653
|
+
element_type: 'checkbox',
|
|
5654
|
+
element_label: 'Same xAxis',
|
|
5655
|
+
value_name: 'same_xaxis',
|
|
5656
|
+
default_value: false
|
|
5657
|
+
}, {
|
|
5658
|
+
element_type: 'checkbox',
|
|
5659
|
+
element_label: 'Percentage',
|
|
5660
|
+
value_name: 'is_percentage',
|
|
5661
|
+
default_value: false,
|
|
5662
|
+
hidden: true,
|
|
5663
|
+
}, {
|
|
5664
|
+
element_type: 'checkbox',
|
|
5665
|
+
element_label: 'Sort by variance',
|
|
5666
|
+
value_name: 'sort_by_variance',
|
|
5667
|
+
default_value: false
|
|
5668
|
+
}, {
|
|
5669
|
+
element_type: 'checkbox',
|
|
5670
|
+
element_label: 'Sort by absolute variance',
|
|
5671
|
+
value_name: 'sort_by_absolute_variance',
|
|
5672
|
+
default_value: false
|
|
5673
|
+
}, {
|
|
5674
|
+
element_type: 'checkbox',
|
|
5675
|
+
element_label: 'Filter zero values',
|
|
5676
|
+
value_name: 'is_filter_zero',
|
|
5677
|
+
default_value: false
|
|
5678
|
+
}]
|
|
5679
|
+
},
|
|
5680
|
+
'delta_column_combo': {
|
|
5681
|
+
category_class: 'google-visualization-charteditor-mini-more',
|
|
5682
|
+
category_label: 'Variance',
|
|
5683
|
+
category_type: 'delta_column',
|
|
5684
|
+
elements: [{
|
|
5685
|
+
element_type: 'radio',
|
|
5686
|
+
value_name: 'field',
|
|
5687
|
+
element_label: 'Select Field',
|
|
5688
|
+
element_options: [
|
|
5689
|
+
{label: 'None', value: ''},
|
|
5690
|
+
{label: 'Axis', value: 'category'},
|
|
5691
|
+
{label: 'Legend', value: 'series'},
|
|
5692
|
+
],
|
|
5693
|
+
default_value: ''
|
|
5694
|
+
}, {
|
|
5695
|
+
element_type: 'input',
|
|
5696
|
+
value_name: 'name',
|
|
5697
|
+
element_label: 'Name',
|
|
5698
|
+
default_value: '_Variance'
|
|
5699
|
+
}, {
|
|
5700
|
+
element_type: 'input',
|
|
5701
|
+
value_name: 'formula',
|
|
5702
|
+
element_label: 'Formula',
|
|
5703
|
+
default_value: 'x2-x1'
|
|
5704
|
+
}, {
|
|
5705
|
+
hidden: true,
|
|
5706
|
+
element_type: 'radio',
|
|
5707
|
+
value_name: 'chart',
|
|
5708
|
+
element_label: 'Chart',
|
|
5709
|
+
element_options: [
|
|
5710
|
+
{label: 'Markers', value: ''},
|
|
5711
|
+
{label: 'Line', value: 'line'},
|
|
5712
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5713
|
+
{label: 'Column', value: 'column'},
|
|
5714
|
+
{label: 'Area', value: 'area'},
|
|
5715
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5716
|
+
],
|
|
5717
|
+
default_value: ''
|
|
5718
|
+
}, {
|
|
5719
|
+
element_type: 'checkbox',
|
|
5720
|
+
element_label: 'Only variance',
|
|
5721
|
+
value_name: 'only_variant',
|
|
5498
5722
|
default_value: false
|
|
5723
|
+
}, {
|
|
5724
|
+
element_type: 'checkbox',
|
|
5725
|
+
element_label: 'Same yAxis',
|
|
5726
|
+
value_name: 'same_yaxis',
|
|
5727
|
+
default_value: false,
|
|
5728
|
+
hidden: true,
|
|
5499
5729
|
}, {
|
|
5500
5730
|
element_type: 'checkbox',
|
|
5501
5731
|
element_label: 'Same xAxis',
|
|
@@ -5505,7 +5735,85 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5505
5735
|
element_type: 'checkbox',
|
|
5506
5736
|
element_label: 'Percentage',
|
|
5507
5737
|
value_name: 'is_percentage',
|
|
5738
|
+
default_value: false,
|
|
5739
|
+
hidden: true,
|
|
5740
|
+
}, {
|
|
5741
|
+
element_type: 'checkbox',
|
|
5742
|
+
element_label: 'Sort by variance',
|
|
5743
|
+
value_name: 'sort_by_variance',
|
|
5508
5744
|
default_value: false
|
|
5745
|
+
}, {
|
|
5746
|
+
element_type: 'checkbox',
|
|
5747
|
+
element_label: 'Sort by absolute variance',
|
|
5748
|
+
value_name: 'sort_by_absolute_variance',
|
|
5749
|
+
default_value: false
|
|
5750
|
+
}]
|
|
5751
|
+
},
|
|
5752
|
+
'delta_column_for_drill_down_combo': {
|
|
5753
|
+
category_class: 'google-visualization-charteditor-mini-more',
|
|
5754
|
+
category_label: 'Variance',
|
|
5755
|
+
category_type: 'delta_column',
|
|
5756
|
+
elements: [{
|
|
5757
|
+
element_type: 'radio',
|
|
5758
|
+
value_name: 'field',
|
|
5759
|
+
element_label: 'Select Field',
|
|
5760
|
+
element_options: [
|
|
5761
|
+
{label: 'None', value: ''},
|
|
5762
|
+
{label: 'Axis', value: 'category'},
|
|
5763
|
+
{label: 'Legend', value: 'series'},
|
|
5764
|
+
],
|
|
5765
|
+
default_value: ''
|
|
5766
|
+
}, {
|
|
5767
|
+
element_type: 'input',
|
|
5768
|
+
value_name: 'name',
|
|
5769
|
+
element_label: 'Name',
|
|
5770
|
+
default_value: '_Variance'
|
|
5771
|
+
}, {
|
|
5772
|
+
element_type: 'input',
|
|
5773
|
+
value_name: 'formula',
|
|
5774
|
+
element_label: 'Formula',
|
|
5775
|
+
default_value: 'x2-x1'
|
|
5776
|
+
}, {
|
|
5777
|
+
element_type: 'input',
|
|
5778
|
+
value_name: 'color',
|
|
5779
|
+
element_label: 'Color',
|
|
5780
|
+
default_value: ''
|
|
5781
|
+
}, {
|
|
5782
|
+
hidden: true,
|
|
5783
|
+
element_type: 'radio',
|
|
5784
|
+
value_name: 'chart',
|
|
5785
|
+
element_label: 'Chart',
|
|
5786
|
+
element_options: [
|
|
5787
|
+
{label: 'Markers', value: ''},
|
|
5788
|
+
{label: 'Line', value: 'line'},
|
|
5789
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5790
|
+
{label: 'Column', value: 'column'},
|
|
5791
|
+
{label: 'Area', value: 'area'},
|
|
5792
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5793
|
+
],
|
|
5794
|
+
default_value: ''
|
|
5795
|
+
}, {
|
|
5796
|
+
element_type: 'checkbox',
|
|
5797
|
+
element_label: 'Only variance',
|
|
5798
|
+
value_name: 'only_variant',
|
|
5799
|
+
default_value: false
|
|
5800
|
+
}, {
|
|
5801
|
+
element_type: 'checkbox',
|
|
5802
|
+
element_label: 'Same yAxis',
|
|
5803
|
+
value_name: 'same_yaxis',
|
|
5804
|
+
default_value: false,
|
|
5805
|
+
hidden: true,
|
|
5806
|
+
}, {
|
|
5807
|
+
element_type: 'checkbox',
|
|
5808
|
+
element_label: 'Same xAxis',
|
|
5809
|
+
value_name: 'same_xaxis',
|
|
5810
|
+
default_value: false
|
|
5811
|
+
}, {
|
|
5812
|
+
element_type: 'checkbox',
|
|
5813
|
+
element_label: 'Percentage',
|
|
5814
|
+
value_name: 'is_percentage',
|
|
5815
|
+
default_value: false,
|
|
5816
|
+
hidden: true,
|
|
5509
5817
|
}, {
|
|
5510
5818
|
element_type: 'checkbox',
|
|
5511
5819
|
element_label: 'Sort by variance',
|
|
@@ -5580,6 +5888,39 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5580
5888
|
};
|
|
5581
5889
|
|
|
5582
5890
|
highchartsRenderer.chartsTypesInfo = {
|
|
5891
|
+
'combo-chart': {
|
|
5892
|
+
name: 'Column Combo Chart ',
|
|
5893
|
+
label: 'Column Combo Chart ',
|
|
5894
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5895
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5896
|
+
axisName: 'X - Axis',
|
|
5897
|
+
legendName: 'Data series',
|
|
5898
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart',
|
|
5899
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5900
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts',
|
|
5901
|
+
},
|
|
5902
|
+
'combo-column-chart': {
|
|
5903
|
+
name: 'Column Combo Chart ',
|
|
5904
|
+
label: 'Column Combo Chart ',
|
|
5905
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5906
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5907
|
+
axisName: 'X - Axis',
|
|
5908
|
+
legendName: 'Data series',
|
|
5909
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5910
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5911
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5912
|
+
},
|
|
5913
|
+
'combo-stacked-chart': {
|
|
5914
|
+
name: 'Stacked Column Combo Chart ',
|
|
5915
|
+
label: 'Stacked Column Combo Chart ',
|
|
5916
|
+
title: 'Allows for multiple chart display formats in one widget.',
|
|
5917
|
+
description: 'For example, different department stacked clomuns, and average as a line.',
|
|
5918
|
+
axisName: 'X - Axis',
|
|
5919
|
+
legendName: 'Data series',
|
|
5920
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5921
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5922
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5923
|
+
},
|
|
5583
5924
|
'line-chart': {
|
|
5584
5925
|
name: 'Line chart',
|
|
5585
5926
|
label: 'Line Chart',
|
|
@@ -5809,6 +6150,53 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5809
6150
|
highchartsRenderer.suboptions["table_options_transpose"],
|
|
5810
6151
|
highchartsRenderer.suboptions["chart_grid"],
|
|
5811
6152
|
highchartsRenderer.suboptions["negative_number_format"],
|
|
6153
|
+
highchartsRenderer.suboptions["delta_column_combo"],
|
|
6154
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6155
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6156
|
+
highchartsRenderer.suboptions["legends"],
|
|
6157
|
+
]
|
|
6158
|
+
}
|
|
6159
|
+
]
|
|
6160
|
+
},
|
|
6161
|
+
{
|
|
6162
|
+
type: 'combo',
|
|
6163
|
+
name: 'Combo',
|
|
6164
|
+
class: 'combo-chart',
|
|
6165
|
+
subtypes: [{
|
|
6166
|
+
type: 'combo-column-chart',
|
|
6167
|
+
name: highchartsRenderer.chartsTypesInfo['combo-column-chart'].name,
|
|
6168
|
+
class: 'combo-column-chart',
|
|
6169
|
+
render: highchartsRenderer.ptRenderColumn,
|
|
6170
|
+
suboptions: [
|
|
6171
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6172
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6173
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6174
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6175
|
+
highchartsRenderer.suboptions["label"],
|
|
6176
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6177
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6178
|
+
highchartsRenderer.suboptions["chart"],
|
|
6179
|
+
highchartsRenderer.suboptions["negative_number_format"],
|
|
6180
|
+
highchartsRenderer.suboptions["delta_column_for_drill_down_combo"],
|
|
6181
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6182
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6183
|
+
highchartsRenderer.suboptions["legends"],
|
|
6184
|
+
],
|
|
6185
|
+
},
|
|
6186
|
+
{
|
|
6187
|
+
type: 'combo-stacked-chart',
|
|
6188
|
+
name: highchartsRenderer.chartsTypesInfo['combo-stacked-chart'].name,
|
|
6189
|
+
class: 'combo-stacked-chart',
|
|
6190
|
+
render: highchartsRenderer.ptRenderStackedColumn,
|
|
6191
|
+
suboptions: [
|
|
6192
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6193
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6194
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6195
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6196
|
+
highchartsRenderer.suboptions["label_with_percentage"],
|
|
6197
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6198
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6199
|
+
highchartsRenderer.suboptions["chart_grid"],
|
|
5812
6200
|
highchartsRenderer.suboptions["delta_column"],
|
|
5813
6201
|
highchartsRenderer.suboptions["error_policy"],
|
|
5814
6202
|
highchartsRenderer.suboptions["from_version"],
|
|
@@ -6728,7 +7116,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6728
7116
|
var datesFields = [];
|
|
6729
7117
|
datesFields = lodash.filter(widget.rows, element => element.type == 'Date');
|
|
6730
7118
|
datesFields = datesFields.concat(lodash.filter(widget.cols, element => element.type == 'Date'));
|
|
6731
|
-
|
|
7119
|
+
|
|
6732
7120
|
const isCustomSorting = widget.options.sortingFields && Array.isArray(widget.options.sortingFields) && widget.options.sortingFields.length > 0;
|
|
6733
7121
|
if (isCustomSorting) {
|
|
6734
7122
|
lodash.forEach(datesFields, function (field) {
|
|
@@ -7088,7 +7476,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7088
7476
|
itemMarginTop: 2,
|
|
7089
7477
|
};
|
|
7090
7478
|
const none = {
|
|
7091
|
-
enabled: false,
|
|
7479
|
+
enabled: false,
|
|
7092
7480
|
};
|
|
7093
7481
|
|
|
7094
7482
|
if (additionOptions.legends_position && additionOptions.legends_position.value) {
|