@datarailsshared/dr_renderer 1.2.223 → 1.2.224-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 +1 -1
- package/src/highcharts_renderer.js +313 -54
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const SERIES_CLASSNAMES = {
|
|
2
2
|
WATERFALL_BREAKDOWN: 'waterfallBreakdown',
|
|
3
|
+
WATERFALL_WALKTHROUGH: 'waterfallWalkthrough',
|
|
3
4
|
TOTAL_SERIES: 'totalSeries',
|
|
4
5
|
TREND_SERIES: 'trendSeries',
|
|
5
6
|
};
|
|
@@ -25,6 +26,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
25
26
|
const textColor = "#151a41";
|
|
26
27
|
const chartLabelColor = "#cfd7dd";
|
|
27
28
|
const HIGHCHARTS_FONT_FAMILY = 'Poppins';
|
|
29
|
+
let firstBarColor = null;
|
|
28
30
|
|
|
29
31
|
if(!Highcharts){
|
|
30
32
|
Highcharts = {
|
|
@@ -82,6 +84,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
82
84
|
KPI_WIDGET: 'kpi-widget',
|
|
83
85
|
TEXT_WIDGET: 'text-widget',
|
|
84
86
|
WATERFALL_BREAKDOWN: 'waterfall-chart-breakdown',
|
|
87
|
+
WATERFALL_WALKTHROUGH: 'waterfall-chart-walkthrough',
|
|
85
88
|
PUBLISHED_ITEM: 'published_item',
|
|
86
89
|
RICH_TEXT: 'rich_text',
|
|
87
90
|
EXCEL_VIEWER: 'excel_viewer',
|
|
@@ -466,7 +469,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
466
469
|
highchartsRenderer.getOthersName(opts) :
|
|
467
470
|
undefined;
|
|
468
471
|
var drOthersInColumn = lodash.find(
|
|
469
|
-
pivotData.getColKeys(),
|
|
472
|
+
pivotData.getColKeys(),
|
|
470
473
|
keys => keys.length && (lodash.includes(keys, 'DR_Others') || lodash.includes(keys, othersName))
|
|
471
474
|
);
|
|
472
475
|
|
|
@@ -486,7 +489,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
486
489
|
rows = [];
|
|
487
490
|
}
|
|
488
491
|
|
|
489
|
-
var cols = this.key;
|
|
492
|
+
var cols = lodash.get(this, 'point.options.colsForTotal') || this.key;
|
|
490
493
|
if (typeof (cols) == 'object' && cols.name) {
|
|
491
494
|
cols = cols.name;
|
|
492
495
|
}
|
|
@@ -494,7 +497,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
494
497
|
if (!cols && is_drill_down_pie) {
|
|
495
498
|
cols = this.point.name;
|
|
496
499
|
}
|
|
497
|
-
|
|
500
|
+
|
|
498
501
|
if (drOthersInColumn) {
|
|
499
502
|
if (!lodash.isArray(cols) && othersName === cols) {
|
|
500
503
|
cols = ['DR_Others'];
|
|
@@ -619,7 +622,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
619
622
|
|
|
620
623
|
var func = function () {
|
|
621
624
|
const isWaterfallBreakdown = this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN;
|
|
622
|
-
|
|
625
|
+
const isWaterfallWalkthrough = this.series.options.className === SERIES_CLASSNAMES.WATERFALL_WALKTHROUGH;
|
|
623
626
|
var y = parseFloat(this.y);
|
|
624
627
|
if (pivotData) {
|
|
625
628
|
let series_name = (this.series.name || '') + "";
|
|
@@ -632,7 +635,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
632
635
|
|| this.series.options.className === 'trendSeries') {
|
|
633
636
|
rows = [];
|
|
634
637
|
}
|
|
635
|
-
|
|
638
|
+
|
|
639
|
+
var cols = lodash.get(this, 'point.options.colsForTotal') || this.key;
|
|
636
640
|
if (!cols && is_drill_down_pie) {
|
|
637
641
|
cols = this.name;
|
|
638
642
|
}
|
|
@@ -647,7 +651,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
647
651
|
if (variant_name && rows && rows[0] && variant_name == rows[0]) {
|
|
648
652
|
rows[0] = variant_name_default_name;
|
|
649
653
|
}
|
|
650
|
-
|
|
654
|
+
if (isWaterfallWalkthrough) {
|
|
655
|
+
cols = [this.key]
|
|
656
|
+
}
|
|
651
657
|
try {
|
|
652
658
|
if (is_drill_down_pie && !highchartsRenderer.selfStartsWith(series_name,"Series ")) {
|
|
653
659
|
let temp = cols;
|
|
@@ -655,7 +661,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
655
661
|
rows = temp;
|
|
656
662
|
}
|
|
657
663
|
|
|
658
|
-
var category_text = `<span style="font-weight: bold;"
|
|
664
|
+
var category_text = `<span style="font-weight: bold;">
|
|
665
|
+
${ lodash.get(this, 'point.options.colsForTotal') ? cols[0] : cols } ${ isWaterfallBreakdown ? ': ' : ' ' }
|
|
666
|
+
</span>`;
|
|
659
667
|
if (this.category) {
|
|
660
668
|
category_text = '';
|
|
661
669
|
}
|
|
@@ -672,7 +680,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
672
680
|
const modifiedRowsAndCols = highchartsRenderer.transformRowsAndColsForBreakdown(rows, cols, this.point, opts);
|
|
673
681
|
rows = modifiedRowsAndCols.rows;
|
|
674
682
|
cols = modifiedRowsAndCols.cols;
|
|
675
|
-
}
|
|
683
|
+
}
|
|
676
684
|
|
|
677
685
|
var aggr = pivotData.getAggregator(rows, cols);
|
|
678
686
|
|
|
@@ -1414,6 +1422,89 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1414
1422
|
return chart_series;
|
|
1415
1423
|
}
|
|
1416
1424
|
|
|
1425
|
+
highchartsRenderer.ptCreateWaterfallWalkthroughSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
|
|
1426
|
+
const waterfallOptions = opts.walkthrough_options;
|
|
1427
|
+
const chart_series = [];
|
|
1428
|
+
let resultObject = {
|
|
1429
|
+
data: [],
|
|
1430
|
+
dataLabels: {
|
|
1431
|
+
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
1432
|
+
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
1433
|
+
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, {'chartOptions': additionOptions, total_value_options: opts.total_value_options}),
|
|
1434
|
+
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
1435
|
+
},
|
|
1436
|
+
upColor: waterfallOptions.colors.increase,
|
|
1437
|
+
color: waterfallOptions.colors.decrease,
|
|
1438
|
+
className: SERIES_CLASSNAMES.WATERFALL_WALKTHROUGH
|
|
1439
|
+
};
|
|
1440
|
+
resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
|
|
1441
|
+
lodash.forEach(waterfallOptions.values.walkthrough, function(value, index) {
|
|
1442
|
+
|
|
1443
|
+
let keys = [];
|
|
1444
|
+
if (value.trend === 'total') {
|
|
1445
|
+
keys = ['Total'];
|
|
1446
|
+
} else {
|
|
1447
|
+
_.forEach(value.key, (item) => {
|
|
1448
|
+
const findKeyByValue = Object.keys(pivotData.dateValuesDictionary || {}).find(key => pivotData.dateValuesDictionary[key] === item);
|
|
1449
|
+
keys.push(findKeyByValue ? findKeyByValue : item);
|
|
1450
|
+
})
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1453
|
+
const agg = pivotData.getAggregator([], keys);
|
|
1454
|
+
let val = agg.value();
|
|
1455
|
+
|
|
1456
|
+
if (val != null && $.isNumeric(val)) {
|
|
1457
|
+
val = parseFloat(val);
|
|
1458
|
+
} else if (onlyNumbers) {
|
|
1459
|
+
val = NaN;
|
|
1460
|
+
} else {
|
|
1461
|
+
val = 0;
|
|
1462
|
+
}
|
|
1463
|
+
|
|
1464
|
+
if (value.trend === 'decrease') {
|
|
1465
|
+
val = val * -1;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
const name = value.trend === 'total' ? value.formattedKey || value.key[0] : keys.join(highchartsRenderer.delimer);
|
|
1469
|
+
let color = '';
|
|
1470
|
+
if (value.trend !== 'total') {
|
|
1471
|
+
if (index === 0 && !firstBarColor) {
|
|
1472
|
+
color = waterfallOptions.colors.total;
|
|
1473
|
+
firstBarColor = waterfallOptions.colors.total;
|
|
1474
|
+
} else {
|
|
1475
|
+
color = value.color
|
|
1476
|
+
}
|
|
1477
|
+
} else {
|
|
1478
|
+
color = waterfallOptions.colors.total;
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
resultObject.data.push({
|
|
1482
|
+
y: val,
|
|
1483
|
+
name: lodash.unescape(name).replace('DR_Others', highchartsRenderer.getOthersName(opts)),
|
|
1484
|
+
isSum: value.trend === 'total',
|
|
1485
|
+
isTotal: value.trend === 'total',
|
|
1486
|
+
color,
|
|
1487
|
+
colsForTotal: value.trend === 'total' ? keys : null,
|
|
1488
|
+
});
|
|
1489
|
+
});
|
|
1490
|
+
chart_series.push(resultObject);
|
|
1491
|
+
chart_series.push(
|
|
1492
|
+
{
|
|
1493
|
+
name: 'Increase',
|
|
1494
|
+
visible: false,
|
|
1495
|
+
color: waterfallOptions.colors.increase
|
|
1496
|
+
});
|
|
1497
|
+
|
|
1498
|
+
chart_series.push(
|
|
1499
|
+
{
|
|
1500
|
+
name: 'Decrease',
|
|
1501
|
+
visible: false,
|
|
1502
|
+
color: waterfallOptions.colors.decrease
|
|
1503
|
+
});
|
|
1504
|
+
|
|
1505
|
+
return chart_series;
|
|
1506
|
+
}
|
|
1507
|
+
|
|
1417
1508
|
highchartsRenderer.setChartTypeBySeriesType = function (type, series) {
|
|
1418
1509
|
const types = {
|
|
1419
1510
|
'line-chart': 'line',
|
|
@@ -1617,7 +1708,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1617
1708
|
highchartsRenderer.getDataLabelsStylesForDrillDown = function(additionOptions) {
|
|
1618
1709
|
let result = highchartsRenderer.getDataLabelsOptions(additionOptions, { dataLabels: {} });
|
|
1619
1710
|
|
|
1620
|
-
if (!result.dataLabels) return {};
|
|
1711
|
+
if (!result.dataLabels) return {};
|
|
1621
1712
|
return {
|
|
1622
1713
|
activeDataLabelStyle: {
|
|
1623
1714
|
color: result.dataLabels.color,
|
|
@@ -3173,7 +3264,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3173
3264
|
|
|
3174
3265
|
highchartsRenderer.ptRenderWaterfallBreakdown = function (pivotData, opts, drilldownFunc, chartType) {
|
|
3175
3266
|
let chartOptions = {};
|
|
3176
|
-
const additionOptions = opts.chartOptions
|
|
3267
|
+
const additionOptions = opts.chartOptions
|
|
3177
3268
|
? opts.chartOptions
|
|
3178
3269
|
: highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
|
|
3179
3270
|
|
|
@@ -3272,6 +3363,122 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3272
3363
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
3273
3364
|
};
|
|
3274
3365
|
|
|
3366
|
+
highchartsRenderer.ptRenderWaterfallWalkthrough = function (pivotData, opts) {
|
|
3367
|
+
let chartOptions = {};
|
|
3368
|
+
const waterfallOptions = opts?.walkthrough_options;
|
|
3369
|
+
const additionOptions = opts.chartOptions
|
|
3370
|
+
? opts.chartOptions
|
|
3371
|
+
: highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH);
|
|
3372
|
+
|
|
3373
|
+
chartOptions.chart = {
|
|
3374
|
+
type: 'waterfall',
|
|
3375
|
+
zoomType: additionOptions && additionOptions.chart && additionOptions.chart.zoom_type ? additionOptions.chart.zoom_type : 'None',
|
|
3376
|
+
};
|
|
3377
|
+
if (disableAnimation) {
|
|
3378
|
+
chartOptions.chart.animation = false;
|
|
3379
|
+
}
|
|
3380
|
+
const walkthroughFieldIsNotSet = lodash.some(pivotData.getRowKeys(), rowKey => !rowKey || lodash.isArray(rowKey) && !rowKey.length);
|
|
3381
|
+
|
|
3382
|
+
chartOptions.xAxis = {
|
|
3383
|
+
type: 'category',
|
|
3384
|
+
crosshair: true,
|
|
3385
|
+
min: 0,
|
|
3386
|
+
title: {
|
|
3387
|
+
text : additionOptions && additionOptions.axisX ? additionOptions.axisX.name : '',
|
|
3388
|
+
},
|
|
3389
|
+
uniqueNames: walkthroughFieldIsNotSet,
|
|
3390
|
+
};
|
|
3391
|
+
|
|
3392
|
+
highchartsRenderer.setTitleAndSubTitle(chartOptions, opts, additionOptions);
|
|
3393
|
+
|
|
3394
|
+
chartOptions.yAxis = {
|
|
3395
|
+
min: null,
|
|
3396
|
+
max: null,
|
|
3397
|
+
title: {
|
|
3398
|
+
text: additionOptions && additionOptions.axisY ? additionOptions.axisY.name : '',
|
|
3399
|
+
autoylabel: additionOptions && additionOptions.axisY ? additionOptions.axisY.autoylabel : ''
|
|
3400
|
+
},
|
|
3401
|
+
labels: {
|
|
3402
|
+
formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
|
|
3403
|
+
},
|
|
3404
|
+
};
|
|
3405
|
+
if (additionOptions) {
|
|
3406
|
+
highchartsRenderer.setYAxisMinMax(chartOptions.yAxis, additionOptions.axisY);
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3409
|
+
chartOptions.tooltip = {
|
|
3410
|
+
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
|
3411
|
+
valueDecimals: 2,
|
|
3412
|
+
};
|
|
3413
|
+
|
|
3414
|
+
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
3415
|
+
|
|
3416
|
+
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
3417
|
+
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
3418
|
+
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
3419
|
+
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
3420
|
+
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
3421
|
+
}
|
|
3422
|
+
chartOptions.series = highchartsRenderer
|
|
3423
|
+
.ptCreateWaterfallWalkthroughSeries(pivotData, null, additionOptions, opts);
|
|
3424
|
+
|
|
3425
|
+
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
3426
|
+
chartOptions.plotOptions = {
|
|
3427
|
+
waterfall: {
|
|
3428
|
+
pointPadding: 0.2,
|
|
3429
|
+
borderWidth: 0,
|
|
3430
|
+
borderRadius: 1,
|
|
3431
|
+
lineWidth: 0,
|
|
3432
|
+
},
|
|
3433
|
+
series: {
|
|
3434
|
+
animation: !disableAnimation,
|
|
3435
|
+
cropThreshold: 1000,
|
|
3436
|
+
dataLabels: {
|
|
3437
|
+
allowOverlap: additionOptions && additionOptions.label ? additionOptions.label.overlap : false,
|
|
3438
|
+
enabled: additionOptions && additionOptions.label ? additionOptions.label.show : true,
|
|
3439
|
+
formatter: highchartsRenderer.defaultDataLabelFormatter(pivotData, opts),
|
|
3440
|
+
style: highchartsRenderer.getDataLabelsStyle(additionOptions),
|
|
3441
|
+
inside: false
|
|
3442
|
+
},
|
|
3443
|
+
events: {
|
|
3444
|
+
legendItemClick: () => {
|
|
3445
|
+
return false;
|
|
3446
|
+
}
|
|
3447
|
+
}
|
|
3448
|
+
}
|
|
3449
|
+
};
|
|
3450
|
+
|
|
3451
|
+
if (opts.drillDownListFunc) {
|
|
3452
|
+
chartOptions.plotOptions.series.cursor = 'pointer';
|
|
3453
|
+
chartOptions.plotOptions.series.point = {
|
|
3454
|
+
events: {
|
|
3455
|
+
click: opts.drillDownListFunc
|
|
3456
|
+
}
|
|
3457
|
+
};
|
|
3458
|
+
}
|
|
3459
|
+
if (waterfallOptions.colors) {
|
|
3460
|
+
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 3, false);
|
|
3461
|
+
chartOptions.legend.useHTML = true;
|
|
3462
|
+
chartOptions.legend.labelFormatter = function() {
|
|
3463
|
+
const name = this.options.className ? 'Total': this.name;
|
|
3464
|
+
const findTotal = _.find(this.options.data, {isTotal: true});
|
|
3465
|
+
const color = findTotal?.color ? findTotal.color : this.color;
|
|
3466
|
+
return '<span style="margin: 5px; vertical-align: middle; display:inline-block; background-color: '+ color + '; width: 12px; height: 12px; border-radius: 50%"></span><span style="color: #000; display: inline-block; margin: 5px; vertical-align: middle;">' + name + '</span>';
|
|
3467
|
+
}
|
|
3468
|
+
|
|
3469
|
+
chartOptions.legend.symbolPadding = 0;
|
|
3470
|
+
chartOptions.legend.symbolWidth = 0;
|
|
3471
|
+
chartOptions.legend.symbolHeight = 0;
|
|
3472
|
+
chartOptions.legend.squareSymbol = false;
|
|
3473
|
+
} else {
|
|
3474
|
+
chartOptions.legend = {
|
|
3475
|
+
enabled: false
|
|
3476
|
+
}
|
|
3477
|
+
}
|
|
3478
|
+
|
|
3479
|
+
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
3480
|
+
}
|
|
3481
|
+
|
|
3275
3482
|
highchartsRenderer.formatFieldValue = function (field, value) {
|
|
3276
3483
|
let currentType = '';
|
|
3277
3484
|
let format = field.format;
|
|
@@ -4340,6 +4547,17 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4340
4547
|
}
|
|
4341
4548
|
};
|
|
4342
4549
|
|
|
4550
|
+
highchartsRenderer.waterfallConstants = {
|
|
4551
|
+
[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN]: {
|
|
4552
|
+
minCategoriesCount: 2,
|
|
4553
|
+
maxCategoriesCount: 5,
|
|
4554
|
+
},
|
|
4555
|
+
[highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH]: {
|
|
4556
|
+
minCategoriesCount: 2,
|
|
4557
|
+
maxCategoriesCount: 10,
|
|
4558
|
+
}
|
|
4559
|
+
};
|
|
4560
|
+
|
|
4343
4561
|
highchartsRenderer.rhPivotView = function (rowData, options, isTable = false, widget = null) {
|
|
4344
4562
|
if (!rowData || !rowData) {
|
|
4345
4563
|
if (options.onlyOptions) {
|
|
@@ -4348,10 +4566,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4348
4566
|
return null;
|
|
4349
4567
|
}
|
|
4350
4568
|
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4569
|
+
const isWaterfall = widget
|
|
4570
|
+
&& (
|
|
4571
|
+
widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN
|
|
4572
|
+
|| widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH
|
|
4573
|
+
);
|
|
4574
|
+
|
|
4575
|
+
if (isWaterfall) {
|
|
4576
|
+
const maxCategories = highchartsRenderer.waterfallConstants[widget.chart_type].maxCategoriesCount;
|
|
4577
|
+
const minCategories = highchartsRenderer.waterfallConstants[widget.chart_type].minCategoriesCount;
|
|
4355
4578
|
const uniqueCategories = lodash.filter(
|
|
4356
4579
|
lodash.uniq(
|
|
4357
4580
|
lodash.map(rowData, row => row[widget.cols[0].name])
|
|
@@ -4361,6 +4584,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4361
4584
|
|
|
4362
4585
|
if (uniqueCategories && (uniqueCategories.length > maxCategories || uniqueCategories.length < minCategories )) {
|
|
4363
4586
|
options.error_has_occurred = true;
|
|
4587
|
+
const isDateField = widget.cols[0].type === 'Date';
|
|
4588
|
+
const commonMessagePart = `This chart support a selection of ${minCategories}-${maxCategories} items from the category section. `;
|
|
4364
4589
|
options.error_params = {
|
|
4365
4590
|
title: 'Data Conflict',
|
|
4366
4591
|
text: `Please adjust your dashboard's reference date and filter selections as \
|
|
@@ -4609,19 +4834,25 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4609
4834
|
return highchartsRenderer.getWeekNumber(dateObj);
|
|
4610
4835
|
};
|
|
4611
4836
|
|
|
4612
|
-
highchartsRenderer.
|
|
4613
|
-
let
|
|
4837
|
+
highchartsRenderer.check_values_not_for_convert = function (currentgraph, field_name) {
|
|
4838
|
+
let vals_not_convert = [];
|
|
4614
4839
|
if (lodash.has(currentgraph, "options.chartOptions.delta_column") && currentgraph.options.chartOptions.delta_column) {
|
|
4615
4840
|
let delta_options = currentgraph.options.chartOptions.delta_column;
|
|
4616
4841
|
if (delta_options.field == 'series' && currentgraph.rows && currentgraph.rows[0] &&
|
|
4617
4842
|
currentgraph.rows[0].name == field_name) {
|
|
4618
|
-
|
|
4843
|
+
vals_not_convert = [delta_options.name];
|
|
4619
4844
|
} else if (delta_options.field == 'category' && currentgraph.rows && currentgraph.cols[0] &&
|
|
4620
4845
|
currentgraph.cols[0].name == field_name) {
|
|
4621
|
-
|
|
4846
|
+
vals_not_convert = [delta_options.name];
|
|
4622
4847
|
}
|
|
4848
|
+
} else if (currentgraph.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH) {
|
|
4849
|
+
lodash.forEach(currentgraph.options.walkthrough_options.values.walkthrough, value => {
|
|
4850
|
+
if (value.trend === 'total') {
|
|
4851
|
+
vals_not_convert.push(value.key[0]);
|
|
4852
|
+
}
|
|
4853
|
+
});
|
|
4623
4854
|
}
|
|
4624
|
-
return
|
|
4855
|
+
return vals_not_convert;
|
|
4625
4856
|
};
|
|
4626
4857
|
|
|
4627
4858
|
highchartsRenderer.updateFiltersShowNames = function (filters) {
|
|
@@ -4641,8 +4872,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4641
4872
|
})
|
|
4642
4873
|
};
|
|
4643
4874
|
|
|
4644
|
-
highchartsRenderer.returnRawDataValue = function (type, value, format, field_name,
|
|
4645
|
-
if (
|
|
4875
|
+
highchartsRenderer.returnRawDataValue = function (type, value, format, field_name, vals_not_for_convert) {
|
|
4876
|
+
if (vals_not_for_convert && vals_not_for_convert.length && lodash.includes(vals_not_for_convert, value)) {
|
|
4646
4877
|
return value;
|
|
4647
4878
|
}
|
|
4648
4879
|
|
|
@@ -5665,7 +5896,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5665
5896
|
return valToReturn;
|
|
5666
5897
|
};
|
|
5667
5898
|
|
|
5668
|
-
|
|
5899
|
+
|
|
5669
5900
|
highchartsRenderer.getChartAxisLabel = function(type) {
|
|
5670
5901
|
return highchartsRenderer.chartsTypesInfo[type] ? highchartsRenderer.chartsTypesInfo[type].axisName : CHART_AXIS_DEFAULT_LABEL;
|
|
5671
5902
|
};
|
|
@@ -6500,7 +6731,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6500
6731
|
value_name: 'show',
|
|
6501
6732
|
default_value: true,
|
|
6502
6733
|
disabled_str: '!{var}.show_out_of_x_axis && !{var}.show_out_of_data_series && !{var}.show_value && !{var}.show_x_axis && !{var}.show_data_series',
|
|
6503
|
-
disabled_fn: (value) => !value.show_out_of_x_axis
|
|
6734
|
+
disabled_fn: (value) => !value.show_out_of_x_axis
|
|
6504
6735
|
&& !value.show_out_of_data_series
|
|
6505
6736
|
&& !value.show_value
|
|
6506
6737
|
&& !value.show_x_axis
|
|
@@ -6541,8 +6772,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6541
6772
|
element_label: '[X Axis]',
|
|
6542
6773
|
value_name: 'show_x_axis',
|
|
6543
6774
|
default_value: true,
|
|
6544
|
-
clickFn: (value) => value.show = value.show
|
|
6545
|
-
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6775
|
+
clickFn: (value) => value.show = value.show
|
|
6776
|
+
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6546
6777
|
: value.show,
|
|
6547
6778
|
},
|
|
6548
6779
|
{
|
|
@@ -6550,8 +6781,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6550
6781
|
element_label: '[Data Series]',
|
|
6551
6782
|
value_name: 'show_data_series',
|
|
6552
6783
|
default_value: true,
|
|
6553
|
-
clickFn: (value) => value.show = value.show
|
|
6554
|
-
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6784
|
+
clickFn: (value) => value.show = value.show
|
|
6785
|
+
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6555
6786
|
: value.show,
|
|
6556
6787
|
},
|
|
6557
6788
|
{
|
|
@@ -6559,8 +6790,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6559
6790
|
element_label: 'Value',
|
|
6560
6791
|
value_name: 'show_value',
|
|
6561
6792
|
default_value: true,
|
|
6562
|
-
clickFn: (value) => value.show = value.show
|
|
6563
|
-
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6793
|
+
clickFn: (value) => value.show = value.show
|
|
6794
|
+
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6564
6795
|
: value.show,
|
|
6565
6796
|
},
|
|
6566
6797
|
{
|
|
@@ -6568,8 +6799,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6568
6799
|
element_label: '% Out of [X Axis]',
|
|
6569
6800
|
value_name: 'show_out_of_x_axis',
|
|
6570
6801
|
default_value: false,
|
|
6571
|
-
clickFn: (value) => value.show = value.show
|
|
6572
|
-
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6802
|
+
clickFn: (value) => value.show = value.show
|
|
6803
|
+
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6573
6804
|
: value.show,
|
|
6574
6805
|
},
|
|
6575
6806
|
{
|
|
@@ -6577,8 +6808,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6577
6808
|
element_label: '% Out of [Data Series]',
|
|
6578
6809
|
value_name: 'show_out_of_data_series',
|
|
6579
6810
|
default_value: false,
|
|
6580
|
-
clickFn: (value) => value.show = value.show
|
|
6581
|
-
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6811
|
+
clickFn: (value) => value.show = value.show
|
|
6812
|
+
? value.show_out_of_x_axis || value.show_out_of_data_series || value.show_value || value.show_x_axis || value.show_data_series
|
|
6582
6813
|
: value.show,
|
|
6583
6814
|
},
|
|
6584
6815
|
]
|
|
@@ -6752,16 +6983,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6752
6983
|
value_name: 'name',
|
|
6753
6984
|
element_label: 'Name',
|
|
6754
6985
|
default_value: '_Variance'
|
|
6755
|
-
}, {
|
|
6756
|
-
element_type: 'input',
|
|
6757
|
-
value_name: 'formula',
|
|
6758
|
-
element_label: 'Formula',
|
|
6759
|
-
default_value: 'x2-x1'
|
|
6760
6986
|
}, {
|
|
6761
6987
|
element_type: 'input',
|
|
6762
|
-
value_name: '
|
|
6763
|
-
element_label: '
|
|
6764
|
-
default_value: ''
|
|
6988
|
+
value_name: 'formula',
|
|
6989
|
+
element_label: 'Formula',
|
|
6990
|
+
default_value: 'x2-x1'
|
|
6991
|
+
}, {
|
|
6992
|
+
element_type: 'input',
|
|
6993
|
+
value_name: 'color',
|
|
6994
|
+
element_label: 'Color',
|
|
6995
|
+
default_value: ''
|
|
6765
6996
|
}, {
|
|
6766
6997
|
element_type: 'radio',
|
|
6767
6998
|
value_name: 'chart',
|
|
@@ -6884,7 +7115,17 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6884
7115
|
axisTooltipDescription: 'The category (usually an independent variable) is shown on the x-axis and should be between 2 to 5 total columns. ',
|
|
6885
7116
|
legendTooltipTitle: 'Drag one field to further configure your x-axis.',
|
|
6886
7117
|
legendTooltipDescription: 'The breakdown subdivides the chart by a category field for further analysis of what’s contributing to the increase or decrease.',
|
|
6887
|
-
},
|
|
7118
|
+
},
|
|
7119
|
+
[highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH]: {
|
|
7120
|
+
name: 'Waterfall Walkthrough Chart ',
|
|
7121
|
+
label: 'Waterfall Walkthrough Chart ',
|
|
7122
|
+
title: 'TODO: add text',
|
|
7123
|
+
description: 'TODO: add text',
|
|
7124
|
+
axisName: 'Category',
|
|
7125
|
+
startedMessage: 'TODO: add text',
|
|
7126
|
+
axisTooltipTitle: 'TODO: add text',
|
|
7127
|
+
legendTooltipTitle: 'TODO: add text',
|
|
7128
|
+
},
|
|
6888
7129
|
'combo-chart': {
|
|
6889
7130
|
name: 'Combo Chart ',
|
|
6890
7131
|
label: 'Combo Chart ',
|
|
@@ -7540,6 +7781,24 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7540
7781
|
highchartsRenderer.suboptions["legends"],
|
|
7541
7782
|
]
|
|
7542
7783
|
},
|
|
7784
|
+
{
|
|
7785
|
+
type: highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH,
|
|
7786
|
+
name: highchartsRenderer.chartsTypesInfo[highchartsRenderer.CHART_TYPES.WATERFALL_WALKTHROUGH].name,
|
|
7787
|
+
class: 'google-visualization-charteditor-thumbs-columnchart',
|
|
7788
|
+
render: highchartsRenderer.ptRenderWaterfallWalkthrough,
|
|
7789
|
+
suboptions: [
|
|
7790
|
+
highchartsRenderer.suboptions["axisX"],
|
|
7791
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
7792
|
+
highchartsRenderer.suboptions["label"],
|
|
7793
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
7794
|
+
highchartsRenderer.suboptions["widget_library"],
|
|
7795
|
+
highchartsRenderer.suboptions["chart"],
|
|
7796
|
+
highchartsRenderer.suboptions["negative_number_format"],
|
|
7797
|
+
highchartsRenderer.suboptions["advanced"],
|
|
7798
|
+
highchartsRenderer.suboptions["legends"],
|
|
7799
|
+
],
|
|
7800
|
+
hidden: true,
|
|
7801
|
+
},
|
|
7543
7802
|
]
|
|
7544
7803
|
},
|
|
7545
7804
|
];
|
|
@@ -7696,7 +7955,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7696
7955
|
_.forEach(Object.keys(dates), key => {
|
|
7697
7956
|
const dateConfiguration = dates[key];
|
|
7698
7957
|
const timestamp = dateConfiguration.timestamp;
|
|
7699
|
-
if (timestamp) {
|
|
7958
|
+
if (timestamp) {
|
|
7700
7959
|
const dateTzOffsetInSeconds = new Date(timestamp * 1000).getTimezoneOffset() * 60;
|
|
7701
7960
|
dateConfiguration.displayedValue = new Date((timestamp + dateTzOffsetInSeconds) * 1000)
|
|
7702
7961
|
.toLocaleDateString();
|
|
@@ -7995,7 +8254,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7995
8254
|
if (!(format && highchartsRenderer.isDateFormat(dateString, format) || highchartsRenderer.isDate(dateString))) {
|
|
7996
8255
|
return null;
|
|
7997
8256
|
}
|
|
7998
|
-
const utcDate = format
|
|
8257
|
+
const utcDate = format
|
|
7999
8258
|
? moment_lib.utc(dateString, format, true)
|
|
8000
8259
|
: moment_lib.utc(dateString);
|
|
8001
8260
|
return utcDate.startOf('day').unix();
|
|
@@ -8013,7 +8272,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8013
8272
|
}
|
|
8014
8273
|
|
|
8015
8274
|
let filters = [];
|
|
8016
|
-
|
|
8275
|
+
|
|
8017
8276
|
if (widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
8018
8277
|
const colFilter = highchartsRenderer.createFilterObject(widget.cols[0]);
|
|
8019
8278
|
const labels = [];
|
|
@@ -8041,7 +8300,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8041
8300
|
col_value,
|
|
8042
8301
|
highchartsRenderer.getDateFieldFormat(widget, widget.cols[index])
|
|
8043
8302
|
);
|
|
8044
|
-
|
|
8303
|
+
|
|
8045
8304
|
if ($.isEmptyObject(datetrange)) {
|
|
8046
8305
|
return;
|
|
8047
8306
|
}
|
|
@@ -8284,7 +8543,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8284
8543
|
var data = res;
|
|
8285
8544
|
|
|
8286
8545
|
lodash.forEach(datesFields, function (row) {
|
|
8287
|
-
row.val_not_convert = highchartsRenderer.
|
|
8546
|
+
row.val_not_convert = highchartsRenderer.check_values_not_for_convert(widget, row.name);
|
|
8288
8547
|
});
|
|
8289
8548
|
|
|
8290
8549
|
if (datesFields.length > 0) {
|
|
@@ -8690,14 +8949,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8690
8949
|
return rightPosition;
|
|
8691
8950
|
case 'none':
|
|
8692
8951
|
return none;
|
|
8952
|
+
}
|
|
8953
|
+
} else if (isLine) {
|
|
8954
|
+
return useNewUx ? leftPosition : rightPosition;
|
|
8955
|
+
} else if (isPie) {
|
|
8956
|
+
return useNewUx ? rightPosition : topPosition;
|
|
8693
8957
|
}
|
|
8694
|
-
} else if (isLine) {
|
|
8695
|
-
return useNewUx ? leftPosition : rightPosition;
|
|
8696
|
-
} else if (isPie) {
|
|
8697
|
-
return useNewUx ? rightPosition : topPosition;
|
|
8698
|
-
}
|
|
8699
8958
|
|
|
8700
|
-
|
|
8959
|
+
return useNewUx ? topPosition : bottomPosition;
|
|
8701
8960
|
}
|
|
8702
8961
|
|
|
8703
8962
|
highchartsRenderer.setYAxisMinMax = function (yAxis, axisYOptions) {
|
|
@@ -8712,7 +8971,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8712
8971
|
}
|
|
8713
8972
|
|
|
8714
8973
|
highchartsRenderer.getDateFieldFormat = function(widget, dateField) {
|
|
8715
|
-
const aggregationConfig = widget.options && widget.options.date_aggregation_configs
|
|
8974
|
+
const aggregationConfig = widget.options && widget.options.date_aggregation_configs
|
|
8716
8975
|
? _.find(widget.options.date_aggregation_configs, { field_id: dateField.id })
|
|
8717
8976
|
: null;
|
|
8718
8977
|
|