@datarailsshared/dr_renderer 1.3.38 → 1.3.40

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.3.38",
3
+ "version": "1.3.40",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -62,6 +62,10 @@ function disableLegendInteractionIfRequired(chartOptions, additionOptions) {
62
62
  _.set(chartOptions, 'legend.itemStyle.cursor', 'default');
63
63
  }
64
64
 
65
+ function isShowingEmptyValues(additionOptions) {
66
+ return !additionOptions || !additionOptions.chart || additionOptions.chart.dislay_empty_values !== false;
67
+ }
68
+
65
69
  module.exports = {
66
70
  backendSortingKeysAreNotEmpty,
67
71
  capitalize,
@@ -70,4 +74,5 @@ module.exports = {
70
74
  mergeDeep,
71
75
  removeSVGTextCorrection,
72
76
  disableLegendInteractionIfRequired,
77
+ isShowingEmptyValues,
73
78
  }
@@ -406,6 +406,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
406
406
  if (!type) return null;
407
407
  return [
408
408
  'line',
409
+ 'line-chart-forecast',
409
410
  'spline',
410
411
  'area',
411
412
  'areaspline',
@@ -1266,6 +1267,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1266
1267
  .replace(highchartsRenderer.DR_OTHERS_KEY, othersName);
1267
1268
  ob.name = highchartsRenderer.getFormattedRowKey(ob.initialName, pivotData);
1268
1269
  }
1270
+
1269
1271
  lodash.forEach(col_n_keys, function (col_n_value, index) {
1270
1272
  var agg = pivotData.getAggregator(row_n_value, col_n_value);
1271
1273
  var val = agg.value();
@@ -1276,13 +1278,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1276
1278
  if (val != null) {
1277
1279
  if ($.isNumeric(val)) {
1278
1280
  val = parseFloat(val);
1279
- // if (val > -1 && val < 1) {
1280
- // val = parseFloat(val.toPrecision(4));
1281
- // } else {
1282
- // val = parseFloat(val.toFixed(2));
1283
- // }
1284
1281
  }
1285
- } else {
1282
+ } else if (helpers.isShowingEmptyValues(additionOptions)) {
1286
1283
  if (onlyNumbers)
1287
1284
  val = NaN;
1288
1285
  else
@@ -1484,13 +1481,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1484
1481
  if (val != null) {
1485
1482
  if ($.isNumeric(val)) {
1486
1483
  val = parseFloat(val);
1487
- // if (val > -1 && val < 1) {
1488
- // val = parseFloat(val.toPrecision(4));
1489
- // } else {
1490
- // val = parseFloat(val.toFixed(2));
1491
- // }
1492
1484
  }
1493
- } else {
1485
+ } else if (helpers.isShowingEmptyValues(additionOptions)) {
1494
1486
  if (onlyNumbers)
1495
1487
  val = NaN;
1496
1488
  else
@@ -1575,6 +1567,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1575
1567
  } else if (seriesIndex === chart_series.length - 1 && chart_series.length > 1 && !has_delta && !opts.total && !trendSerieses.length) {
1576
1568
  series.type = 'line';
1577
1569
  }
1570
+ series.connectNulls = !helpers.isShowingEmptyValues(additionOptions);
1578
1571
  });
1579
1572
  }
1580
1573
 
@@ -2532,7 +2525,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2532
2525
  enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
2533
2526
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
2534
2527
  style: highchartsRenderer.getDataLabelsStyle(additionOptions)
2535
- }
2528
+ },
2529
+ connectNulls: !helpers.isShowingEmptyValues(additionOptions),
2536
2530
  }
2537
2531
  };
2538
2532
 
@@ -2621,7 +2615,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2621
2615
  enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
2622
2616
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
2623
2617
  style: highchartsRenderer.getDataLabelsStyle(additionOptions)
2624
- }
2618
+ },
2619
+ connectNulls: !helpers.isShowingEmptyValues(additionOptions),
2625
2620
  }
2626
2621
  };
2627
2622
 
@@ -2717,8 +2712,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2717
2712
  allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
2718
2713
  enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
2719
2714
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
2720
- style: highchartsRenderer.getDataLabelsStyle(additionOptions)
2721
- }
2715
+ style: highchartsRenderer.getDataLabelsStyle(additionOptions),
2716
+ },
2717
+ connectNulls: !helpers.isShowingEmptyValues(additionOptions),
2722
2718
  }
2723
2719
  };
2724
2720
 
@@ -2804,13 +2800,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2804
2800
  }
2805
2801
  };
2806
2802
  chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
2807
- chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
2803
+ chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
2808
2804
 
2809
2805
  highchartsRenderer.handleGridLines(additionOptions, chartOptions);
2810
2806
 
2807
+ const isShowingEmptyValues = helpers.isShowingEmptyValues(additionOptions);
2811
2808
  chartOptions.plotOptions = {
2812
2809
  [type === 'area-chart' ? 'area' : 'areaspline']: {
2813
- stacking: 'normal',
2810
+ stacking: isShowingEmptyValues ? 'normal' : undefined,
2814
2811
  lineColor: CHART_COLORS.TICK_COLOR,
2815
2812
  lineWidth: 1,
2816
2813
  marker: {
@@ -2825,7 +2822,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2825
2822
  enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
2826
2823
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
2827
2824
  style: highchartsRenderer.getDataLabelsStyle(additionOptions)
2828
- }
2825
+ },
2826
+ connectNulls: !isShowingEmptyValues,
2829
2827
  }
2830
2828
  };
2831
2829
 
@@ -2884,7 +2882,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2884
2882
  enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
2885
2883
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
2886
2884
  style: highchartsRenderer.getDataLabelsStyle(additionOptions)
2887
- }
2885
+ },
2886
+ connectNulls: !helpers.isShowingEmptyValues(additionOptions),
2888
2887
  }
2889
2888
  };
2890
2889
 
@@ -2911,7 +2910,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2911
2910
  },
2912
2911
  lineWidth: 0
2913
2912
  };
2914
- chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
2913
+ chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
2915
2914
 
2916
2915
  chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
2917
2916
 
@@ -2981,7 +2980,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
2981
2980
  highchartsRenderer.setYAxisMinMax(chartOptions.yAxis, additionOptions.axisY);
2982
2981
  }
2983
2982
 
2984
-
2985
2983
  chartOptions.tooltip = {
2986
2984
  formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
2987
2985
  valueDecimals: 2,
@@ -3012,7 +3010,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3012
3010
  enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
3013
3011
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
3014
3012
  style: highchartsRenderer.getDataLabelsStyle(additionOptions)
3015
- }
3013
+ },
3016
3014
  }
3017
3015
  };
3018
3016
  if (opts.drillDownListFunc) {
@@ -3319,7 +3317,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3319
3317
  },
3320
3318
  };
3321
3319
  chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
3322
- chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
3320
+ chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
3323
3321
 
3324
3322
  highchartsRenderer.handleGridLines(additionOptions, chartOptions)
3325
3323
 
@@ -3337,7 +3335,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3337
3335
  enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
3338
3336
  formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
3339
3337
  style: highchartsRenderer.getDataLabelsStyle(additionOptions)
3340
- }
3338
+ },
3341
3339
  }
3342
3340
  };
3343
3341
 
@@ -3445,7 +3443,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3445
3443
  },
3446
3444
  };
3447
3445
  chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
3448
- chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
3446
+ chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
3449
3447
 
3450
3448
  if (opts.selectedPoint) {
3451
3449
  seriesPointStylesHelper.setInitialPointStyles(opts, chartOptions.series);
@@ -6594,12 +6592,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6594
6592
  category_class: 'google-visualization-charteditor-mini-more',
6595
6593
  category_label: 'Chart',
6596
6594
  category_type: 'chart',
6597
- elements: [{
6598
- element_type: 'input',
6599
- value_name: 'colors_offset',
6600
- element_label: 'Colors offset',
6601
- default_value: 0
6602
- },
6595
+ elements: [
6596
+ {
6597
+ element_type: 'input',
6598
+ value_name: 'colors_offset',
6599
+ element_label: 'Colors offset',
6600
+ default_value: 0
6601
+ },
6603
6602
  {
6604
6603
  element_type: 'radio',
6605
6604
  value_name: 'zoom_type',
@@ -6611,12 +6610,19 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6611
6610
  {label: 'xy', value: 'xy'}
6612
6611
  ],
6613
6612
  default_value: 'None'
6614
- }, {
6613
+ },
6614
+ {
6615
6615
  element_type: 'checkbox',
6616
6616
  value_name: 'show',
6617
6617
  element_label: 'Show grid',
6618
6618
  default_value: true
6619
- }
6619
+ },
6620
+ {
6621
+ element_type: 'checkbox',
6622
+ value_name: 'dislay_empty_values',
6623
+ element_label: 'Display empty values',
6624
+ default_value: true
6625
+ },
6620
6626
  ]
6621
6627
  },
6622
6628
  'chart_grid': {
@@ -6639,6 +6645,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6639
6645
  element_label: 'Show legends over 10',
6640
6646
  default_value: false
6641
6647
  },
6648
+ {
6649
+ element_type: 'checkbox',
6650
+ value_name: 'dislay_empty_values',
6651
+ element_label: 'Display empty values',
6652
+ default_value: true
6653
+ },
6642
6654
  {
6643
6655
  element_type: 'devider',
6644
6656
  element_label: 'Chart Patterns',
@@ -6646,7 +6658,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6646
6658
  },
6647
6659
  {
6648
6660
  element_type: 'toggle',
6649
- element_label: 'Smart Queries',
6661
+ element_label: 'Forecast Chart',
6650
6662
  value_name: 'smart_query',
6651
6663
  default_value: true,
6652
6664
  showFn: isChartTypeSupportedForSmartQuery
@@ -7649,6 +7661,17 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7649
7661
  axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
7650
7662
  legendTooltipTitle: 'Adding a field in this section will display lines for each item in that field.',
7651
7663
  },
7664
+ 'line-chart-forecast': {
7665
+ name: 'Combined Line',
7666
+ label: 'Combined Line',
7667
+ title: 'Show forecast over time.',
7668
+ description: 'For example, see how your Monthly Revenue evolves over a given period.',
7669
+ axisName: 'X - Axis',
7670
+ legendName: 'Data series',
7671
+ startedMessage: '“To get started, drag the Reporting Month field to the x-axis, include the Scenario Cycle field in the data series, and add one field to the value section.”',
7672
+ axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
7673
+ legendTooltipTitle: 'Adding a field in this section will display lines for each item in that field.',
7674
+ },
7652
7675
  'scatter-chart': {
7653
7676
  name: 'Scatter chart',
7654
7677
  label: 'Scatter Chart',
@@ -7842,6 +7865,27 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7842
7865
  highchartsRenderer.suboptions["legends"],
7843
7866
  ]
7844
7867
  },
7868
+ {
7869
+ type: 'line-chart-forecast',
7870
+ name: highchartsRenderer.chartsTypesInfo['line-chart-forecast'].name,
7871
+ class: 'google-visualization-charteditor-thumbs-linechart-forecast',
7872
+ render: highchartsRenderer.ptRenderSpLine,
7873
+ suboptions: [
7874
+ highchartsRenderer.suboptions["axisY"],
7875
+ highchartsRenderer.suboptions["axisX"],
7876
+ highchartsRenderer.suboptions["tooltips"],
7877
+ highchartsRenderer.suboptions["label"],
7878
+ highchartsRenderer.suboptions["subtitle"],
7879
+ highchartsRenderer.suboptions["widget_library"],
7880
+ highchartsRenderer.suboptions["table_options_transpose"],
7881
+ highchartsRenderer.suboptions["table_design_options"],
7882
+ highchartsRenderer.suboptions["chart_grid"],
7883
+ highchartsRenderer.suboptions["negative_number_format"],
7884
+ highchartsRenderer.suboptions["delta_column"],
7885
+ highchartsRenderer.suboptions["advanced"],
7886
+ highchartsRenderer.suboptions["legends"],
7887
+ ]
7888
+ },
7845
7889
  {
7846
7890
  type: 'scatter-chart',
7847
7891
  name: highchartsRenderer.chartsTypesInfo['scatter-chart'].name,
@@ -6811,6 +6811,7 @@ describe('highcharts_renderer', () => {
6811
6811
  formatter: expect.any(Function),
6812
6812
  },
6813
6813
  color: '#ff0202',
6814
+ connectNulls: false,
6814
6815
  type: 'area'
6815
6816
  },
6816
6817
  {data: [
@@ -6846,6 +6847,7 @@ describe('highcharts_renderer', () => {
6846
6847
  enabled: true,
6847
6848
  formatter: expect.any(Function),
6848
6849
  },
6850
+ connectNulls: false,
6849
6851
  color: '#b3060e',
6850
6852
  type: 'line'
6851
6853
  }