@datarailsshared/dr_renderer 1.2.204-dragons → 1.2.205

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.204-dragons",
3
+ "version": "1.2.205",
4
4
  "description": "DataRails charts and tables renderer",
5
5
  "keywords": [
6
6
  "datarails",
@@ -87,10 +87,6 @@ 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
-
94
90
  highchartsRenderer.highcharts_theme = {
95
91
  "colors": highchartsRenderer.defaults_colors,
96
92
  "chart": {
@@ -1343,11 +1339,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1343
1339
  return chart_series;
1344
1340
  }
1345
1341
 
1346
- highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, additionOptions, opts) {
1342
+ highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
1347
1343
  const colorOptions = opts.breakdown_options.colors;
1348
- const chart_series = [];
1349
- const row_n_keys = pivotData.getRowKeys();
1350
- const col_n_keys = pivotData.getColKeys();
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
+ }
1351
1351
 
1352
1352
  let resultObject = {
1353
1353
  data: [],
@@ -1363,44 +1363,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1363
1363
  };
1364
1364
  resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
1365
1365
 
1366
+ const breakdownValues = [];
1366
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();
1367
1372
 
1368
- resultObject.data.push({
1369
- y: pivotData.colTotals[col_n_value].sum,
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
- });
1373
+ if (val != null && $.isNumeric(val)) {
1374
+ val = parseFloat(val);
1375
+ } else if (onlyNumbers) {
1376
+ val = NaN;
1377
+ } else {
1378
+ val = 0;
1379
+ }
1375
1380
 
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();
1381
+ breakdownValues[col_index][row_index] = val;
1380
1382
 
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;
1385
- tmoobj.name = lodash.unescape(key);
1383
+ if (col_index) {
1384
+ const value = val - breakdownValues[col_index - 1][row_index];
1386
1385
 
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
+ }
1392
+ tmoobj.name = lodash.unescape(key);
1393
+
1387
1394
  if (tmoobj.name) {
1388
1395
  tmoobj.name = tmoobj.name.replace('DR_Others', highchartsRenderer.getOthersName(opts));
1389
1396
  }
1397
+
1390
1398
  if (lodash.isEmpty(String(tmoobj.name))) {
1391
1399
  tmoobj.name = lodash.unescape(col_n_value);
1392
1400
  tmoobj.visible = false;
1393
1401
  }
1394
-
1395
- tmoobj.y = val;
1402
+ tmoobj.y = value;
1396
1403
  tmoobj.colKeys = [lodash.unescape(col_n_keys[col_index - 1]), lodash.unescape(col_n_value)];
1397
1404
  resultObject.data.push(tmoobj);
1398
1405
  }
1399
- });
1400
- }
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
+ });
1401
1416
  });
1402
1417
 
1403
1418
  chart_series.push(resultObject);
1419
+
1404
1420
  opts.chart_series = [];
1405
1421
  if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
1406
1422
  chart_series.forEach(series => {
@@ -3174,8 +3190,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3174
3190
  ? opts.chartOptions
3175
3191
  : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
3176
3192
 
3177
- pivotData.colKeys = lodash.map(lodash.keys(pivotData.colTotals), key => [key]);
3178
-
3179
3193
  chartOptions.chart = {
3180
3194
  type: 'waterfall',
3181
3195
  zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
@@ -3226,7 +3240,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3226
3240
  chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
3227
3241
  }
3228
3242
  chartOptions.series = highchartsRenderer
3229
- .ptCreateWaterfallBreakdownSeries(pivotData, additionOptions, opts);
3243
+ .ptCreateWaterfallBreakdownSeries(pivotData, null, additionOptions, opts);
3230
3244
 
3231
3245
  chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
3232
3246
  chartOptions.plotOptions = {
@@ -4951,28 +4965,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4951
4965
  }
4952
4966
  });
4953
4967
 
4954
- // add virtual fields to rows if required
4955
- let rows = widgetOptions.rows;
4956
- if (!lodash.get(widgetOptions, 'rows.length') && widgetOptions.options.breakdown_options) {
4957
- rows = [
4958
- {
4959
- id: -1,
4960
- name: highchartsRenderer.VIRTUAL_FIELDS.WATERFALL_VARIANCE,
4961
- type: 'Text',
4962
- },
4963
- ];
4964
- }
4965
-
4966
4968
  // fill rows fields
4967
- lodash.forEach(rows, function (valObj) {
4968
- if (lodash.includes(highchartsRenderer.VIRTUAL_FIELDS, valObj.name)) {
4969
- legendFields.push(valObj);
4970
- } else {
4971
- fieldOb = lodash.find(fields, {id: valObj.id});
4972
- if (fieldOb) {
4973
- legendFields.push(fieldOb);
4974
- lodash.remove(fields, {id: fieldOb.id});
4975
- }
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});
4976
4974
  }
4977
4975
  });
4978
4976
 
@@ -5096,13 +5094,36 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5096
5094
  dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
5097
5095
  }
5098
5096
 
5099
- highchartsRenderer.addTemplateDataToFunctionOptions = function (selectedTemplate, functionOptions) {
5097
+ highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
5100
5098
  highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5101
5099
 
5102
5100
  var fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.widget_fields);
5103
5101
  var fieldOb;
5104
- var filterFields = [];
5105
- var valuesFields = [];
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
+ fieldsArray: fields,
5115
+ selectedFieldsArray: selectedFields
5116
+ };
5117
+ }
5118
+
5119
+ highchartsRenderer.addTemplateDataToFunctionOptions = function (selectedTemplate, functionOptions) {
5120
+ highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5121
+
5122
+ let fieldOb;
5123
+
5124
+ const fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.widget_fields);
5125
+ const filterFields = [];
5126
+ const valuesFields = [];
5106
5127
 
5107
5128
  lodash.forEach(functionOptions.filters, function (filterObj) {
5108
5129
  fieldOb = lodash.find(fields, {id: filterObj.field});
@@ -7917,7 +7938,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7917
7938
  };
7918
7939
 
7919
7940
  highchartsRenderer.createDateFromString = function (dateString, format) {
7920
- if (!(format && highchartsRenderer.isDateFormat(dateString, format) || highchartsRenderer.isDate(dateString))) {
7941
+ if ((format && !highchartsRenderer.isDateFormat(dateString, format)) || !highchartsRenderer.isDate(dateString)) {
7921
7942
  return null;
7922
7943
  }
7923
7944
  const utcDate = format
@@ -8071,7 +8092,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8071
8092
  filter.is_excluded = false;
8072
8093
  } else {
8073
8094
  filter = highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[0], colKey[0]);
8074
- filters.push(filter);
8075
8095
  }
8076
8096
  filter.values = [];
8077
8097
  for (let i = 0; i < colKey.length; i++) {
@@ -8674,7 +8694,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8674
8694
  rows = [];
8675
8695
  } else {
8676
8696
  rows = cols;
8677
- cols = [point.colKeys[1]];
8697
+ cols = [];
8678
8698
  }
8679
8699
  return { rows, cols };
8680
8700
  }