@datarailsshared/dr_renderer 1.2.361 → 1.2.362

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.361",
3
+ "version": "1.2.362",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -0,0 +1,7 @@
1
+ function backendSortingKeysAreNotEmpty(keys) {
2
+ return !!keys && (!!keys.row_keys && !!keys.row_keys.length || !!keys.col_keys && !!keys.col_keys.length);
3
+ }
4
+
5
+ module.exports = {
6
+ backendSortingKeysAreNotEmpty: backendSortingKeysAreNotEmpty,
7
+ }
@@ -1,3 +1,5 @@
1
+ const helpers = require('./dr-renderer-helpers');
2
+
1
3
  const mobileBrowserRegex = new RegExp([
2
4
  '(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)',
3
5
  '|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/',
@@ -4803,7 +4805,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4803
4805
  opts.rendererOptions.onlyOptions = true;
4804
4806
  }
4805
4807
 
4806
- if (!highchartsRenderer.isSortingOnBackendEnabled) {
4808
+ if (!highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject'))) {
4807
4809
  const sortByValueSettings = lodash.filter(
4808
4810
  lodash.get(widget, 'options.sortingFields', []),
4809
4811
  sortingField => lodash.includes(['field_values', 'variance'], lodash.get(sortingField, 'sorting.sort_by'))
@@ -8850,7 +8852,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8850
8852
  }
8851
8853
  });
8852
8854
 
8853
- if (highchartsRenderer.isSortingOnBackendEnabled && !isFormattingDatesAsOtherAxisTypes && lodash.get(widget, 'pivot.keysObject')) {
8855
+ if (!highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject')) && !isFormattingDatesAsOtherAxisTypes) {
8854
8856
  lodash.forEach(['col_keys', 'row_keys'], (keysListName, index) => {
8855
8857
  const widgetFields = index ? widget.rows : widget.cols;
8856
8858
  const uniqueFormattedKeysList = [];
@@ -8869,7 +8871,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8869
8871
  }
8870
8872
  }
8871
8873
 
8872
- if (!highchartsRenderer.isSortingOnBackendEnabled) {
8874
+ if (!highchartsRenderer.sortHasBeenDoneOnBE(lodash.get(widget, 'pivot.keysObject'))) {
8873
8875
 
8874
8876
  lodash.forEach(datesFields, function (row) {
8875
8877
  row.values = lodash.uniq(row.values);
@@ -9028,7 +9030,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9028
9030
 
9029
9031
  let pivot = {};
9030
9032
 
9031
- if (highchartsRenderer.isSortingOnBackendEnabled) {
9033
+ if (highchartsRenderer.sortHasBeenDoneOnBE(keysObject)) {
9032
9034
  pivot.keysObject = keysObject;
9033
9035
  }
9034
9036
 
@@ -9457,6 +9459,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9457
9459
  return highchartsRenderer.hasFeature(FEATURES.FORMAT_AXIS);
9458
9460
  }
9459
9461
 
9462
+ highchartsRenderer.sortHasBeenDoneOnBE = function (keysObject) {
9463
+ return highchartsRenderer.isSortingOnBackendEnabled && helpers.backendSortingKeysAreNotEmpty(keysObject);
9464
+ }
9465
+
9460
9466
  // Method for getting formatted kyes for Axis (cols, rows)
9461
9467
  highchartsRenderer.getFormattedKey = function (initialKey, pivotData, type) {
9462
9468
  const isFlatKey = lodash.isString(initialKey) || lodash.isNumber(initialKey);
package/src/pivottable.js CHANGED
@@ -1,3 +1,5 @@
1
+ const helpers = require('./dr-renderer-helpers');
2
+
1
3
  // from pivottable@2.23.0
2
4
  let initPivotTable = function($, window, document) {
3
5
  var indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
@@ -687,7 +689,7 @@ let initPivotTable = function($, window, document) {
687
689
  this.tree = {};
688
690
  this.insights = [];
689
691
 
690
- this.isKeysSortingDoneOnBackendSide = opts.keysObject && typeof opts.keysObject === 'object';
692
+ this.isKeysSortingDoneOnBackendSide = opts.keysObject && typeof opts.keysObject === 'object' && helpers.backendSortingKeysAreNotEmpty(opts.keysObject);
691
693
  if (this.isKeysSortingDoneOnBackendSide) {
692
694
  this.rowKeys = opts.keysObject.row_keys;
693
695
  this.colKeys = opts.keysObject.col_keys;
@@ -0,0 +1,34 @@
1
+ describe('dr-renderer-helpers', () => {
2
+ const drRendererHelpers = require('../src/dr-renderer-helpers');
3
+
4
+ describe('backendSortingKeysAreNotEmpty', () => {
5
+ it('should return true if keys are not empty', () => {
6
+ const keys = {
7
+ row_keys: [1, 2, 3],
8
+ col_keys: [1, 2, 3]
9
+ };
10
+ expect(drRendererHelpers.backendSortingKeysAreNotEmpty(keys)).toBe(true);
11
+ });
12
+
13
+ it('should return true if one of the keys is not empty', () => {
14
+ const keys = {
15
+ row_keys: [1, 2, 3],
16
+ col_keys: []
17
+ };
18
+ expect(drRendererHelpers.backendSortingKeysAreNotEmpty(keys)).toBe(true);
19
+ });
20
+
21
+ it('should return false if keys are empty', () => {
22
+ const keys = {
23
+ row_keys: [],
24
+ col_keys: [],
25
+ };
26
+ expect(drRendererHelpers.backendSortingKeysAreNotEmpty(keys)).toBe(false);
27
+ });
28
+
29
+ it('should return false if keys are null', () => {
30
+ const keys = null;
31
+ expect(drRendererHelpers.backendSortingKeysAreNotEmpty(keys)).toBe(false);
32
+ });
33
+ });
34
+ });