@datarailsshared/dr_renderer 1.2.246-rocket → 1.2.248-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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarailsshared/dr_renderer",
3
- "version": "1.2.246-rocket",
3
+ "version": "1.2.248-dragons",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -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});
@@ -1399,7 +1403,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1399
1403
  }
1400
1404
 
1401
1405
  tmoobj.y = val;
1402
- tmoobj.colKeys = [lodash.unescape(col_n_keys[col_index - 1]), lodash.unescape(col_n_value)];
1406
+ tmoobj.colKeys = [lodash.unescape(col_n_value), lodash.unescape(col_n_keys[col_index + 1])];
1403
1407
  resultObject.data.push(tmoobj);
1404
1408
  }
1405
1409
 
@@ -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.colors.increase,
1433
- color: waterfallOptions.colors.decrease,
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
- if (value.trend === 'total') color = waterfallOptions.colors.total;
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.colors.increase
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.colors.decrease
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, calcModelPredefinedField) {
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
- if (!lodash.get(calcModelOptions, 'config', false) && predefinedField) {
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 defaultFilters = lodash.get(predefinedField, 'filters.fields', []);
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 defaultGroupByValues = lodash.get(predefinedField, 'dataSeries.fields', []);
5458
- const storedGroupByFields = lodash.get(calcModelOptions, 'config.group_by', defaultGroupByValues);
5459
-
5460
- const defaultDateValue = lodash.get(predefinedField, 'date.fields[0]', undefined);
5461
- const storedDateFields = [lodash.get(calcModelOptions, 'config.date_field', defaultDateValue)].filter(f => !!f);
5462
-
5463
- const defaultAggValue = lodash.get(predefinedField, 'value.fields[0]', undefined);
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
@@ -9120,7 +9134,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
9120
9134
  rows = [];
9121
9135
  } else {
9122
9136
  rows = cols;
9123
- cols = [point.colKeys[1]];
9137
+ cols = [point.colKeys[0]];
9124
9138
  }
9125
9139
  return { rows, cols };
9126
9140
  }