@datarailsshared/dr_renderer 1.5.89 → 1.5.90

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.
@@ -250,7 +250,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
250
250
  if (!!lodash.get(document, 'ReportHippo.user')) {
251
251
  disableAnimation = document.ReportHippo.user.organization && document.ReportHippo.user.organization.settings && document.ReportHippo.user.organization.settings.disable_animation
252
252
  highchartsRenderer.enabledNewWidgetValueFormatting = highchartsRenderer.hasFeature(FEATURES.ENABLE_NEW_WIDGET_VALUE_FORMATTING);
253
- highchartsRenderer.isSortingOnBackendEnabled = highchartsRenderer.hasFeature(FEATURES.ENABLE_SERVER_WIDGET_DATA_SORTING);
254
253
  }
255
254
 
256
255
  // fix issue of use tootip.stickOnContact with tooltip.outside , source: https://github.com/highcharts/highcharts/pull/15960
@@ -1239,7 +1238,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1239
1238
 
1240
1239
  if (pivotData.isSmartQueriesEnabled && withExtraScenarioCycle && indexOfScenarioCycleFilter > -1) {
1241
1240
  const indexOfScenarioFilter = row_n_keys[0].length - 1;
1242
- for (let i = 0; i < row_n_keys?.length; i++) {
1241
+ for (let i = 0; i < row_n_keys.length; i++) {
1243
1242
  row_n_keys[i].splice(indexOfScenarioFilter, 1);
1244
1243
  }
1245
1244
  row_n_keys = Array.from(
@@ -3407,10 +3406,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3407
3406
  ? opts.chartOptions
3408
3407
  : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
3409
3408
 
3410
- if (!highchartsRenderer.isSortingOnBackendEnabled) {
3411
- pivotData.colKeys = lodash.map(lodash.keys(pivotData.colTotals), key => [key]);
3412
- }
3413
-
3414
3409
  chartOptions.chart = {
3415
3410
  type: 'waterfall',
3416
3411
  zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
@@ -4314,83 +4309,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4314
4309
  return ret_str;
4315
4310
  };
4316
4311
 
4317
- highchartsRenderer.getSortingByValueOrderList = function (pivotData, sortingOptions, keysArray, attrs, fieldIndex, widget) {
4318
- let values_names_arr = [];
4319
- lodash.forEach(keysArray, function (val) {
4320
- const firstArray = [];
4321
- const secondArray = val.slice(0, fieldIndex + 1);
4322
-
4323
- let valueForComparison;
4324
- if (sortingOptions.sort_by === 'variance') {
4325
- const varianceConfig = widget.options.chartOptions.delta_column;
4326
- const data = pivotData.input;
4327
- const varianceField = varianceConfig.field === 'category' ? widget.cols[0] : widget.rows[0];
4328
- const varianceRowsForCurrentKey = lodash.filter(data, row =>
4329
- row[varianceField.name] === varianceConfig.name
4330
- && lodash.every(secondArray, (item, index) => row[attrs[index]] === item)
4331
- );
4332
-
4333
- valueForComparison = lodash.reduce(varianceRowsForCurrentKey, (a, d) => a + d[widget.vals[0].name], 0);
4334
- } else {
4335
- let getAggregatorParams = [firstArray, secondArray];
4336
-
4337
- if (lodash.includes(pivotData.rowAttrs, attrs[fieldIndex])) {
4338
- getAggregatorParams = lodash.reverse(getAggregatorParams);
4339
- }
4340
-
4341
- let aggregator_subtotal = pivotData.getAggregator(...getAggregatorParams);
4342
-
4343
- if (aggregator_subtotal) {
4344
- valueForComparison = aggregator_subtotal.value();
4345
- }
4346
- }
4347
-
4348
- if (!lodash.isNil(valueForComparison)) {
4349
- if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(valueForComparison))) {
4350
- valueForComparison = Math.abs(valueForComparison);
4351
- }
4352
- values_names_arr.push({name: secondArray.join(','), value: valueForComparison});
4353
- }
4354
- });
4355
-
4356
- // ORDERING
4357
- let sorting_vector = ['asc'];
4358
- if (sortingOptions && sortingOptions.type == 'largestToSmallest') {
4359
- sorting_vector = ['desc'];
4360
- }
4361
- values_names_arr = lodash.orderBy(values_names_arr, ['value'], sorting_vector);
4362
-
4363
- // map only names
4364
- return lodash.map(values_names_arr, 'name');
4365
- };
4366
-
4367
- highchartsRenderer.generateSortingFunctionByValues = function (sortByValueSettings, pivotData, opts, widget) {
4368
- let old_sorters_function = opts.sorters;
4369
- if (!old_sorters_function) {
4370
- old_sorters_function = function () {
4371
- };
4372
- }
4373
- return function (attr) {
4374
- const sortingOptions = lodash.find(sortByValueSettings, fieldSorting => fieldSorting.name === attr);
4375
- if (sortingOptions) {
4376
- const axis = highchartsRenderer.getAxis(_.includes(pivotData.colAttrs, attr) ? 'col_total' : 'row_total', opts);
4377
- const isColumnSort = axis === 'col_total';
4378
- const fieldIndex = lodash.findIndex(isColumnSort ? pivotData.colAttrs : pivotData.rowAttrs, name => name === attr);
4379
- const orderedNamesList = highchartsRenderer.getSortingByValueOrderList(
4380
- pivotData,
4381
- sortingOptions.sorting,
4382
- pivotData[isColumnSort ? 'colKeys' : 'rowKeys'],
4383
- pivotData[isColumnSort ? 'colAttrs' : 'rowAttrs'],
4384
- fieldIndex,
4385
- widget
4386
- );
4387
- return $.pivotUtilities.sortAs(orderedNamesList);
4388
- } else {
4389
- return old_sorters_function(attr);
4390
- }
4391
- }
4392
- };
4393
-
4394
4312
  highchartsRenderer.getFieldNameForTable = function (opt) {
4395
4313
  if (lodash.hasIn(opt, "rendererOptions.chartOptions.table_options.remove_underscores") && opt.rendererOptions.chartOptions.table_options.remove_underscores == true) {
4396
4314
  return function (value) {
@@ -4542,8 +4460,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4542
4460
  },
4543
4461
  aggregator: tmp.count()(),
4544
4462
  aggregatorName: "Count",
4545
- sorters: function () {
4546
- },
4547
4463
  derivedAttributes: {},
4548
4464
  renderer: $.pivotUtilities.subtotal_renderers,
4549
4465
  rendererOptions: null,
@@ -4560,7 +4476,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4560
4476
  result = null;
4561
4477
  try {
4562
4478
  pivotData = $.pivotUtilities.getPivotDataModel(rowData, opts);
4563
- pivotData.sortByValueAttrs = [];
4564
4479
  try {
4565
4480
  if (options && options.onlyOptions) {
4566
4481
  if (!opts.rendererOptions) {
@@ -4569,33 +4484,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4569
4484
  opts.rendererOptions.onlyOptions = true;
4570
4485
  }
4571
4486
 
4572
- if (!highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject'))) {
4573
- const sortByValueSettings = lodash.filter(
4574
- lodash.get(widget, 'options.sortingFields', []),
4575
- sortingField => lodash.includes(['field_values', 'variance'], lodash.get(sortingField, 'sorting.sort_by'))
4576
- );
4577
-
4578
- if (sortByValueSettings.length) {
4579
- pivotData.sortByValueAttrs = lodash.map(sortByValueSettings, fieldSorting => fieldSorting.name);
4580
- let new_sorting_function = highchartsRenderer.generateSortingFunctionByValues(sortByValueSettings, pivotData, opts, widget);
4581
- opts.sorters = new_sorting_function;
4582
- optsFiltered.sorters = new_sorting_function;
4583
- pivotData.sorters = new_sorting_function;
4584
-
4585
- if (lodash.isObject(lodash.get(widget, 'pivot'))) {
4586
- widget.pivot.sorters = new_sorting_function;
4587
- }
4588
- }
4589
- }
4590
-
4591
4487
  result = opts.renderer(pivotData, opts.rendererOptions);
4592
4488
  } catch (_error) {
4593
4489
  result = _handleRenderingError(_error, options.onlyOptions);
4594
4490
  }
4595
-
4596
- if (lodash.isObject(lodash.get(widget, 'pivot'))) {
4597
- widget.pivot.sortByValueAttrs = pivotData.sortByValueAttrs;
4598
- }
4599
4491
  } catch (_error) {
4600
4492
  result = _handleComputationalError(_error, options.onlyOptions);
4601
4493
  }
@@ -4689,8 +4581,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4689
4581
  },
4690
4582
  aggregator: tmp.count()(),
4691
4583
  aggregatorName: "Count",
4692
- sorters: function () {
4693
- },
4694
4584
  derivedAttributes: {},
4695
4585
  renderer: $.pivotUtilities.subtotal_renderers,
4696
4586
  rendererOptions: null,
@@ -4706,7 +4596,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4706
4596
  optsFiltered = $.extend(defaults, opts);
4707
4597
  result = null;
4708
4598
  try {
4709
- pivotData.sortByValueAttrs = [];
4710
4599
  try {
4711
4600
  if (options && options.onlyOptions) {
4712
4601
  if (!opts.rendererOptions) {
@@ -4715,33 +4604,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4715
4604
  opts.rendererOptions.onlyOptions = true;
4716
4605
  }
4717
4606
 
4718
- if (!highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject'))) {
4719
- const sortByValueSettings = lodash.filter(
4720
- lodash.get(widget, 'options.sortingFields', []),
4721
- sortingField => lodash.includes(['field_values', 'variance'], lodash.get(sortingField, 'sorting.sort_by'))
4722
- );
4723
-
4724
- if (sortByValueSettings.length) {
4725
- pivotData.sortByValueAttrs = lodash.map(sortByValueSettings, fieldSorting => fieldSorting.name);
4726
- let new_sorting_function = highchartsRenderer.generateSortingFunctionByValues(sortByValueSettings, pivotData, opts, widget);
4727
- opts.sorters = new_sorting_function;
4728
- optsFiltered.sorters = new_sorting_function;
4729
- pivotData.sorters = new_sorting_function;
4730
-
4731
- if (lodash.isObject(lodash.get(widget, 'pivot'))) {
4732
- widget.pivot.sorters = new_sorting_function;
4733
- }
4734
- }
4735
- }
4736
-
4737
4607
  result = opts.renderer(pivotData, opts.rendererOptions);
4738
4608
  } catch (_error) {
4739
4609
  result = _handleRenderingError(_error, options.onlyOptions);
4740
4610
  }
4741
-
4742
- if (lodash.isObject(lodash.get(widget, 'pivot'))) {
4743
- widget.pivot.sortByValueAttrs = pivotData.sortByValueAttrs;
4744
- }
4745
4611
  } catch (_error) {
4746
4612
  result = _handleComputationalError(_error, options.onlyOptions);
4747
4613
  }
@@ -4772,8 +4638,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4772
4638
  }
4773
4639
 
4774
4640
  var subopts = {
4775
- sorters: pivotOptions ? pivotOptions.sorters : null,
4776
- sortByValueAttrs: pivotOptions ? pivotOptions.sortByValueAttrs : null,
4777
4641
  cols: lodash.map(pivotOptions.axisArray, 'name'),
4778
4642
  rows: lodash.map(pivotOptions.legendArray, 'name'),
4779
4643
  colFormats: highchartsRenderer.getTableFormatInfosForWidgetFields(widget, pivotOptions, widget.cols),
@@ -5323,40 +5187,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5323
5187
  widgetOptions.pivot.chartType = widgetOptions.chart_type;
5324
5188
  widgetOptions.pivot.chartOptions = widgetOptions.options;
5325
5189
  widgetOptions.pivot.chartRender = highchartsRenderer.getChartRendererFunction(widgetOptions.pivot.chartType, drilldownFunc, drillDownListFunc);
5326
-
5327
- if (highchartsRenderer.isSortingOnBackendEnabled) return;
5328
- // TODO: remove this logic after BE sort is implemented
5329
- // it is required to do sort by totals for comparative analysis - we need to change deltas if columns swaped vice versa
5330
- const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
5331
- && lodash.get(widgetOptions, 'options.breakdown_options.values.totals', []).length === 2;
5332
-
5333
- if (isTwoColumnComparisonWidget) {
5334
- const totalsField = xaxisFields[0];
5335
- const isScenarioInTotals = /scenario/i.test(totalsField.name) || /scenario/i.test(totalsField.alias);
5336
-
5337
- if (isScenarioInTotals) {
5338
- const breakdownField = legendFields[0];
5339
- const valuesField = valuesFields[0];
5340
-
5341
- // getting first total value encounter from response rows - it's value to which delta is attached
5342
- const firstTotalValueInResponse = lodash.get(widgetOptions, `pivot.rowData[0].${totalsField.name}`);
5343
-
5344
- // getting first total value from breakdown options (after sort is done)
5345
- const firstTotalValueAfterSort = lodash.get(widgetOptions, 'options.breakdown_options.values.totals[0].key');
5346
-
5347
- // if two columns changed places (swaped)
5348
- // then we need to replace keys in response rows and multiply delta to -1
5349
- if (firstTotalValueInResponse && firstTotalValueAfterSort && firstTotalValueInResponse !== firstTotalValueAfterSort) {
5350
- lodash.forEach(widgetOptions.pivot.rowData, row => {
5351
- const isDeltaRow = row[totalsField.name] && row[breakdownField.name];
5352
- if (isDeltaRow) {
5353
- row[totalsField.name] = firstTotalValueAfterSort;
5354
- row[valuesField.name] *= -1;
5355
- }
5356
- });
5357
- }
5358
- }
5359
- }
5360
5190
  };
5361
5191
 
5362
5192
  highchartsRenderer.addTemplateDataToExTableOptions = function (selectedTemplate, exTableOptions) {
@@ -5688,8 +5518,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5688
5518
  var otherFields = [];
5689
5519
  var includes = {};
5690
5520
  var date_aggregation_configs = lodash.get(options, "date_aggregation_configs");
5691
- var sorters = function () {
5692
- };
5693
5521
 
5694
5522
  lodash.forEach(widgetOptions.filters, function (filterObj) {
5695
5523
  fieldOb = lodash.find(fields, {id: filterObj.field});
@@ -5760,19 +5588,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5760
5588
  });
5761
5589
 
5762
5590
  var tmpRowData = null;
5763
- var tmpSorters = null;
5764
5591
  if (widgetOptions.hasOwnProperty('pivot')) {
5765
5592
  tmpRowData = widgetOptions.pivot.rowData;
5766
- tmpSorters = widgetOptions.pivot.sorters;
5767
5593
  }
5768
5594
 
5769
5595
  widgetOptions.pivot = {};
5770
5596
  if (tmpRowData != null) {
5771
5597
  widgetOptions.pivot.rowData = tmpRowData;
5772
- widgetOptions.pivot.sorters = tmpSorters;
5773
5598
  } else {
5774
5599
  widgetOptions.pivot.rowData = selectedTemplate.widget_raw_data;
5775
- widgetOptions.pivot.sorters = sorters;
5776
5600
  }
5777
5601
 
5778
5602
  widgetOptions.pivot.calculatedValues = objectCopyJsonMethod(widgetOptions.calculated_values || []);
@@ -9174,7 +8998,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9174
8998
 
9175
8999
  highchartsRenderer.getWidgetDataSorters = function (res, widget, defaultDateFormat) {
9176
9000
  const isFormattingDatesAsOtherAxisTypes = highchartsRenderer.isFormattingDatesAsOtherAxisTypes();
9177
- let sorters;
9178
9001
 
9179
9002
  if ($.pivotUtilities && !$.pivotUtilities.additionalFieldsList) {
9180
9003
  $.pivotUtilities.additionalFieldsList = [
@@ -9237,7 +9060,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9237
9060
  }
9238
9061
  }
9239
9062
  }
9240
- if (highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject')) && !isFormattingDatesAsOtherAxisTypes) {
9063
+ if (!isFormattingDatesAsOtherAxisTypes) {
9241
9064
  const keysObject = lodash.get(widget, 'pivot.keysObject');
9242
9065
 
9243
9066
  lodash.forEach(['col_keys', 'row_keys', 'row_keys_by_cols'], (keysListName) => {
@@ -9248,168 +9071,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9248
9071
  }
9249
9072
  });
9250
9073
  }
9251
-
9252
- if (!highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject'))) {
9253
-
9254
- lodash.forEach(datesFields, function (row) {
9255
- row.values = lodash.uniq(row.values);
9256
-
9257
- const isTimestampDateField = row.type === 'Date' && lodash.some(row.values, value => typeof value ==='number');
9258
- if (isTimestampDateField) {
9259
- const nullValueIndex = row.values.indexOf(NULL_VALUE);
9260
- if (~nullValueIndex) {
9261
- row.values.splice(nullValueIndex, 1);
9262
- }
9263
- row.values = row.values.sort((a, b) => a - b);
9264
- if (~nullValueIndex) {
9265
- row.values.push(NULL_VALUE);
9266
- }
9267
- } else {
9268
- row.values = row.values.sort();
9269
- }
9270
-
9271
- if (row.sorting && row.sorting.type == "largestToSmallest") {
9272
- row.values = lodash.reverse(row.values);
9273
- }
9274
- delete row.sorting;
9275
-
9276
- if (!isFormattingDatesAsOtherAxisTypes) {
9277
- row.values = lodash.map(row.values, function (val) {
9278
- return highchartsRenderer.returnRawDataValue(row.type, val, row.format, row.name, row.val_not_convert) + "";
9279
- });
9280
- }
9281
- });
9282
-
9283
- /* date string */
9284
- var rowsAndCols = [];
9285
- rowsAndCols = lodash.cloneDeep(widget.rows.concat(widget.cols));
9286
-
9287
- if (widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN && !highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject'))) {
9288
-
9289
- // if it is breakdown widget - redefine sorting according to breakdown_options
9290
- // TODO: remove this when BE sort will be implemented (FE subtickets for story DR-18469)
9291
- const isTwoColumnComparisonWidget = lodash.get(widget, 'options.breakdown_options.values.totals', []).length === 2;
9292
- lodash.forEach(rowsAndCols, function (field) {
9293
- const waterfallFieldType = field.id === widget.cols[0].id ? 'totals' : 'breakdown';
9294
-
9295
- if (field.type === 'Date') {
9296
-
9297
- // set ascending date orders - due to issue with setting breakdown options order in webclient
9298
- // this is for fixing already saved widgets with incorret order in breakdown options
9299
- field.sorting = {
9300
- is_absolute: false,
9301
- sort_by: "field_items",
9302
- type: "",
9303
- };
9304
- } else if (waterfallFieldType !== 'totals' || isTwoColumnComparisonWidget) {
9305
- field.sorting = {
9306
- type: 'CustomOrder',
9307
- values: lodash.map(
9308
- widget.options.breakdown_options.values[waterfallFieldType],
9309
- value => value.key
9310
- ),
9311
- };
9312
- } else {
9313
- field.sorting = null;
9314
- }
9315
- });
9316
- } else if (isCustomSorting) {
9317
- lodash.forEach(rowsAndCols, function (field) {
9318
- const fieldToSort = lodash.find(
9319
- widget.options.sortingFields, element => element.id === field.id && lodash.get(element, 'sorting.sort_by') === 'field_items'
9320
- );
9321
- field.sorting = fieldToSort ? fieldToSort.sorting : field.sorting;
9322
- });
9323
- }
9324
-
9325
- lodash.forEach(rowsAndCols, function (field) {
9326
- if (field.sorting && (field.sorting.type == "DateString" || field.sorting.type == "largestToSmallest")) {
9327
- var find_field = lodash.find(datesFields, {name: field.name});
9328
- if (find_field) {
9329
- if (find_field.type != 'Date')
9330
- find_field.sorting = field.sorting;
9331
- } else {
9332
- datesFields.push({
9333
- "format": field.format,
9334
- "name": field.name,
9335
- "type": field.type,
9336
- "values": [],
9337
- "sorting": field.sorting,
9338
- });
9339
- }
9340
- } else if (field.sorting && field.sorting.type == "CustomOrder" && field.sorting.values) {
9341
- if (field.type === 'Date' && field.sorting.values.length && widget.pivot.invertedDateStringMap) {
9342
- const fieldInList = lodash.find(datesFields, { name: field.name });
9343
- fieldInList.values = lodash.map(field.sorting.values, value => widget.pivot.invertedDateStringMap[value] || value);
9344
- } else {
9345
- datesFields.push({
9346
- "format": field.format,
9347
- "name": field.name,
9348
- "type": field.type,
9349
- "values": field.sorting.values
9350
- });
9351
- }
9352
- }
9353
- });
9354
-
9355
- if (widget.vals && widget.vals.length > 1) {
9356
- datesFields.push({name: "DR_Values", values: lodash.map(widget.vals, 'name')});
9357
- }
9358
-
9359
- /****** END *******/
9360
-
9361
- // TODO: Remove. sortingValues looks like lagacy which is not in use neither in webclient nor in renderer
9362
- if (widget.options && widget.options.sortingValues) {
9363
- var field = lodash.find(datesFields, {name: widget.options.sortingValues.field});
9364
- if (field) {
9365
- field.values = widget.options.sortingValues.values;
9366
- field.sorting = null;
9367
- } else {
9368
- datesFields.push({
9369
- name: widget.options.sortingValues.field,
9370
- values: widget.options.sortingValues.values
9371
- });
9372
- }
9373
- }
9374
- sorters = function (attr) {
9375
- var field = lodash.find(datesFields, {name: attr});
9376
- if (field)
9377
- if (field.sorting && field.sorting.type == "DateString") {
9378
- return $.pivotUtilities.sortDateStrings(field.sorting.month_order);
9379
- } else if (field.sorting && field.sorting.type == "largestToSmallest") {
9380
- if (field.sorting.is_absolute)
9381
- return $.pivotUtilities.largeToSmallSortByAbsolute;
9382
- return $.pivotUtilities.largeToSmallSort;
9383
- } else {
9384
- return $.pivotUtilities.sortAs(field.values);
9385
- }
9386
- };
9387
- }
9388
-
9389
- return sorters;
9390
- };
9391
-
9392
- highchartsRenderer.getSorters = function (field, values) {
9393
- if (field.sorting && field.sorting.type === 'DateString') {
9394
- return $.pivotUtilities.sortDateStrings(field.sorting.month_order);
9395
- } else if (field.sorting && field.sorting.type === 'largestToSmallest') {
9396
- if (field.sorting.is_absolute)
9397
- return $.pivotUtilities.largeToSmallSortByAbsolute;
9398
-
9399
- return $.pivotUtilities.largeToSmallSort;
9400
- } else {
9401
- return $.pivotUtilities.sortAs(values);
9402
- }
9403
9074
  };
9404
9075
 
9405
9076
  //highchartsRenderer.getGraphOptions(scope.data, override_values, res, scope.dataModel.templatesWithOutData, scope.openDrillDownList, drillDownFunction)
9406
9077
  highchartsRenderer.getGraphOptions = function (widget_obj, override_values, row_data, templates, openDrillDownListFunction, drillDownFunction) {
9407
9078
 
9408
- let keysObject;
9409
- if (highchartsRenderer.isSortingOnBackendEnabled) {
9410
- keysObject = highchartsRenderer.getAggregatedSortingObjects(row_data);
9411
- }
9412
-
9079
+ let keysObject = highchartsRenderer.getAggregatedSortingObjects(row_data);
9413
9080
  let res = highchartsRenderer.updateSelectedOverrideValues(widget_obj, override_values, row_data);
9414
9081
  res = highchartsRenderer.convertUniqueDateValues(widget_obj, templates, res);
9415
9082
 
@@ -9419,13 +9086,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9419
9086
 
9420
9087
  res = highchartsRenderer.fixIncompatibleCalculatedValuesTotals(widget_obj, res);
9421
9088
 
9422
- let pivot = {};
9423
-
9424
- if (highchartsRenderer.sortHasBeenDoneOnBE(keysObject)) {
9425
- pivot.keysObject = keysObject;
9426
- }
9089
+ let pivot = { keysObject }
9427
9090
 
9428
9091
  let templateNoData = lodash.find(templates, {id: widget_obj.template_id});
9092
+
9429
9093
  if (templateNoData) {
9430
9094
 
9431
9095
  // we need to assign this before calling getWidgetDataSorters method
@@ -9434,7 +9098,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9434
9098
  widget_obj.pivot = pivot;
9435
9099
  }
9436
9100
 
9437
- pivot.sorters = highchartsRenderer.getWidgetDataSorters(res, widget_obj);
9101
+ highchartsRenderer.getWidgetDataSorters(res, widget_obj);
9102
+
9438
9103
  pivot.rowData = res;
9439
9104
  widget_obj.options = highchartsRenderer.parseOptionsToObject(widget_obj.options);
9440
9105
 
@@ -9494,12 +9159,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9494
9159
  subopts.cols = subopts.rows;
9495
9160
  subopts.rows = tempCols;
9496
9161
 
9497
- if (highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(pivot, 'keysObject'))) {
9498
- subopts.keysObject = lodash.cloneDeep(pivot.keysObject);
9499
- const tempColKeys = subopts.keysObject.col_keys;
9500
- subopts.keysObject.col_keys = subopts.keysObject.row_keys;
9501
- subopts.keysObject.row_keys = tempColKeys;
9502
- }
9162
+ subopts.keysObject = lodash.cloneDeep(pivot.keysObject);
9163
+ const tempColKeys = subopts.keysObject.col_keys;
9164
+ subopts.keysObject.col_keys = subopts.keysObject.row_keys;
9165
+ subopts.keysObject.row_keys = tempColKeys;
9503
9166
  }
9504
9167
 
9505
9168
  if (isEditor == true) {
@@ -9864,10 +9527,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9864
9527
  return highchartsRenderer.hasFeature(FEATURES.FORMAT_DATES_AS_OTHER_AXIS_TYPES);
9865
9528
  }
9866
9529
 
9867
- highchartsRenderer.sortHasBeenDoneOnBE = function (keysObject) {
9868
- return highchartsRenderer.isSortingOnBackendEnabled && helpers.backendSortingKeysAreNotEmpty(keysObject);
9869
- }
9870
-
9871
9530
  // Method for getting formatted kyes for Axis (cols, rows)
9872
9531
  highchartsRenderer.getFormattedKey = function (initialKey, pivotData, type) {
9873
9532
  const isFlatKey = lodash.isString(initialKey) || lodash.isNumber(initialKey);
@@ -10020,7 +9679,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
10020
9679
  }
10021
9680
 
10022
9681
  const isColsTotal = typeof record['DR_Values'] === 'undefined';
10023
-
9682
+
10024
9683
  if (!isColsTotal) {
10025
9684
  return true;
10026
9685
  }