@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarailsshared/dr_renderer",
3
- "version": "1.2.57",
3
+ "version": "1.2.58",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -998,7 +998,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
998
998
  }
999
999
  }
1000
1000
 
1001
- chart_series = [...chart_series, ...trendSerieses]
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 = [...chart_series, ...trendSerieses]
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('<', '&lt;').replaceAll('>', '&gt;');
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 colAttrs, colKeys;
3737
- colAttrs = pivotData.colAttrs;
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
- lodash.forEach(colKeys, function (val) {
3744
- let aggregator_subtotal = pivotData.getAggregator([], [val[0]]);
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
- lodash.forEach(rowKeys, function (val) {
3775
- let aggregator_subtotal = pivotData.getAggregator([val[0]], []);
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
- return Math.abs(o[val_field.name]) * -1;
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], ['desc']);
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) {