@datarailsshared/dr_renderer 1.2.304 → 1.2.306-dragons
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/dr_pivottable.js +7 -1
- package/src/highcharts_renderer.js +109 -184
package/package.json
CHANGED
package/src/dr_pivottable.js
CHANGED
@@ -91,6 +91,7 @@ let initDRPivotTable = function($, window, document) {
|
|
91
91
|
|
92
92
|
DRPivotData.prototype.arrSort = function(attrs) {
|
93
93
|
var a, sortersArr;
|
94
|
+
const sortByValueAttrs = this.sortByValueAttrs;
|
94
95
|
sortersArr = (function() {
|
95
96
|
var l, len1, results;
|
96
97
|
results = [];
|
@@ -100,11 +101,16 @@ let initDRPivotTable = function($, window, document) {
|
|
100
101
|
}
|
101
102
|
return results;
|
102
103
|
}).call(this);
|
104
|
+
|
103
105
|
return function(a, b) {
|
104
106
|
var comparison, i, sorter;
|
105
107
|
for (i in sortersArr) {
|
106
108
|
sorter = sortersArr[i];
|
107
|
-
|
109
|
+
if (sortByValueAttrs.indexOf(attrs[parseInt(i)]) !== -1) {
|
110
|
+
comparison = sorter(a.slice(0, parseInt(i) + 1).join(','), b.slice(0, parseInt(i) + 1).join(','));
|
111
|
+
} else {
|
112
|
+
comparison = sorter(a[i], b[i]);
|
113
|
+
}
|
108
114
|
if (comparison !== 0) {
|
109
115
|
return comparison;
|
110
116
|
}
|
@@ -1150,6 +1150,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1150
1150
|
ob.name = row_n_value.join(highchartsRenderer.delimer)
|
1151
1151
|
.replace(highchartsRenderer.DR_OTHERS_KEY, othersName);
|
1152
1152
|
}
|
1153
|
+
|
1153
1154
|
lodash.forEach(col_n_keys, function (col_n_value, index) {
|
1154
1155
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
1155
1156
|
var val = agg.value();
|
@@ -1391,6 +1392,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1391
1392
|
if (opts.trendLine) {
|
1392
1393
|
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
1393
1394
|
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
1395
|
+
|
1394
1396
|
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
1395
1397
|
trendSeries.className = 'trendSeries';
|
1396
1398
|
trendSeries.name = highchartsRenderer.getTrendSeriesName(trendSeries);
|
@@ -1401,6 +1403,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1401
1403
|
if (colors && colors[i]) {
|
1402
1404
|
trendSeries.color = colors[i];
|
1403
1405
|
}
|
1406
|
+
|
1404
1407
|
trendSerieses.push(trendSeries);
|
1405
1408
|
}
|
1406
1409
|
i++;
|
@@ -1417,6 +1420,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1417
1420
|
}
|
1418
1421
|
|
1419
1422
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
1423
|
+
|
1420
1424
|
if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
1421
1425
|
chart_series.forEach((series, seriesIndex) => {
|
1422
1426
|
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
@@ -2586,8 +2590,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
2586
2590
|
};
|
2587
2591
|
}
|
2588
2592
|
|
2589
|
-
chartOptions
|
2590
|
-
|
2593
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
2594
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
2595
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
2596
|
+
}
|
2591
2597
|
|
2592
2598
|
chartOptions.tooltip = opts.insightsTooltipFunc
|
2593
2599
|
? highchartsRenderer.customFormatterTooltipInsights(pivotData, opts)
|
@@ -2669,9 +2675,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
2669
2675
|
}
|
2670
2676
|
};
|
2671
2677
|
}
|
2672
|
-
|
2673
|
-
chartOptions
|
2674
|
-
|
2678
|
+
|
2679
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
2680
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
2681
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
2682
|
+
}
|
2675
2683
|
|
2676
2684
|
chartOptions.tooltip = {
|
2677
2685
|
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
@@ -2765,8 +2773,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
2765
2773
|
};
|
2766
2774
|
}
|
2767
2775
|
|
2768
|
-
chartOptions
|
2769
|
-
|
2776
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
2777
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
2778
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
2779
|
+
}
|
2770
2780
|
|
2771
2781
|
chartOptions.tooltip = {
|
2772
2782
|
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
@@ -3047,8 +3057,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
3047
3057
|
}
|
3048
3058
|
};
|
3049
3059
|
}
|
3050
|
-
|
3051
|
-
chartOptions
|
3060
|
+
|
3061
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
3062
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
3063
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
3064
|
+
}
|
3052
3065
|
|
3053
3066
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
|
3054
3067
|
|
@@ -3186,8 +3199,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
3186
3199
|
};
|
3187
3200
|
}
|
3188
3201
|
|
3189
|
-
chartOptions
|
3190
|
-
|
3202
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
3203
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
3204
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
3205
|
+
}
|
3191
3206
|
|
3192
3207
|
chartOptions.xAxis = {
|
3193
3208
|
type: 'category',
|
@@ -3373,8 +3388,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
3373
3388
|
};
|
3374
3389
|
}
|
3375
3390
|
|
3376
|
-
chartOptions
|
3377
|
-
|
3391
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
3392
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
3393
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
3394
|
+
}
|
3378
3395
|
|
3379
3396
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
|
3380
3397
|
|
@@ -3456,8 +3473,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
3456
3473
|
};
|
3457
3474
|
}
|
3458
3475
|
|
3459
|
-
chartOptions
|
3460
|
-
|
3476
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
3477
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
3478
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
3479
|
+
}
|
3461
3480
|
|
3462
3481
|
chartOptions.xAxis = {
|
3463
3482
|
categories: pivotData.getColKeys(),
|
@@ -3568,8 +3587,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
3568
3587
|
};
|
3569
3588
|
}
|
3570
3589
|
|
3571
|
-
chartOptions
|
3572
|
-
|
3590
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
3591
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
3592
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
3593
|
+
}
|
3573
3594
|
|
3574
3595
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 3, false);
|
3575
3596
|
chartOptions.legend.useHTML = true;
|
@@ -3687,8 +3708,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
3687
3708
|
};
|
3688
3709
|
}
|
3689
3710
|
|
3690
|
-
chartOptions
|
3691
|
-
|
3711
|
+
if (lodash.get(chartOptions, 'plotOptions.series.point.events')) {
|
3712
|
+
chartOptions.plotOptions.series.point.events.mouseOver = opts.trackUserInsightsTooltipFunc;
|
3713
|
+
chartOptions.plotOptions.series.point.events.mouseOut = opts.trackUserInsightsTooltipFunc;
|
3714
|
+
}
|
3692
3715
|
|
3693
3716
|
if (waterfallOptions.colors) {
|
3694
3717
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 3, false);
|
@@ -4388,72 +4411,42 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4388
4411
|
return ret_str;
|
4389
4412
|
};
|
4390
4413
|
|
4391
|
-
highchartsRenderer.
|
4392
|
-
let rowAttrs, rowKeys, colKeys, colAttrs;
|
4393
|
-
rowAttrs = pivotData.rowAttrs;
|
4394
|
-
rowKeys = pivotData.rowKeys;
|
4395
|
-
colKeys = pivotData.colKeys;
|
4396
|
-
colAttrs = pivotData.colAttrs;
|
4397
|
-
|
4398
|
-
|
4399
|
-
if (!colAttrs || colAttrs.length == 0) {
|
4400
|
-
return null;
|
4401
|
-
}
|
4402
|
-
|
4414
|
+
highchartsRenderer.getSortingByValueOrderList = function (pivotData, sortingOptions, keysArray, attrs, fieldIndex, widget) {
|
4403
4415
|
let values_names_arr = [];
|
4404
|
-
let keysArray = sortingOptions.field ? rowKeys : colKeys;
|
4405
|
-
|
4406
4416
|
lodash.forEach(keysArray, function (val) {
|
4407
|
-
|
4408
|
-
|
4409
|
-
|
4410
|
-
|
4411
|
-
if (
|
4412
|
-
|
4413
|
-
|
4414
|
-
|
4415
|
-
|
4416
|
-
|
4417
|
-
|
4418
|
-
|
4419
|
-
|
4420
|
-
// ORDERING
|
4421
|
-
let sorting_vector = ['asc'];
|
4422
|
-
if (sortingOptions && sortingOptions.type == 'largestToSmallest') {
|
4423
|
-
sorting_vector = ['desc'];
|
4424
|
-
}
|
4425
|
-
values_names_arr = lodash.orderBy(values_names_arr, ['value'], sorting_vector);
|
4426
|
-
|
4427
|
-
// map only names
|
4428
|
-
let attr_sorted_values = lodash.map(values_names_arr, 'name');
|
4429
|
-
return {name: sortingOptions.field ? rowAttrs[0] : colAttrs[0], values: attr_sorted_values};
|
4430
|
-
};
|
4431
|
-
|
4432
|
-
highchartsRenderer.getNewAttrSortingForRow = function (pivotData, sortingOptions) {
|
4433
|
-
let rowAttrs, rowKeys, colKeys, colAttrs;
|
4434
|
-
rowAttrs = pivotData.rowAttrs;
|
4435
|
-
rowKeys = pivotData.rowKeys;
|
4436
|
-
colKeys = pivotData.colKeys;
|
4437
|
-
colAttrs = pivotData.colAttrs;
|
4417
|
+
const firstArray = [];
|
4418
|
+
const secondArray = val.slice(0, fieldIndex + 1);
|
4419
|
+
|
4420
|
+
let valueForComparison;
|
4421
|
+
if (sortingOptions.sort_by === 'variance') {
|
4422
|
+
const varianceConfig = widget.options.chartOptions.delta_column;
|
4423
|
+
const data = pivotData.input;
|
4424
|
+
const varianceField = varianceConfig.field === 'category' ? widget.cols[0] : widget.rows[0];
|
4425
|
+
const varianceRowsForCurrentKey = lodash.filter(data, row =>
|
4426
|
+
row[varianceField.name] === varianceConfig.name
|
4427
|
+
&& lodash.every(secondArray, (item, index) => row[attrs[index]] === item)
|
4428
|
+
);
|
4438
4429
|
|
4439
|
-
|
4440
|
-
|
4441
|
-
|
4430
|
+
valueForComparison = lodash.reduce(varianceRowsForCurrentKey, (a, d) => a + d[widget.vals[0].name], 0);
|
4431
|
+
} else {
|
4432
|
+
let getAggregatorParams = [firstArray, secondArray];
|
4442
4433
|
|
4443
|
-
|
4444
|
-
|
4434
|
+
if (lodash.includes(pivotData.rowAttrs, attrs[fieldIndex])) {
|
4435
|
+
getAggregatorParams = lodash.reverse(getAggregatorParams);
|
4436
|
+
}
|
4437
|
+
|
4438
|
+
let aggregator_subtotal = pivotData.getAggregator(...getAggregatorParams);
|
4445
4439
|
|
4446
|
-
|
4447
|
-
|
4448
|
-
|
4449
|
-
|
4440
|
+
if (aggregator_subtotal) {
|
4441
|
+
valueForComparison = aggregator_subtotal.value();
|
4442
|
+
}
|
4443
|
+
}
|
4450
4444
|
|
4451
|
-
if (
|
4452
|
-
|
4453
|
-
|
4454
|
-
value_subtotal = Math.abs(value_subtotal);
|
4445
|
+
if (typeof valueForComparison !== 'undefined') {
|
4446
|
+
if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(valueForComparison))) {
|
4447
|
+
valueForComparison = Math.abs(valueForComparison);
|
4455
4448
|
}
|
4456
|
-
values_names_arr.push({name:
|
4449
|
+
values_names_arr.push({name: secondArray.join(','), value: valueForComparison});
|
4457
4450
|
}
|
4458
4451
|
});
|
4459
4452
|
|
@@ -4465,36 +4458,33 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4465
4458
|
values_names_arr = lodash.orderBy(values_names_arr, ['value'], sorting_vector);
|
4466
4459
|
|
4467
4460
|
// map only names
|
4468
|
-
|
4469
|
-
return {name: sortingOptions.field ? colAttrs[0] : rowAttrs[0], values: attr_sorted_values};
|
4461
|
+
return lodash.map(values_names_arr, 'name');
|
4470
4462
|
};
|
4471
4463
|
|
4472
|
-
highchartsRenderer.generateSortingFunctionByValues = function (
|
4473
|
-
let new_map;
|
4474
|
-
let axis = highchartsRenderer.getAxis(sortingOptions.axis, opts);
|
4475
|
-
if (axis == 'col_total') {
|
4476
|
-
new_map = highchartsRenderer.getNewAttrSortingForCol(pivotData, sortingOptions);
|
4477
|
-
} else if (axis == 'row_total') {
|
4478
|
-
new_map = highchartsRenderer.getNewAttrSortingForRow(pivotData, sortingOptions);
|
4479
|
-
}
|
4480
|
-
|
4464
|
+
highchartsRenderer.generateSortingFunctionByValues = function (sortByValueSettings, pivotData, opts, widget) {
|
4481
4465
|
let old_sorters_function = opts.sorters;
|
4482
4466
|
if (!old_sorters_function) {
|
4483
4467
|
old_sorters_function = function () {
|
4484
4468
|
};
|
4485
4469
|
}
|
4486
|
-
|
4487
|
-
|
4488
|
-
|
4489
|
-
|
4490
|
-
|
4491
|
-
|
4492
|
-
|
4493
|
-
|
4470
|
+
return function (attr) {
|
4471
|
+
const sortingOptions = lodash.find(sortByValueSettings, fieldSorting => fieldSorting.name === attr);
|
4472
|
+
if (sortingOptions) {
|
4473
|
+
const axis = highchartsRenderer.getAxis(_.includes(pivotData.colAttrs, attr) ? 'col_total' : 'row_total', opts);
|
4474
|
+
const isColumnSort = axis === 'col_total';
|
4475
|
+
const fieldIndex = lodash.findIndex(isColumnSort ? pivotData.colAttrs : pivotData.rowAttrs, name => name === attr);
|
4476
|
+
const orderedNamesList = highchartsRenderer.getSortingByValueOrderList(
|
4477
|
+
pivotData,
|
4478
|
+
sortingOptions.sorting,
|
4479
|
+
pivotData[isColumnSort ? 'colKeys' : 'rowKeys'],
|
4480
|
+
pivotData[isColumnSort ? 'colAttrs' : 'rowAttrs'],
|
4481
|
+
fieldIndex,
|
4482
|
+
widget
|
4483
|
+
);
|
4484
|
+
return $.pivotUtilities.sortAs(orderedNamesList);
|
4485
|
+
} else {
|
4486
|
+
return old_sorters_function(attr);
|
4494
4487
|
}
|
4495
|
-
return new_sorters_function;
|
4496
|
-
} else {
|
4497
|
-
return old_sorters_function;
|
4498
4488
|
}
|
4499
4489
|
};
|
4500
4490
|
|
@@ -4698,6 +4688,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4698
4688
|
result = null;
|
4699
4689
|
try {
|
4700
4690
|
pivotData = $.pivotUtilities.getPivotDataModel(rowData, opts);
|
4691
|
+
pivotData.sortByValueAttrs = [];
|
4701
4692
|
try {
|
4702
4693
|
if (options && options.onlyOptions) {
|
4703
4694
|
if (!opts.rendererOptions) {
|
@@ -4705,9 +4696,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4705
4696
|
}
|
4706
4697
|
opts.rendererOptions.onlyOptions = true;
|
4707
4698
|
}
|
4708
|
-
|
4709
|
-
|
4710
|
-
|
4699
|
+
|
4700
|
+
const sortByValueSettings = lodash.filter(
|
4701
|
+
lodash.get(widget, 'options.sortingFields', []),
|
4702
|
+
sortingField => lodash.includes(['field_values', 'variance'], lodash.get(sortingField, 'sorting.sort_by'))
|
4703
|
+
);
|
4704
|
+
|
4705
|
+
if (sortByValueSettings.length) {
|
4706
|
+
pivotData.sortByValueAttrs = lodash.map(sortByValueSettings, fieldSorting => fieldSorting.name);
|
4707
|
+
let new_sorting_function = highchartsRenderer.generateSortingFunctionByValues(sortByValueSettings, pivotData, opts, widget);
|
4711
4708
|
opts.sorters = new_sorting_function;
|
4712
4709
|
optsFiltered.sorters = new_sorting_function;
|
4713
4710
|
pivotData.sorters = new_sorting_function;
|
@@ -7058,18 +7055,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
7058
7055
|
value_name: 'is_percentage',
|
7059
7056
|
default_value: false,
|
7060
7057
|
hidden: true,
|
7061
|
-
}, {
|
7062
|
-
element_type: 'checkbox',
|
7063
|
-
element_label: 'Sort by variance',
|
7064
|
-
value_name: 'sort_by_variance',
|
7065
|
-
default_value: false,
|
7066
|
-
hidden: true
|
7067
|
-
}, {
|
7068
|
-
element_type: 'checkbox',
|
7069
|
-
element_label: 'Sort by absolute variance',
|
7070
|
-
value_name: 'sort_by_absolute_variance',
|
7071
|
-
default_value: false,
|
7072
|
-
hidden: true
|
7073
7058
|
}]
|
7074
7059
|
},
|
7075
7060
|
'delta_column_for_drill_down': {
|
@@ -7136,18 +7121,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
7136
7121
|
value_name: 'is_percentage',
|
7137
7122
|
default_value: false,
|
7138
7123
|
hidden: true,
|
7139
|
-
}, {
|
7140
|
-
element_type: 'checkbox',
|
7141
|
-
element_label: 'Sort by variance',
|
7142
|
-
value_name: 'sort_by_variance',
|
7143
|
-
default_value: false,
|
7144
|
-
hidden: true
|
7145
|
-
}, {
|
7146
|
-
element_type: 'checkbox',
|
7147
|
-
element_label: 'Sort by absolute variance',
|
7148
|
-
value_name: 'sort_by_absolute_variance',
|
7149
|
-
default_value: false,
|
7150
|
-
hidden: true
|
7151
7124
|
}, {
|
7152
7125
|
element_type: 'checkbox',
|
7153
7126
|
element_label: 'Filter zero values',
|
@@ -8664,7 +8637,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
8664
8637
|
const isCustomSorting = widget.options.sortingFields && Array.isArray(widget.options.sortingFields) && widget.options.sortingFields.length > 0;
|
8665
8638
|
if (isCustomSorting) {
|
8666
8639
|
lodash.forEach(datesFields, function (field) {
|
8667
|
-
const fieldToSort = lodash.find(
|
8640
|
+
const fieldToSort = lodash.find(
|
8641
|
+
widget.options.sortingFields, element => element.id === field.id && lodash.get(element, 'sorting.sort_by') === 'field_items'
|
8642
|
+
);
|
8668
8643
|
field.sorting = fieldToSort ? fieldToSort.sorting : field.sorting;
|
8669
8644
|
});
|
8670
8645
|
}
|
@@ -8746,7 +8721,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
8746
8721
|
});
|
8747
8722
|
} else if (isCustomSorting) {
|
8748
8723
|
lodash.forEach(rowsAndCols, function (field) {
|
8749
|
-
const fieldToSort = lodash.find(
|
8724
|
+
const fieldToSort = lodash.find(
|
8725
|
+
widget.options.sortingFields, element => element.id === field.id && lodash.get(element, 'sorting.sort_by') === 'field_items'
|
8726
|
+
);
|
8750
8727
|
field.sorting = fieldToSort ? fieldToSort.sorting : field.sorting;
|
8751
8728
|
});
|
8752
8729
|
}
|
@@ -8781,61 +8758,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
8781
8758
|
}
|
8782
8759
|
|
8783
8760
|
/****** END *******/
|
8784
|
-
|
8785
|
-
|
8786
|
-
|
8787
|
-
(widget.options.chartOptions.delta_column.sort_by_variance ||
|
8788
|
-
widget.options.chartOptions.delta_column.sort_by_absolute_variance) &&
|
8789
|
-
widget.rows.length > 0 &&
|
8790
|
-
widget.cols.length > 0 &&
|
8791
|
-
widget.vals.length
|
8792
|
-
) {
|
8793
|
-
let variance_config = widget.options.chartOptions.delta_column;
|
8794
|
-
let val_field = widget.vals[0];
|
8795
|
-
let field_for_sorting = null;
|
8796
|
-
let field_with_variant = null;
|
8797
|
-
if (variance_config.field == "series") {
|
8798
|
-
field_for_sorting = widget.cols[0];
|
8799
|
-
field_with_variant = widget.rows[0];
|
8800
|
-
} else if (variance_config.field == "category") {
|
8801
|
-
field_for_sorting = widget.rows[0];
|
8802
|
-
field_with_variant = widget.cols[0];
|
8803
|
-
}
|
8804
|
-
|
8805
|
-
let data_sorted = lodash.filter(data, function (data_row) {
|
8806
|
-
return data_row[field_with_variant.name] == variance_config.name && data_row[field_for_sorting.name] != undefined;
|
8807
|
-
});
|
8808
|
-
|
8809
|
-
const sorting_variance = widget.options.total_value_options && widget.options.total_value_options.sorting_variance === '' ? 'asc' : 'desc';
|
8810
|
-
|
8811
|
-
if (widget.options.chartOptions.delta_column.sort_by_absolute_variance) {
|
8812
|
-
data_sorted = lodash.sortBy(data_sorted, function (o) {
|
8813
|
-
if (sorting_variance === 'desc') {
|
8814
|
-
return Math.abs(o[val_field.name]) * -1;
|
8815
|
-
}
|
8816
|
-
|
8817
|
-
return Math.abs(o[val_field.name]) * 1;
|
8818
|
-
});
|
8819
|
-
} else {
|
8820
|
-
data_sorted = lodash.orderBy(data_sorted, [val_field.name], [sorting_variance]);
|
8821
|
-
}
|
8822
|
-
|
8823
|
-
let values_for_sort = lodash.map(data_sorted, function (data_row) {
|
8824
|
-
return data_row[field_for_sorting.name];
|
8825
|
-
});
|
8826
|
-
|
8827
|
-
values_for_sort = lodash.uniq(values_for_sort);
|
8828
|
-
|
8829
|
-
if (values_for_sort.length > 0) {
|
8830
|
-
let field = lodash.find(datesFields, {name: field_for_sorting.name});
|
8831
|
-
if (field) {
|
8832
|
-
field.values = values_for_sort;
|
8833
|
-
field.sorting = null;
|
8834
|
-
} else {
|
8835
|
-
datesFields.push({name: field_for_sorting.name, values: values_for_sort});
|
8836
|
-
}
|
8837
|
-
}
|
8838
|
-
} else if (widget.options && widget.options.sortingValues) {
|
8761
|
+
|
8762
|
+
// TODO: Remove. sortingValues looks like lagacy which is not in use neither in webclient nor in renderer
|
8763
|
+
if (widget.options && widget.options.sortingValues) {
|
8839
8764
|
var field = lodash.find(datesFields, {name: widget.options.sortingValues.field});
|
8840
8765
|
if (field) {
|
8841
8766
|
field.values = widget.options.sortingValues.values;
|