@datarailsshared/dr_renderer 1.2.54 → 1.2.58
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 +118 -209
package/package.json
CHANGED
|
@@ -909,6 +909,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
909
909
|
var variat_serias = null;
|
|
910
910
|
const n = col_n_keys.length;
|
|
911
911
|
const xSum = (1 + n) / 2 * n;
|
|
912
|
+
const trendSerieses = [];
|
|
912
913
|
|
|
913
914
|
lodash.forEach(row_n_keys, function (row_n_value) {
|
|
914
915
|
var ob = {};
|
|
@@ -973,11 +974,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
973
974
|
trendSeries.color = colors[i];
|
|
974
975
|
}
|
|
975
976
|
|
|
976
|
-
|
|
977
|
+
trendSerieses.push(trendSeries);
|
|
977
978
|
}
|
|
978
979
|
|
|
979
980
|
i++;
|
|
980
981
|
});
|
|
982
|
+
const ethalonSeries = chart_series[chart_series.length - 1];
|
|
981
983
|
|
|
982
984
|
if (has_delta && additionOptions && additionOptions.delta_column.only_variant) {
|
|
983
985
|
if (variat_serias)
|
|
@@ -996,10 +998,19 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
996
998
|
}
|
|
997
999
|
}
|
|
998
1000
|
|
|
999
|
-
|
|
1001
|
+
opts.chart_series = []
|
|
1002
|
+
|
|
1003
|
+
if (!lodash.isEqual(row_n_keys, [[]])) {
|
|
1004
|
+
chart_series.forEach(series => {
|
|
1005
|
+
opts.chart_series.push(series.name);
|
|
1006
|
+
})
|
|
1007
|
+
}
|
|
1000
1008
|
|
|
1001
1009
|
if (opts.total) {
|
|
1002
|
-
const newSeries = lodash.clone(
|
|
1010
|
+
const newSeries = lodash.clone(ethalonSeries);
|
|
1011
|
+
if (opts.totalSeriesSettings) {
|
|
1012
|
+
newSeries.yAxis = opts.totalSeriesSettings.secondaryAxis ? 1 : undefined;
|
|
1013
|
+
}
|
|
1003
1014
|
newSeries.name = 'Total';
|
|
1004
1015
|
newSeries.data = [];
|
|
1005
1016
|
col_n_keys.forEach(columnKey => {
|
|
@@ -1013,6 +1024,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1013
1024
|
chart_series.push(newSeries);
|
|
1014
1025
|
}
|
|
1015
1026
|
|
|
1027
|
+
chart_series = [...chart_series, ...trendSerieses]
|
|
1028
|
+
|
|
1029
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts, opts.total && opts.totalSeriesSettings && opts.totalSeriesSettings.secondaryAxis);
|
|
1030
|
+
|
|
1016
1031
|
return chart_series;
|
|
1017
1032
|
};
|
|
1018
1033
|
|
|
@@ -1033,6 +1048,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1033
1048
|
var variat_serias = null;
|
|
1034
1049
|
const n = col_n_keys.length;
|
|
1035
1050
|
const xSum = (1 + n) / 2 * n;
|
|
1051
|
+
const trendSerieses = [];
|
|
1036
1052
|
|
|
1037
1053
|
lodash.forEach(row_n_keys, function (row_n_value) {
|
|
1038
1054
|
let ySum = 0;
|
|
@@ -1101,6 +1117,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1101
1117
|
|
|
1102
1118
|
chart_series.push(ob);
|
|
1103
1119
|
|
|
1120
|
+
|
|
1104
1121
|
if (opts.trendLine) {
|
|
1105
1122
|
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1106
1123
|
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
@@ -1115,11 +1132,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1115
1132
|
trendSeries.color = colors[i];
|
|
1116
1133
|
}
|
|
1117
1134
|
|
|
1118
|
-
|
|
1135
|
+
trendSerieses.push(trendSeries);
|
|
1119
1136
|
}
|
|
1120
1137
|
i++;
|
|
1121
1138
|
});
|
|
1122
1139
|
|
|
1140
|
+
const ethalonSeries = chart_series[chart_series.length - 1];
|
|
1141
|
+
|
|
1123
1142
|
if (has_delta && additionOptions.delta_column.only_variant) {
|
|
1124
1143
|
if (variat_serias)
|
|
1125
1144
|
return [variat_serias];
|
|
@@ -1128,41 +1147,36 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1128
1147
|
}
|
|
1129
1148
|
}
|
|
1130
1149
|
|
|
1131
|
-
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts);
|
|
1132
|
-
|
|
1133
1150
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1134
1151
|
|
|
1135
|
-
if (opts.comboOptions &&
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
break;
|
|
1152
|
-
case 'scatter-chart':
|
|
1153
|
-
series.type = 'scatter';
|
|
1154
|
-
break;
|
|
1155
|
-
case 'column-chart' || 'column-chart-stacked':
|
|
1156
|
-
delete series.type;
|
|
1157
|
-
break;
|
|
1158
|
-
}
|
|
1159
|
-
}
|
|
1160
|
-
})
|
|
1152
|
+
if (opts.comboOptions && chartType.includes('combo') && !lodash.isEqual(row_n_keys, [[]])) {
|
|
1153
|
+
chart_series.forEach((series, seriesIndex) => {
|
|
1154
|
+
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
1155
|
+
if (savedSeriesOption) {
|
|
1156
|
+
highchartsRenderer.setChartTypeBySeriesType(savedSeriesOption.chartType, series);
|
|
1157
|
+
} else if (seriesIndex === chart_series.length - 1 && chart_series.length > 1 && !has_delta && !opts.total && !trendSerieses.length) {
|
|
1158
|
+
series.type = 'line';
|
|
1159
|
+
}
|
|
1160
|
+
});
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
opts.chart_series = []
|
|
1164
|
+
|
|
1165
|
+
if (!lodash.isEqual(row_n_keys, [[]])) {
|
|
1166
|
+
chart_series.forEach(series => {
|
|
1167
|
+
opts.chart_series.push(series.name);
|
|
1161
1168
|
})
|
|
1162
1169
|
}
|
|
1163
1170
|
|
|
1164
1171
|
if (opts.total) {
|
|
1165
|
-
const totalSeries = lodash.clone(
|
|
1172
|
+
const totalSeries = lodash.clone(ethalonSeries);
|
|
1173
|
+
if (opts.totalSeriesSettings) {
|
|
1174
|
+
if (chartType.includes('combo')) {
|
|
1175
|
+
highchartsRenderer.setChartTypeBySeriesType(opts.totalSeriesSettings.chartType, totalSeries);
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
totalSeries.yAxis = opts.totalSeriesSettings.secondaryAxis ? 1 : undefined;
|
|
1179
|
+
}
|
|
1166
1180
|
totalSeries.name = 'Total';
|
|
1167
1181
|
totalSeries.data = [];
|
|
1168
1182
|
col_n_keys.forEach(columnKey => {
|
|
@@ -1178,6 +1192,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1178
1192
|
chart_series.push(totalSeries);
|
|
1179
1193
|
}
|
|
1180
1194
|
|
|
1195
|
+
chart_series = [...chart_series, ...trendSerieses];
|
|
1196
|
+
|
|
1197
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts, opts.total && opts.totalSeriesSettings && opts.totalSeriesSettings.secondaryAxis);
|
|
1198
|
+
|
|
1181
1199
|
chart_series.sort((a,b) => {
|
|
1182
1200
|
return (weights[a.type] || 0) > (weights[b.type] || 0) ? 1 : (weights[a.type] || 0) < (weights[b.type] || 0) ? -1 : 0
|
|
1183
1201
|
});
|
|
@@ -1185,6 +1203,22 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1185
1203
|
return chart_series;
|
|
1186
1204
|
}
|
|
1187
1205
|
|
|
1206
|
+
highchartsRenderer.setChartTypeBySeriesType = function (type, series) {
|
|
1207
|
+
const types = {
|
|
1208
|
+
'line-chart': 'line',
|
|
1209
|
+
'line-chart-smooth': 'spline',
|
|
1210
|
+
'area-chart': 'area',
|
|
1211
|
+
'area-chart-smooth': 'areaspline',
|
|
1212
|
+
'scatter-chart': 'scatter',
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
if (type === 'column-chart' || type === 'column-chart-stacked') {
|
|
1216
|
+
delete series.type;
|
|
1217
|
+
} else {
|
|
1218
|
+
series.type = types[type]
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1188
1222
|
highchartsRenderer.getVariantSeries = function (series, delta_column_options) {
|
|
1189
1223
|
const varianceColor = delta_column_options.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1190
1224
|
series.name = delta_column_options.name.replace('_', '');
|
|
@@ -1219,7 +1253,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1219
1253
|
};
|
|
1220
1254
|
} else if (delta_column_options.chart == 'column' || delta_column_options.chart == 'combo') {
|
|
1221
1255
|
series.type = 'column';
|
|
1222
|
-
} else if (delta_column_options.chart == '
|
|
1256
|
+
} else if (delta_column_options.chart == '' || delta_column_options == 'scatter-chart') {
|
|
1223
1257
|
series.type = 'spline';
|
|
1224
1258
|
series.lineWidth = 0;
|
|
1225
1259
|
series.lineColor = varianceColor;
|
|
@@ -1265,9 +1299,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1265
1299
|
} else if (delta_column_options.chart == 'areaspline') {
|
|
1266
1300
|
series.color = varianceColor;
|
|
1267
1301
|
series.type = 'areaspline'
|
|
1268
|
-
} else if (delta_column_options.chart == '
|
|
1302
|
+
} else if (delta_column_options.chart == 'spline') {
|
|
1269
1303
|
series.color = varianceColor;
|
|
1270
|
-
series.type = '
|
|
1304
|
+
series.type = 'spline'
|
|
1271
1305
|
}
|
|
1272
1306
|
return series;
|
|
1273
1307
|
}
|
|
@@ -1356,7 +1390,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1356
1390
|
});
|
|
1357
1391
|
};
|
|
1358
1392
|
|
|
1359
|
-
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded = function(chartSeries, pivotData, chartOptions, additionOptions, opts) {
|
|
1393
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded = function(chartSeries, pivotData, chartOptions, additionOptions, opts, forceAddSecondaryAxis) {
|
|
1360
1394
|
if (!opts || !opts.comboOptions) {
|
|
1361
1395
|
return;
|
|
1362
1396
|
}
|
|
@@ -1372,11 +1406,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1372
1406
|
}
|
|
1373
1407
|
});
|
|
1374
1408
|
|
|
1375
|
-
if (addSecondYAxis) {
|
|
1409
|
+
if (addSecondYAxis || forceAddSecondaryAxis) {
|
|
1376
1410
|
highchartsRenderer.addSecondYAxis(pivotData, chartOptions, additionOptions, opts);
|
|
1377
1411
|
}
|
|
1378
1412
|
}
|
|
1379
1413
|
|
|
1414
|
+
highchartsRenderer.encodeHTMLBrackets = function (string) {
|
|
1415
|
+
return string.replaceAll('<', '<').replaceAll('>', '>');
|
|
1416
|
+
};
|
|
1417
|
+
|
|
1380
1418
|
highchartsRenderer.addSecondYAxis = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1381
1419
|
const varianceColor = (additionOptions && additionOptions.delta_column.color) || (highchartsRenderer && highchartsRenderer.variance_color) || Highcharts.getOptions().colors[7];
|
|
1382
1420
|
let labels_formatter = opts.comboOptions.secondaryAxisSettings.is_percentage ?
|
|
@@ -1388,7 +1426,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1388
1426
|
min: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.min)) ? opts.comboOptions.secondaryAxisSettings.min : null,
|
|
1389
1427
|
max: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.max)) ? opts.comboOptions.secondaryAxisSettings.max : null,
|
|
1390
1428
|
title: {
|
|
1391
|
-
text: opts.comboOptions.secondaryAxisSettings.name,
|
|
1429
|
+
text: highchartsRenderer.encodeHTMLBrackets(opts.comboOptions.secondaryAxisSettings.name),
|
|
1392
1430
|
style: {
|
|
1393
1431
|
color: varianceColor
|
|
1394
1432
|
}
|
|
@@ -2608,7 +2646,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2608
2646
|
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
2609
2647
|
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
2610
2648
|
}
|
|
2611
|
-
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, true, true,
|
|
2649
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, true, true, additionOptions, opts, chartOptions, chartType);
|
|
2612
2650
|
//chartOptions.drilldown = {}
|
|
2613
2651
|
|
|
2614
2652
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
@@ -3715,15 +3753,25 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3715
3753
|
};
|
|
3716
3754
|
|
|
3717
3755
|
highchartsRenderer.getNewAttrSortingForCol = function (pivotData, sortingOptions) {
|
|
3718
|
-
let
|
|
3719
|
-
|
|
3756
|
+
let rowAttrs, rowKeys, colKeys, colAttrs;
|
|
3757
|
+
rowAttrs = pivotData.rowAttrs;
|
|
3758
|
+
rowKeys = pivotData.rowKeys;
|
|
3720
3759
|
colKeys = pivotData.colKeys;
|
|
3760
|
+
colAttrs = pivotData.colAttrs;
|
|
3761
|
+
|
|
3762
|
+
|
|
3721
3763
|
if (!colAttrs || colAttrs.length == 0) {
|
|
3722
3764
|
return null;
|
|
3723
3765
|
}
|
|
3766
|
+
|
|
3724
3767
|
let values_names_arr = [];
|
|
3725
|
-
|
|
3726
|
-
|
|
3768
|
+
let keysArray = sortingOptions.field ? rowKeys : colKeys;
|
|
3769
|
+
|
|
3770
|
+
lodash.forEach(keysArray, function (val) {
|
|
3771
|
+
let firstArray = sortingOptions.field ? [val[0]] : [];
|
|
3772
|
+
let secondArray = sortingOptions.field ? sortingOptions.field.split(highchartsRenderer.delimer) : [val[0]];
|
|
3773
|
+
let aggregator_subtotal = pivotData.getAggregator(firstArray, secondArray);
|
|
3774
|
+
|
|
3727
3775
|
if (aggregator_subtotal) {
|
|
3728
3776
|
let value_subtotal = aggregator_subtotal.value();
|
|
3729
3777
|
if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
|
|
@@ -3742,19 +3790,28 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3742
3790
|
|
|
3743
3791
|
// map only names
|
|
3744
3792
|
let attr_sorted_values = lodash.map(values_names_arr, 'name');
|
|
3745
|
-
return {name: colAttrs[0], values: attr_sorted_values};
|
|
3793
|
+
return {name: sortingOptions.field ? rowAttrs[0] : colAttrs[0], values: attr_sorted_values};
|
|
3746
3794
|
};
|
|
3747
3795
|
|
|
3748
3796
|
highchartsRenderer.getNewAttrSortingForRow = function (pivotData, sortingOptions) {
|
|
3749
|
-
let rowAttrs, rowKeys;
|
|
3797
|
+
let rowAttrs, rowKeys, colKeys, colAttrs;
|
|
3750
3798
|
rowAttrs = pivotData.rowAttrs;
|
|
3751
3799
|
rowKeys = pivotData.rowKeys;
|
|
3800
|
+
colKeys = pivotData.colKeys;
|
|
3801
|
+
colAttrs = pivotData.colAttrs;
|
|
3802
|
+
|
|
3752
3803
|
if (!rowAttrs || rowAttrs.length == 0) {
|
|
3753
3804
|
return null;
|
|
3754
3805
|
}
|
|
3806
|
+
|
|
3755
3807
|
let values_names_arr = [];
|
|
3756
|
-
|
|
3757
|
-
|
|
3808
|
+
let keysArray = sortingOptions.field ? colKeys : rowKeys;
|
|
3809
|
+
|
|
3810
|
+
lodash.forEach(keysArray, function (val) {
|
|
3811
|
+
let firstArray = sortingOptions.field ? sortingOptions.field.split(highchartsRenderer.delimer) : [val[0]];
|
|
3812
|
+
let secondArray = sortingOptions.field ? [val[0]] : [];
|
|
3813
|
+
let aggregator_subtotal = pivotData.getAggregator(firstArray, secondArray);
|
|
3814
|
+
|
|
3758
3815
|
if (aggregator_subtotal) {
|
|
3759
3816
|
let value_subtotal = aggregator_subtotal.value();
|
|
3760
3817
|
if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
|
|
@@ -3773,7 +3830,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3773
3830
|
|
|
3774
3831
|
// map only names
|
|
3775
3832
|
let attr_sorted_values = lodash.map(values_names_arr, 'name');
|
|
3776
|
-
return {name: rowAttrs[0], values: attr_sorted_values};
|
|
3833
|
+
return {name: sortingOptions.field ? colAttrs[0] : rowAttrs[0], values: attr_sorted_values};
|
|
3777
3834
|
};
|
|
3778
3835
|
|
|
3779
3836
|
highchartsRenderer.generateSortingFunctionByValues = function (sortingOptions, pivotData, opts) {
|
|
@@ -5665,160 +5722,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5665
5722
|
value_name: 'is_percentage',
|
|
5666
5723
|
default_value: false,
|
|
5667
5724
|
hidden: true,
|
|
5668
|
-
}, {
|
|
5669
|
-
element_type: 'checkbox',
|
|
5670
|
-
element_label: 'Sort by variance',
|
|
5671
|
-
value_name: 'sort_by_variance',
|
|
5672
|
-
default_value: false
|
|
5673
|
-
}, {
|
|
5674
|
-
element_type: 'checkbox',
|
|
5675
|
-
element_label: 'Sort by absolute variance',
|
|
5676
|
-
value_name: 'sort_by_absolute_variance',
|
|
5677
|
-
default_value: false
|
|
5678
|
-
}, {
|
|
5679
|
-
element_type: 'checkbox',
|
|
5680
|
-
element_label: 'Filter zero values',
|
|
5681
|
-
value_name: 'is_filter_zero',
|
|
5682
|
-
default_value: false
|
|
5683
|
-
}]
|
|
5684
|
-
},
|
|
5685
|
-
'delta_column_combo': {
|
|
5686
|
-
category_class: 'google-visualization-charteditor-mini-more',
|
|
5687
|
-
category_label: 'Variance',
|
|
5688
|
-
category_type: 'delta_column',
|
|
5689
|
-
elements: [{
|
|
5690
|
-
element_type: 'radio',
|
|
5691
|
-
value_name: 'field',
|
|
5692
|
-
element_label: 'Select Field',
|
|
5693
|
-
element_options: [
|
|
5694
|
-
{label: 'None', value: ''},
|
|
5695
|
-
{label: 'Axis', value: 'category'},
|
|
5696
|
-
{label: 'Legend', value: 'series'},
|
|
5697
|
-
],
|
|
5698
|
-
default_value: ''
|
|
5699
|
-
}, {
|
|
5700
|
-
element_type: 'input',
|
|
5701
|
-
value_name: 'name',
|
|
5702
|
-
element_label: 'Name',
|
|
5703
|
-
default_value: '_Variance'
|
|
5704
|
-
}, {
|
|
5705
|
-
element_type: 'input',
|
|
5706
|
-
value_name: 'formula',
|
|
5707
|
-
element_label: 'Formula',
|
|
5708
|
-
default_value: 'x2-x1'
|
|
5709
|
-
}, {
|
|
5710
|
-
hidden: true,
|
|
5711
|
-
element_type: 'radio',
|
|
5712
|
-
value_name: 'chart',
|
|
5713
|
-
element_label: 'Chart',
|
|
5714
|
-
element_options: [
|
|
5715
|
-
{label: 'Markers', value: ''},
|
|
5716
|
-
{label: 'Line', value: 'line'},
|
|
5717
|
-
{label: 'Smooth Line', value: 'spline'},
|
|
5718
|
-
{label: 'Column', value: 'column'},
|
|
5719
|
-
{label: 'Area', value: 'area'},
|
|
5720
|
-
{label: 'Smooth Area', value: 'areaspline'},
|
|
5721
|
-
],
|
|
5722
|
-
default_value: ''
|
|
5723
|
-
}, {
|
|
5724
|
-
element_type: 'checkbox',
|
|
5725
|
-
element_label: 'Only variance',
|
|
5726
|
-
value_name: 'only_variant',
|
|
5727
|
-
default_value: false
|
|
5728
|
-
}, {
|
|
5729
|
-
element_type: 'checkbox',
|
|
5730
|
-
element_label: 'Same yAxis',
|
|
5731
|
-
value_name: 'same_yaxis',
|
|
5732
|
-
default_value: false,
|
|
5733
|
-
hidden: true,
|
|
5734
|
-
}, {
|
|
5735
|
-
element_type: 'checkbox',
|
|
5736
|
-
element_label: 'Same xAxis',
|
|
5737
|
-
value_name: 'same_xaxis',
|
|
5738
|
-
default_value: false
|
|
5739
|
-
}, {
|
|
5740
|
-
element_type: 'checkbox',
|
|
5741
|
-
element_label: 'Percentage',
|
|
5742
|
-
value_name: 'is_percentage',
|
|
5743
|
-
default_value: false,
|
|
5744
|
-
hidden: true,
|
|
5745
|
-
}, {
|
|
5746
|
-
element_type: 'checkbox',
|
|
5747
|
-
element_label: 'Sort by variance',
|
|
5748
|
-
value_name: 'sort_by_variance',
|
|
5749
|
-
default_value: false
|
|
5750
|
-
}, {
|
|
5751
|
-
element_type: 'checkbox',
|
|
5752
|
-
element_label: 'Sort by absolute variance',
|
|
5753
|
-
value_name: 'sort_by_absolute_variance',
|
|
5754
|
-
default_value: false
|
|
5755
|
-
}]
|
|
5756
|
-
},
|
|
5757
|
-
'delta_column_for_drill_down_combo': {
|
|
5758
|
-
category_class: 'google-visualization-charteditor-mini-more',
|
|
5759
|
-
category_label: 'Variance',
|
|
5760
|
-
category_type: 'delta_column',
|
|
5761
|
-
elements: [{
|
|
5762
|
-
element_type: 'radio',
|
|
5763
|
-
value_name: 'field',
|
|
5764
|
-
element_label: 'Select Field',
|
|
5765
|
-
element_options: [
|
|
5766
|
-
{label: 'None', value: ''},
|
|
5767
|
-
{label: 'Axis', value: 'category'},
|
|
5768
|
-
{label: 'Legend', value: 'series'},
|
|
5769
|
-
],
|
|
5770
|
-
default_value: ''
|
|
5771
|
-
}, {
|
|
5772
|
-
element_type: 'input',
|
|
5773
|
-
value_name: 'name',
|
|
5774
|
-
element_label: 'Name',
|
|
5775
|
-
default_value: '_Variance'
|
|
5776
|
-
}, {
|
|
5777
|
-
element_type: 'input',
|
|
5778
|
-
value_name: 'formula',
|
|
5779
|
-
element_label: 'Formula',
|
|
5780
|
-
default_value: 'x2-x1'
|
|
5781
|
-
}, {
|
|
5782
|
-
element_type: 'input',
|
|
5783
|
-
value_name: 'color',
|
|
5784
|
-
element_label: 'Color',
|
|
5785
|
-
default_value: ''
|
|
5786
|
-
}, {
|
|
5787
|
-
hidden: true,
|
|
5788
|
-
element_type: 'radio',
|
|
5789
|
-
value_name: 'chart',
|
|
5790
|
-
element_label: 'Chart',
|
|
5791
|
-
element_options: [
|
|
5792
|
-
{label: 'Markers', value: ''},
|
|
5793
|
-
{label: 'Line', value: 'line'},
|
|
5794
|
-
{label: 'Smooth Line', value: 'spline'},
|
|
5795
|
-
{label: 'Column', value: 'column'},
|
|
5796
|
-
{label: 'Area', value: 'area'},
|
|
5797
|
-
{label: 'Smooth Area', value: 'areaspline'},
|
|
5798
|
-
],
|
|
5799
|
-
default_value: ''
|
|
5800
|
-
}, {
|
|
5801
|
-
element_type: 'checkbox',
|
|
5802
|
-
element_label: 'Only variance',
|
|
5803
|
-
value_name: 'only_variant',
|
|
5804
|
-
default_value: false
|
|
5805
|
-
}, {
|
|
5806
|
-
element_type: 'checkbox',
|
|
5807
|
-
element_label: 'Same yAxis',
|
|
5808
|
-
value_name: 'same_yaxis',
|
|
5809
|
-
default_value: false,
|
|
5810
|
-
hidden: true,
|
|
5811
|
-
}, {
|
|
5812
|
-
element_type: 'checkbox',
|
|
5813
|
-
element_label: 'Same xAxis',
|
|
5814
|
-
value_name: 'same_xaxis',
|
|
5815
|
-
default_value: false
|
|
5816
|
-
}, {
|
|
5817
|
-
element_type: 'checkbox',
|
|
5818
|
-
element_label: 'Percentage',
|
|
5819
|
-
value_name: 'is_percentage',
|
|
5820
|
-
default_value: false,
|
|
5821
|
-
hidden: true,
|
|
5822
5725
|
}, {
|
|
5823
5726
|
element_type: 'checkbox',
|
|
5824
5727
|
element_label: 'Sort by variance',
|
|
@@ -5896,8 +5799,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5896
5799
|
|
|
5897
5800
|
highchartsRenderer.chartsTypesInfo = {
|
|
5898
5801
|
'combo-chart': {
|
|
5899
|
-
name: '
|
|
5900
|
-
label: '
|
|
5802
|
+
name: 'Combo Chart ',
|
|
5803
|
+
label: 'Combo Chart ',
|
|
5901
5804
|
title: 'Allows for multiple chart display formats in one widget',
|
|
5902
5805
|
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5903
5806
|
axisName: 'X - Axis',
|
|
@@ -6157,7 +6060,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6157
6060
|
highchartsRenderer.suboptions["table_options_transpose"],
|
|
6158
6061
|
highchartsRenderer.suboptions["chart_grid"],
|
|
6159
6062
|
highchartsRenderer.suboptions["negative_number_format"],
|
|
6160
|
-
highchartsRenderer.suboptions["
|
|
6063
|
+
highchartsRenderer.suboptions["delta_column"],
|
|
6161
6064
|
highchartsRenderer.suboptions["error_policy"],
|
|
6162
6065
|
highchartsRenderer.suboptions["from_version"],
|
|
6163
6066
|
highchartsRenderer.suboptions["legends"],
|
|
@@ -6184,7 +6087,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6184
6087
|
highchartsRenderer.suboptions["table_options"],
|
|
6185
6088
|
highchartsRenderer.suboptions["chart"],
|
|
6186
6089
|
highchartsRenderer.suboptions["negative_number_format"],
|
|
6187
|
-
highchartsRenderer.suboptions["
|
|
6090
|
+
highchartsRenderer.suboptions["delta_column_for_drill_down"],
|
|
6188
6091
|
highchartsRenderer.suboptions["error_policy"],
|
|
6189
6092
|
highchartsRenderer.suboptions["from_version"],
|
|
6190
6093
|
highchartsRenderer.suboptions["legends"],
|
|
@@ -7238,12 +7141,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7238
7141
|
return data_row[field_with_variant.name] == variance_config.name && data_row[field_for_sorting.name] != undefined;
|
|
7239
7142
|
});
|
|
7240
7143
|
|
|
7144
|
+
const sorting_variance = widget.options.total_value_options.sorting_variance === '' ? 'asc' : 'desc';
|
|
7145
|
+
|
|
7241
7146
|
if (widget.options.chartOptions.delta_column.sort_by_absolute_variance) {
|
|
7242
7147
|
data_sorted = lodash.sortBy(data_sorted, function (o) {
|
|
7243
|
-
|
|
7148
|
+
if (sorting_variance === 'desc') {
|
|
7149
|
+
return Math.abs(o[val_field.name]) * -1;
|
|
7150
|
+
}
|
|
7151
|
+
|
|
7152
|
+
return Math.abs(o[val_field.name]) * 1;
|
|
7244
7153
|
});
|
|
7245
7154
|
} else {
|
|
7246
|
-
data_sorted = lodash.orderBy(data_sorted, [val_field.name], [
|
|
7155
|
+
data_sorted = lodash.orderBy(data_sorted, [val_field.name], [sorting_variance]);
|
|
7247
7156
|
}
|
|
7248
7157
|
|
|
7249
7158
|
let values_for_sort = lodash.map(data_sorted, function (data_row) {
|