@datarailsshared/dr_renderer 1.2.205 → 1.2.206-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.205",
3
+ "version": "1.2.206-dragons",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -87,6 +87,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
87
87
  EXCEL_VIEWER: 'excel_viewer',
88
88
  };
89
89
 
90
+ highchartsRenderer.VIRTUAL_FIELDS = {
91
+ WATERFALL_VARIANCE: 'DR_WATERFALL_VARIANCE',
92
+ };
93
+
90
94
  highchartsRenderer.highcharts_theme = {
91
95
  "colors": highchartsRenderer.defaults_colors,
92
96
  "chart": {
@@ -1339,15 +1343,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1339
1343
  return chart_series;
1340
1344
  }
1341
1345
 
1342
- highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
1346
+ highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, additionOptions, opts) {
1343
1347
  const colorOptions = opts.breakdown_options.colors;
1344
- var chart_series = [],
1345
- row_n_keys = pivotData.getRowKeys(),
1346
- col_n_keys = pivotData.getColKeys();
1347
-
1348
- if (row_n_keys.length === 0) {
1349
- row_n_keys.push([]);
1350
- }
1348
+ const chart_series = [];
1349
+ const row_n_keys = pivotData.getRowKeys();
1350
+ const col_n_keys = pivotData.getColKeys();
1351
1351
 
1352
1352
  let resultObject = {
1353
1353
  data: [],
@@ -1363,60 +1363,45 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1363
1363
  };
1364
1364
  resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
1365
1365
 
1366
- const breakdownValues = [];
1367
1366
  lodash.forEach(col_n_keys, function(col_n_value, col_index) {
1368
- breakdownValues.push([]);
1369
- lodash.forEach(row_n_keys, function (row_n_value, row_index) {
1370
- var agg = pivotData.getAggregator(row_n_value, col_n_value);
1371
- var val = agg.value();
1372
-
1373
- if (val != null && $.isNumeric(val)) {
1374
- val = parseFloat(val);
1375
- } else if (onlyNumbers) {
1376
- val = NaN;
1377
- } else {
1378
- val = 0;
1379
- }
1380
-
1381
- breakdownValues[col_index][row_index] = val;
1367
+ const totalValueAgg = pivotData.getAggregator([], col_n_value);
1368
+ resultObject.data.push({
1369
+ y: totalValueAgg.value(),
1370
+ name: lodash.unescape(col_n_value).replace('DR_Others', highchartsRenderer.getOthersName(opts)),
1371
+ isSum: !!col_index,
1372
+ isTotal: true,
1373
+ color: colorOptions.total,
1374
+ });
1382
1375
 
1383
- if (col_index) {
1384
- const value = val - breakdownValues[col_index - 1][row_index];
1376
+ if (col_index !== col_n_keys.length - 1) {
1377
+ lodash.forEach(row_n_keys, function (row_n_value) {
1378
+ const agg = pivotData.getAggregator(row_n_value, col_n_value);
1379
+ let val = agg.value();
1385
1380
 
1386
- if (value) {
1387
- var tmoobj = {};
1388
- var key = row_n_value;
1389
- if (lodash.isArray(row_n_value)) {
1390
- key = row_n_value[0];
1391
- }
1381
+ val = $.isNumeric(val) ? parseFloat(val) : 0;
1382
+ if (val) {
1383
+ const tmoobj = {};
1384
+ const key = lodash.isArray(row_n_value) ? row_n_value[0] : row_n_value;
1392
1385
  tmoobj.name = lodash.unescape(key);
1393
-
1386
+
1394
1387
  if (tmoobj.name) {
1395
1388
  tmoobj.name = tmoobj.name.replace('DR_Others', highchartsRenderer.getOthersName(opts));
1396
1389
  }
1397
-
1398
1390
  if (lodash.isEmpty(String(tmoobj.name))) {
1399
1391
  tmoobj.name = lodash.unescape(col_n_value);
1400
1392
  tmoobj.visible = false;
1401
1393
  }
1402
- tmoobj.y = value;
1394
+
1395
+ tmoobj.y = val;
1403
1396
  tmoobj.colKeys = [lodash.unescape(col_n_keys[col_index - 1]), lodash.unescape(col_n_value)];
1404
1397
  resultObject.data.push(tmoobj);
1405
1398
  }
1406
- }
1407
- });
1408
1399
 
1409
- resultObject.data.push({
1410
- y: pivotData.colTotals[col_n_value].sum,
1411
- name: lodash.unescape(col_n_value).replace('DR_Others', highchartsRenderer.getOthersName(opts)),
1412
- isSum: !!col_index,
1413
- isTotal: true,
1414
- color: colorOptions.total,
1415
- });
1400
+ });
1401
+ }
1416
1402
  });
1417
1403
 
1418
1404
  chart_series.push(resultObject);
1419
-
1420
1405
  opts.chart_series = [];
1421
1406
  if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1422
1407
  chart_series.forEach(series => {
@@ -3190,6 +3175,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3190
3175
  ? opts.chartOptions
3191
3176
  : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
3192
3177
 
3178
+ pivotData.colKeys = lodash.map(lodash.keys(pivotData.colTotals), key => [key]);
3179
+
3193
3180
  chartOptions.chart = {
3194
3181
  type: 'waterfall',
3195
3182
  zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
@@ -3240,7 +3227,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3240
3227
  chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
3241
3228
  }
3242
3229
  chartOptions.series = highchartsRenderer
3243
- .ptCreateWaterfallBreakdownSeries(pivotData, null, additionOptions, opts);
3230
+ .ptCreateWaterfallBreakdownSeries(pivotData, additionOptions, opts);
3244
3231
 
3245
3232
  chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
3246
3233
  chartOptions.plotOptions = {
@@ -4965,12 +4952,28 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4965
4952
  }
4966
4953
  });
4967
4954
 
4955
+ // add virtual fields to rows if required
4956
+ let rows = widgetOptions.rows;
4957
+ if (!lodash.get(widgetOptions, 'rows.length') && widgetOptions.options.breakdown_options) {
4958
+ rows = [
4959
+ {
4960
+ id: -1,
4961
+ name: highchartsRenderer.VIRTUAL_FIELDS.WATERFALL_VARIANCE,
4962
+ type: 'Text',
4963
+ },
4964
+ ];
4965
+ }
4966
+
4968
4967
  // fill rows fields
4969
- lodash.forEach(widgetOptions.rows, function (valObj) {
4970
- fieldOb = lodash.find(fields, {id: valObj.id});
4971
- if (fieldOb) {
4972
- legendFields.push(fieldOb);
4973
- lodash.remove(fields, {id: fieldOb.id});
4968
+ lodash.forEach(rows, function (valObj) {
4969
+ if (lodash.includes(highchartsRenderer.VIRTUAL_FIELDS, valObj.name)) {
4970
+ legendFields.push(valObj);
4971
+ } else {
4972
+ fieldOb = lodash.find(fields, {id: valObj.id});
4973
+ if (fieldOb) {
4974
+ legendFields.push(fieldOb);
4975
+ lodash.remove(fields, {id: fieldOb.id});
4976
+ }
4974
4977
  }
4975
4978
  });
4976
4979
 
@@ -7938,7 +7941,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7938
7941
  };
7939
7942
 
7940
7943
  highchartsRenderer.createDateFromString = function (dateString, format) {
7941
- if ((format && !highchartsRenderer.isDateFormat(dateString, format)) || !highchartsRenderer.isDate(dateString)) {
7944
+ if (!(format && highchartsRenderer.isDateFormat(dateString, format) || highchartsRenderer.isDate(dateString))) {
7942
7945
  return null;
7943
7946
  }
7944
7947
  const utcDate = format
@@ -8092,6 +8095,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8092
8095
  filter.is_excluded = false;
8093
8096
  } else {
8094
8097
  filter = highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[0], colKey[0]);
8098
+ filters.push(filter);
8095
8099
  }
8096
8100
  filter.values = [];
8097
8101
  for (let i = 0; i < colKey.length; i++) {
@@ -8694,7 +8698,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8694
8698
  rows = [];
8695
8699
  } else {
8696
8700
  rows = cols;
8697
- cols = [];
8701
+ cols = [point.colKeys[1]];
8698
8702
  }
8699
8703
  return { rows, cols };
8700
8704
  }