@datarailsshared/dr_renderer 1.2.301-dragons → 1.2.303

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.301-dragons",
3
+ "version": "1.2.303",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -91,7 +91,6 @@ let initDRPivotTable = function($, window, document) {
91
91
 
92
92
  DRPivotData.prototype.arrSort = function(attrs) {
93
93
  var a, sortersArr;
94
- const sortByValueAttrs = this.sortByValueAttrs;
95
94
  sortersArr = (function() {
96
95
  var l, len1, results;
97
96
  results = [];
@@ -101,16 +100,11 @@ let initDRPivotTable = function($, window, document) {
101
100
  }
102
101
  return results;
103
102
  }).call(this);
104
-
105
103
  return function(a, b) {
106
104
  var comparison, i, sorter;
107
105
  for (i in sortersArr) {
108
106
  sorter = sortersArr[i];
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
- }
107
+ comparison = sorter(a[i], b[i]);
114
108
  if (comparison !== 0) {
115
109
  return comparison;
116
110
  }
@@ -81,11 +81,6 @@ const HIGHCHARTS_CONSTANTS = {
81
81
  MAX_SELECTED_ITEMS_CHARECHTERS_IN_LABEL: 50,
82
82
  }
83
83
 
84
- const SUBOPTIONS_FONT_SIZE_VALUES = (new Array(19).fill(null).map(function (item, index) {
85
- const fontValue = index + 6;
86
- return { label: fontValue, value: fontValue }
87
- }));
88
-
89
84
  const SUBOPTIONS_FONTS = [
90
85
  'Arial',
91
86
  'Arial Black',
@@ -694,7 +689,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
694
689
  setTimeout(() => {
695
690
  var aggr = highchartsRenderer.defaultFormatterToTooltip(pivotData, opts);
696
691
  const formatted_value_to_return = aggr.bind(this)();
697
- opts.insightsTooltipFunc({...this, formatted_value_to_return, ...insight});
692
+ opts.insightsTooltipFunc(lodash.merge(lodash.cloneDeep(this), formatted_value_to_return, insight));
698
693
  });
699
694
  }
700
695
  }
@@ -1155,7 +1150,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1155
1150
  ob.name = row_n_value.join(highchartsRenderer.delimer)
1156
1151
  .replace(highchartsRenderer.DR_OTHERS_KEY, othersName);
1157
1152
  }
1158
-
1159
1153
  lodash.forEach(col_n_keys, function (col_n_value, index) {
1160
1154
  var agg = pivotData.getAggregator(row_n_value, col_n_value);
1161
1155
  var val = agg.value();
@@ -1397,7 +1391,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1397
1391
  if (opts.trendLine) {
1398
1392
  const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
1399
1393
  const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
1400
-
1401
1394
  const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
1402
1395
  trendSeries.className = 'trendSeries';
1403
1396
  trendSeries.name = highchartsRenderer.getTrendSeriesName(trendSeries);
@@ -1408,7 +1401,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1408
1401
  if (colors && colors[i]) {
1409
1402
  trendSeries.color = colors[i];
1410
1403
  }
1411
-
1412
1404
  trendSerieses.push(trendSeries);
1413
1405
  }
1414
1406
  i++;
@@ -1425,7 +1417,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1425
1417
  }
1426
1418
 
1427
1419
  let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
1428
-
1429
1420
  if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1430
1421
  chart_series.forEach((series, seriesIndex) => {
1431
1422
  const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
@@ -4397,25 +4388,72 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4397
4388
  return ret_str;
4398
4389
  };
4399
4390
 
4400
- highchartsRenderer.getSortingByValueOrderList = function (pivotData, sortingOptions, keysArray, attrs, fieldIndex) {
4391
+ highchartsRenderer.getNewAttrSortingForCol = function (pivotData, sortingOptions) {
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
+
4401
4403
  let values_names_arr = [];
4404
+ let keysArray = sortingOptions.field ? rowKeys : colKeys;
4405
+
4402
4406
  lodash.forEach(keysArray, function (val) {
4403
- const firstArray = [];
4404
- const secondArray = val.slice(0, fieldIndex + 1);
4405
- let getAggregatorParams = [firstArray, secondArray];
4407
+ let firstArray = sortingOptions.field ? [val[0]] : [];
4408
+ let secondArray = sortingOptions.field ? sortingOptions.field.split(highchartsRenderer.delimer) : [val[0]];
4409
+ let aggregator_subtotal = pivotData.getAggregator(firstArray, secondArray);
4406
4410
 
4407
- if (lodash.includes(pivotData.rowAttrs, attrs[fieldIndex])) {
4408
- getAggregatorParams = lodash.reverse(getAggregatorParams);
4411
+ if (aggregator_subtotal) {
4412
+ let value_subtotal = aggregator_subtotal.value();
4413
+ if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
4414
+ value_subtotal = Math.abs(value_subtotal);
4415
+ }
4416
+ values_names_arr.push({name: val[0], value: value_subtotal});
4409
4417
  }
4418
+ });
4410
4419
 
4411
- let aggregator_subtotal = pivotData.getAggregator(...getAggregatorParams);
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;
4438
+
4439
+ if (!rowAttrs || rowAttrs.length == 0) {
4440
+ return null;
4441
+ }
4442
+
4443
+ let values_names_arr = [];
4444
+ let keysArray = sortingOptions.field ? colKeys : rowKeys;
4445
+
4446
+ lodash.forEach(keysArray, function (val) {
4447
+ let firstArray = sortingOptions.field ? sortingOptions.field.split(highchartsRenderer.delimer) : [val[0]];
4448
+ let secondArray = sortingOptions.field ? [val[0]] : [];
4449
+ let aggregator_subtotal = pivotData.getAggregator(firstArray, secondArray);
4412
4450
 
4413
4451
  if (aggregator_subtotal) {
4414
4452
  let value_subtotal = aggregator_subtotal.value();
4415
4453
  if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
4416
4454
  value_subtotal = Math.abs(value_subtotal);
4417
4455
  }
4418
- values_names_arr.push({name: secondArray.join(','), value: value_subtotal});
4456
+ values_names_arr.push({name: val[0], value: value_subtotal});
4419
4457
  }
4420
4458
  });
4421
4459
 
@@ -4427,32 +4465,36 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4427
4465
  values_names_arr = lodash.orderBy(values_names_arr, ['value'], sorting_vector);
4428
4466
 
4429
4467
  // map only names
4430
- return lodash.map(values_names_arr, 'name');
4468
+ let attr_sorted_values = lodash.map(values_names_arr, 'name');
4469
+ return {name: sortingOptions.field ? colAttrs[0] : rowAttrs[0], values: attr_sorted_values};
4431
4470
  };
4432
4471
 
4433
- highchartsRenderer.generateSortingFunctionByValues = function (sortByValueSettings, pivotData, opts, widget) {
4472
+ highchartsRenderer.generateSortingFunctionByValues = function (sortingOptions, pivotData, opts) {
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
+
4434
4481
  let old_sorters_function = opts.sorters;
4435
4482
  if (!old_sorters_function) {
4436
4483
  old_sorters_function = function () {
4437
4484
  };
4438
4485
  }
4439
- return function (attr) {
4440
- const sortingOptions = lodash.find(sortByValueSettings, fieldSorting => fieldSorting.name === attr);
4441
- if (sortingOptions) {
4442
- const axis = highchartsRenderer.getAxis(_.includes(pivotData.colAttrs, attr) ? 'col_total' : 'row_total', opts);
4443
- const isColumnSort = axis === 'col_total';
4444
- const fieldIndex = lodash.findIndex(isColumnSort ? pivotData.colAttrs : pivotData.rowAttrs, name => name === attr);
4445
- const orderedNamesList = highchartsRenderer.getSortingByValueOrderList(
4446
- pivotData,
4447
- sortingOptions.sorting,
4448
- pivotData[isColumnSort ? 'colKeys' : 'rowKeys'],
4449
- pivotData[isColumnSort ? 'colAttrs' : 'rowAttrs'],
4450
- fieldIndex
4451
- );
4452
- return $.pivotUtilities.sortAs(orderedNamesList);
4453
- } else {
4454
- return old_sorters_function(attr);
4486
+ if (new_map) {
4487
+ var sortAs = $.pivotUtilities.sortAs;
4488
+ let new_sorters_function = function (attr) {
4489
+ if (new_map.name == attr) {
4490
+ return $.pivotUtilities.sortAs(new_map.values);
4491
+ } else {
4492
+ return old_sorters_function(attr);
4493
+ }
4455
4494
  }
4495
+ return new_sorters_function;
4496
+ } else {
4497
+ return old_sorters_function;
4456
4498
  }
4457
4499
  };
4458
4500
 
@@ -4656,7 +4698,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4656
4698
  result = null;
4657
4699
  try {
4658
4700
  pivotData = $.pivotUtilities.getPivotDataModel(rowData, opts);
4659
- pivotData.sortByValueAttrs = [];
4660
4701
  try {
4661
4702
  if (options && options.onlyOptions) {
4662
4703
  if (!opts.rendererOptions) {
@@ -4664,15 +4705,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4664
4705
  }
4665
4706
  opts.rendererOptions.onlyOptions = true;
4666
4707
  }
4667
-
4668
- const sortByValueSettings = lodash.filter(
4669
- lodash.get(widget, 'options.sortingFields', []),
4670
- sortingField => lodash.get(sortingField, 'sorting.sort_by') === 'field_values'
4671
- );
4672
-
4673
- if (sortByValueSettings.length) {
4674
- pivotData.sortByValueAttrs = lodash.map(sortByValueSettings, fieldSorting => fieldSorting.name);
4675
- let new_sorting_function = highchartsRenderer.generateSortingFunctionByValues(sortByValueSettings, pivotData, opts, widget);
4708
+ var totalFilters = lodash.get(opts, 'rendererOptions.total_value_options', null);
4709
+ if (totalFilters && totalFilters.sorting_options) {
4710
+ let new_sorting_function = highchartsRenderer.generateSortingFunctionByValues(totalFilters.sorting_options, pivotData, opts);
4676
4711
  opts.sorters = new_sorting_function;
4677
4712
  optsFiltered.sorters = new_sorting_function;
4678
4713
  pivotData.sorters = new_sorting_function;
@@ -4937,7 +4972,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4937
4972
  const fiscalYearMonthsModifier = highchartsRenderer.getFiscalYearMonthModifier();
4938
4973
 
4939
4974
  let date = moment_lib(tryParse).utcOffset(0);
4940
- if (['quarter', 'year'].includes(timeframe)) {
4975
+ if (lodash.includes(['quarter', 'year'], timeframe)) {
4941
4976
  date = date.subtract(fiscalYearMonthsModifier, 'M');
4942
4977
  }
4943
4978
 
@@ -5975,6 +6010,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5975
6010
 
5976
6011
  highchartsRenderer.widgetPlaceholders = lodash.assign({}, $.pivotUtilities.errorHandling.placeholders);
5977
6012
 
6013
+ const suboptionsFontSizeValues = (lodash.map(lodash.fill(new Array(19), null), function (item, index) {
6014
+ const fontValue = index + 6;
6015
+ return { label: fontValue, value: fontValue }
6016
+ }));
6017
+
5978
6018
  highchartsRenderer.suboptions = {
5979
6019
  'widget_library': {
5980
6020
  is_hidden: true,
@@ -6136,7 +6176,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6136
6176
  element_type: 'select',
6137
6177
  value_name: 'columns_font_size',
6138
6178
  element_label: 'Font size',
6139
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6179
+ element_options: suboptionsFontSizeValues,
6140
6180
  default_value: '10'
6141
6181
  },
6142
6182
  {
@@ -6165,7 +6205,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6165
6205
  element_type: 'select',
6166
6206
  value_name: 'rows_font_size',
6167
6207
  element_label: 'Font size',
6168
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6208
+ element_options: suboptionsFontSizeValues,
6169
6209
  default_value: '10'
6170
6210
  },
6171
6211
  {
@@ -6194,7 +6234,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6194
6234
  element_type: 'select',
6195
6235
  value_name: 'values_font_size',
6196
6236
  element_label: 'Font size',
6197
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6237
+ element_options: suboptionsFontSizeValues,
6198
6238
  default_value: '10'
6199
6239
  },
6200
6240
  {
@@ -6223,7 +6263,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6223
6263
  element_type: 'select',
6224
6264
  value_name: 'totals_font_size',
6225
6265
  element_label: 'Font size',
6226
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6266
+ element_options: suboptionsFontSizeValues,
6227
6267
  default_value: '10'
6228
6268
  },
6229
6269
  {
@@ -6499,7 +6539,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6499
6539
  element_type: 'select',
6500
6540
  value_name: 'font_size',
6501
6541
  element_label: 'Font size',
6502
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6542
+ element_options: suboptionsFontSizeValues,
6503
6543
  default_value: LABEL_DEFAULT_SETTINGS.FONT_SIZE,
6504
6544
  },
6505
6545
  {
@@ -6577,7 +6617,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6577
6617
  element_type: 'select',
6578
6618
  value_name: 'font_size',
6579
6619
  element_label: 'Font size',
6580
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6620
+ element_options: suboptionsFontSizeValues,
6581
6621
  default_value: LABEL_DEFAULT_SETTINGS.FONT_SIZE,
6582
6622
  },
6583
6623
  {
@@ -6654,7 +6694,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6654
6694
  element_type: 'select',
6655
6695
  value_name: 'font_size',
6656
6696
  element_label: 'Font size',
6657
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6697
+ element_options: suboptionsFontSizeValues,
6658
6698
  default_value: LABEL_DEFAULT_SETTINGS.FONT_SIZE,
6659
6699
  },
6660
6700
  {
@@ -6823,7 +6863,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6823
6863
  element_type: 'select',
6824
6864
  value_name: 'font_size',
6825
6865
  element_label: 'Font size',
6826
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6866
+ element_options: suboptionsFontSizeValues,
6827
6867
  default_value: TOOLTIP_DEFAULT_SETTINGS.FONT_SIZE,
6828
6868
  },
6829
6869
  {
@@ -6913,7 +6953,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6913
6953
  element_type: 'select',
6914
6954
  value_name: 'font_size',
6915
6955
  element_label: 'Font size',
6916
- element_options: SUBOPTIONS_FONT_SIZE_VALUES,
6956
+ element_options: suboptionsFontSizeValues,
6917
6957
  default_value: TOOLTIP_DEFAULT_SETTINGS.FONT_SIZE,
6918
6958
  },
6919
6959
  {
@@ -8624,9 +8664,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8624
8664
  const isCustomSorting = widget.options.sortingFields && Array.isArray(widget.options.sortingFields) && widget.options.sortingFields.length > 0;
8625
8665
  if (isCustomSorting) {
8626
8666
  lodash.forEach(datesFields, function (field) {
8627
- const fieldToSort = lodash.find(
8628
- widget.options.sortingFields, element => element.id === field.id && lodash.get(element, 'sorting.sort_by') === 'field_items'
8629
- );
8667
+ const fieldToSort = lodash.find(widget.options.sortingFields, element => element.id === field.id);
8630
8668
  field.sorting = fieldToSort ? fieldToSort.sorting : field.sorting;
8631
8669
  });
8632
8670
  }
@@ -8708,9 +8746,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8708
8746
  });
8709
8747
  } else if (isCustomSorting) {
8710
8748
  lodash.forEach(rowsAndCols, function (field) {
8711
- const fieldToSort = lodash.find(
8712
- widget.options.sortingFields, element => element.id === field.id && lodash.get(element, 'sorting.sort_by') === 'field_items'
8713
- );
8749
+ const fieldToSort = lodash.find(widget.options.sortingFields, element => element.id === field.id);
8714
8750
  field.sorting = fieldToSort ? fieldToSort.sorting : field.sorting;
8715
8751
  });
8716
8752
  }