@datarailsshared/dr_renderer 1.2.57 → 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 +61 -16
package/package.json
CHANGED
|
@@ -998,7 +998,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
998
998
|
}
|
|
999
999
|
}
|
|
1000
1000
|
|
|
1001
|
-
chart_series = [
|
|
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
|
+
}
|
|
1002
1008
|
|
|
1003
1009
|
if (opts.total) {
|
|
1004
1010
|
const newSeries = lodash.clone(ethalonSeries);
|
|
@@ -1018,6 +1024,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1018
1024
|
chart_series.push(newSeries);
|
|
1019
1025
|
}
|
|
1020
1026
|
|
|
1027
|
+
chart_series = [...chart_series, ...trendSerieses]
|
|
1028
|
+
|
|
1021
1029
|
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts, opts.total && opts.totalSeriesSettings && opts.totalSeriesSettings.secondaryAxis);
|
|
1022
1030
|
|
|
1023
1031
|
return chart_series;
|
|
@@ -1141,18 +1149,24 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1141
1149
|
|
|
1142
1150
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1143
1151
|
|
|
1144
|
-
if (opts.comboOptions && chartType.includes('combo')) {
|
|
1152
|
+
if (opts.comboOptions && chartType.includes('combo') && !lodash.isEqual(row_n_keys, [[]])) {
|
|
1145
1153
|
chart_series.forEach((series, seriesIndex) => {
|
|
1146
1154
|
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
1147
1155
|
if (savedSeriesOption) {
|
|
1148
1156
|
highchartsRenderer.setChartTypeBySeriesType(savedSeriesOption.chartType, series);
|
|
1149
|
-
} else if (seriesIndex === chart_series.length - 1 && !has_delta) {
|
|
1157
|
+
} else if (seriesIndex === chart_series.length - 1 && chart_series.length > 1 && !has_delta && !opts.total && !trendSerieses.length) {
|
|
1150
1158
|
series.type = 'line';
|
|
1151
1159
|
}
|
|
1152
1160
|
});
|
|
1153
1161
|
}
|
|
1154
1162
|
|
|
1155
|
-
chart_series = [
|
|
1163
|
+
opts.chart_series = []
|
|
1164
|
+
|
|
1165
|
+
if (!lodash.isEqual(row_n_keys, [[]])) {
|
|
1166
|
+
chart_series.forEach(series => {
|
|
1167
|
+
opts.chart_series.push(series.name);
|
|
1168
|
+
})
|
|
1169
|
+
}
|
|
1156
1170
|
|
|
1157
1171
|
if (opts.total) {
|
|
1158
1172
|
const totalSeries = lodash.clone(ethalonSeries);
|
|
@@ -1178,6 +1192,8 @@ 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
|
+
|
|
1181
1197
|
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts, opts.total && opts.totalSeriesSettings && opts.totalSeriesSettings.secondaryAxis);
|
|
1182
1198
|
|
|
1183
1199
|
chart_series.sort((a,b) => {
|
|
@@ -1395,6 +1411,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1395
1411
|
}
|
|
1396
1412
|
}
|
|
1397
1413
|
|
|
1414
|
+
highchartsRenderer.encodeHTMLBrackets = function (string) {
|
|
1415
|
+
return string.replaceAll('<', '<').replaceAll('>', '>');
|
|
1416
|
+
};
|
|
1417
|
+
|
|
1398
1418
|
highchartsRenderer.addSecondYAxis = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1399
1419
|
const varianceColor = (additionOptions && additionOptions.delta_column.color) || (highchartsRenderer && highchartsRenderer.variance_color) || Highcharts.getOptions().colors[7];
|
|
1400
1420
|
let labels_formatter = opts.comboOptions.secondaryAxisSettings.is_percentage ?
|
|
@@ -1406,7 +1426,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1406
1426
|
min: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.min)) ? opts.comboOptions.secondaryAxisSettings.min : null,
|
|
1407
1427
|
max: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.max)) ? opts.comboOptions.secondaryAxisSettings.max : null,
|
|
1408
1428
|
title: {
|
|
1409
|
-
text: opts.comboOptions.secondaryAxisSettings.name,
|
|
1429
|
+
text: highchartsRenderer.encodeHTMLBrackets(opts.comboOptions.secondaryAxisSettings.name),
|
|
1410
1430
|
style: {
|
|
1411
1431
|
color: varianceColor
|
|
1412
1432
|
}
|
|
@@ -3733,15 +3753,25 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3733
3753
|
};
|
|
3734
3754
|
|
|
3735
3755
|
highchartsRenderer.getNewAttrSortingForCol = function (pivotData, sortingOptions) {
|
|
3736
|
-
let
|
|
3737
|
-
|
|
3756
|
+
let rowAttrs, rowKeys, colKeys, colAttrs;
|
|
3757
|
+
rowAttrs = pivotData.rowAttrs;
|
|
3758
|
+
rowKeys = pivotData.rowKeys;
|
|
3738
3759
|
colKeys = pivotData.colKeys;
|
|
3760
|
+
colAttrs = pivotData.colAttrs;
|
|
3761
|
+
|
|
3762
|
+
|
|
3739
3763
|
if (!colAttrs || colAttrs.length == 0) {
|
|
3740
3764
|
return null;
|
|
3741
3765
|
}
|
|
3766
|
+
|
|
3742
3767
|
let values_names_arr = [];
|
|
3743
|
-
|
|
3744
|
-
|
|
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
|
+
|
|
3745
3775
|
if (aggregator_subtotal) {
|
|
3746
3776
|
let value_subtotal = aggregator_subtotal.value();
|
|
3747
3777
|
if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
|
|
@@ -3760,19 +3790,28 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3760
3790
|
|
|
3761
3791
|
// map only names
|
|
3762
3792
|
let attr_sorted_values = lodash.map(values_names_arr, 'name');
|
|
3763
|
-
return {name: colAttrs[0], values: attr_sorted_values};
|
|
3793
|
+
return {name: sortingOptions.field ? rowAttrs[0] : colAttrs[0], values: attr_sorted_values};
|
|
3764
3794
|
};
|
|
3765
3795
|
|
|
3766
3796
|
highchartsRenderer.getNewAttrSortingForRow = function (pivotData, sortingOptions) {
|
|
3767
|
-
let rowAttrs, rowKeys;
|
|
3797
|
+
let rowAttrs, rowKeys, colKeys, colAttrs;
|
|
3768
3798
|
rowAttrs = pivotData.rowAttrs;
|
|
3769
3799
|
rowKeys = pivotData.rowKeys;
|
|
3800
|
+
colKeys = pivotData.colKeys;
|
|
3801
|
+
colAttrs = pivotData.colAttrs;
|
|
3802
|
+
|
|
3770
3803
|
if (!rowAttrs || rowAttrs.length == 0) {
|
|
3771
3804
|
return null;
|
|
3772
3805
|
}
|
|
3806
|
+
|
|
3773
3807
|
let values_names_arr = [];
|
|
3774
|
-
|
|
3775
|
-
|
|
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
|
+
|
|
3776
3815
|
if (aggregator_subtotal) {
|
|
3777
3816
|
let value_subtotal = aggregator_subtotal.value();
|
|
3778
3817
|
if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
|
|
@@ -3791,7 +3830,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3791
3830
|
|
|
3792
3831
|
// map only names
|
|
3793
3832
|
let attr_sorted_values = lodash.map(values_names_arr, 'name');
|
|
3794
|
-
return {name: rowAttrs[0], values: attr_sorted_values};
|
|
3833
|
+
return {name: sortingOptions.field ? colAttrs[0] : rowAttrs[0], values: attr_sorted_values};
|
|
3795
3834
|
};
|
|
3796
3835
|
|
|
3797
3836
|
highchartsRenderer.generateSortingFunctionByValues = function (sortingOptions, pivotData, opts) {
|
|
@@ -7102,12 +7141,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7102
7141
|
return data_row[field_with_variant.name] == variance_config.name && data_row[field_for_sorting.name] != undefined;
|
|
7103
7142
|
});
|
|
7104
7143
|
|
|
7144
|
+
const sorting_variance = widget.options.total_value_options.sorting_variance === '' ? 'asc' : 'desc';
|
|
7145
|
+
|
|
7105
7146
|
if (widget.options.chartOptions.delta_column.sort_by_absolute_variance) {
|
|
7106
7147
|
data_sorted = lodash.sortBy(data_sorted, function (o) {
|
|
7107
|
-
|
|
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;
|
|
7108
7153
|
});
|
|
7109
7154
|
} else {
|
|
7110
|
-
data_sorted = lodash.orderBy(data_sorted, [val_field.name], [
|
|
7155
|
+
data_sorted = lodash.orderBy(data_sorted, [val_field.name], [sorting_variance]);
|
|
7111
7156
|
}
|
|
7112
7157
|
|
|
7113
7158
|
let values_for_sort = lodash.map(data_sorted, function (data_row) {
|