@datarailsshared/dr_renderer 1.2.173-dragons → 1.2.175-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.173-dragons",
3
+ "version": "1.2.175-dragons",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -1,28 +1,11 @@
1
- const CHART_TYPES = {
2
- LINE_CHART: 'line-chart',
3
- LINE_CHART_SMOOTH: 'line-chart-smooth',
4
- COLUMN_CHART: 'column-chart',
5
- COLUMN_CHART_STACKED: 'column-chart-stacked',
6
- COMBO_CHART: 'combo-chart',
7
- COMBO_COLUMN_CHART: 'combo-column-chart',
8
- COMBO_STACKED_CHART: 'combo-stacked-chart',
9
- BAR_CHART: 'bar-chart',
10
- BAR_CHART_STACKED: 'bar-chart-stacked',
11
- SCATTER_CHART: 'scatter-chart',
12
- AREA_CHART: 'area-chart',
13
- AREA_CHART_SMOOTH: 'area-chart-smooth',
14
- TABLE_ONLY: 'table_only',
15
- POLYGON_CHART: 'polygon-chart',
16
- PIE_CHART: 'pie-chart',
17
- PIE_CHART_DRILLDOWN: 'pie-chart-drilldown',
18
- GAUGE_SOLID_CHART: 'gauge-solid-chart',
19
- GAUGE_CHART: 'gauge-chart',
20
- KPI_WIDGET: 'kpi-widget',
21
- TEXT_WIDGET: 'text-widget',
22
- WATERFALL_BREAKDOWN: 'waterfall-chart-breakdown',
23
- PUBLISHED_ITEM: 'published_item',
24
- RICH_TEXT: 'rich_text',
25
- }
1
+ const SERIES_CLASSNAMES = {
2
+ WATERFALL_BREAKDOWN: 'waterfallBreakdown',
3
+ TOTAL_SERIES: 'totalSeries',
4
+ TREND_SERIES: 'trendSeries',
5
+ };
6
+
7
+ const EMPTY_ROW_N_KEYS = [[]];
8
+ const NULL_VALUE = '[null]';
26
9
 
27
10
  let getHighchartsRenderer = function ($, document, Highcharts, default_colors, highchartsRenderer,
28
11
  DataFormatter, lodash, moment_lib, isNewAngular) {
@@ -77,6 +60,32 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
77
60
  ].join(''), 'i');
78
61
  highchartsRenderer.isMobile = mobileBrowserRegex.test(navigator.userAgent);
79
62
 
63
+ highchartsRenderer.CHART_TYPES = {
64
+ LINE_CHART: 'line-chart',
65
+ LINE_CHART_SMOOTH: 'line-chart-smooth',
66
+ COLUMN_CHART: 'column-chart',
67
+ COLUMN_CHART_STACKED: 'column-chart-stacked',
68
+ COMBO_CHART: 'combo-chart',
69
+ COMBO_COLUMN_CHART: 'combo-column-chart',
70
+ COMBO_STACKED_CHART: 'combo-stacked-chart',
71
+ BAR_CHART: 'bar-chart',
72
+ BAR_CHART_STACKED: 'bar-chart-stacked',
73
+ SCATTER_CHART: 'scatter-chart',
74
+ AREA_CHART: 'area-chart',
75
+ AREA_CHART_SMOOTH: 'area-chart-smooth',
76
+ TABLE_ONLY: 'table_only',
77
+ POLYGON_CHART: 'polygon-chart',
78
+ PIE_CHART: 'pie-chart',
79
+ PIE_CHART_DRILLDOWN: 'pie-chart-drilldown',
80
+ GAUGE_SOLID_CHART: 'gauge-solid-chart',
81
+ GAUGE_CHART: 'gauge-chart',
82
+ KPI_WIDGET: 'kpi-widget',
83
+ TEXT_WIDGET: 'text-widget',
84
+ WATERFALL_BREAKDOWN: 'waterfall-chart-breakdown',
85
+ PUBLISHED_ITEM: 'published_item',
86
+ RICH_TEXT: 'rich_text',
87
+ };
88
+
80
89
  highchartsRenderer.highcharts_theme = {
81
90
  "colors": highchartsRenderer.defaults_colors,
82
91
  "chart": {
@@ -528,7 +537,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
528
537
 
529
538
  const percentageWrapper = percentageArray.length ? `(${percentageArray.join(', ')})` : '';
530
539
 
531
- if (this.series.options.className === 'waterfallBreakdown') {
540
+ if (this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN) {
532
541
  const modifiedRowsAndCols = highchartsRenderer.transformRowsAndColsForBreakdown(rows, cols, this.point, opts);
533
542
  rows = modifiedRowsAndCols.rows;
534
543
  cols = modifiedRowsAndCols.cols;
@@ -604,7 +613,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
604
613
  }
605
614
 
606
615
  var func = function () {
607
- const isWaterfallBreakdown = this.series.options.className === 'waterfallBreakdown';
616
+ const isWaterfallBreakdown = this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN;
608
617
 
609
618
  var y = parseFloat(this.y);
610
619
  if (pivotData) {
@@ -641,7 +650,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
641
650
  rows = temp;
642
651
  }
643
652
 
644
- var category_text = `<span style="font-weight: bold;">${cols}${isWaterfallBreakdown ? ': ' : ' '}</span>`;
653
+ var category_text = `<span style="font-weight: bold;">${ cols }${ isWaterfallBreakdown ? ': ' : ' ' }</span>`;
645
654
  if (this.category) {
646
655
  category_text = '';
647
656
  }
@@ -1106,7 +1115,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1106
1115
 
1107
1116
  opts.chart_series = []
1108
1117
 
1109
- if (!lodash.isEqual(row_n_keys, [[]])) {
1118
+ if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1110
1119
  chart_series.forEach(series => {
1111
1120
  opts.chart_series.push(series.name);
1112
1121
  })
@@ -1266,7 +1275,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1266
1275
 
1267
1276
  let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
1268
1277
 
1269
- if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, [[]])) {
1278
+ if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1270
1279
  chart_series.forEach((series, seriesIndex) => {
1271
1280
  const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
1272
1281
  if (savedSeriesOption) {
@@ -1279,7 +1288,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1279
1288
 
1280
1289
  opts.chart_series = []
1281
1290
 
1282
- if (!lodash.isEqual(row_n_keys, [[]])) {
1291
+ if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1283
1292
  chart_series.forEach(series => {
1284
1293
  opts.chart_series.push(series.name);
1285
1294
  })
@@ -1330,15 +1339,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1330
1339
  }
1331
1340
 
1332
1341
  highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
1333
-
1334
1342
  const colorOptions = opts.breakdown_options.colors;
1335
-
1336
1343
  var chart_series = [],
1337
1344
  row_n_keys = pivotData.getRowKeys(),
1338
1345
  col_n_keys = pivotData.getColKeys();
1339
1346
 
1340
- if (row_n_keys.length == 0)
1347
+ if (row_n_keys.length === 0) {
1341
1348
  row_n_keys.push([]);
1349
+ }
1342
1350
 
1343
1351
  let resultObject = {
1344
1352
  data: [],
@@ -1350,7 +1358,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1350
1358
  },
1351
1359
  upColor: colorOptions.increase,
1352
1360
  color: colorOptions.decrease,
1353
- className: 'waterfallBreakdown'
1361
+ className: SERIES_CLASSNAMES.WATERFALL_BREAKDOWN
1354
1362
  };
1355
1363
  resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
1356
1364
 
@@ -1408,11 +1416,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1408
1416
 
1409
1417
  chart_series.push(resultObject);
1410
1418
 
1411
- opts.chart_series = []
1412
- if (!lodash.isEqual(row_n_keys, [[]])) {
1419
+ opts.chart_series = [];
1420
+ if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1413
1421
  chart_series.forEach(series => {
1414
1422
  opts.chart_series.push(series.name);
1415
- })
1423
+ });
1416
1424
  }
1417
1425
 
1418
1426
  return chart_series;
@@ -3173,7 +3181,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3173
3181
 
3174
3182
  highchartsRenderer.ptRenderWaterfallBreakdown = function (pivotData, opts, drilldownFunc, chartType) {
3175
3183
  let chartOptions = {};
3176
- const additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('column-chart');
3184
+ const additionOptions = opts.chartOptions
3185
+ ? opts.chartOptions
3186
+ : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
3177
3187
 
3178
3188
  chartOptions.chart = {
3179
3189
  type: 'waterfall',
@@ -4336,7 +4346,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4336
4346
  return null;
4337
4347
  }
4338
4348
 
4339
- if (widget && widget.chart_type === CHART_TYPES.WATERFALL_BREAKDOWN) {
4349
+ if (widget && widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
4340
4350
  const breakdownSettings = widget.options.breakdown_options.settings;
4341
4351
  const maxCategories = breakdownSettings.maxCategoriesCount;
4342
4352
  const minCategories = breakdownSettings.minCategoriesCount;
@@ -6766,7 +6776,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
6766
6776
  };
6767
6777
 
6768
6778
  highchartsRenderer.chartsTypesInfo = {
6769
- [CHART_TYPES.WATERFALL_BREAKDOWN]: {
6779
+ [highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN]: {
6770
6780
  name: 'Waterfall Breakdown Chart ',
6771
6781
  label: 'Waterfall Breakdown Chart ',
6772
6782
  title: 'TODO: add text',
@@ -7416,8 +7426,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7416
7426
  class: 'google-visualization-charteditor-mini-column',
7417
7427
  subtypes: [
7418
7428
  {
7419
- type: CHART_TYPES.WATERFALL_BREAKDOWN,
7420
- name: highchartsRenderer.chartsTypesInfo[CHART_TYPES.WATERFALL_BREAKDOWN].name,
7429
+ type: highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN,
7430
+ name: highchartsRenderer.chartsTypesInfo[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN].name,
7421
7431
  class: 'google-visualization-charteditor-thumbs-columnchart',
7422
7432
  render: highchartsRenderer.ptRenderWaterfallBreakdown,
7423
7433
  suboptions: [
@@ -7907,7 +7917,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7907
7917
 
7908
7918
  let filters = [];
7909
7919
 
7910
- if (widget.chart_type === CHART_TYPES.WATERFALL_BREAKDOWN) {
7920
+ if (widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
7911
7921
  const colFilter = highchartsRenderer.createFilterObject(widget.cols[0]);
7912
7922
  const labels = [];
7913
7923
  colFilter.values = [];
@@ -8033,7 +8043,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8033
8043
  }
8034
8044
  }
8035
8045
 
8036
- if (widget.chart_type === CHART_TYPES.WATERFALL_BREAKDOWN) {
8046
+ if (widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
8037
8047
  let filter = lodash.find(filters, {name: widget.cols[0].name});
8038
8048
  if (filter) {
8039
8049
  filter.is_excluded = false;
@@ -8202,9 +8212,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8202
8212
  lodash.forEach(datesFields, function (row) {
8203
8213
  row.values = lodash.uniq(row.values);
8204
8214
 
8205
- const isTimestampDateField = row.type === 'Date' && typeof row.values[0] === 'number';
8215
+ const isTimestampDateField = row.type === 'Date' && lodash.some(row.values, value => typeof value ==='number');
8206
8216
  if (isTimestampDateField) {
8217
+ const nullValueIndex = row.values.indexOf(NULL_VALUE);
8218
+ if (~nullValueIndex) {
8219
+ row.values.splice(nullValueIndex, 1);
8220
+ }
8207
8221
  row.values = row.values.sort((a, b) => a - b);
8222
+ if (~nullValueIndex) {
8223
+ row.values.push(NULL_VALUE);
8224
+ }
8208
8225
  } else {
8209
8226
  row.values = row.values.sort();
8210
8227
  }
@@ -8636,7 +8653,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8636
8653
  rows = cols;
8637
8654
  cols = [];
8638
8655
  }
8639
- return { rows: rows, cols: cols };
8656
+ return { rows, cols };
8640
8657
  }
8641
8658
 
8642
8659
  return highchartsRenderer;