@datarailsshared/dr_renderer 1.2.244-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.244-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: waterfallOptions.colors?.increase,
1437
- color: 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,9 +1466,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1470
1466
  if (value.color) {
1471
1467
  color = value.color;
1472
1468
  } else {
1473
- if (value.trend === 'total') color = waterfallOptions.colors?.total;
1474
- if (value.trend === 'decrease') color = waterfallOptions.colors?.decrease;
1475
- if (value.trend === 'increase') color = waterfallOptions.colors?.increase;
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;
1476
1472
  }
1477
1473
 
1478
1474
  resultObject.data.push({
@@ -1489,14 +1485,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1489
1485
  {
1490
1486
  name: 'Positive',
1491
1487
  visible: false,
1492
- color: waterfallOptions.colors?.increase
1488
+ color: waterfallOptions.colors.increase
1493
1489
  });
1494
1490
 
1495
1491
  chart_series.push(
1496
1492
  {
1497
1493
  name: 'Negative',
1498
1494
  visible: false,
1499
- color: waterfallOptions.colors?.decrease
1495
+ color: waterfallOptions.colors.decrease
1500
1496
  });
1501
1497
 
1502
1498
  return chart_series;
@@ -5223,7 +5219,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5223
5219
 
5224
5220
  // TODO: remove this logic after BE sort is implemented
5225
5221
  // it is required to do sort by totals for comparative analysis - we need to change deltas if columns swaped vice versa
5226
- const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
5222
+ const isTwoColumnComparisonWidget = widgetOptions.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
5227
5223
  && lodash.get(widgetOptions, 'options.breakdown_options.values.totals', []).length === 2;
5228
5224
 
5229
5225
  if (isTwoColumnComparisonWidget) {
@@ -5363,13 +5359,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5363
5359
  dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
5364
5360
  }
5365
5361
 
5366
- highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
5362
+ highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions, calcModelPredefinedField) {
5367
5363
  highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5368
5364
  const fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.fields);
5365
+ const predefinedField = lodash.cloneDeep(calcModelPredefinedField);
5369
5366
 
5370
5367
  const fillData = (fieldsArr, ignoreFieldsIdToRemove = []) => {
5371
5368
  const destinationArr = [];
5372
5369
  lodash.forEach(fieldsArr, function (valObj) {
5370
+ if (!valObj) return;
5371
+
5373
5372
  const fieldOb = lodash.find(fields, { id: valObj.id });
5374
5373
  if (fieldOb) {
5375
5374
  destinationArr.push(fieldOb);
@@ -5405,37 +5404,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5405
5404
  }
5406
5405
  })();
5407
5406
 
5408
- const reportingMonthRegex = /reporting[_\s]month/i;
5409
-
5410
- const predefinedField = {
5411
- value: {
5412
- regex: /posting[_\s]amount/i,
5413
- allowedFieldTypes: ['Float', 'Integer'],
5414
- fields: [],
5415
- },
5416
- dataType: {
5417
- regex: /^(data[_\s]type[_\s]by|data[_\s]type)$/i,
5418
- allowedFieldTypes: ['Text'],
5419
- fields: [],
5420
- },
5421
- date: {
5422
- regex: reportingMonthRegex,
5423
- allowedFieldTypes: ['Date'],
5424
- fields: [],
5425
- },
5426
- filters: {
5427
- isMultipleFields: true,
5428
- regex: /^(scenario|DR_ACC_L0)$/i,
5429
- fields: [],
5430
- },
5431
- dataSeries: {
5432
- isMultipleFields: true,
5433
- 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,
5434
- fields: [],
5435
- },
5436
- };
5437
-
5438
- if (!lodash.get(calcModelOptions, 'config', false)) {
5407
+ if (!lodash.get(calcModelOptions, 'config', false) && predefinedField) {
5439
5408
  /**
5440
5409
  * alias stronger than name (order in array is important)
5441
5410
  * Firstly we try to get predefined field by aliases and then fill in by names
@@ -5453,13 +5422,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5453
5422
  : [lodash.find(fields, field => canAssignPredefinedField(predefinedField[key], key, field, value, opposite, ignoredFields))].filter(f => !!f);
5454
5423
 
5455
5424
  if (result && result.length) {
5425
+ if (!predefinedField[key].fields) {
5426
+ predefinedField[key].fields = [];
5427
+ }
5428
+
5456
5429
  predefinedField[key].fields.push(...result);
5457
5430
  }
5458
5431
  });
5459
5432
  }
5460
5433
  }
5461
5434
 
5462
- 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);
5463
5437
 
5464
5438
  lodash.forEach(filters, function (filterObj) {
5465
5439
  const fieldOb = lodash.find(fields, { id: filterObj.id });
@@ -5480,13 +5454,23 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5480
5454
  }
5481
5455
  });
5482
5456
 
5483
- const storedGroupByFields = lodash.get(calcModelOptions, 'config.group_by', predefinedField.dataSeries.fields);
5484
- const storedDateFields = [lodash.get(calcModelOptions, 'config.date_field', predefinedField.date.fields[0])].filter(f => !!f);
5485
- const storedAggFields = [lodash.get(calcModelOptions, 'config.agg_field', predefinedField.value.fields[0])].filter(f => !!f);
5486
- const storedDataTypeFields = [lodash.get(calcModelOptions, 'config.data_type_field', predefinedField.dataType.fields[0])].filter(f => !!f);
5487
- const scenarioField = lodash.get(calcModelOptions, 'config.scenario', lodash.find(predefinedField.filters.fields, filter => [filter.name, filter.alias].includes('scenario')));
5488
- const reportingMonthFieldWithAlias = lodash.find(fields, _field => reportingMonthRegex.test(_field.alias));
5489
- 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));
5490
5474
 
5491
5475
  /**
5492
5476
  * We can have several common fields, so we should ignore deleting during fillData
@@ -5505,7 +5489,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5505
5489
  selectedFieldsArray: dataSeriesFields,
5506
5490
  filtersArray: filterFields,
5507
5491
  scenarioField,
5508
- reportingMonthField: reportingMonthFieldWithAlias || reportingMonthFieldWithName,
5492
+ reportingMonthField,
5509
5493
  dateFields,
5510
5494
  dataTypeFields,
5511
5495
  valueFields