@datarailsshared/dr_renderer 1.2.226-dragons → 1.2.228-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.226-dragons",
3
+ "version": "1.2.228-rocket",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -1,6 +1,5 @@
1
1
  const SERIES_CLASSNAMES = {
2
2
  WATERFALL_BREAKDOWN: 'waterfallBreakdown',
3
- WATERFALL_WALKTHROUGH: 'waterfallWalkthrough',
4
3
  TOTAL_SERIES: 'totalSeries',
5
4
  TREND_SERIES: 'trendSeries',
6
5
  };
@@ -26,7 +25,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
26
25
  const textColor = "#151a41";
27
26
  const chartLabelColor = "#cfd7dd";
28
27
  const HIGHCHARTS_FONT_FAMILY = 'Poppins';
29
- let firstBarColor = null;
30
28
 
31
29
  if(!Highcharts){
32
30
  Highcharts = {
@@ -84,7 +82,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
84
82
  KPI_WIDGET: 'kpi-widget',
85
83
  TEXT_WIDGET: 'text-widget',
86
84
  WATERFALL_BREAKDOWN: 'waterfall-chart-breakdown',
87
- WATERFALL_WALKTHROUGH: 'waterfall-chart-walkthrough',
88
85
  PUBLISHED_ITEM: 'published_item',
89
86
  RICH_TEXT: 'rich_text',
90
87
  EXCEL_VIEWER: 'excel_viewer',
@@ -469,7 +466,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
469
466
  highchartsRenderer.getOthersName(opts) :
470
467
  undefined;
471
468
  var drOthersInColumn = lodash.find(
472
- pivotData.getColKeys(),
469
+ pivotData.getColKeys(),
473
470
  keys => keys.length && (lodash.includes(keys, 'DR_Others') || lodash.includes(keys, othersName))
474
471
  );
475
472
 
@@ -489,7 +486,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
489
486
  rows = [];
490
487
  }
491
488
 
492
- var cols = lodash.get(this, 'point.options.colsForTotal') || this.key;
489
+ var cols = this.key;
493
490
  if (typeof (cols) == 'object' && cols.name) {
494
491
  cols = cols.name;
495
492
  }
@@ -497,7 +494,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
497
494
  if (!cols && is_drill_down_pie) {
498
495
  cols = this.point.name;
499
496
  }
500
-
497
+
501
498
  if (drOthersInColumn) {
502
499
  if (!lodash.isArray(cols) && othersName === cols) {
503
500
  cols = ['DR_Others'];
@@ -622,7 +619,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
622
619
 
623
620
  var func = function () {
624
621
  const isWaterfallBreakdown = this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN;
625
- const isWaterfallWalkthrough = this.series.options.className === SERIES_CLASSNAMES.WATERFALL_WALKTHROUGH;
622
+
626
623
  var y = parseFloat(this.y);
627
624
  if (pivotData) {
628
625
  let series_name = (this.series.name || '') + "";
@@ -635,8 +632,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
635
632
  || this.series.options.className === 'trendSeries') {
636
633
  rows = [];
637
634
  }
638
-
639
- var cols = lodash.get(this, 'point.options.colsForTotal') || this.key;
635
+ var cols = this.key;
640
636
  if (!cols && is_drill_down_pie) {
641
637
  cols = this.name;
642
638
  }
@@ -651,9 +647,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
651
647
  if (variant_name && rows && rows[0] && variant_name == rows[0]) {
652
648
  rows[0] = variant_name_default_name;
653
649
  }
654
- if (isWaterfallWalkthrough) {
655
- cols = [this.key]
656
- }
650
+
657
651
  try {
658
652
  if (is_drill_down_pie && !highchartsRenderer.selfStartsWith(series_name,"Series ")) {
659
653
  let temp = cols;
@@ -661,9 +655,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
661
655
  rows = temp;
662
656
  }
663
657
 
664
- var category_text = `<span style="font-weight: bold;">
665
- ${ lodash.get(this, 'point.options.colsForTotal') ? cols[0] : cols } ${ isWaterfallBreakdown ? ': ' : ' ' }
666
- </span>`;
658
+ var category_text = `<span style="font-weight: bold;">${ cols }${ isWaterfallBreakdown ? ': ' : ' ' }</span>`;
667
659
  if (this.category) {
668
660
  category_text = '';
669
661
  }
@@ -680,7 +672,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
680
672
  const modifiedRowsAndCols = highchartsRenderer.transformRowsAndColsForBreakdown(rows, cols, this.point, opts);
681
673
  rows = modifiedRowsAndCols.rows;
682
674
  cols = modifiedRowsAndCols.cols;
683
- }
675
+ }
684
676
 
685
677
  var aggr = pivotData.getAggregator(rows, cols);
686
678
 
@@ -1422,89 +1414,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1422
1414
  return chart_series;
1423
1415
  }
1424
1416
 
1425
- highchartsRenderer.ptCreateWaterfallWalkthroughSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
1426
- const waterfallOptions = opts.walkthrough_options;
1427
- const chart_series = [];
1428
- let resultObject = {
1429
- data: [],
1430
- dataLabels: {
1431
- allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
1432
- enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
1433
- formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
1434
- style: highchartsRenderer.getDataLabelsStyle(additionOptions),
1435
- },
1436
- upColor: waterfallOptions.colors.increase,
1437
- color: waterfallOptions.colors.decrease,
1438
- className: SERIES_CLASSNAMES.WATERFALL_WALKTHROUGH
1439
- };
1440
- resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
1441
- lodash.forEach(waterfallOptions.values.walkthrough, function(value, index) {
1442
-
1443
- let keys = [];
1444
- if (value.trend === 'total') {
1445
- keys = ['Total'];
1446
- } else {
1447
- _.forEach(value.key, (item) => {
1448
- const findKeyByValue = Object.keys(pivotData.dateValuesDictionary || {}).find(key => pivotData.dateValuesDictionary[key] === item);
1449
- keys.push(findKeyByValue ? findKeyByValue : item);
1450
- })
1451
- }
1452
-
1453
- const agg = pivotData.getAggregator([], keys);
1454
- let val = agg.value();
1455
-
1456
- if (val != null && $.isNumeric(val)) {
1457
- val = parseFloat(val);
1458
- } else if (onlyNumbers) {
1459
- val = NaN;
1460
- } else {
1461
- val = 0;
1462
- }
1463
-
1464
- if (value.trend === 'decrease') {
1465
- val = val * -1;
1466
- }
1467
-
1468
- const name = value.trend === 'total' ? value.formattedKey || value.key[0] : keys.join(highchartsRenderer.delimer);
1469
- let color = '';
1470
- if (value.trend !== 'total') {
1471
- if (index === 0 && !firstBarColor) {
1472
- color = waterfallOptions.colors.total;
1473
- firstBarColor = waterfallOptions.colors.total;
1474
- } else {
1475
- color = value.color
1476
- }
1477
- } else {
1478
- color = waterfallOptions.colors.total;
1479
- }
1480
-
1481
- resultObject.data.push({
1482
- y: val,
1483
- name: lodash.unescape(name).replace('DR_Others', highchartsRenderer.getOthersName(opts)),
1484
- isSum: value.trend === 'total',
1485
- isTotal: value.trend === 'total',
1486
- color,
1487
- colsForTotal: value.trend === 'total' ? keys : null,
1488
- });
1489
- });
1490
- chart_series.push(resultObject);
1491
- chart_series.push(
1492
- {
1493
- name: 'Positive',
1494
- visible: false,
1495
- color: waterfallOptions.colors.increase
1496
- });
1497
-
1498
- chart_series.push(
1499
- {
1500
- name: 'Negative',
1501
- visible: false,
1502
- color: waterfallOptions.colors.decrease
1503
- });
1504
-
1505
- return chart_series;
1506
- }
1507
-
1508
1417
  highchartsRenderer.setChartTypeBySeriesType = function (type, series) {
1509
1418
  const types = {
1510
1419
  'line-chart': 'line',
@@ -1708,7 +1617,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1708
1617
  highchartsRenderer.getDataLabelsStylesForDrillDown = function(additionOptions) {
1709
1618
  let result = highchartsRenderer.getDataLabelsOptions(additionOptions, { dataLabels: {} });
1710
1619
 
1711
- if (!result.dataLabels) return {};
1620
+ if (!result.dataLabels) return {};
1712
1621
  return {
1713
1622
  activeDataLabelStyle: {
1714
1623
  color: result.dataLabels.color,
@@ -3264,7 +3173,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3264
3173
 
3265
3174
  highchartsRenderer.ptRenderWaterfallBreakdown = function (pivotData, opts, drilldownFunc, chartType) {
3266
3175
  let chartOptions = {};
3267
- const additionOptions = opts.chartOptions
3176
+ const additionOptions = opts.chartOptions
3268
3177
  ? opts.chartOptions
3269
3178
  : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
3270
3179
 
@@ -3363,121 +3272,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3363
3272
  return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
3364
3273
  };
3365
3274
 
3366
- highchartsRenderer.ptRenderWaterfallWalkthrough = function (pivotData, opts) {
3367
- let chartOptions = {};
3368
- const waterfallOptions = opts?.walkthrough_options;
3369
- const additionOptions = opts.chartOptions
3370
- ? opts.chartOptions
3371
- : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH);
3372
-
3373
- chartOptions.chart = {
3374
- type: 'waterfall',
3375
- zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
3376
- };
3377
- if (disableAnimation) {
3378
- chartOptions.chart.animation = false;
3379
- }
3380
-
3381
- chartOptions.xAxis = {
3382
- type: 'category',
3383
- crosshair: true,
3384
- min: 0,
3385
- title: {
3386
- text : additionOptions && additionOptions.axisX ? additionOptions.axisX.name : '',
3387
- },
3388
- uniqueNames: false,
3389
- };
3390
-
3391
- highchartsRenderer.setTitleAndSubTitle(chartOptions, opts, additionOptions);
3392
-
3393
- chartOptions.yAxis = {
3394
- min: null,
3395
- max: null,
3396
- title: {
3397
- text: additionOptions && additionOptions.axisY ? additionOptions.axisY.name : '',
3398
- autoylabel: additionOptions && additionOptions.axisY ? additionOptions.axisY.autoylabel : ''
3399
- },
3400
- labels: {
3401
- formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
3402
- },
3403
- };
3404
- if (additionOptions) {
3405
- highchartsRenderer.setYAxisMinMax(chartOptions.yAxis, additionOptions.axisY);
3406
- }
3407
-
3408
- chartOptions.tooltip = {
3409
- formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
3410
- valueDecimals: 2,
3411
- };
3412
-
3413
- highchartsRenderer.handleGridLines(additionOptions, chartOptions);
3414
-
3415
- if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
3416
- const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
3417
- chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
3418
- } else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
3419
- chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
3420
- }
3421
- chartOptions.series = highchartsRenderer
3422
- .ptCreateWaterfallWalkthroughSeries(pivotData, null, additionOptions, opts);
3423
-
3424
- chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
3425
- chartOptions.plotOptions = {
3426
- waterfall: {
3427
- pointPadding: 0.2,
3428
- borderWidth: 0,
3429
- borderRadius: 1,
3430
- lineWidth: 0,
3431
- },
3432
- series: {
3433
- animation: !disableAnimation,
3434
- cropThreshold: 1000,
3435
- dataLabels: {
3436
- allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
3437
- enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
3438
- formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
3439
- style: highchartsRenderer.getDataLabelsStyle(additionOptions),
3440
- inside: false
3441
- },
3442
- events: {
3443
- legendItemClick: () => {
3444
- return false;
3445
- }
3446
- }
3447
- }
3448
- };
3449
-
3450
- if (opts.drillDownListFunc) {
3451
- chartOptions.plotOptions.series.cursor = 'pointer';
3452
- chartOptions.plotOptions.series.point = {
3453
- events: {
3454
- click: opts.drillDownListFunc
3455
- }
3456
- };
3457
- }
3458
- if (waterfallOptions.colors) {
3459
- chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 3, false);
3460
- chartOptions.legend.useHTML = true;
3461
- chartOptions.legend.labelFormatter = function() {
3462
- const name = this.options.className ? 'Total': this.name;
3463
- const findTotal = _.find(this.options.data, {isTotal: true});
3464
- const color = findTotal?.color ? findTotal.color : this.color;
3465
- return '<span style="margin: 5px; vertical-align: middle; display:inline-block; background-color: '+ color + '; width: 12px; height: 12px; border-radius: 50%"></span><span style="color: #000; display: inline-block; margin: 5px; vertical-align: middle;">' + name + '</span>';
3466
- }
3467
-
3468
- chartOptions.legend.symbolPadding = 0;
3469
- chartOptions.legend.symbolWidth = 0;
3470
- chartOptions.legend.symbolHeight = 0;
3471
- chartOptions.legend.squareSymbol = false;
3472
- } else {
3473
- chartOptions.legend = {
3474
- enabled: false
3475
- }
3476
- }
3477
-
3478
- return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
3479
- }
3480
-
3481
3275
  highchartsRenderer.formatFieldValue = function (field, value) {
3482
3276
  let currentType = '';
3483
3277
  let format = field.format;
@@ -4546,17 +4340,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4546
4340
  }
4547
4341
  };
4548
4342
 
4549
- highchartsRenderer.waterfallConstants = {
4550
- [highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN]: {
4551
- minCategoriesCount: 2,
4552
- maxCategoriesCount: 5,
4553
- },
4554
- [highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH]: {
4555
- minCategoriesCount: 2,
4556
- maxCategoriesCount: 10,
4557
- }
4558
- };
4559
-
4560
4343
  highchartsRenderer.rhPivotView = function (rowData, options, isTable = false, widget = null) {
4561
4344
  if (!rowData || !rowData) {
4562
4345
  if (options.onlyOptions) {
@@ -4565,15 +4348,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4565
4348
  return null;
4566
4349
  }
4567
4350
 
4568
- const isWaterfall = widget
4569
- && (
4570
- widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
4571
- || widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH
4572
- );
4573
-
4574
- if (isWaterfall) {
4575
- const maxCategories = highchartsRenderer.waterfallConstants[widget.chart_type].maxCategoriesCount;
4576
- const minCategories = highchartsRenderer.waterfallConstants[widget.chart_type].minCategoriesCount;
4351
+ if (widget && widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
4352
+ const breakdownSettings = widget.options.breakdown_options.settings;
4353
+ const maxCategories = breakdownSettings.maxCategoriesCount;
4354
+ const minCategories = breakdownSettings.minCategoriesCount;
4577
4355
  const uniqueCategories = lodash.filter(
4578
4356
  lodash.uniq(
4579
4357
  lodash.map(rowData, row => row[widget.cols[0].name])
@@ -4583,8 +4361,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4583
4361
 
4584
4362
  if (uniqueCategories && (uniqueCategories.length > maxCategories || uniqueCategories.length < minCategories )) {
4585
4363
  options.error_has_occurred = true;
4586
- const isDateField = widget.cols[0].type === 'Date';
4587
- const commonMessagePart = `This chart support a selection of ${minCategories}-${maxCategories} items from the category section. `;
4588
4364
  options.error_params = {
4589
4365
  title: 'Data Conflict',
4590
4366
  text: `Please adjust your dashboard's reference date and filter selections as \
@@ -4833,25 +4609,19 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4833
4609
  return highchartsRenderer.getWeekNumber(dateObj);
4834
4610
  };
4835
4611
 
4836
- highchartsRenderer.check_values_not_for_convert = function (currentgraph, field_name) {
4837
- let vals_not_convert = [];
4612
+ highchartsRenderer.check_value_not_for_convert = function (currentgraph, field_name) {
4613
+ let val_not_convert = null;
4838
4614
  if (lodash.has(currentgraph, "options.chartOptions.delta_column") && currentgraph.options.chartOptions.delta_column) {
4839
4615
  let delta_options = currentgraph.options.chartOptions.delta_column;
4840
4616
  if (delta_options.field == 'series' && currentgraph.rows && currentgraph.rows[0] &&
4841
4617
  currentgraph.rows[0].name == field_name) {
4842
- vals_not_convert = [delta_options.name];
4618
+ val_not_convert = delta_options.name;
4843
4619
  } else if (delta_options.field == 'category' && currentgraph.rows && currentgraph.cols[0] &&
4844
4620
  currentgraph.cols[0].name == field_name) {
4845
- vals_not_convert = [delta_options.name];
4621
+ val_not_convert = delta_options.name;
4846
4622
  }
4847
- } else if (currentgraph.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH) {
4848
- lodash.forEach(currentgraph.options.walkthrough_options.values.walkthrough, value => {
4849
- if (value.trend === 'total') {
4850
- vals_not_convert.push(value.key[0]);
4851
- }
4852
- });
4853
4623
  }
4854
- return vals_not_convert;
4624
+ return val_not_convert;
4855
4625
  };
4856
4626
 
4857
4627
  highchartsRenderer.updateFiltersShowNames = function (filters) {
@@ -4871,8 +4641,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4871
4641
  })
4872
4642
  };
4873
4643
 
4874
- highchartsRenderer.returnRawDataValue = function (type, value, format, field_name, vals_not_for_convert) {
4875
- if (vals_not_for_convert && vals_not_for_convert.length && lodash.includes(vals_not_for_convert, value)) {
4644
+ highchartsRenderer.returnRawDataValue = function (type, value, format, field_name, val_not_for_convert) {
4645
+ if (val_not_for_convert && val_not_for_convert == value) {
4876
4646
  return value;
4877
4647
  }
4878
4648
 
@@ -4968,7 +4738,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4968
4738
  };
4969
4739
 
4970
4740
  highchartsRenderer.isSystemField = function (field) {
4971
- var regex = new RegExp("^(Parent_Name|Parent_Id|FileBox_ID|FileBox_Name|DataMapper_Name|Doc_ID|Doc_version|Label|Submission_Date|User|table_id|Latest_In_Dim|Tab_name|CP_Name|DT_.+|VT_.+|System_.+)$", "m");
4741
+ var regex = new RegExp("^(Calc_Model_Name|Calc_Model_ID|Parent_Name|Parent_Id|FileBox_ID|FileBox_Name|DataMapper_Name|Doc_ID|Doc_version|Label|Submission_Date|User|table_id|Latest_In_Dim|Tab_name|CP_Name|DT_.+|VT_.+|System_.+)$", "m");
4972
4742
 
4973
4743
  return (field.category && field.category.includes("")) || regex.test(field.name)
4974
4744
  };
@@ -5331,63 +5101,83 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5331
5101
 
5332
5102
  highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
5333
5103
  highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5334
-
5335
- const scenarioName = 'scenario';
5336
5104
  const fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.fields);
5337
- const fieldScenarioAlias = _.find(fields, field => (field.alias || '').toLowerCase() === scenarioName)
5338
- const fieldScenario = _.find(fields, field => (field.name || '').toLowerCase() === scenarioName)
5339
- const filters = calcModelOptions.config && calcModelOptions.config.filters;
5105
+ const filters = (calcModelOptions.config && calcModelOptions.config.filters) || [];
5340
5106
 
5341
- const filterFields = [];
5342
- const valueFields = [];
5343
- const dateFields = [];
5344
- const dataTypeFields = [];
5345
- const dataSeriesFields = [];
5346
-
5347
- let scenarioField = lodash.get(calcModelOptions, 'config.scenario', undefined) || fieldScenarioAlias || fieldScenario;
5348
- let fieldOb;
5349
-
5350
- const fillData = (fieldsArr, destinationArr) => {
5107
+ const fillData = (fieldsArr) => {
5108
+ const destinationArr = [];
5351
5109
  lodash.forEach(fieldsArr, function (valObj) {
5352
- fieldOb = lodash.find(fields, { id: valObj.id });
5110
+ const fieldOb = lodash.find(fields, { id: valObj.id });
5353
5111
  if (fieldOb) {
5354
5112
  destinationArr.push(fieldOb);
5355
5113
  lodash.remove(fields, { id: fieldOb.id });
5356
5114
  }
5357
5115
  });
5116
+
5117
+ return destinationArr;
5358
5118
  }
5359
5119
 
5360
- lodash.forEach(filters, function (filterObj) {
5361
- fieldOb = lodash.find(fields, { id: filterObj.id });
5362
- if (fieldOb && lodash.get(filterObj, 'values.datetype') === 'list') {
5363
- filterObj.values = filterObj.values.val
5364
- } else if (fieldOb && filterObj.values && filterObj.values.datetype && filterObj.values.datetype !== 'list') {
5365
- fieldOb.values = filterObj.values;
5366
- } else if (fieldOb && filterObj.values && filterObj.values.type === 'advanced') {
5367
- fieldOb.values = filterObj.values;
5120
+ const predefinedField = {
5121
+ value: {
5122
+ regex: /posting[_\s]?amount/i,
5123
+ fieldWithAlias: undefined,
5124
+ fieldWithName: undefined
5125
+ },
5126
+ dataType: {
5127
+ regex: /data[_\s]?type/i,
5128
+ fieldWithAlias: undefined,
5129
+ fieldWithName: undefined
5130
+ },
5131
+ date: {
5132
+ regex: /reporting[_\s]?month/i,
5133
+ fieldWithAlias: undefined,
5134
+ fieldWithName: undefined
5135
+ },
5136
+ filters: {
5137
+ regex: /scenario/i,
5138
+ fieldWithAlias: undefined,
5139
+ fieldWithName: undefined
5140
+ },
5141
+ };
5142
+
5143
+ for (const key in predefinedField) {
5144
+ predefinedField[key].fieldWithAlias = _.find(fields, field => predefinedField[key].regex.test((field.alias || '').toLowerCase()));
5145
+
5146
+ if (!predefinedField[key].fieldWithAlias) {
5147
+ predefinedField[key].fieldWithName = _.find(fields, field => predefinedField[key].regex.test((field.name || '').toLowerCase()));
5368
5148
  }
5369
- if (fieldOb && filterObj.values && filterObj.values instanceof Array) {
5370
- if (filterObj.is_excluded === true) {
5371
- fieldOb.excludes = filterObj.values;
5372
- } else {
5373
- fieldOb.includes = filterObj.values;
5374
- }
5149
+ }
5150
+
5151
+ lodash.forEach(filters, function (filterObj) {
5152
+ const fieldOb = lodash.find(fields, { id: filterObj.id });
5153
+ if (!fieldOb) return;
5154
+
5155
+ filterObj.values = filterObj.values && lodash.map(filterObj.values, highchartsRenderer.decodeFunc);
5156
+ filterObj.includes = filterObj.includes && lodash.map(filterObj.includes, highchartsRenderer.decodeFunc);
5157
+
5158
+ if (lodash.get(filterObj, 'values.datetype') === 'list') {
5159
+ filterObj.values = lodash.map(filterObj.values.val, highchartsRenderer.decodeFunc);
5375
5160
  }
5161
+
5162
+ fieldOb.includes = filterObj.includes;
5163
+ fieldOb.values = filterObj.values;
5164
+
5376
5165
  if (filterObj.allow_nulls && fieldOb) {
5377
5166
  fieldOb.allow_nulls = filterObj.allow_nulls;
5378
5167
  }
5379
5168
  });
5380
5169
 
5381
5170
  const storedGroupByFields = lodash.get(calcModelOptions, 'config.group_by', []);
5382
- const storedDateFields = [lodash.get(calcModelOptions, 'config.date_field', undefined)].filter(f => !!f);
5383
- const storedAggFields = [lodash.get(calcModelOptions, 'config.agg_field', undefined)].filter(f => !!f);
5384
- const storedDataTypeFields = [lodash.get(calcModelOptions, 'config.data_type_field', undefined)].filter(f => !!f);
5171
+ const storedDateFields = [lodash.get(calcModelOptions, 'config.date_field', predefinedField.date.fieldWithAlias || predefinedField.date.fieldWithName)].filter(f => !!f);
5172
+ const storedAggFields = [lodash.get(calcModelOptions, 'config.agg_field', predefinedField.value.fieldWithAlias || predefinedField.value.fieldWithName)].filter(f => !!f);
5173
+ const storedDataTypeFields = [lodash.get(calcModelOptions, 'config.data_type_field', predefinedField.dataType.fieldWithAlias || predefinedField.dataType.fieldWithName)].filter(f => !!f);
5174
+ const scenarioField = lodash.get(calcModelOptions, 'config.scenario', predefinedField.filters.fieldWithAlias || predefinedField.filters.fieldWithName);
5385
5175
 
5386
- fillData(storedGroupByFields, dataSeriesFields);
5387
- fillData(storedDateFields, dateFields);
5388
- fillData(storedAggFields, valueFields);
5389
- fillData(storedDataTypeFields, dataTypeFields);
5390
- fillData(filters, filterFields);
5176
+ const filterFields = fillData(filters);
5177
+ const valueFields = fillData(storedAggFields);
5178
+ const dateFields = fillData(storedDateFields);
5179
+ const dataTypeFields = fillData(storedDataTypeFields);
5180
+ const dataSeriesFields = fillData(storedGroupByFields);
5391
5181
 
5392
5182
  calcModelOptions.pivot = {
5393
5183
  fieldsArray: fields,
@@ -5895,7 +5685,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5895
5685
  return valToReturn;
5896
5686
  };
5897
5687
 
5898
-
5688
+
5899
5689
  highchartsRenderer.getChartAxisLabel = function(type) {
5900
5690
  return highchartsRenderer.chartsTypesInfo[type] ? highchartsRenderer.chartsTypesInfo[type].axisName : CHART_AXIS_DEFAULT_LABEL;
5901
5691
  };
@@ -6730,7 +6520,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6730
6520
  value_name: 'show',
6731
6521
  default_value: true,
6732
6522
  disabled_str: '!{var}.show_out_of_x_axis && !{var}.show_out_of_data_series && !{var}.show_value && !{var}.show_x_axis && !{var}.show_data_series',
6733
- disabled_fn: (value) => !value.show_out_of_x_axis
6523
+ disabled_fn: (value) => !value.show_out_of_x_axis
6734
6524
  && !value.show_out_of_data_series
6735
6525
  && !value.show_value
6736
6526
  && !value.show_x_axis
@@ -6771,8 +6561,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6771
6561
  element_label: '[X Axis]',
6772
6562
  value_name: 'show_x_axis',
6773
6563
  default_value: true,
6774
- clickFn: (value) => value.show = value.show
6775
- ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6564
+ clickFn: (value) => value.show = value.show
6565
+ ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6776
6566
  : value.show,
6777
6567
  },
6778
6568
  {
@@ -6780,8 +6570,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6780
6570
  element_label: '[Data Series]',
6781
6571
  value_name: 'show_data_series',
6782
6572
  default_value: true,
6783
- clickFn: (value) => value.show = value.show
6784
- ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6573
+ clickFn: (value) => value.show = value.show
6574
+ ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6785
6575
  : value.show,
6786
6576
  },
6787
6577
  {
@@ -6789,8 +6579,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6789
6579
  element_label: 'Value',
6790
6580
  value_name: 'show_value',
6791
6581
  default_value: true,
6792
- clickFn: (value) => value.show = value.show
6793
- ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6582
+ clickFn: (value) => value.show = value.show
6583
+ ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6794
6584
  : value.show,
6795
6585
  },
6796
6586
  {
@@ -6798,8 +6588,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6798
6588
  element_label: '% Out of [X Axis]',
6799
6589
  value_name: 'show_out_of_x_axis',
6800
6590
  default_value: false,
6801
- clickFn: (value) => value.show = value.show
6802
- ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6591
+ clickFn: (value) => value.show = value.show
6592
+ ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6803
6593
  : value.show,
6804
6594
  },
6805
6595
  {
@@ -6807,8 +6597,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6807
6597
  element_label: '% Out of [Data Series]',
6808
6598
  value_name: 'show_out_of_data_series',
6809
6599
  default_value: false,
6810
- clickFn: (value) => value.show = value.show
6811
- ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6600
+ clickFn: (value) => value.show = value.show
6601
+ ? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
6812
6602
  : value.show,
6813
6603
  },
6814
6604
  ]
@@ -6982,16 +6772,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6982
6772
  value_name: 'name',
6983
6773
  element_label: 'Name',
6984
6774
  default_value: '_Variance'
6985
- }, {
6986
- element_type: 'input',
6987
- value_name: 'formula',
6988
- element_label: 'Formula',
6989
- default_value: 'x2-x1'
6990
6775
  }, {
6991
6776
  element_type: 'input',
6992
- value_name: 'color',
6993
- element_label: 'Color',
6994
- default_value: ''
6777
+ value_name: 'formula',
6778
+ element_label: 'Formula',
6779
+ default_value: 'x2-x1'
6780
+ }, {
6781
+ element_type: 'input',
6782
+ value_name: 'color',
6783
+ element_label: 'Color',
6784
+ default_value: ''
6995
6785
  }, {
6996
6786
  element_type: 'radio',
6997
6787
  value_name: 'chart',
@@ -7114,17 +6904,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7114
6904
  axisTooltipDescription: 'The category (usually an independent variable) is shown on the x-axis and should be between 2 to 5 total columns. ',
7115
6905
  legendTooltipTitle: 'Drag one field to further configure your x-axis.',
7116
6906
  legendTooltipDescription: 'The breakdown subdivides the chart by a category field for further analysis of what’s contributing to the increase or decrease.',
7117
- },
7118
- [highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH]: {
7119
- name: 'Waterfall Walkthrough Chart ',
7120
- label: 'Waterfall Walkthrough Chart ',
7121
- title: 'TODO: add text',
7122
- description: 'TODO: add text',
7123
- axisName: 'Category',
7124
- startedMessage: 'TODO: add text',
7125
- axisTooltipTitle: 'TODO: add text',
7126
- legendTooltipTitle: 'TODO: add text',
7127
- },
6907
+ },
7128
6908
  'combo-chart': {
7129
6909
  name: 'Combo Chart ',
7130
6910
  label: 'Combo Chart ',
@@ -7780,24 +7560,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7780
7560
  highchartsRenderer.suboptions["legends"],
7781
7561
  ]
7782
7562
  },
7783
- {
7784
- type: highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH,
7785
- name: highchartsRenderer.chartsTypesInfo[highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH].name,
7786
- class: 'google-visualization-charteditor-thumbs-columnchart',
7787
- render: highchartsRenderer.ptRenderWaterfallWalkthrough,
7788
- suboptions: [
7789
- highchartsRenderer.suboptions["axisX"],
7790
- highchartsRenderer.suboptions["tooltips"],
7791
- highchartsRenderer.suboptions["label"],
7792
- highchartsRenderer.suboptions["subtitle"],
7793
- highchartsRenderer.suboptions["widget_library"],
7794
- highchartsRenderer.suboptions["chart"],
7795
- highchartsRenderer.suboptions["negative_number_format"],
7796
- highchartsRenderer.suboptions["advanced"],
7797
- highchartsRenderer.suboptions["legends"],
7798
- ],
7799
- hidden: true,
7800
- },
7801
7563
  ]
7802
7564
  },
7803
7565
  ];
@@ -7954,7 +7716,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7954
7716
  _.forEach(Object.keys(dates), key => {
7955
7717
  const dateConfiguration = dates[key];
7956
7718
  const timestamp = dateConfiguration.timestamp;
7957
- if (timestamp) {
7719
+ if (timestamp) {
7958
7720
  const dateTzOffsetInSeconds = new Date(timestamp * 1000).getTimezoneOffset() * 60;
7959
7721
  dateConfiguration.displayedValue = new Date((timestamp + dateTzOffsetInSeconds) * 1000)
7960
7722
  .toLocaleDateString();
@@ -8253,7 +8015,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8253
8015
  if (!(format && highchartsRenderer.isDateFormat(dateString, format) || highchartsRenderer.isDate(dateString))) {
8254
8016
  return null;
8255
8017
  }
8256
- const utcDate = format
8018
+ const utcDate = format
8257
8019
  ? moment_lib.utc(dateString, format, true)
8258
8020
  : moment_lib.utc(dateString);
8259
8021
  return utcDate.startOf('day').unix();
@@ -8271,7 +8033,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8271
8033
  }
8272
8034
 
8273
8035
  let filters = [];
8274
-
8036
+
8275
8037
  if (widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
8276
8038
  const colFilter = highchartsRenderer.createFilterObject(widget.cols[0]);
8277
8039
  const labels = [];
@@ -8299,7 +8061,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8299
8061
  col_value,
8300
8062
  highchartsRenderer.getDateFieldFormat(widget, widget.cols[index])
8301
8063
  );
8302
-
8064
+
8303
8065
  if ($.isEmptyObject(datetrange)) {
8304
8066
  return;
8305
8067
  }
@@ -8542,7 +8304,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8542
8304
  var data = res;
8543
8305
 
8544
8306
  lodash.forEach(datesFields, function (row) {
8545
- row.val_not_convert = highchartsRenderer.check_values_not_for_convert(widget, row.name);
8307
+ row.val_not_convert = highchartsRenderer.check_value_not_for_convert(widget, row.name);
8546
8308
  });
8547
8309
 
8548
8310
  if (datesFields.length > 0) {
@@ -8948,14 +8710,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8948
8710
  return rightPosition;
8949
8711
  case 'none':
8950
8712
  return none;
8951
- }
8952
- } else if (isLine) {
8953
- return useNewUx ? leftPosition : rightPosition;
8954
- } else if (isPie) {
8955
- return useNewUx ? rightPosition : topPosition;
8956
8713
  }
8714
+ } else if (isLine) {
8715
+ return useNewUx ? leftPosition : rightPosition;
8716
+ } else if (isPie) {
8717
+ return useNewUx ? rightPosition : topPosition;
8718
+ }
8957
8719
 
8958
- return useNewUx ? topPosition : bottomPosition;
8720
+ return useNewUx ? topPosition : bottomPosition;
8959
8721
  }
8960
8722
 
8961
8723
  highchartsRenderer.setYAxisMinMax = function (yAxis, axisYOptions) {
@@ -8970,7 +8732,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8970
8732
  }
8971
8733
 
8972
8734
  highchartsRenderer.getDateFieldFormat = function(widget, dateField) {
8973
- const aggregationConfig = widget.options && widget.options.date_aggregation_configs
8735
+ const aggregationConfig = widget.options && widget.options.date_aggregation_configs
8974
8736
  ? _.find(widget.options.date_aggregation_configs, { field_id: dateField.id })
8975
8737
  : null;
8976
8738