@datarailsshared/dr_renderer 1.2.246-rocket → 1.2.247-dragons
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 +52 -38
package/package.json
CHANGED
|
@@ -1042,6 +1042,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1042
1042
|
if (row_n_value && row_n_value.length > 0) {
|
|
1043
1043
|
ob.name = row_n_value.join(highchartsRenderer.delimer).replace('DR_Others', othersName);
|
|
1044
1044
|
}
|
|
1045
|
+
|
|
1045
1046
|
lodash.forEach(col_n_keys, function (col_n_value, index) {
|
|
1046
1047
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
1047
1048
|
var val = agg.value();
|
|
@@ -1258,6 +1259,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1258
1259
|
if (opts.trendLine) {
|
|
1259
1260
|
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1260
1261
|
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1262
|
+
|
|
1261
1263
|
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1262
1264
|
trendSeries.className = 'trendSeries';
|
|
1263
1265
|
trendSeries.name = highchartsRenderer.getTrendSeriesName(trendSeries);
|
|
@@ -1268,6 +1270,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1268
1270
|
if (colors && colors[i]) {
|
|
1269
1271
|
trendSeries.color = colors[i];
|
|
1270
1272
|
}
|
|
1273
|
+
|
|
1271
1274
|
trendSerieses.push(trendSeries);
|
|
1272
1275
|
}
|
|
1273
1276
|
i++;
|
|
@@ -1284,6 +1287,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1284
1287
|
}
|
|
1285
1288
|
|
|
1286
1289
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1290
|
+
|
|
1287
1291
|
if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
|
1288
1292
|
chart_series.forEach((series, seriesIndex) => {
|
|
1289
1293
|
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
@@ -1429,8 +1433,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1429
1433
|
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
|
|
1430
1434
|
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
1431
1435
|
},
|
|
1432
|
-
upColor: waterfallOptions
|
|
1433
|
-
color: waterfallOptions
|
|
1436
|
+
upColor: lodash.get(waterfallOptions, 'colors.increase'),
|
|
1437
|
+
color: lodash.get(waterfallOptions, 'colors.decrease'),
|
|
1434
1438
|
className: SERIES_CLASSNAMES.WATERFALL_WALKTHROUGH
|
|
1435
1439
|
};
|
|
1436
1440
|
resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
|
|
@@ -1457,7 +1461,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1457
1461
|
val = 0;
|
|
1458
1462
|
}
|
|
1459
1463
|
|
|
1460
|
-
if (value.trend === 'decrease') {
|
|
1464
|
+
if (val > 0 && value.trend === 'decrease' || val < 0 && value.trend === 'increase' ) {
|
|
1461
1465
|
val = val * -1;
|
|
1462
1466
|
}
|
|
1463
1467
|
|
|
@@ -1466,9 +1470,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1466
1470
|
if (value.color) {
|
|
1467
1471
|
color = value.color;
|
|
1468
1472
|
} else {
|
|
1469
|
-
|
|
1470
|
-
if (value.trend === 'decrease') color = waterfallOptions.colors.decrease;
|
|
1471
|
-
if (value.trend === 'increase') color = waterfallOptions.colors.increase;
|
|
1473
|
+
color = lodash.get(waterfallOptions, 'colors', {})[value.trend];
|
|
1472
1474
|
}
|
|
1473
1475
|
|
|
1474
1476
|
resultObject.data.push({
|
|
@@ -1485,14 +1487,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1485
1487
|
{
|
|
1486
1488
|
name: 'Positive',
|
|
1487
1489
|
visible: false,
|
|
1488
|
-
color: waterfallOptions
|
|
1490
|
+
color: lodash.get(waterfallOptions, 'colors.increase')
|
|
1489
1491
|
});
|
|
1490
1492
|
|
|
1491
1493
|
chart_series.push(
|
|
1492
1494
|
{
|
|
1493
1495
|
name: 'Negative',
|
|
1494
1496
|
visible: false,
|
|
1495
|
-
color: waterfallOptions
|
|
1497
|
+
color: lodash.get(waterfallOptions, 'colors.decrease'),
|
|
1496
1498
|
});
|
|
1497
1499
|
|
|
1498
1500
|
return chart_series;
|
|
@@ -5219,7 +5221,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5219
5221
|
|
|
5220
5222
|
// TODO: remove this logic after BE sort is implemented
|
|
5221
5223
|
// 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
|
|
5224
|
+
const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
|
|
5223
5225
|
&& lodash.get(widgetOptions, 'options.breakdown_options.values.totals', []).length === 2;
|
|
5224
5226
|
|
|
5225
5227
|
if (isTwoColumnComparisonWidget) {
|
|
@@ -5359,16 +5361,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5359
5361
|
dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
|
|
5360
5362
|
}
|
|
5361
5363
|
|
|
5362
|
-
highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions
|
|
5364
|
+
highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
|
|
5363
5365
|
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
5364
5366
|
const fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.fields);
|
|
5365
|
-
const predefinedField = lodash.cloneDeep(calcModelPredefinedField);
|
|
5366
5367
|
|
|
5367
5368
|
const fillData = (fieldsArr, ignoreFieldsIdToRemove = []) => {
|
|
5368
5369
|
const destinationArr = [];
|
|
5369
5370
|
lodash.forEach(fieldsArr, function (valObj) {
|
|
5370
|
-
if (!valObj) return;
|
|
5371
|
-
|
|
5372
5371
|
const fieldOb = lodash.find(fields, { id: valObj.id });
|
|
5373
5372
|
if (fieldOb) {
|
|
5374
5373
|
destinationArr.push(fieldOb);
|
|
@@ -5404,7 +5403,37 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5404
5403
|
}
|
|
5405
5404
|
})();
|
|
5406
5405
|
|
|
5407
|
-
|
|
5406
|
+
const reportingMonthRegex = /reporting[_\s]month/i;
|
|
5407
|
+
|
|
5408
|
+
const predefinedField = {
|
|
5409
|
+
value: {
|
|
5410
|
+
regex: /posting[_\s]amount/i,
|
|
5411
|
+
allowedFieldTypes: ['Float', 'Integer'],
|
|
5412
|
+
fields: [],
|
|
5413
|
+
},
|
|
5414
|
+
dataType: {
|
|
5415
|
+
regex: /^(data[_\s]type[_\s]by|data[_\s]type)$/i,
|
|
5416
|
+
allowedFieldTypes: ['Text'],
|
|
5417
|
+
fields: [],
|
|
5418
|
+
},
|
|
5419
|
+
date: {
|
|
5420
|
+
regex: reportingMonthRegex,
|
|
5421
|
+
allowedFieldTypes: ['Date'],
|
|
5422
|
+
fields: [],
|
|
5423
|
+
},
|
|
5424
|
+
filters: {
|
|
5425
|
+
isMultipleFields: true,
|
|
5426
|
+
regex: /^(scenario|DR_ACC_L0)$/i,
|
|
5427
|
+
fields: [],
|
|
5428
|
+
},
|
|
5429
|
+
dataSeries: {
|
|
5430
|
+
isMultipleFields: true,
|
|
5431
|
+
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,
|
|
5432
|
+
fields: [],
|
|
5433
|
+
},
|
|
5434
|
+
};
|
|
5435
|
+
|
|
5436
|
+
if (!lodash.get(calcModelOptions, 'config', false)) {
|
|
5408
5437
|
/**
|
|
5409
5438
|
* alias stronger than name (order in array is important)
|
|
5410
5439
|
* Firstly we try to get predefined field by aliases and then fill in by names
|
|
@@ -5422,18 +5451,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5422
5451
|
: [lodash.find(fields, field => canAssignPredefinedField(predefinedField[key], key, field, value, opposite, ignoredFields))].filter(f => !!f);
|
|
5423
5452
|
|
|
5424
5453
|
if (result && result.length) {
|
|
5425
|
-
if (!predefinedField[key].fields) {
|
|
5426
|
-
predefinedField[key].fields = [];
|
|
5427
|
-
}
|
|
5428
|
-
|
|
5429
5454
|
predefinedField[key].fields.push(...result);
|
|
5430
5455
|
}
|
|
5431
5456
|
});
|
|
5432
5457
|
}
|
|
5433
5458
|
}
|
|
5434
5459
|
|
|
5435
|
-
const
|
|
5436
|
-
const filters = lodash.get(calcModelOptions, 'config.filters', defaultFilters);
|
|
5460
|
+
const filters = lodash.get(calcModelOptions, 'config.filters', predefinedField.filters.fields);
|
|
5437
5461
|
|
|
5438
5462
|
lodash.forEach(filters, function (filterObj) {
|
|
5439
5463
|
const fieldOb = lodash.find(fields, { id: filterObj.id });
|
|
@@ -5454,23 +5478,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5454
5478
|
}
|
|
5455
5479
|
});
|
|
5456
5480
|
|
|
5457
|
-
const
|
|
5458
|
-
const
|
|
5459
|
-
|
|
5460
|
-
const
|
|
5461
|
-
const
|
|
5462
|
-
|
|
5463
|
-
const
|
|
5464
|
-
const storedAggFields = [lodash.get(calcModelOptions, 'config.agg_field', defaultAggValue)].filter(f => !!f);
|
|
5465
|
-
|
|
5466
|
-
const defaultDataTypeValue = lodash.get(predefinedField, 'dataType.fields[0]', undefined);
|
|
5467
|
-
const storedDataTypeFields = [lodash.get(calcModelOptions, 'config.data_type_field', defaultDataTypeValue)].filter(f => !!f);
|
|
5468
|
-
|
|
5469
|
-
const reportingMonthRegex = /reporting[_\s]month/i;
|
|
5470
|
-
const scenarioRegex = /scenario/i;
|
|
5471
|
-
|
|
5472
|
-
const scenarioField = lodash.find(fields, _field => scenarioRegex.test(_field.alias)) || lodash.find(fields, _field => scenarioRegex.test(_field.name));
|
|
5473
|
-
const reportingMonthField = lodash.find(fields, _field => reportingMonthRegex.test(_field.alias)) || lodash.find(fields, _field => reportingMonthRegex.test(_field.name));
|
|
5481
|
+
const storedGroupByFields = lodash.get(calcModelOptions, 'config.group_by', predefinedField.dataSeries.fields);
|
|
5482
|
+
const storedDateFields = [lodash.get(calcModelOptions, 'config.date_field', predefinedField.date.fields[0])].filter(f => !!f);
|
|
5483
|
+
const storedAggFields = [lodash.get(calcModelOptions, 'config.agg_field', predefinedField.value.fields[0])].filter(f => !!f);
|
|
5484
|
+
const storedDataTypeFields = [lodash.get(calcModelOptions, 'config.data_type_field', predefinedField.dataType.fields[0])].filter(f => !!f);
|
|
5485
|
+
const scenarioField = lodash.get(calcModelOptions, 'config.scenario', lodash.find(predefinedField.filters.fields, filter => [filter.name, filter.alias].includes('scenario')));
|
|
5486
|
+
const reportingMonthFieldWithAlias = lodash.find(fields, _field => reportingMonthRegex.test(_field.alias));
|
|
5487
|
+
const reportingMonthFieldWithName = lodash.find(fields, _field => reportingMonthRegex.test(_field.name));
|
|
5474
5488
|
|
|
5475
5489
|
/**
|
|
5476
5490
|
* We can have several common fields, so we should ignore deleting during fillData
|
|
@@ -5489,7 +5503,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5489
5503
|
selectedFieldsArray: dataSeriesFields,
|
|
5490
5504
|
filtersArray: filterFields,
|
|
5491
5505
|
scenarioField,
|
|
5492
|
-
reportingMonthField,
|
|
5506
|
+
reportingMonthField: reportingMonthFieldWithAlias || reportingMonthFieldWithName,
|
|
5493
5507
|
dateFields,
|
|
5494
5508
|
dataTypeFields,
|
|
5495
5509
|
valueFields
|