@datarailsshared/dr_renderer 1.2.431 → 1.2.433
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
@@ -153,6 +153,7 @@ const FEATURES = {
|
|
153
153
|
MULTIPLE_DIMENSION_TAGS: 'multiple_dimension_tags',
|
154
154
|
USE_NEW_SCENARIO_TAG: 'use_new_scenario_tag',
|
155
155
|
ENABLE_SERVER_WIDGET_DATA_SORTING: 'enable_server_widget_data_sorting',
|
156
|
+
CLIENT_WIDGET_SORTING_KEYS_MERGE: 'client_widget_sorting_keys_merge',
|
156
157
|
}
|
157
158
|
|
158
159
|
const TICKS_COUNT = 5;
|
@@ -207,6 +208,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
207
208
|
disableAnimation = document.ReportHippo.user.organization && document.ReportHippo.user.organization.settings && document.ReportHippo.user.organization.settings.disable_animation
|
208
209
|
highchartsRenderer.enabledNewWidgetValueFormatting = highchartsRenderer.hasFeature(FEATURES.ENABLE_NEW_WIDGET_VALUE_FORMATTING);
|
209
210
|
highchartsRenderer.isSortingOnBackendEnabled = highchartsRenderer.hasFeature(FEATURES.ENABLE_SERVER_WIDGET_DATA_SORTING);
|
211
|
+
highchartsRenderer.CLIENT_WIDGET_SORTING_KEYS_MERGE = highchartsRenderer.hasFeature(FEATURES.CLIENT_WIDGET_SORTING_KEYS_MERGE);
|
210
212
|
}
|
211
213
|
|
212
214
|
// fix issue of use tootip.stickOnContact with tooltip.outside , source: https://github.com/highcharts/highcharts/pull/15960
|
@@ -9678,7 +9680,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
9678
9680
|
return res;
|
9679
9681
|
}
|
9680
9682
|
|
9681
|
-
// TODO: move this logic to BE (the problem it is solving that BE returns several sorting objects for more than 1 field in Values)
|
9682
9683
|
highchartsRenderer.getAggregatedSortingObjects = function(res) {
|
9683
9684
|
let sortingObjectToReturn = null;
|
9684
9685
|
|
@@ -9687,7 +9688,17 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
9687
9688
|
if (!sortingObjectToReturn) {
|
9688
9689
|
sortingObjectToReturn = lodash.clone(dataRow);
|
9689
9690
|
} else {
|
9690
|
-
|
9691
|
+
if (highchartsRenderer.CLIENT_WIDGET_SORTING_KEYS_MERGE) {
|
9692
|
+
const concatUniqueKeys = (keysA, keysB) => {
|
9693
|
+
if (!Array.isArray(keysB) || !keysB.length) return keysA;
|
9694
|
+
return lodash.chain(keysA).concat(keysB).uniqWith(lodash.isEqual).value();
|
9695
|
+
}
|
9696
|
+
sortingObjectToReturn.row_keys = concatUniqueKeys(sortingObjectToReturn.row_keys, dataRow.row_keys);
|
9697
|
+
sortingObjectToReturn.col_keys = concatUniqueKeys(sortingObjectToReturn.col_keys, dataRow.col_keys);
|
9698
|
+
} else {
|
9699
|
+
sortingObjectToReturn.row_keys = lodash.concat(sortingObjectToReturn.row_keys, dataRow.row_keys || []);
|
9700
|
+
}
|
9701
|
+
|
9691
9702
|
}
|
9692
9703
|
dataRow.isSortingObject = true;
|
9693
9704
|
}
|
@@ -5257,8 +5257,41 @@ describe('highcharts_renderer', () => {
|
|
5257
5257
|
});
|
5258
5258
|
});
|
5259
5259
|
|
5260
|
-
it('should get sort object and remove from data rows (several object encounters - for more than one Values field)', () => {
|
5260
|
+
it('should get sort object and remove from data rows (several object encounters - for more than one Values field) with merge cols and rows under FF', () => {
|
5261
|
+
highchartsRenderer.CLIENT_WIDGET_SORTING_KEYS_MERGE = true;
|
5262
|
+
const expectedObj = {
|
5263
|
+
col_keys: [['colKey1'], ['colKey2'], ['colKey3'], ['colKey4'], ['colKey5']],
|
5264
|
+
row_keys: [['rowKey1'], ['rowKey2'], ['rowKey1', 'rowKey2'], ['rowKey3']],
|
5265
|
+
};
|
5266
|
+
const rowData = [
|
5267
|
+
{ someField1: 'someValue1' },
|
5268
|
+
{ col_keys: [['colKey1'], ['colKey2']], row_keys: [['rowKey1']] },
|
5269
|
+
{ someField2: 'someValue2' },
|
5270
|
+
{ col_keys: [['colKey1'], ['colKey3'], ['colKey4'], ['colKey5']], row_keys: [['rowKey2']] },
|
5271
|
+
{ someField3: 'someValue3' },
|
5272
|
+
{ col_keys: [], row_keys: [['rowKey1', 'rowKey2']] },
|
5273
|
+
{ someField4: 'someValue4' },
|
5274
|
+
{ col_keys: [], row_keys: [['rowKey1', 'rowKey2']] },
|
5275
|
+
{ someField4: 'someValue5' },
|
5276
|
+
{ col_keys: [], row_keys: [] },
|
5277
|
+
{ someField4: 'someValue6' },
|
5278
|
+
{ col_keys: [['colKey5']], row_keys: [['rowKey3']] },
|
5279
|
+
];
|
5280
|
+
|
5281
|
+
const sortObj = highchartsRenderer.getAggregatedSortingObjects(rowData);
|
5261
5282
|
|
5283
|
+
expect(rowData).toEqual([
|
5284
|
+
{ someField1: 'someValue1' },
|
5285
|
+
{ someField2: 'someValue2' },
|
5286
|
+
{ someField3: 'someValue3' },
|
5287
|
+
{ someField4: 'someValue4' },
|
5288
|
+
{ someField4: 'someValue5' },
|
5289
|
+
{ someField4: 'someValue6' },
|
5290
|
+
]);
|
5291
|
+
expect(sortObj).toEqual(expectedObj);
|
5292
|
+
});
|
5293
|
+
|
5294
|
+
it('should get sort object and remove from data rows (several object encounters - for more than one Values field)', () => {
|
5262
5295
|
const expectedObj = { col_keys: ['colKey1', 'colKey2'], row_keys: ['rowKey1', 'rowKey2'] };
|
5263
5296
|
const rowData = [
|
5264
5297
|
{ someField1: 'someValue1' },
|