@datarailsshared/dr_renderer 1.2.245-dragons → 1.2.246-rocket

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.245-dragons",
3
+ "version": "1.2.246-rocket",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -1042,7 +1042,6 @@ 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
-
1046
1045
  lodash.forEach(col_n_keys, function (col_n_value, index) {
1047
1046
  var agg = pivotData.getAggregator(row_n_value, col_n_value);
1048
1047
  var val = agg.value();
@@ -1259,7 +1258,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1259
1258
  if (opts.trendLine) {
1260
1259
  const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
1261
1260
  const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
1262
-
1263
1261
  const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
1264
1262
  trendSeries.className = 'trendSeries';
1265
1263
  trendSeries.name = highchartsRenderer.getTrendSeriesName(trendSeries);
@@ -1270,7 +1268,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1270
1268
  if (colors && colors[i]) {
1271
1269
  trendSeries.color = colors[i];
1272
1270
  }
1273
-
1274
1271
  trendSerieses.push(trendSeries);
1275
1272
  }
1276
1273
  i++;
@@ -1287,7 +1284,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1287
1284
  }
1288
1285
 
1289
1286
  let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
1290
-
1291
1287
  if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1292
1288
  chart_series.forEach((series, seriesIndex) => {
1293
1289
  const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
@@ -1433,8 +1429,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1433
1429
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
1434
1430
  style: highchartsRenderer.getDataLabelsStyle(additionOptions),
1435
1431
  },
1436
- upColor: lodash.get(waterfallOptions, 'colors.increase'),
1437
- color: lodash.get(waterfallOptions, 'colors.decrease'),
1432
+ upColor: waterfallOptions.colors.increase,
1433
+ color: waterfallOptions.colors.decrease,
1438
1434
  className: SERIES_CLASSNAMES.WATERFALL_WALKTHROUGH
1439
1435
  };
1440
1436
  resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
@@ -1470,7 +1466,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1470
1466
  if (value.color) {
1471
1467
  color = value.color;
1472
1468
  } else {
1473
- color = lodash.get(waterfallOptions, 'colors', {})[value.trend];
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;
1474
1472
  }
1475
1473
 
1476
1474
  resultObject.data.push({
@@ -1487,14 +1485,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1487
1485
  {
1488
1486
  name: 'Positive',
1489
1487
  visible: false,
1490
- color: lodash.get(waterfallOptions, 'colors.increase')
1488
+ color: waterfallOptions.colors.increase
1491
1489
  });
1492
1490
 
1493
1491
  chart_series.push(
1494
1492
  {
1495
1493
  name: 'Negative',
1496
1494
  visible: false,
1497
- color: lodash.get(waterfallOptions, 'colors.decrease'),
1495
+ color: waterfallOptions.colors.decrease
1498
1496
  });
1499
1497
 
1500
1498
  return chart_series;
@@ -5221,7 +5219,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5221
5219
 
5222
5220
  // TODO: remove this logic after BE sort is implemented
5223
5221
  // it is required to do sort by totals for comparative analysis - we need to change deltas if columns swaped vice versa
5224
- const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
5222
+ const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
5225
5223
  && lodash.get(widgetOptions, 'options.breakdown_options.values.totals', []).length === 2;
5226
5224
 
5227
5225
  if (isTwoColumnComparisonWidget) {
@@ -5361,13 +5359,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5361
5359
  dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
5362
5360
  }
5363
5361
 
5364
- highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
5362
+ highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions, calcModelPredefinedField) {
5365
5363
  highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5366
5364
  const fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.fields);
5365
+ const predefinedField = lodash.cloneDeep(calcModelPredefinedField);
5367
5366
 
5368
5367
  const fillData = (fieldsArr, ignoreFieldsIdToRemove = []) => {
5369
5368
  const destinationArr = [];
5370
5369
  lodash.forEach(fieldsArr, function (valObj) {
5370
+ if (!valObj) return;
5371
+
5371
5372
  const fieldOb = lodash.find(fields, { id: valObj.id });
5372
5373
  if (fieldOb) {
5373
5374
  destinationArr.push(fieldOb);
@@ -5403,37 +5404,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5403
5404
  }
5404
5405
  })();
5405
5406
 
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)) {
5407
+ if (!lodash.get(calcModelOptions, 'config', false) && predefinedField) {
5437
5408
  /**
5438
5409
  * alias stronger than name (order in array is important)
5439
5410
  * Firstly we try to get predefined field by aliases and then fill in by names
@@ -5451,13 +5422,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5451
5422
  : [lodash.find(fields, field => canAssignPredefinedField(predefinedField[key], key, field, value, opposite, ignoredFields))].filter(f => !!f);
5452
5423
 
5453
5424
  if (result && result.length) {
5425
+ if (!predefinedField[key].fields) {
5426
+ predefinedField[key].fields = [];
5427
+ }
5428
+
5454
5429
  predefinedField[key].fields.push(...result);
5455
5430
  }
5456
5431
  });
5457
5432
  }
5458
5433
  }
5459
5434
 
5460
- const filters = lodash.get(calcModelOptions, 'config.filters', predefinedField.filters.fields);
5435
+ const defaultFilters = lodash.get(predefinedField, 'filters.fields', []);
5436
+ const filters = lodash.get(calcModelOptions, 'config.filters', defaultFilters);
5461
5437
 
5462
5438
  lodash.forEach(filters, function (filterObj) {
5463
5439
  const fieldOb = lodash.find(fields, { id: filterObj.id });
@@ -5478,13 +5454,23 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5478
5454
  }
5479
5455
  });
5480
5456
 
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));
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));
5488
5474
 
5489
5475
  /**
5490
5476
  * We can have several common fields, so we should ignore deleting during fillData
@@ -5503,7 +5489,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5503
5489
  selectedFieldsArray: dataSeriesFields,
5504
5490
  filtersArray: filterFields,
5505
5491
  scenarioField,
5506
- reportingMonthField: reportingMonthFieldWithAlias || reportingMonthFieldWithName,
5492
+ reportingMonthField,
5507
5493
  dateFields,
5508
5494
  dataTypeFields,
5509
5495
  valueFields