@datarailsshared/dr_renderer 1.2.203-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.203-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,12 +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();
1351
- const hasBreakdownValues = lodash.some(pivotData.getRowKeys(), rowKey => !rowKey || lodash.isArray(rowKey) && !rowKey.length);
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
+ }
1352
1351
 
1353
1352
  let resultObject = {
1354
1353
  data: [],
@@ -1364,46 +1363,56 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
1364
1363
  };
1365
1364
  resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
1366
1365
 
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();
1368
1372
 
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
- });
1373
+ if (val != null && $.isNumeric(val)) {
1374
+ val = parseFloat(val);
1375
+ } else if (onlyNumbers) {
1376
+ val = NaN;
1377
+ } else {
1378
+ val = 0;
1379
+ }
1379
1380
 
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;
1391
- tmoobj.name = lodash.unescape(key);
1381
+ breakdownValues[col_index][row_index] = val;
1382
+
1383
+ if (col_index) {
1384
+ const value = val - breakdownValues[col_index - 1][row_index];
1392
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
+
1393
1394
  if (tmoobj.name) {
1394
1395
  tmoobj.name = tmoobj.name.replace('DR_Others', highchartsRenderer.getOthersName(opts));
1395
1396
  }
1397
+
1396
1398
  if (lodash.isEmpty(String(tmoobj.name))) {
1397
1399
  tmoobj.name = lodash.unescape(col_n_value);
1398
1400
  tmoobj.visible = false;
1399
1401
  }
1400
-
1401
- tmoobj.y = val;
1402
+ tmoobj.y = value;
1402
1403
  tmoobj.colKeys = [lodash.unescape(col_n_keys[col_index - 1]), lodash.unescape(col_n_value)];
1403
1404
  resultObject.data.push(tmoobj);
1404
1405
  }
1405
- });
1406
- }
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
+ });
1407
1416
  });
1408
1417
 
1409
1418
  chart_series.push(resultObject);
@@ -3181,8 +3190,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3181
3190
  ? opts.chartOptions
3182
3191
  : highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
3183
3192
 
3184
- pivotData.colKeys = lodash.map(lodash.keys(pivotData.colTotals), key => [key]);
3185
-
3186
3193
  chartOptions.chart = {
3187
3194
  type: 'waterfall',
3188
3195
  zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
@@ -3233,7 +3240,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
3233
3240
  chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
3234
3241
  }
3235
3242
  chartOptions.series = highchartsRenderer
3236
- .ptCreateWaterfallBreakdownSeries(pivotData, additionOptions, opts);
3243
+ .ptCreateWaterfallBreakdownSeries(pivotData, null, additionOptions, opts);
3237
3244
 
3238
3245
  chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
3239
3246
  chartOptions.plotOptions = {
@@ -4958,28 +4965,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
4958
4965
  }
4959
4966
  });
4960
4967
 
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
-
4973
4968
  // fill rows fields
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
- }
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});
4983
4974
  }
4984
4975
  });
4985
4976
 
@@ -5103,13 +5094,36 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
5103
5094
  dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
5104
5095
  }
5105
5096
 
5106
- highchartsRenderer.addTemplateDataToFunctionOptions = function (selectedTemplate, functionOptions) {
5097
+ highchartsRenderer.addTemplateDataToCalcModel = function (selectedTemplate, calcModelOptions) {
5107
5098
  highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
5108
5099
 
5109
5100
  var fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.widget_fields);
5110
5101
  var fieldOb;
5111
- var filterFields = [];
5112
- 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 = [];
5113
5127
 
5114
5128
  lodash.forEach(functionOptions.filters, function (filterObj) {
5115
5129
  fieldOb = lodash.find(fields, {id: filterObj.field});
@@ -7924,7 +7938,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
7924
7938
  };
7925
7939
 
7926
7940
  highchartsRenderer.createDateFromString = function (dateString, format) {
7927
- if (!(format && highchartsRenderer.isDateFormat(dateString, format) || highchartsRenderer.isDate(dateString))) {
7941
+ if ((format && !highchartsRenderer.isDateFormat(dateString, format)) || !highchartsRenderer.isDate(dateString)) {
7928
7942
  return null;
7929
7943
  }
7930
7944
  const utcDate = format
@@ -8078,7 +8092,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8078
8092
  filter.is_excluded = false;
8079
8093
  } else {
8080
8094
  filter = highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[0], colKey[0]);
8081
- filters.push(filter);
8082
8095
  }
8083
8096
  filter.values = [];
8084
8097
  for (let i = 0; i < colKey.length; i++) {
@@ -8681,7 +8694,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
8681
8694
  rows = [];
8682
8695
  } else {
8683
8696
  rows = cols;
8684
- cols = [point.colKeys[1]];
8697
+ cols = [];
8685
8698
  }
8686
8699
  return { rows, cols };
8687
8700
  }