@datarailsshared/dr_renderer 1.2.249 → 1.2.250
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 +1 -1
- package/src/highcharts_renderer.js +44 -50
package/package.json
CHANGED
|
@@ -1429,8 +1429,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1429
1429
|
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
|
|
1430
1430
|
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
1431
1431
|
},
|
|
1432
|
-
upColor: waterfallOptions
|
|
1433
|
-
color: waterfallOptions
|
|
1432
|
+
upColor: lodash.get(waterfallOptions, 'colors.increase'),
|
|
1433
|
+
color: lodash.get(waterfallOptions, 'colors.decrease'),
|
|
1434
1434
|
className: SERIES_CLASSNAMES.WATERFALL_WALKTHROUGH
|
|
1435
1435
|
};
|
|
1436
1436
|
resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
|
|
@@ -1457,18 +1457,24 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1457
1457
|
val = 0;
|
|
1458
1458
|
}
|
|
1459
1459
|
|
|
1460
|
-
if (value.trend === 'decrease') {
|
|
1460
|
+
if (val > 0 && value.trend === 'decrease' || val < 0 && value.trend === 'increase' ) {
|
|
1461
1461
|
val = val * -1;
|
|
1462
1462
|
}
|
|
1463
1463
|
|
|
1464
|
+
const baseColor = {
|
|
1465
|
+
total: '',
|
|
1466
|
+
decrease: '#BF1D30',
|
|
1467
|
+
increase: '#20A452',
|
|
1468
|
+
};
|
|
1469
|
+
|
|
1464
1470
|
const name = value.trend === 'total' ? value.formattedKey || value.key[0] : keys.join(highchartsRenderer.delimer);
|
|
1465
1471
|
let color = '';
|
|
1466
1472
|
if (value.color) {
|
|
1467
1473
|
color = value.color;
|
|
1468
1474
|
} else {
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1475
|
+
color = lodash.get(waterfallOptions, 'colors', {})
|
|
1476
|
+
? lodash.get(waterfallOptions, 'colors', {})[value.trend]
|
|
1477
|
+
: baseColor[value.trend];
|
|
1472
1478
|
}
|
|
1473
1479
|
|
|
1474
1480
|
resultObject.data.push({
|
|
@@ -1485,14 +1491,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1485
1491
|
{
|
|
1486
1492
|
name: 'Positive',
|
|
1487
1493
|
visible: false,
|
|
1488
|
-
color: waterfallOptions
|
|
1494
|
+
color: lodash.get(waterfallOptions, 'colors.increase')
|
|
1489
1495
|
});
|
|
1490
1496
|
|
|
1491
1497
|
chart_series.push(
|
|
1492
1498
|
{
|
|
1493
1499
|
name: 'Negative',
|
|
1494
1500
|
visible: false,
|
|
1495
|
-
color: waterfallOptions
|
|
1501
|
+
color: lodash.get(waterfallOptions, 'colors.decrease'),
|
|
1496
1502
|
});
|
|
1497
1503
|
|
|
1498
1504
|
return chart_series;
|
|
@@ -5219,7 +5225,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5219
5225
|
|
|
5220
5226
|
// TODO: remove this logic after BE sort is implemented
|
|
5221
5227
|
// it is required to do sort by totals for comparative analysis - we need to change deltas if columns swaped vice versa
|
|
5222
|
-
const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
|
|
5228
|
+
const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
|
|
5223
5229
|
&& lodash.get(widgetOptions, 'options.breakdown_options.values.totals', []).length === 2;
|
|
5224
5230
|
|
|
5225
5231
|
if (isTwoColumnComparisonWidget) {
|
|
@@ -5359,13 +5365,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5359
5365
|
dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
|
|
5360
5366
|
}
|
|
5361
5367
|
|
|
5362
|
-
highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
|
|
5368
|
+
highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions, calcModelPredefinedField) {
|
|
5363
5369
|
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
5364
5370
|
const fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.fields);
|
|
5371
|
+
const predefinedField = lodash.cloneDeep(calcModelPredefinedField);
|
|
5365
5372
|
|
|
5366
5373
|
const fillData = (fieldsArr, ignoreFieldsIdToRemove = []) => {
|
|
5367
5374
|
const destinationArr = [];
|
|
5368
5375
|
lodash.forEach(fieldsArr, function (valObj) {
|
|
5376
|
+
if (!valObj) return;
|
|
5377
|
+
|
|
5369
5378
|
const fieldOb = lodash.find(fields, { id: valObj.id });
|
|
5370
5379
|
if (fieldOb) {
|
|
5371
5380
|
destinationArr.push(fieldOb);
|
|
@@ -5401,37 +5410,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5401
5410
|
}
|
|
5402
5411
|
})();
|
|
5403
5412
|
|
|
5404
|
-
|
|
5405
|
-
|
|
5406
|
-
const predefinedField = {
|
|
5407
|
-
value: {
|
|
5408
|
-
regex: /posting[_\s]amount/i,
|
|
5409
|
-
allowedFieldTypes: ['Float', 'Integer'],
|
|
5410
|
-
fields: [],
|
|
5411
|
-
},
|
|
5412
|
-
dataType: {
|
|
5413
|
-
regex: /^(data[_\s]type[_\s]by|data[_\s]type)$/i,
|
|
5414
|
-
allowedFieldTypes: ['Text'],
|
|
5415
|
-
fields: [],
|
|
5416
|
-
},
|
|
5417
|
-
date: {
|
|
5418
|
-
regex: reportingMonthRegex,
|
|
5419
|
-
allowedFieldTypes: ['Date'],
|
|
5420
|
-
fields: [],
|
|
5421
|
-
},
|
|
5422
|
-
filters: {
|
|
5423
|
-
isMultipleFields: true,
|
|
5424
|
-
regex: /^(scenario|DR_ACC_L0)$/i,
|
|
5425
|
-
fields: [],
|
|
5426
|
-
},
|
|
5427
|
-
dataSeries: {
|
|
5428
|
-
isMultipleFields: true,
|
|
5429
|
-
regex: /^(scenario|account[_\s]full|entity|intercompany|posting[_\s]currency|reporting[_\s]currency|report[_\s]field|USER_TO_DR_ACC_KEY|USER_TO_DR_KPI_KEY)$/i,
|
|
5430
|
-
fields: [],
|
|
5431
|
-
},
|
|
5432
|
-
};
|
|
5433
|
-
|
|
5434
|
-
if (!lodash.get(calcModelOptions, 'config', false)) {
|
|
5413
|
+
if (!lodash.get(calcModelOptions, 'config', false) && predefinedField) {
|
|
5435
5414
|
/**
|
|
5436
5415
|
* alias stronger than name (order in array is important)
|
|
5437
5416
|
* Firstly we try to get predefined field by aliases and then fill in by names
|
|
@@ -5449,13 +5428,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5449
5428
|
: [lodash.find(fields, field => canAssignPredefinedField(predefinedField[key], key, field, value, opposite, ignoredFields))].filter(f => !!f);
|
|
5450
5429
|
|
|
5451
5430
|
if (result && result.length) {
|
|
5431
|
+
if (!predefinedField[key].fields) {
|
|
5432
|
+
predefinedField[key].fields = [];
|
|
5433
|
+
}
|
|
5434
|
+
|
|
5452
5435
|
predefinedField[key].fields.push(...result);
|
|
5453
5436
|
}
|
|
5454
5437
|
});
|
|
5455
5438
|
}
|
|
5456
5439
|
}
|
|
5457
5440
|
|
|
5458
|
-
const
|
|
5441
|
+
const defaultFilters = lodash.get(predefinedField, 'filters.fields', []);
|
|
5442
|
+
const filters = lodash.get(calcModelOptions, 'config.filters', defaultFilters);
|
|
5459
5443
|
|
|
5460
5444
|
lodash.forEach(filters, function (filterObj) {
|
|
5461
5445
|
const fieldOb = lodash.find(fields, { id: filterObj.id });
|
|
@@ -5476,13 +5460,23 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5476
5460
|
}
|
|
5477
5461
|
});
|
|
5478
5462
|
|
|
5479
|
-
const
|
|
5480
|
-
const
|
|
5481
|
-
|
|
5482
|
-
const
|
|
5483
|
-
const
|
|
5484
|
-
|
|
5485
|
-
const
|
|
5463
|
+
const defaultGroupByValues = lodash.get(predefinedField, 'dataSeries.fields', []);
|
|
5464
|
+
const storedGroupByFields = lodash.get(calcModelOptions, 'config.group_by', defaultGroupByValues);
|
|
5465
|
+
|
|
5466
|
+
const defaultDateValue = lodash.get(predefinedField, 'date.fields[0]', undefined);
|
|
5467
|
+
const storedDateFields = [lodash.get(calcModelOptions, 'config.date_field', defaultDateValue)].filter(f => !!f);
|
|
5468
|
+
|
|
5469
|
+
const defaultAggValue = lodash.get(predefinedField, 'value.fields[0]', undefined);
|
|
5470
|
+
const storedAggFields = [lodash.get(calcModelOptions, 'config.agg_field', defaultAggValue)].filter(f => !!f);
|
|
5471
|
+
|
|
5472
|
+
const defaultDataTypeValue = lodash.get(predefinedField, 'dataType.fields[0]', undefined);
|
|
5473
|
+
const storedDataTypeFields = [lodash.get(calcModelOptions, 'config.data_type_field', defaultDataTypeValue)].filter(f => !!f);
|
|
5474
|
+
|
|
5475
|
+
const reportingMonthRegex = /reporting[_\s]month/i;
|
|
5476
|
+
const scenarioRegex = /scenario/i;
|
|
5477
|
+
|
|
5478
|
+
const scenarioField = lodash.find(fields, _field => scenarioRegex.test(_field.alias)) || lodash.find(fields, _field => scenarioRegex.test(_field.name));
|
|
5479
|
+
const reportingMonthField = lodash.find(fields, _field => reportingMonthRegex.test(_field.alias)) || lodash.find(fields, _field => reportingMonthRegex.test(_field.name));
|
|
5486
5480
|
|
|
5487
5481
|
/**
|
|
5488
5482
|
* We can have several common fields, so we should ignore deleting during fillData
|
|
@@ -5501,7 +5495,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5501
5495
|
selectedFieldsArray: dataSeriesFields,
|
|
5502
5496
|
filtersArray: filterFields,
|
|
5503
5497
|
scenarioField,
|
|
5504
|
-
reportingMonthField
|
|
5498
|
+
reportingMonthField,
|
|
5505
5499
|
dateFields,
|
|
5506
5500
|
dataTypeFields,
|
|
5507
5501
|
valueFields
|