@datarailsshared/dr_renderer 1.2.201-rocket → 1.2.202-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.201-rocket",
3
+ "version": "1.2.202-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,12 @@ 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
+ const hasBreakdownValues = lodash.get(opts, 'breakdown_options.values.breakdown.length');
1351
1352
 
1352
1353
  let resultObject = {
1353
1354
  data: [],
@@ -1363,56 +1364,46 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1363
1364
  };
1364
1365
  resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
1365
1366
 
1366
- const breakdownValues = [];
1367
1367
  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
1368
 
1381
- breakdownValues[col_index][row_index] = val;
1382
-
1383
- if (col_index) {
1384
- const value = val - breakdownValues[col_index - 1][row_index];
1369
+ const totalColumnValue = pivotData.colTotals[col_n_value].sum;
1370
+ const nextTotalColumnKey = col_n_keys[col_index + 1];
1371
+ const nextTotalColumnValue = nextTotalColumnKey ? pivotData.colTotals[nextTotalColumnKey].sum : null;
1372
+ resultObject.data.push({
1373
+ y: totalColumnValue,
1374
+ name: lodash.unescape(col_n_value).replace('DR_Others', highchartsRenderer.getOthersName(opts)),
1375
+ isSum: !!col_index,
1376
+ isTotal: true,
1377
+ color: colorOptions.total,
1378
+ });
1385
1379
 
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
- }
1380
+ if (col_index !== col_n_keys.length - 1) {
1381
+ lodash.forEach(row_n_keys, function (row_n_value) {
1382
+ const agg = pivotData.getAggregator(row_n_value, col_n_value);
1383
+ let val = hasBreakdownValues
1384
+ ? agg.value()
1385
+ : nextTotalColumnValue - totalColumnValue;
1386
+
1387
+ val = $.isNumeric(val) ? parseFloat(val) : 0;
1388
+ if (val) {
1389
+ const tmoobj = {};
1390
+ const key = lodash.isArray(row_n_value) ? row_n_value[0] : row_n_value;
1392
1391
  tmoobj.name = lodash.unescape(key);
1393
-
1392
+
1394
1393
  if (tmoobj.name) {
1395
1394
  tmoobj.name = tmoobj.name.replace('DR_Others', highchartsRenderer.getOthersName(opts));
1396
1395
  }
1397
-
1398
1396
  if (lodash.isEmpty(String(tmoobj.name))) {
1399
1397
  tmoobj.name = lodash.unescape(col_n_value);
1400
1398
  tmoobj.visible = false;
1401
1399
  }
1402
- tmoobj.y = value;
1400
+
1401
+ tmoobj.y = val;
1403
1402
  tmoobj.colKeys = [lodash.unescape(col_n_keys[col_index - 1]), lodash.unescape(col_n_value)];
1404
1403
  resultObject.data.push(tmoobj);
1405
1404
  }
1406
- }
1407
- });
1408
-
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
- });
1405
+ });
1406
+ }
1416
1407
  });
1417
1408
 
1418
1409
  chart_series.push(resultObject);
@@ -3190,6 +3181,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3190
3181
  ? opts.chartOptions
3191
3182
  : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
3192
3183
 
3184
+ pivotData.colKeys = lodash.map(lodash.keys(pivotData.colTotals), key => [key]);
3185
+
3193
3186
  chartOptions.chart = {
3194
3187
  type: 'waterfall',
3195
3188
  zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
@@ -3240,7 +3233,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3240
3233
  chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
3241
3234
  }
3242
3235
  chartOptions.series = highchartsRenderer
3243
- .ptCreateWaterfallBreakdownSeries(pivotData, null, additionOptions, opts);
3236
+ .ptCreateWaterfallBreakdownSeries(pivotData, additionOptions, opts);
3244
3237
 
3245
3238
  chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
3246
3239
  chartOptions.plotOptions = {
@@ -4965,12 +4958,28 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4965
4958
  }
4966
4959
  });
4967
4960
 
4961
+ // add virtual fields to rows if required
4962
+ let rows = widgetOptions.rows;
4963
+ if (!lodash.get(widgetOptions, 'rows.length') && widgetOptions.options.breakdown_options) {
4964
+ rows = [
4965
+ {
4966
+ id: -1,
4967
+ name: highchartsRenderer.VIRTUAL_FIELDS.WATERFALL_VARIANCE,
4968
+ type: 'Text',
4969
+ },
4970
+ ];
4971
+ }
4972
+
4968
4973
  // 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});
4974
+ lodash.forEach(rows, function (valObj) {
4975
+ if (lodash.includes(highchartsRenderer.VIRTUAL_FIELDS, valObj.name)) {
4976
+ legendFields.push(valObj);
4977
+ } else {
4978
+ fieldOb = lodash.find(fields, {id: valObj.id});
4979
+ if (fieldOb) {
4980
+ legendFields.push(fieldOb);
4981
+ lodash.remove(fields, {id: fieldOb.id});
4982
+ }
4974
4983
  }
4975
4984
  });
4976
4985
 
@@ -5094,27 +5103,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5094
5103
  dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
5095
5104
  }
5096
5105
 
5097
- highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
5098
- highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5099
-
5100
- var fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.widget_fields);
5101
- var fieldOb;
5102
- var selectedFields = [];
5103
-
5104
- // fill selected fields
5105
- lodash.forEach(calcModelOptions.fields, function (valObj) {
5106
- fieldOb = lodash.find(fields, {id: valObj.id});
5107
- if (fieldOb) {
5108
- selectedFields.push(fieldOb);
5109
- lodash.remove(fields, {id: fieldOb.id});
5110
- }
5111
- });
5112
-
5113
- calcModelOptions.pivot = {};
5114
- calcModelOptions.pivot.fieldsArray = fields;
5115
- calcModelOptions.pivot.selectedFieldsArray = selectedFields;
5116
- }
5117
-
5118
5106
  highchartsRenderer.addTemplateDataToFunctionOptions = function (selectedTemplate, functionOptions) {
5119
5107
  highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5120
5108
 
@@ -7936,7 +7924,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7936
7924
  };
7937
7925
 
7938
7926
  highchartsRenderer.createDateFromString = function (dateString, format) {
7939
- if ((format && !highchartsRenderer.isDateFormat(dateString, format)) || !highchartsRenderer.isDate(dateString)) {
7927
+ if (!(format && highchartsRenderer.isDateFormat(dateString, format) || highchartsRenderer.isDate(dateString))) {
7940
7928
  return null;
7941
7929
  }
7942
7930
  const utcDate = format
@@ -8090,6 +8078,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8090
8078
  filter.is_excluded = false;
8091
8079
  } else {
8092
8080
  filter = highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[0], colKey[0]);
8081
+ filters.push(filter);
8093
8082
  }
8094
8083
  filter.values = [];
8095
8084
  for (let i = 0; i < colKey.length; i++) {
@@ -8692,7 +8681,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8692
8681
  rows = [];
8693
8682
  } else {
8694
8683
  rows = cols;
8695
- cols = [];
8684
+ cols = [point.colKeys[1]];
8696
8685
  }
8697
8686
  return { rows, cols };
8698
8687
  }