@datarailsshared/dr_renderer 1.2.177-dragons → 1.2.178
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 +1 -1
- package/src/dr_pivottable.js +1 -1
- package/src/highcharts_renderer.js +39 -414
package/package.json
CHANGED
package/src/dr_pivottable.js
CHANGED
|
@@ -146,7 +146,7 @@ let initDRPivotTable = function($, window, document) {
|
|
|
146
146
|
DRPivotData.prototype.processRecord = function(record, useTotalsCalculation) {
|
|
147
147
|
if (useTotalsCalculation) {
|
|
148
148
|
if (!this.notFirst) {
|
|
149
|
-
this.keysLength = _.filter(_.keys(record), key => !['data_types', 'formats', 'values_formats']
|
|
149
|
+
this.keysLength = _.filter(_.keys(record), key => !_.includes(['data_types', 'formats', 'values_formats'], key)).length - 1;
|
|
150
150
|
this.notFirst = true;
|
|
151
151
|
}
|
|
152
152
|
let getRowAggregator = (function(_this) {
|
|
@@ -1,12 +1,3 @@
|
|
|
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]';
|
|
9
|
-
|
|
10
1
|
let getHighchartsRenderer = function ($, document, Highcharts, default_colors, highchartsRenderer,
|
|
11
2
|
DataFormatter, lodash, moment_lib, isNewAngular) {
|
|
12
3
|
|
|
@@ -60,32 +51,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
60
51
|
].join(''), 'i');
|
|
61
52
|
highchartsRenderer.isMobile = mobileBrowserRegex.test(navigator.userAgent);
|
|
62
53
|
|
|
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
|
-
|
|
89
54
|
highchartsRenderer.highcharts_theme = {
|
|
90
55
|
"colors": highchartsRenderer.defaults_colors,
|
|
91
56
|
"chart": {
|
|
@@ -480,7 +445,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
480
445
|
|| this.series.options.className === 'trendSeries') {
|
|
481
446
|
rows = [];
|
|
482
447
|
}
|
|
483
|
-
|
|
484
448
|
var cols = this.key;
|
|
485
449
|
if (typeof (cols) == 'object' && cols.name) {
|
|
486
450
|
cols = cols.name;
|
|
@@ -536,13 +500,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
536
500
|
}
|
|
537
501
|
|
|
538
502
|
const percentageWrapper = percentageArray.length ? `(${percentageArray.join(', ')})` : '';
|
|
539
|
-
|
|
540
|
-
if (this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN) {
|
|
541
|
-
const modifiedRowsAndCols = highchartsRenderer.transformRowsAndColsForBreakdown(rows, cols, this.point, opts);
|
|
542
|
-
rows = modifiedRowsAndCols.rows;
|
|
543
|
-
cols = modifiedRowsAndCols.cols;
|
|
544
|
-
}
|
|
545
|
-
|
|
546
503
|
var aggr = pivotData.getAggregator(rows, cols);
|
|
547
504
|
|
|
548
505
|
const formattedValue = is_drill_down_pie || labelOptions.show_value ? $.pivotUtilities.getFormattedNumber(value, aggr, opts, true) : '';
|
|
@@ -613,8 +570,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
613
570
|
}
|
|
614
571
|
|
|
615
572
|
var func = function () {
|
|
616
|
-
const isWaterfallBreakdown = this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN;
|
|
617
|
-
|
|
618
573
|
var y = parseFloat(this.y);
|
|
619
574
|
if (pivotData) {
|
|
620
575
|
let series_name = (this.series.name || '') + "";
|
|
@@ -649,8 +604,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
649
604
|
cols = rows;
|
|
650
605
|
rows = temp;
|
|
651
606
|
}
|
|
652
|
-
|
|
653
|
-
var category_text = `<span style="font-weight: bold;">${
|
|
607
|
+
var aggr = pivotData.getAggregator(rows, cols);
|
|
608
|
+
var category_text = `<span style="font-weight: bold;">${cols} </span>`;
|
|
654
609
|
if (this.category) {
|
|
655
610
|
category_text = '';
|
|
656
611
|
}
|
|
@@ -662,18 +617,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
662
617
|
if (pivotData.rowAttrs.length == 0) {
|
|
663
618
|
series_text = ': ';
|
|
664
619
|
}
|
|
665
|
-
|
|
666
|
-
if (isWaterfallBreakdown) {
|
|
667
|
-
const modifiedRowsAndCols = highchartsRenderer.transformRowsAndColsForBreakdown(rows, cols, this.point, opts);
|
|
668
|
-
rows = modifiedRowsAndCols.rows;
|
|
669
|
-
cols = modifiedRowsAndCols.cols;
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
var aggr = pivotData.getAggregator(rows, cols);
|
|
673
|
-
|
|
674
620
|
let formatted_value_to_return = $.pivotUtilities.getFormattedNumber(y, null, opts);
|
|
675
|
-
if (aggr.value()
|
|
676
|
-
formatted_value_to_return = $.pivotUtilities.getFormattedNumber(
|
|
621
|
+
if (aggr.value()) {
|
|
622
|
+
formatted_value_to_return = $.pivotUtilities.getFormattedNumber(aggr.value(), aggr, opts);
|
|
677
623
|
}
|
|
678
624
|
|
|
679
625
|
let wrappedFormattedValue = highchartsRenderer.getSpanWrapper(formatted_value_to_return);
|
|
@@ -682,7 +628,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
682
628
|
category_text = tooltipOptions.show_x_axis ? category_text : '';
|
|
683
629
|
series_text = tooltipOptions.show_data_series ? series_text : '';
|
|
684
630
|
|
|
685
|
-
let to_return =
|
|
631
|
+
let to_return = category_text + series_text + wrappedFormattedValue;
|
|
686
632
|
|
|
687
633
|
if (is_drill_down_pie) {
|
|
688
634
|
to_return = wrappedFormattedValue;
|
|
@@ -1013,10 +959,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1013
959
|
if (row_n_keys.length == 0)
|
|
1014
960
|
row_n_keys.push([]);
|
|
1015
961
|
|
|
1016
|
-
if (!col_n_keys.length && lodash.get(chartOptions, "chart.type") === 'kpi' && isUniqueVals) {
|
|
1017
|
-
col_n_keys.push([]);
|
|
1018
|
-
}
|
|
1019
|
-
|
|
1020
962
|
var i = 0;
|
|
1021
963
|
var variat_serias = null;
|
|
1022
964
|
const n = col_n_keys.length;
|
|
@@ -1119,7 +1061,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1119
1061
|
|
|
1120
1062
|
opts.chart_series = []
|
|
1121
1063
|
|
|
1122
|
-
if (!lodash.isEqual(row_n_keys,
|
|
1064
|
+
if (!lodash.isEqual(row_n_keys, [[]])) {
|
|
1123
1065
|
chart_series.forEach(series => {
|
|
1124
1066
|
opts.chart_series.push(series.name);
|
|
1125
1067
|
})
|
|
@@ -1186,7 +1128,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1186
1128
|
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
1187
1129
|
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
1188
1130
|
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
|
|
1189
|
-
style: highchartsRenderer.getDataLabelsStyle(additionOptions)
|
|
1131
|
+
style: highchartsRenderer.getDataLabelsStyle(additionOptions)
|
|
1190
1132
|
}
|
|
1191
1133
|
|
|
1192
1134
|
ob = highchartsRenderer.getDataLabelsOptions(additionOptions, ob);
|
|
@@ -1279,7 +1221,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1279
1221
|
|
|
1280
1222
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1281
1223
|
|
|
1282
|
-
if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys,
|
|
1224
|
+
if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, [[]])) {
|
|
1283
1225
|
chart_series.forEach((series, seriesIndex) => {
|
|
1284
1226
|
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
1285
1227
|
if (savedSeriesOption) {
|
|
@@ -1292,7 +1234,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1292
1234
|
|
|
1293
1235
|
opts.chart_series = []
|
|
1294
1236
|
|
|
1295
|
-
if (!lodash.isEqual(row_n_keys,
|
|
1237
|
+
if (!lodash.isEqual(row_n_keys, [[]])) {
|
|
1296
1238
|
chart_series.forEach(series => {
|
|
1297
1239
|
opts.chart_series.push(series.name);
|
|
1298
1240
|
})
|
|
@@ -1342,94 +1284,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1342
1284
|
return chart_series;
|
|
1343
1285
|
}
|
|
1344
1286
|
|
|
1345
|
-
highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
|
|
1346
|
-
const colorOptions = opts.breakdown_options.colors;
|
|
1347
|
-
var chart_series = [],
|
|
1348
|
-
row_n_keys = pivotData.getRowKeys(),
|
|
1349
|
-
col_n_keys = pivotData.getColKeys();
|
|
1350
|
-
|
|
1351
|
-
if (row_n_keys.length === 0) {
|
|
1352
|
-
row_n_keys.push([]);
|
|
1353
|
-
}
|
|
1354
|
-
|
|
1355
|
-
let resultObject = {
|
|
1356
|
-
data: [],
|
|
1357
|
-
dataLabels: {
|
|
1358
|
-
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
1359
|
-
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
1360
|
-
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
|
|
1361
|
-
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
1362
|
-
},
|
|
1363
|
-
upColor: colorOptions.increase,
|
|
1364
|
-
color: colorOptions.decrease,
|
|
1365
|
-
className: SERIES_CLASSNAMES.WATERFALL_BREAKDOWN
|
|
1366
|
-
};
|
|
1367
|
-
resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
|
|
1368
|
-
|
|
1369
|
-
const breakdownValues = [];
|
|
1370
|
-
lodash.forEach(col_n_keys, function(col_n_value, col_index) {
|
|
1371
|
-
breakdownValues.push([]);
|
|
1372
|
-
lodash.forEach(row_n_keys, function (row_n_value, row_index) {
|
|
1373
|
-
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
1374
|
-
var val = agg.value();
|
|
1375
|
-
|
|
1376
|
-
if (val != null && $.isNumeric(val)) {
|
|
1377
|
-
val = parseFloat(val);
|
|
1378
|
-
} else if (onlyNumbers) {
|
|
1379
|
-
val = NaN;
|
|
1380
|
-
} else {
|
|
1381
|
-
val = 0;
|
|
1382
|
-
}
|
|
1383
|
-
|
|
1384
|
-
breakdownValues[col_index][row_index] = val;
|
|
1385
|
-
|
|
1386
|
-
if (col_index) {
|
|
1387
|
-
const value = val - breakdownValues[col_index - 1][row_index];
|
|
1388
|
-
|
|
1389
|
-
if (value) {
|
|
1390
|
-
var tmoobj = {};
|
|
1391
|
-
var key = row_n_value;
|
|
1392
|
-
if (lodash.isArray(row_n_value)) {
|
|
1393
|
-
key = row_n_value[0];
|
|
1394
|
-
}
|
|
1395
|
-
tmoobj.name = lodash.unescape(key);
|
|
1396
|
-
|
|
1397
|
-
if (tmoobj.name) {
|
|
1398
|
-
tmoobj.name = tmoobj.name.replace('DR_Others', highchartsRenderer.getOthersName(opts));
|
|
1399
|
-
}
|
|
1400
|
-
|
|
1401
|
-
if (lodash.isEmpty(String(tmoobj.name))) {
|
|
1402
|
-
tmoobj.name = lodash.unescape(col_n_value);
|
|
1403
|
-
tmoobj.visible = false;
|
|
1404
|
-
}
|
|
1405
|
-
tmoobj.y = value;
|
|
1406
|
-
tmoobj.colKeys = [lodash.unescape(col_n_keys[col_index - 1]), lodash.unescape(col_n_value)];
|
|
1407
|
-
resultObject.data.push(tmoobj);
|
|
1408
|
-
}
|
|
1409
|
-
}
|
|
1410
|
-
});
|
|
1411
|
-
|
|
1412
|
-
resultObject.data.push({
|
|
1413
|
-
y: pivotData.colTotals[col_n_value].sum,
|
|
1414
|
-
name: lodash.unescape(col_n_value).replace('DR_Others', highchartsRenderer.getOthersName(opts)),
|
|
1415
|
-
isSum: !!col_index,
|
|
1416
|
-
isTotal: true,
|
|
1417
|
-
color: colorOptions.total,
|
|
1418
|
-
});
|
|
1419
|
-
});
|
|
1420
|
-
|
|
1421
|
-
chart_series.push(resultObject);
|
|
1422
|
-
|
|
1423
|
-
opts.chart_series = [];
|
|
1424
|
-
if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
|
1425
|
-
chart_series.forEach(series => {
|
|
1426
|
-
opts.chart_series.push(series.name);
|
|
1427
|
-
});
|
|
1428
|
-
}
|
|
1429
|
-
|
|
1430
|
-
return chart_series;
|
|
1431
|
-
}
|
|
1432
|
-
|
|
1433
1287
|
highchartsRenderer.setChartTypeBySeriesType = function (type, series) {
|
|
1434
1288
|
const types = {
|
|
1435
1289
|
'line-chart': 'line',
|
|
@@ -2101,13 +1955,17 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2101
1955
|
var kpioptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('kpi');
|
|
2102
1956
|
|
|
2103
1957
|
chartOptions.chart = {
|
|
2104
|
-
type: '
|
|
1958
|
+
type: ''
|
|
2105
1959
|
};
|
|
2106
1960
|
if (disableAnimation) {
|
|
2107
1961
|
chartOptions.chart.animation = false;
|
|
2108
1962
|
}
|
|
2109
1963
|
var uniqueVals = kpioptions.value.value == "Unique";
|
|
2110
1964
|
|
|
1965
|
+
if (!pivotData.colKeys.length) {
|
|
1966
|
+
pivotData.colKeys.push([]);
|
|
1967
|
+
}
|
|
1968
|
+
|
|
2111
1969
|
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals, null, opts, chartOptions);
|
|
2112
1970
|
|
|
2113
1971
|
var total = [];
|
|
@@ -3183,101 +3041,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3183
3041
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
3184
3042
|
};
|
|
3185
3043
|
|
|
3186
|
-
highchartsRenderer.ptRenderWaterfallBreakdown = function (pivotData, opts, drilldownFunc, chartType) {
|
|
3187
|
-
let chartOptions = {};
|
|
3188
|
-
const additionOptions = opts.chartOptions
|
|
3189
|
-
? opts.chartOptions
|
|
3190
|
-
: highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
|
|
3191
|
-
|
|
3192
|
-
chartOptions.chart = {
|
|
3193
|
-
type: 'waterfall',
|
|
3194
|
-
zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
|
|
3195
|
-
};
|
|
3196
|
-
if (disableAnimation) {
|
|
3197
|
-
chartOptions.chart.animation = false;
|
|
3198
|
-
}
|
|
3199
|
-
|
|
3200
|
-
const breakdownFieldIsNotSet = lodash.some(pivotData.getRowKeys(), rowKey => !rowKey || lodash.isArray(rowKey) && !rowKey.length);
|
|
3201
|
-
chartOptions.xAxis = {
|
|
3202
|
-
type: 'category',
|
|
3203
|
-
crosshair: true,
|
|
3204
|
-
min: 0,
|
|
3205
|
-
title: {
|
|
3206
|
-
text : additionOptions && additionOptions.axisX ? additionOptions.axisX.name : '',
|
|
3207
|
-
},
|
|
3208
|
-
uniqueNames: breakdownFieldIsNotSet,
|
|
3209
|
-
};
|
|
3210
|
-
|
|
3211
|
-
highchartsRenderer.setTitleAndSubTitle(chartOptions, opts, additionOptions);
|
|
3212
|
-
|
|
3213
|
-
chartOptions.yAxis = {
|
|
3214
|
-
min: null,
|
|
3215
|
-
max: null,
|
|
3216
|
-
title: {
|
|
3217
|
-
text: additionOptions && additionOptions.axisY ? additionOptions.axisY.name : '',
|
|
3218
|
-
autoylabel: additionOptions && additionOptions.axisY ? additionOptions.axisY.autoylabel : ''
|
|
3219
|
-
},
|
|
3220
|
-
labels: {
|
|
3221
|
-
formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
|
|
3222
|
-
},
|
|
3223
|
-
};
|
|
3224
|
-
if (additionOptions) {
|
|
3225
|
-
highchartsRenderer.setYAxisMinMax(chartOptions.yAxis, additionOptions.axisY);
|
|
3226
|
-
}
|
|
3227
|
-
|
|
3228
|
-
chartOptions.tooltip = {
|
|
3229
|
-
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
|
3230
|
-
valueDecimals: 2,
|
|
3231
|
-
};
|
|
3232
|
-
|
|
3233
|
-
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
3234
|
-
|
|
3235
|
-
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
3236
|
-
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
3237
|
-
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
3238
|
-
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
3239
|
-
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
3240
|
-
}
|
|
3241
|
-
chartOptions.series = highchartsRenderer
|
|
3242
|
-
.ptCreateWaterfallBreakdownSeries(pivotData, null, additionOptions, opts);
|
|
3243
|
-
|
|
3244
|
-
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
3245
|
-
chartOptions.plotOptions = {
|
|
3246
|
-
waterfall: {
|
|
3247
|
-
pointPadding: 0.2,
|
|
3248
|
-
borderWidth: 0,
|
|
3249
|
-
borderRadius: 1,
|
|
3250
|
-
lineWidth: 0,
|
|
3251
|
-
},
|
|
3252
|
-
series: {
|
|
3253
|
-
animation: !disableAnimation,
|
|
3254
|
-
cropThreshold: 1000,
|
|
3255
|
-
dataLabels: {
|
|
3256
|
-
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
3257
|
-
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
3258
|
-
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
|
|
3259
|
-
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
3260
|
-
inside: false
|
|
3261
|
-
}
|
|
3262
|
-
}
|
|
3263
|
-
};
|
|
3264
|
-
|
|
3265
|
-
if (opts.drillDownListFunc) {
|
|
3266
|
-
chartOptions.plotOptions.series.cursor = 'pointer';
|
|
3267
|
-
chartOptions.plotOptions.series.point = {
|
|
3268
|
-
events: {
|
|
3269
|
-
click: opts.drillDownListFunc
|
|
3270
|
-
}
|
|
3271
|
-
};
|
|
3272
|
-
}
|
|
3273
|
-
|
|
3274
|
-
chartOptions.legend = {
|
|
3275
|
-
enabled: false
|
|
3276
|
-
};
|
|
3277
|
-
|
|
3278
|
-
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
3279
|
-
};
|
|
3280
|
-
|
|
3281
3044
|
highchartsRenderer.formatFieldValue = function (field, value) {
|
|
3282
3045
|
let currentType = '';
|
|
3283
3046
|
switch (field.type) {
|
|
@@ -4342,7 +4105,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4342
4105
|
}
|
|
4343
4106
|
};
|
|
4344
4107
|
|
|
4345
|
-
highchartsRenderer.rhPivotView = function (rowData, options, isTable = false
|
|
4108
|
+
highchartsRenderer.rhPivotView = function (rowData, options, isTable = false) {
|
|
4346
4109
|
if (!rowData || !rowData) {
|
|
4347
4110
|
if (options.onlyOptions) {
|
|
4348
4111
|
return {};
|
|
@@ -4350,28 +4113,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4350
4113
|
return null;
|
|
4351
4114
|
}
|
|
4352
4115
|
|
|
4353
|
-
if (widget && widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
4354
|
-
const breakdownSettings = widget.options.breakdown_options.settings;
|
|
4355
|
-
const maxCategories = breakdownSettings.maxCategoriesCount;
|
|
4356
|
-
const minCategories = breakdownSettings.minCategoriesCount;
|
|
4357
|
-
const categoryFieldName = widget.cols[0].name;
|
|
4358
|
-
const uniqueCategories = lodash.filter(lodash.uniq(lodash.map(rowData, row => row[categoryFieldName])), value => !!value);
|
|
4359
|
-
|
|
4360
|
-
if (uniqueCategories && (uniqueCategories.length > maxCategories || uniqueCategories.length < minCategories )) {
|
|
4361
|
-
const commonErrorSentence = `Please choose ${minCategories}-${maxCategories} items in the Category section.`
|
|
4362
|
-
options.error_has_occurred = true;
|
|
4363
|
-
options.error_params = {
|
|
4364
|
-
title: uniqueCategories.length > maxCategories
|
|
4365
|
-
? `There is too much data. ${commonErrorSentence}`
|
|
4366
|
-
: `Not enough data. ${commonErrorSentence}`,
|
|
4367
|
-
text: '',
|
|
4368
|
-
btnText: 'Edit Widget',
|
|
4369
|
-
class: 'too-much-data',
|
|
4370
|
-
}
|
|
4371
|
-
return highchartsRenderer.getNoDataResult(options.rendererOptions, true);
|
|
4372
|
-
}
|
|
4373
|
-
}
|
|
4374
|
-
|
|
4375
4116
|
if (rowData.length == 0) {
|
|
4376
4117
|
if (options.onlyOptions) {
|
|
4377
4118
|
return {};
|
|
@@ -6780,17 +6521,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6780
6521
|
};
|
|
6781
6522
|
|
|
6782
6523
|
highchartsRenderer.chartsTypesInfo = {
|
|
6783
|
-
[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN]: {
|
|
6784
|
-
name: 'Waterfall Breakdown Chart ',
|
|
6785
|
-
label: 'Waterfall Breakdown Chart ',
|
|
6786
|
-
title: 'TODO: add text',
|
|
6787
|
-
description: 'TODO: add text',
|
|
6788
|
-
axisName: 'Category',
|
|
6789
|
-
legendName: 'Breakdown',
|
|
6790
|
-
startedMessage: 'To get started, drag one field to the Category and one field to the Value section.',
|
|
6791
|
-
axisTooltipTitle: 'TODO: add text',
|
|
6792
|
-
legendTooltipTitle: 'TODO: add text',
|
|
6793
|
-
},
|
|
6794
6524
|
'combo-chart': {
|
|
6795
6525
|
name: 'Combo Chart ',
|
|
6796
6526
|
label: 'Combo Chart ',
|
|
@@ -7423,32 +7153,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7423
7153
|
}
|
|
7424
7154
|
]
|
|
7425
7155
|
},
|
|
7426
|
-
{
|
|
7427
|
-
type: 'waterfall-chart',
|
|
7428
|
-
name: 'Waterfall',
|
|
7429
|
-
hidden: true,
|
|
7430
|
-
class: 'google-visualization-charteditor-mini-column',
|
|
7431
|
-
subtypes: [
|
|
7432
|
-
{
|
|
7433
|
-
type: highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN,
|
|
7434
|
-
name: highchartsRenderer.chartsTypesInfo[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN].name,
|
|
7435
|
-
class: 'google-visualization-charteditor-thumbs-columnchart',
|
|
7436
|
-
render: highchartsRenderer.ptRenderWaterfallBreakdown,
|
|
7437
|
-
suboptions: [
|
|
7438
|
-
highchartsRenderer.suboptions["axisY"],
|
|
7439
|
-
highchartsRenderer.suboptions["axisX"],
|
|
7440
|
-
highchartsRenderer.suboptions["tooltips"],
|
|
7441
|
-
highchartsRenderer.suboptions["label"],
|
|
7442
|
-
highchartsRenderer.suboptions["subtitle"],
|
|
7443
|
-
highchartsRenderer.suboptions["widget_library"],
|
|
7444
|
-
highchartsRenderer.suboptions["chart"],
|
|
7445
|
-
highchartsRenderer.suboptions["negative_number_format"],
|
|
7446
|
-
highchartsRenderer.suboptions["advanced"],
|
|
7447
|
-
highchartsRenderer.suboptions["legends"],
|
|
7448
|
-
]
|
|
7449
|
-
},
|
|
7450
|
-
]
|
|
7451
|
-
},
|
|
7452
7156
|
];
|
|
7453
7157
|
|
|
7454
7158
|
highchartsRenderer.richTextSubType = {
|
|
@@ -7898,16 +7602,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7898
7602
|
|
|
7899
7603
|
};
|
|
7900
7604
|
|
|
7901
|
-
highchartsRenderer.createDateFromString = function (dateString, format) {
|
|
7902
|
-
if ((format && !highchartsRenderer.isDateFormat(dateString, format)) || !highchartsRenderer.isDate(dateString)) {
|
|
7903
|
-
return null;
|
|
7904
|
-
}
|
|
7905
|
-
const utcDate = format
|
|
7906
|
-
? moment_lib.utc(dateString, format, true)
|
|
7907
|
-
: moment_lib.utc(dateString);
|
|
7908
|
-
return utcDate.startOf('day').unix();
|
|
7909
|
-
}
|
|
7910
|
-
|
|
7911
7605
|
highchartsRenderer.prepareDrillDownFilters = function (r_keys, c_keys, widget) {
|
|
7912
7606
|
let row_key = r_keys;
|
|
7913
7607
|
let col_key = c_keys;
|
|
@@ -7921,46 +7615,26 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7921
7615
|
|
|
7922
7616
|
let filters = [];
|
|
7923
7617
|
|
|
7924
|
-
|
|
7925
|
-
|
|
7926
|
-
|
|
7927
|
-
|
|
7928
|
-
|
|
7929
|
-
if (widget.cols[0].type === 'Date') {
|
|
7930
|
-
let date = highchartsRenderer.createDateFromString(
|
|
7618
|
+
lodash.forEach(col_key, function (col_value, index) {
|
|
7619
|
+
if (widget && widget.cols[index]) {
|
|
7620
|
+
let temp = highchartsRenderer.createFilterObject(widget.cols[index]);
|
|
7621
|
+
if (widget.cols[index].type === 'Date') {
|
|
7622
|
+
let datetrange = highchartsRenderer.createDateTypeFromValue(
|
|
7931
7623
|
col_value,
|
|
7932
|
-
highchartsRenderer.getDateFieldFormat(widget, widget.cols[
|
|
7624
|
+
highchartsRenderer.getDateFieldFormat(widget, widget.cols[index])
|
|
7933
7625
|
);
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
}
|
|
7938
|
-
labels.push(col_value);
|
|
7939
|
-
});
|
|
7940
|
-
colFilter.value_to_show = labels.join(', ');
|
|
7941
|
-
filters.push(colFilter);
|
|
7942
|
-
} else {
|
|
7943
|
-
lodash.forEach(col_key, function (col_value, index) {
|
|
7944
|
-
if (widget && widget.cols[index]) {
|
|
7945
|
-
let temp = highchartsRenderer.createFilterObject(widget.cols[index]);
|
|
7946
|
-
if (widget.cols[index].type === 'Date') {
|
|
7947
|
-
let datetrange = highchartsRenderer.createDateTypeFromValue(
|
|
7948
|
-
col_value,
|
|
7949
|
-
highchartsRenderer.getDateFieldFormat(widget, widget.cols[index])
|
|
7950
|
-
);
|
|
7951
|
-
|
|
7952
|
-
if ($.isEmptyObject(datetrange)) {
|
|
7953
|
-
return;
|
|
7954
|
-
}
|
|
7955
|
-
temp.values = datetrange;
|
|
7956
|
-
temp.values.label = col_value;
|
|
7957
|
-
} else {
|
|
7958
|
-
temp.values = [col_value];
|
|
7626
|
+
|
|
7627
|
+
if ($.isEmptyObject(datetrange)) {
|
|
7628
|
+
return;
|
|
7959
7629
|
}
|
|
7960
|
-
|
|
7630
|
+
temp.values = datetrange;
|
|
7631
|
+
temp.values.label = col_value;
|
|
7632
|
+
} else {
|
|
7633
|
+
temp.values = [col_value];
|
|
7961
7634
|
}
|
|
7962
|
-
|
|
7963
|
-
|
|
7635
|
+
filters.push(temp);
|
|
7636
|
+
}
|
|
7637
|
+
});
|
|
7964
7638
|
|
|
7965
7639
|
lodash.forEach(row_key, function (row_value, index) {
|
|
7966
7640
|
if (widget && widget.rows[index]) {
|
|
@@ -8005,9 +7679,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8005
7679
|
});
|
|
8006
7680
|
|
|
8007
7681
|
lodash.forEach(filters, function (filter) {
|
|
8008
|
-
if (filter.value_to_show) {
|
|
8009
|
-
return;
|
|
8010
|
-
}
|
|
8011
7682
|
if (Array.isArray(filter.values)) {
|
|
8012
7683
|
if (filter.type) {
|
|
8013
7684
|
for (let i = 0; i < filter.values.length; i++) {
|
|
@@ -8046,36 +7717,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8046
7717
|
filters.push(highchartsRenderer.createDrillDownFilterObject(widget, widget.rows[i], rowKey[i]))
|
|
8047
7718
|
}
|
|
8048
7719
|
}
|
|
8049
|
-
|
|
8050
|
-
|
|
8051
|
-
let filter = lodash.find(filters, {name: widget.cols[0].name});
|
|
7720
|
+
for (let i = 0; i < colKey.length; i++) {
|
|
7721
|
+
let filter = lodash.find(filters, {name: widget.cols[i].name});
|
|
8052
7722
|
if (filter) {
|
|
8053
7723
|
filter.is_excluded = false;
|
|
7724
|
+
filter.values = widget.cols[i].type === 'Date' ?
|
|
7725
|
+
highchartsRenderer.createDateTypeFromValue(colKey[i], highchartsRenderer.getDateFieldFormat(widget, widget.cols[i])) :
|
|
7726
|
+
[colKey[i]];
|
|
8054
7727
|
} else {
|
|
8055
|
-
|
|
8056
|
-
}
|
|
8057
|
-
filter.values = [];
|
|
8058
|
-
for (let i = 0; i < colKey.length; i++) {
|
|
8059
|
-
filter.values.push(
|
|
8060
|
-
widget.cols[0].type === 'Date'
|
|
8061
|
-
? highchartsRenderer.createDateFromString(
|
|
8062
|
-
colKey[i],
|
|
8063
|
-
highchartsRenderer.getDateFieldFormat(widget, widget.cols[0])
|
|
8064
|
-
)
|
|
8065
|
-
: colKey[i]
|
|
8066
|
-
);
|
|
8067
|
-
}
|
|
8068
|
-
} else {
|
|
8069
|
-
for (let i = 0; i < colKey.length; i++) {
|
|
8070
|
-
let filter = lodash.find(filters, {name: widget.cols[i].name});
|
|
8071
|
-
if (filter) {
|
|
8072
|
-
filter.is_excluded = false;
|
|
8073
|
-
filter.values = widget.cols[i].type === 'Date' ?
|
|
8074
|
-
highchartsRenderer.createDateTypeFromValue(colKey[i], highchartsRenderer.getDateFieldFormat(widget, widget.cols[i])) :
|
|
8075
|
-
[colKey[i]];
|
|
8076
|
-
} else {
|
|
8077
|
-
filters.push(highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[i], colKey[i]))
|
|
8078
|
-
}
|
|
7728
|
+
filters.push(highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[i], colKey[i]))
|
|
8079
7729
|
}
|
|
8080
7730
|
}
|
|
8081
7731
|
return filters;
|
|
@@ -8216,16 +7866,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8216
7866
|
lodash.forEach(datesFields, function (row) {
|
|
8217
7867
|
row.values = lodash.uniq(row.values);
|
|
8218
7868
|
|
|
8219
|
-
const isTimestampDateField = row.type === 'Date' &&
|
|
7869
|
+
const isTimestampDateField = row.type === 'Date' && typeof row.values[0] === 'number';
|
|
8220
7870
|
if (isTimestampDateField) {
|
|
8221
|
-
const nullValueIndex = row.values.indexOf(NULL_VALUE);
|
|
8222
|
-
if (~nullValueIndex) {
|
|
8223
|
-
row.values.splice(nullValueIndex, 1);
|
|
8224
|
-
}
|
|
8225
7871
|
row.values = row.values.sort((a, b) => a - b);
|
|
8226
|
-
if (~nullValueIndex) {
|
|
8227
|
-
row.values.push(NULL_VALUE);
|
|
8228
|
-
}
|
|
8229
7872
|
} else {
|
|
8230
7873
|
row.values = row.values.sort();
|
|
8231
7874
|
}
|
|
@@ -8415,7 +8058,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8415
8058
|
subopts.onlyOptions = true;
|
|
8416
8059
|
}
|
|
8417
8060
|
|
|
8418
|
-
let hc_options = highchartsRenderer.rhPivotView(res, subopts, is_table
|
|
8061
|
+
let hc_options = highchartsRenderer.rhPivotView(res, subopts, is_table);
|
|
8419
8062
|
|
|
8420
8063
|
return hc_options;
|
|
8421
8064
|
}
|
|
@@ -8642,24 +8285,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8642
8285
|
}
|
|
8643
8286
|
}
|
|
8644
8287
|
|
|
8645
|
-
highchartsRenderer.getOthersName = function(opts) {
|
|
8646
|
-
return lodash.get(opts, "total_value_options.filter_options.filteredOutFieldName") || 'Others';
|
|
8647
|
-
}
|
|
8648
|
-
|
|
8649
|
-
highchartsRenderer.transformRowsAndColsForBreakdown = function(rows, cols, point, opts) {
|
|
8650
|
-
const othersIndex = cols.indexOf(highchartsRenderer.getOthersName(opts));
|
|
8651
|
-
if (othersIndex !== -1) {
|
|
8652
|
-
cols[othersIndex] = 'DR_Others';
|
|
8653
|
-
}
|
|
8654
|
-
if (point.options.isTotal) {
|
|
8655
|
-
rows = [];
|
|
8656
|
-
} else {
|
|
8657
|
-
rows = cols;
|
|
8658
|
-
cols = [];
|
|
8659
|
-
}
|
|
8660
|
-
return { rows, cols };
|
|
8661
|
-
}
|
|
8662
|
-
|
|
8663
8288
|
return highchartsRenderer;
|
|
8664
8289
|
};
|
|
8665
8290
|
|