@datarailsshared/dr_renderer 1.2.176-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 +38 -409
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;
|
|
@@ -1115,7 +1061,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1115
1061
|
|
|
1116
1062
|
opts.chart_series = []
|
|
1117
1063
|
|
|
1118
|
-
if (!lodash.isEqual(row_n_keys,
|
|
1064
|
+
if (!lodash.isEqual(row_n_keys, [[]])) {
|
|
1119
1065
|
chart_series.forEach(series => {
|
|
1120
1066
|
opts.chart_series.push(series.name);
|
|
1121
1067
|
})
|
|
@@ -1182,7 +1128,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1182
1128
|
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
1183
1129
|
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
1184
1130
|
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
|
|
1185
|
-
style: highchartsRenderer.getDataLabelsStyle(additionOptions)
|
|
1131
|
+
style: highchartsRenderer.getDataLabelsStyle(additionOptions)
|
|
1186
1132
|
}
|
|
1187
1133
|
|
|
1188
1134
|
ob = highchartsRenderer.getDataLabelsOptions(additionOptions, ob);
|
|
@@ -1275,7 +1221,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1275
1221
|
|
|
1276
1222
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1277
1223
|
|
|
1278
|
-
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, [[]])) {
|
|
1279
1225
|
chart_series.forEach((series, seriesIndex) => {
|
|
1280
1226
|
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
1281
1227
|
if (savedSeriesOption) {
|
|
@@ -1288,7 +1234,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1288
1234
|
|
|
1289
1235
|
opts.chart_series = []
|
|
1290
1236
|
|
|
1291
|
-
if (!lodash.isEqual(row_n_keys,
|
|
1237
|
+
if (!lodash.isEqual(row_n_keys, [[]])) {
|
|
1292
1238
|
chart_series.forEach(series => {
|
|
1293
1239
|
opts.chart_series.push(series.name);
|
|
1294
1240
|
})
|
|
@@ -1338,94 +1284,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1338
1284
|
return chart_series;
|
|
1339
1285
|
}
|
|
1340
1286
|
|
|
1341
|
-
highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
|
|
1342
|
-
const colorOptions = opts.breakdown_options.colors;
|
|
1343
|
-
var chart_series = [],
|
|
1344
|
-
row_n_keys = pivotData.getRowKeys(),
|
|
1345
|
-
col_n_keys = pivotData.getColKeys();
|
|
1346
|
-
|
|
1347
|
-
if (row_n_keys.length === 0) {
|
|
1348
|
-
row_n_keys.push([]);
|
|
1349
|
-
}
|
|
1350
|
-
|
|
1351
|
-
let resultObject = {
|
|
1352
|
-
data: [],
|
|
1353
|
-
dataLabels: {
|
|
1354
|
-
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
1355
|
-
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
1356
|
-
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
|
|
1357
|
-
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
1358
|
-
},
|
|
1359
|
-
upColor: colorOptions.increase,
|
|
1360
|
-
color: colorOptions.decrease,
|
|
1361
|
-
className: SERIES_CLASSNAMES.WATERFALL_BREAKDOWN
|
|
1362
|
-
};
|
|
1363
|
-
resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
|
|
1364
|
-
|
|
1365
|
-
const breakdownValues = [];
|
|
1366
|
-
lodash.forEach(col_n_keys, function(col_n_value, col_index) {
|
|
1367
|
-
breakdownValues.push([]);
|
|
1368
|
-
lodash.forEach(row_n_keys, function (row_n_value, row_index) {
|
|
1369
|
-
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
1370
|
-
var val = agg.value();
|
|
1371
|
-
|
|
1372
|
-
if (val != null && $.isNumeric(val)) {
|
|
1373
|
-
val = parseFloat(val);
|
|
1374
|
-
} else if (onlyNumbers) {
|
|
1375
|
-
val = NaN;
|
|
1376
|
-
} else {
|
|
1377
|
-
val = 0;
|
|
1378
|
-
}
|
|
1379
|
-
|
|
1380
|
-
breakdownValues[col_index][row_index] = val;
|
|
1381
|
-
|
|
1382
|
-
if (col_index) {
|
|
1383
|
-
const value = val - breakdownValues[col_index - 1][row_index];
|
|
1384
|
-
|
|
1385
|
-
if (value) {
|
|
1386
|
-
var tmoobj = {};
|
|
1387
|
-
var key = row_n_value;
|
|
1388
|
-
if (lodash.isArray(row_n_value)) {
|
|
1389
|
-
key = row_n_value[0];
|
|
1390
|
-
}
|
|
1391
|
-
tmoobj.name = lodash.unescape(key);
|
|
1392
|
-
|
|
1393
|
-
if (tmoobj.name) {
|
|
1394
|
-
tmoobj.name = tmoobj.name.replace('DR_Others', highchartsRenderer.getOthersName(opts));
|
|
1395
|
-
}
|
|
1396
|
-
|
|
1397
|
-
if (lodash.isEmpty(String(tmoobj.name))) {
|
|
1398
|
-
tmoobj.name = lodash.unescape(col_n_value);
|
|
1399
|
-
tmoobj.visible = false;
|
|
1400
|
-
}
|
|
1401
|
-
tmoobj.y = value;
|
|
1402
|
-
tmoobj.colKeys = [lodash.unescape(col_n_keys[col_index - 1]), lodash.unescape(col_n_value)];
|
|
1403
|
-
resultObject.data.push(tmoobj);
|
|
1404
|
-
}
|
|
1405
|
-
}
|
|
1406
|
-
});
|
|
1407
|
-
|
|
1408
|
-
resultObject.data.push({
|
|
1409
|
-
y: pivotData.colTotals[col_n_value].sum,
|
|
1410
|
-
name: lodash.unescape(col_n_value).replace('DR_Others', highchartsRenderer.getOthersName(opts)),
|
|
1411
|
-
isSum: !!col_index,
|
|
1412
|
-
isTotal: true,
|
|
1413
|
-
color: colorOptions.total,
|
|
1414
|
-
});
|
|
1415
|
-
});
|
|
1416
|
-
|
|
1417
|
-
chart_series.push(resultObject);
|
|
1418
|
-
|
|
1419
|
-
opts.chart_series = [];
|
|
1420
|
-
if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
|
1421
|
-
chart_series.forEach(series => {
|
|
1422
|
-
opts.chart_series.push(series.name);
|
|
1423
|
-
});
|
|
1424
|
-
}
|
|
1425
|
-
|
|
1426
|
-
return chart_series;
|
|
1427
|
-
}
|
|
1428
|
-
|
|
1429
1287
|
highchartsRenderer.setChartTypeBySeriesType = function (type, series) {
|
|
1430
1288
|
const types = {
|
|
1431
1289
|
'line-chart': 'line',
|
|
@@ -2104,6 +1962,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2104
1962
|
}
|
|
2105
1963
|
var uniqueVals = kpioptions.value.value == "Unique";
|
|
2106
1964
|
|
|
1965
|
+
if (!pivotData.colKeys.length) {
|
|
1966
|
+
pivotData.colKeys.push([]);
|
|
1967
|
+
}
|
|
1968
|
+
|
|
2107
1969
|
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals, null, opts, chartOptions);
|
|
2108
1970
|
|
|
2109
1971
|
var total = [];
|
|
@@ -3179,101 +3041,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3179
3041
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
3180
3042
|
};
|
|
3181
3043
|
|
|
3182
|
-
highchartsRenderer.ptRenderWaterfallBreakdown = function (pivotData, opts, drilldownFunc, chartType) {
|
|
3183
|
-
let chartOptions = {};
|
|
3184
|
-
const additionOptions = opts.chartOptions
|
|
3185
|
-
? opts.chartOptions
|
|
3186
|
-
: highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
|
|
3187
|
-
|
|
3188
|
-
chartOptions.chart = {
|
|
3189
|
-
type: 'waterfall',
|
|
3190
|
-
zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
|
|
3191
|
-
};
|
|
3192
|
-
if (disableAnimation) {
|
|
3193
|
-
chartOptions.chart.animation = false;
|
|
3194
|
-
}
|
|
3195
|
-
|
|
3196
|
-
const breakdownFieldIsNotSet = lodash.some(pivotData.getRowKeys(), rowKey => !rowKey || lodash.isArray(rowKey) && !rowKey.length);
|
|
3197
|
-
chartOptions.xAxis = {
|
|
3198
|
-
type: 'category',
|
|
3199
|
-
crosshair: true,
|
|
3200
|
-
min: 0,
|
|
3201
|
-
title: {
|
|
3202
|
-
text : additionOptions && additionOptions.axisX ? additionOptions.axisX.name : '',
|
|
3203
|
-
},
|
|
3204
|
-
uniqueNames: breakdownFieldIsNotSet,
|
|
3205
|
-
};
|
|
3206
|
-
|
|
3207
|
-
highchartsRenderer.setTitleAndSubTitle(chartOptions, opts, additionOptions);
|
|
3208
|
-
|
|
3209
|
-
chartOptions.yAxis = {
|
|
3210
|
-
min: null,
|
|
3211
|
-
max: null,
|
|
3212
|
-
title: {
|
|
3213
|
-
text: additionOptions && additionOptions.axisY ? additionOptions.axisY.name : '',
|
|
3214
|
-
autoylabel: additionOptions && additionOptions.axisY ? additionOptions.axisY.autoylabel : ''
|
|
3215
|
-
},
|
|
3216
|
-
labels: {
|
|
3217
|
-
formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
|
|
3218
|
-
},
|
|
3219
|
-
};
|
|
3220
|
-
if (additionOptions) {
|
|
3221
|
-
highchartsRenderer.setYAxisMinMax(chartOptions.yAxis, additionOptions.axisY);
|
|
3222
|
-
}
|
|
3223
|
-
|
|
3224
|
-
chartOptions.tooltip = {
|
|
3225
|
-
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
|
3226
|
-
valueDecimals: 2,
|
|
3227
|
-
};
|
|
3228
|
-
|
|
3229
|
-
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
3230
|
-
|
|
3231
|
-
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
3232
|
-
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
3233
|
-
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
3234
|
-
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
3235
|
-
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
3236
|
-
}
|
|
3237
|
-
chartOptions.series = highchartsRenderer
|
|
3238
|
-
.ptCreateWaterfallBreakdownSeries(pivotData, null, additionOptions, opts);
|
|
3239
|
-
|
|
3240
|
-
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
3241
|
-
chartOptions.plotOptions = {
|
|
3242
|
-
waterfall: {
|
|
3243
|
-
pointPadding: 0.2,
|
|
3244
|
-
borderWidth: 0,
|
|
3245
|
-
borderRadius: 1,
|
|
3246
|
-
lineWidth: 0,
|
|
3247
|
-
},
|
|
3248
|
-
series: {
|
|
3249
|
-
animation: !disableAnimation,
|
|
3250
|
-
cropThreshold: 1000,
|
|
3251
|
-
dataLabels: {
|
|
3252
|
-
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
3253
|
-
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
3254
|
-
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
|
|
3255
|
-
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
3256
|
-
inside: false
|
|
3257
|
-
}
|
|
3258
|
-
}
|
|
3259
|
-
};
|
|
3260
|
-
|
|
3261
|
-
if (opts.drillDownListFunc) {
|
|
3262
|
-
chartOptions.plotOptions.series.cursor = 'pointer';
|
|
3263
|
-
chartOptions.plotOptions.series.point = {
|
|
3264
|
-
events: {
|
|
3265
|
-
click: opts.drillDownListFunc
|
|
3266
|
-
}
|
|
3267
|
-
};
|
|
3268
|
-
}
|
|
3269
|
-
|
|
3270
|
-
chartOptions.legend = {
|
|
3271
|
-
enabled: false
|
|
3272
|
-
};
|
|
3273
|
-
|
|
3274
|
-
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
3275
|
-
};
|
|
3276
|
-
|
|
3277
3044
|
highchartsRenderer.formatFieldValue = function (field, value) {
|
|
3278
3045
|
let currentType = '';
|
|
3279
3046
|
switch (field.type) {
|
|
@@ -4338,7 +4105,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4338
4105
|
}
|
|
4339
4106
|
};
|
|
4340
4107
|
|
|
4341
|
-
highchartsRenderer.rhPivotView = function (rowData, options, isTable = false
|
|
4108
|
+
highchartsRenderer.rhPivotView = function (rowData, options, isTable = false) {
|
|
4342
4109
|
if (!rowData || !rowData) {
|
|
4343
4110
|
if (options.onlyOptions) {
|
|
4344
4111
|
return {};
|
|
@@ -4346,28 +4113,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4346
4113
|
return null;
|
|
4347
4114
|
}
|
|
4348
4115
|
|
|
4349
|
-
if (widget && widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
4350
|
-
const breakdownSettings = widget.options.breakdown_options.settings;
|
|
4351
|
-
const maxCategories = breakdownSettings.maxCategoriesCount;
|
|
4352
|
-
const minCategories = breakdownSettings.minCategoriesCount;
|
|
4353
|
-
const categoryFieldName = widget.cols[0].name;
|
|
4354
|
-
const uniqueCategories = lodash.filter(lodash.uniq(lodash.map(rowData, row => row[categoryFieldName])), value => !!value);
|
|
4355
|
-
|
|
4356
|
-
if (uniqueCategories && (uniqueCategories.length > maxCategories || uniqueCategories.length < minCategories )) {
|
|
4357
|
-
const commonErrorSentence = `Please choose ${minCategories}-${maxCategories} items in the Category section.`
|
|
4358
|
-
options.error_has_occurred = true;
|
|
4359
|
-
options.error_params = {
|
|
4360
|
-
title: uniqueCategories.length > maxCategories
|
|
4361
|
-
? `There is too much data. ${commonErrorSentence}`
|
|
4362
|
-
: `Not enough data. ${commonErrorSentence}`,
|
|
4363
|
-
text: '',
|
|
4364
|
-
btnText: 'Edit Widget',
|
|
4365
|
-
class: 'too-much-data',
|
|
4366
|
-
}
|
|
4367
|
-
return highchartsRenderer.getNoDataResult(options.rendererOptions, true);
|
|
4368
|
-
}
|
|
4369
|
-
}
|
|
4370
|
-
|
|
4371
4116
|
if (rowData.length == 0) {
|
|
4372
4117
|
if (options.onlyOptions) {
|
|
4373
4118
|
return {};
|
|
@@ -6776,17 +6521,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6776
6521
|
};
|
|
6777
6522
|
|
|
6778
6523
|
highchartsRenderer.chartsTypesInfo = {
|
|
6779
|
-
[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN]: {
|
|
6780
|
-
name: 'Waterfall Breakdown Chart ',
|
|
6781
|
-
label: 'Waterfall Breakdown Chart ',
|
|
6782
|
-
title: 'TODO: add text',
|
|
6783
|
-
description: 'TODO: add text',
|
|
6784
|
-
axisName: 'Category',
|
|
6785
|
-
legendName: 'Breakdown',
|
|
6786
|
-
startedMessage: 'To get started, drag one field to the Category and one field to the Value section.',
|
|
6787
|
-
axisTooltipTitle: 'TODO: add text',
|
|
6788
|
-
legendTooltipTitle: 'TODO: add text',
|
|
6789
|
-
},
|
|
6790
6524
|
'combo-chart': {
|
|
6791
6525
|
name: 'Combo Chart ',
|
|
6792
6526
|
label: 'Combo Chart ',
|
|
@@ -7419,32 +7153,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7419
7153
|
}
|
|
7420
7154
|
]
|
|
7421
7155
|
},
|
|
7422
|
-
{
|
|
7423
|
-
type: 'waterfall-chart',
|
|
7424
|
-
name: 'Waterfall',
|
|
7425
|
-
hidden: true,
|
|
7426
|
-
class: 'google-visualization-charteditor-mini-column',
|
|
7427
|
-
subtypes: [
|
|
7428
|
-
{
|
|
7429
|
-
type: highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN,
|
|
7430
|
-
name: highchartsRenderer.chartsTypesInfo[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN].name,
|
|
7431
|
-
class: 'google-visualization-charteditor-thumbs-columnchart',
|
|
7432
|
-
render: highchartsRenderer.ptRenderWaterfallBreakdown,
|
|
7433
|
-
suboptions: [
|
|
7434
|
-
highchartsRenderer.suboptions["axisY"],
|
|
7435
|
-
highchartsRenderer.suboptions["axisX"],
|
|
7436
|
-
highchartsRenderer.suboptions["tooltips"],
|
|
7437
|
-
highchartsRenderer.suboptions["label"],
|
|
7438
|
-
highchartsRenderer.suboptions["subtitle"],
|
|
7439
|
-
highchartsRenderer.suboptions["widget_library"],
|
|
7440
|
-
highchartsRenderer.suboptions["chart"],
|
|
7441
|
-
highchartsRenderer.suboptions["negative_number_format"],
|
|
7442
|
-
highchartsRenderer.suboptions["advanced"],
|
|
7443
|
-
highchartsRenderer.suboptions["legends"],
|
|
7444
|
-
]
|
|
7445
|
-
},
|
|
7446
|
-
]
|
|
7447
|
-
},
|
|
7448
7156
|
];
|
|
7449
7157
|
|
|
7450
7158
|
highchartsRenderer.richTextSubType = {
|
|
@@ -7894,16 +7602,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7894
7602
|
|
|
7895
7603
|
};
|
|
7896
7604
|
|
|
7897
|
-
highchartsRenderer.createDateFromString = function (dateString, format) {
|
|
7898
|
-
if ((format && !highchartsRenderer.isDateFormat(dateString, format)) || !highchartsRenderer.isDate(dateString)) {
|
|
7899
|
-
return null;
|
|
7900
|
-
}
|
|
7901
|
-
const utcDate = format
|
|
7902
|
-
? moment_lib.utc(dateString, format, true)
|
|
7903
|
-
: moment_lib.utc(dateString);
|
|
7904
|
-
return utcDate.startOf('day').unix();
|
|
7905
|
-
}
|
|
7906
|
-
|
|
7907
7605
|
highchartsRenderer.prepareDrillDownFilters = function (r_keys, c_keys, widget) {
|
|
7908
7606
|
let row_key = r_keys;
|
|
7909
7607
|
let col_key = c_keys;
|
|
@@ -7917,46 +7615,26 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7917
7615
|
|
|
7918
7616
|
let filters = [];
|
|
7919
7617
|
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7924
|
-
|
|
7925
|
-
if (widget.cols[0].type === 'Date') {
|
|
7926
|
-
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(
|
|
7927
7623
|
col_value,
|
|
7928
|
-
highchartsRenderer.getDateFieldFormat(widget, widget.cols[
|
|
7624
|
+
highchartsRenderer.getDateFieldFormat(widget, widget.cols[index])
|
|
7929
7625
|
);
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
}
|
|
7934
|
-
labels.push(col_value);
|
|
7935
|
-
});
|
|
7936
|
-
colFilter.value_to_show = labels.join(', ');
|
|
7937
|
-
filters.push(colFilter);
|
|
7938
|
-
} else {
|
|
7939
|
-
lodash.forEach(col_key, function (col_value, index) {
|
|
7940
|
-
if (widget && widget.cols[index]) {
|
|
7941
|
-
let temp = highchartsRenderer.createFilterObject(widget.cols[index]);
|
|
7942
|
-
if (widget.cols[index].type === 'Date') {
|
|
7943
|
-
let datetrange = highchartsRenderer.createDateTypeFromValue(
|
|
7944
|
-
col_value,
|
|
7945
|
-
highchartsRenderer.getDateFieldFormat(widget, widget.cols[index])
|
|
7946
|
-
);
|
|
7947
|
-
|
|
7948
|
-
if ($.isEmptyObject(datetrange)) {
|
|
7949
|
-
return;
|
|
7950
|
-
}
|
|
7951
|
-
temp.values = datetrange;
|
|
7952
|
-
temp.values.label = col_value;
|
|
7953
|
-
} else {
|
|
7954
|
-
temp.values = [col_value];
|
|
7626
|
+
|
|
7627
|
+
if ($.isEmptyObject(datetrange)) {
|
|
7628
|
+
return;
|
|
7955
7629
|
}
|
|
7956
|
-
|
|
7630
|
+
temp.values = datetrange;
|
|
7631
|
+
temp.values.label = col_value;
|
|
7632
|
+
} else {
|
|
7633
|
+
temp.values = [col_value];
|
|
7957
7634
|
}
|
|
7958
|
-
|
|
7959
|
-
|
|
7635
|
+
filters.push(temp);
|
|
7636
|
+
}
|
|
7637
|
+
});
|
|
7960
7638
|
|
|
7961
7639
|
lodash.forEach(row_key, function (row_value, index) {
|
|
7962
7640
|
if (widget && widget.rows[index]) {
|
|
@@ -8001,9 +7679,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8001
7679
|
});
|
|
8002
7680
|
|
|
8003
7681
|
lodash.forEach(filters, function (filter) {
|
|
8004
|
-
if (filter.value_to_show) {
|
|
8005
|
-
return;
|
|
8006
|
-
}
|
|
8007
7682
|
if (Array.isArray(filter.values)) {
|
|
8008
7683
|
if (filter.type) {
|
|
8009
7684
|
for (let i = 0; i < filter.values.length; i++) {
|
|
@@ -8042,36 +7717,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8042
7717
|
filters.push(highchartsRenderer.createDrillDownFilterObject(widget, widget.rows[i], rowKey[i]))
|
|
8043
7718
|
}
|
|
8044
7719
|
}
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
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});
|
|
8048
7722
|
if (filter) {
|
|
8049
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]];
|
|
8050
7727
|
} else {
|
|
8051
|
-
|
|
8052
|
-
}
|
|
8053
|
-
filter.values = [];
|
|
8054
|
-
for (let i = 0; i < colKey.length; i++) {
|
|
8055
|
-
filter.values.push(
|
|
8056
|
-
widget.cols[0].type === 'Date'
|
|
8057
|
-
? highchartsRenderer.createDateFromString(
|
|
8058
|
-
colKey[i],
|
|
8059
|
-
highchartsRenderer.getDateFieldFormat(widget, widget.cols[0])
|
|
8060
|
-
)
|
|
8061
|
-
: colKey[i]
|
|
8062
|
-
);
|
|
8063
|
-
}
|
|
8064
|
-
} else {
|
|
8065
|
-
for (let i = 0; i < colKey.length; i++) {
|
|
8066
|
-
let filter = lodash.find(filters, {name: widget.cols[i].name});
|
|
8067
|
-
if (filter) {
|
|
8068
|
-
filter.is_excluded = false;
|
|
8069
|
-
filter.values = widget.cols[i].type === 'Date' ?
|
|
8070
|
-
highchartsRenderer.createDateTypeFromValue(colKey[i], highchartsRenderer.getDateFieldFormat(widget, widget.cols[i])) :
|
|
8071
|
-
[colKey[i]];
|
|
8072
|
-
} else {
|
|
8073
|
-
filters.push(highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[i], colKey[i]))
|
|
8074
|
-
}
|
|
7728
|
+
filters.push(highchartsRenderer.createDrillDownFilterObject(widget, widget.cols[i], colKey[i]))
|
|
8075
7729
|
}
|
|
8076
7730
|
}
|
|
8077
7731
|
return filters;
|
|
@@ -8212,16 +7866,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8212
7866
|
lodash.forEach(datesFields, function (row) {
|
|
8213
7867
|
row.values = lodash.uniq(row.values);
|
|
8214
7868
|
|
|
8215
|
-
const isTimestampDateField = row.type === 'Date' &&
|
|
7869
|
+
const isTimestampDateField = row.type === 'Date' && typeof row.values[0] === 'number';
|
|
8216
7870
|
if (isTimestampDateField) {
|
|
8217
|
-
const nullValueIndex = row.values.indexOf(NULL_VALUE);
|
|
8218
|
-
if (~nullValueIndex) {
|
|
8219
|
-
row.values.splice(nullValueIndex, 1);
|
|
8220
|
-
}
|
|
8221
7871
|
row.values = row.values.sort((a, b) => a - b);
|
|
8222
|
-
if (~nullValueIndex) {
|
|
8223
|
-
row.values.push(NULL_VALUE);
|
|
8224
|
-
}
|
|
8225
7872
|
} else {
|
|
8226
7873
|
row.values = row.values.sort();
|
|
8227
7874
|
}
|
|
@@ -8411,7 +8058,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8411
8058
|
subopts.onlyOptions = true;
|
|
8412
8059
|
}
|
|
8413
8060
|
|
|
8414
|
-
let hc_options = highchartsRenderer.rhPivotView(res, subopts, is_table
|
|
8061
|
+
let hc_options = highchartsRenderer.rhPivotView(res, subopts, is_table);
|
|
8415
8062
|
|
|
8416
8063
|
return hc_options;
|
|
8417
8064
|
}
|
|
@@ -8638,24 +8285,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8638
8285
|
}
|
|
8639
8286
|
}
|
|
8640
8287
|
|
|
8641
|
-
highchartsRenderer.getOthersName = function(opts) {
|
|
8642
|
-
return lodash.get(opts, "total_value_options.filter_options.filteredOutFieldName") || 'Others';
|
|
8643
|
-
}
|
|
8644
|
-
|
|
8645
|
-
highchartsRenderer.transformRowsAndColsForBreakdown = function(rows, cols, point, opts) {
|
|
8646
|
-
const othersIndex = cols.indexOf(highchartsRenderer.getOthersName(opts));
|
|
8647
|
-
if (othersIndex !== -1) {
|
|
8648
|
-
cols[othersIndex] = 'DR_Others';
|
|
8649
|
-
}
|
|
8650
|
-
if (point.options.isTotal) {
|
|
8651
|
-
rows = [];
|
|
8652
|
-
} else {
|
|
8653
|
-
rows = cols;
|
|
8654
|
-
cols = [];
|
|
8655
|
-
}
|
|
8656
|
-
return { rows, cols };
|
|
8657
|
-
}
|
|
8658
|
-
|
|
8659
8288
|
return highchartsRenderer;
|
|
8660
8289
|
};
|
|
8661
8290
|
|