@datarailsshared/dr_renderer 1.2.173-dragons → 1.2.175-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 +64 -47
package/package.json
CHANGED
|
@@ -1,28 +1,11 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
BAR_CHART: 'bar-chart',
|
|
10
|
-
BAR_CHART_STACKED: 'bar-chart-stacked',
|
|
11
|
-
SCATTER_CHART: 'scatter-chart',
|
|
12
|
-
AREA_CHART: 'area-chart',
|
|
13
|
-
AREA_CHART_SMOOTH: 'area-chart-smooth',
|
|
14
|
-
TABLE_ONLY: 'table_only',
|
|
15
|
-
POLYGON_CHART: 'polygon-chart',
|
|
16
|
-
PIE_CHART: 'pie-chart',
|
|
17
|
-
PIE_CHART_DRILLDOWN: 'pie-chart-drilldown',
|
|
18
|
-
GAUGE_SOLID_CHART: 'gauge-solid-chart',
|
|
19
|
-
GAUGE_CHART: 'gauge-chart',
|
|
20
|
-
KPI_WIDGET: 'kpi-widget',
|
|
21
|
-
TEXT_WIDGET: 'text-widget',
|
|
22
|
-
WATERFALL_BREAKDOWN: 'waterfall-chart-breakdown',
|
|
23
|
-
PUBLISHED_ITEM: 'published_item',
|
|
24
|
-
RICH_TEXT: 'rich_text',
|
|
25
|
-
}
|
|
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]';
|
|
26
9
|
|
|
27
10
|
let getHighchartsRenderer = function ($, document, Highcharts, default_colors, highchartsRenderer,
|
|
28
11
|
DataFormatter, lodash, moment_lib, isNewAngular) {
|
|
@@ -77,6 +60,32 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
77
60
|
].join(''), 'i');
|
|
78
61
|
highchartsRenderer.isMobile = mobileBrowserRegex.test(navigator.userAgent);
|
|
79
62
|
|
|
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
|
+
|
|
80
89
|
highchartsRenderer.highcharts_theme = {
|
|
81
90
|
"colors": highchartsRenderer.defaults_colors,
|
|
82
91
|
"chart": {
|
|
@@ -528,7 +537,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
528
537
|
|
|
529
538
|
const percentageWrapper = percentageArray.length ? `(${percentageArray.join(', ')})` : '';
|
|
530
539
|
|
|
531
|
-
if (this.series.options.className ===
|
|
540
|
+
if (this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN) {
|
|
532
541
|
const modifiedRowsAndCols = highchartsRenderer.transformRowsAndColsForBreakdown(rows, cols, this.point, opts);
|
|
533
542
|
rows = modifiedRowsAndCols.rows;
|
|
534
543
|
cols = modifiedRowsAndCols.cols;
|
|
@@ -604,7 +613,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
604
613
|
}
|
|
605
614
|
|
|
606
615
|
var func = function () {
|
|
607
|
-
const isWaterfallBreakdown = this.series.options.className ===
|
|
616
|
+
const isWaterfallBreakdown = this.series.options.className === SERIES_CLASSNAMES.WATERFALL_BREAKDOWN;
|
|
608
617
|
|
|
609
618
|
var y = parseFloat(this.y);
|
|
610
619
|
if (pivotData) {
|
|
@@ -641,7 +650,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
641
650
|
rows = temp;
|
|
642
651
|
}
|
|
643
652
|
|
|
644
|
-
var category_text = `<span style="font-weight: bold;">${cols}${isWaterfallBreakdown ? ': ' : ' '}</span>`;
|
|
653
|
+
var category_text = `<span style="font-weight: bold;">${ cols }${ isWaterfallBreakdown ? ': ' : ' ' }</span>`;
|
|
645
654
|
if (this.category) {
|
|
646
655
|
category_text = '';
|
|
647
656
|
}
|
|
@@ -1106,7 +1115,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1106
1115
|
|
|
1107
1116
|
opts.chart_series = []
|
|
1108
1117
|
|
|
1109
|
-
if (!lodash.isEqual(row_n_keys,
|
|
1118
|
+
if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
|
1110
1119
|
chart_series.forEach(series => {
|
|
1111
1120
|
opts.chart_series.push(series.name);
|
|
1112
1121
|
})
|
|
@@ -1266,7 +1275,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1266
1275
|
|
|
1267
1276
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1268
1277
|
|
|
1269
|
-
if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys,
|
|
1278
|
+
if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
|
1270
1279
|
chart_series.forEach((series, seriesIndex) => {
|
|
1271
1280
|
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
1272
1281
|
if (savedSeriesOption) {
|
|
@@ -1279,7 +1288,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1279
1288
|
|
|
1280
1289
|
opts.chart_series = []
|
|
1281
1290
|
|
|
1282
|
-
if (!lodash.isEqual(row_n_keys,
|
|
1291
|
+
if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
|
1283
1292
|
chart_series.forEach(series => {
|
|
1284
1293
|
opts.chart_series.push(series.name);
|
|
1285
1294
|
})
|
|
@@ -1330,15 +1339,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1330
1339
|
}
|
|
1331
1340
|
|
|
1332
1341
|
highchartsRenderer.ptCreateWaterfallBreakdownSeries = function (pivotData, onlyNumbers, additionOptions, opts) {
|
|
1333
|
-
|
|
1334
1342
|
const colorOptions = opts.breakdown_options.colors;
|
|
1335
|
-
|
|
1336
1343
|
var chart_series = [],
|
|
1337
1344
|
row_n_keys = pivotData.getRowKeys(),
|
|
1338
1345
|
col_n_keys = pivotData.getColKeys();
|
|
1339
1346
|
|
|
1340
|
-
if (row_n_keys.length
|
|
1347
|
+
if (row_n_keys.length === 0) {
|
|
1341
1348
|
row_n_keys.push([]);
|
|
1349
|
+
}
|
|
1342
1350
|
|
|
1343
1351
|
let resultObject = {
|
|
1344
1352
|
data: [],
|
|
@@ -1350,7 +1358,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1350
1358
|
},
|
|
1351
1359
|
upColor: colorOptions.increase,
|
|
1352
1360
|
color: colorOptions.decrease,
|
|
1353
|
-
className:
|
|
1361
|
+
className: SERIES_CLASSNAMES.WATERFALL_BREAKDOWN
|
|
1354
1362
|
};
|
|
1355
1363
|
resultObject = highchartsRenderer.getDataLabelsOptions(additionOptions, resultObject);
|
|
1356
1364
|
|
|
@@ -1408,11 +1416,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1408
1416
|
|
|
1409
1417
|
chart_series.push(resultObject);
|
|
1410
1418
|
|
|
1411
|
-
opts.chart_series = []
|
|
1412
|
-
if (!lodash.isEqual(row_n_keys,
|
|
1419
|
+
opts.chart_series = [];
|
|
1420
|
+
if (!lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
|
1413
1421
|
chart_series.forEach(series => {
|
|
1414
1422
|
opts.chart_series.push(series.name);
|
|
1415
|
-
})
|
|
1423
|
+
});
|
|
1416
1424
|
}
|
|
1417
1425
|
|
|
1418
1426
|
return chart_series;
|
|
@@ -3173,7 +3181,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3173
3181
|
|
|
3174
3182
|
highchartsRenderer.ptRenderWaterfallBreakdown = function (pivotData, opts, drilldownFunc, chartType) {
|
|
3175
3183
|
let chartOptions = {};
|
|
3176
|
-
const additionOptions = opts.chartOptions
|
|
3184
|
+
const additionOptions = opts.chartOptions
|
|
3185
|
+
? opts.chartOptions
|
|
3186
|
+
: highchartsRenderer.getDefaultValueForChart(highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN);
|
|
3177
3187
|
|
|
3178
3188
|
chartOptions.chart = {
|
|
3179
3189
|
type: 'waterfall',
|
|
@@ -4336,7 +4346,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4336
4346
|
return null;
|
|
4337
4347
|
}
|
|
4338
4348
|
|
|
4339
|
-
if (widget && widget.chart_type === CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
4349
|
+
if (widget && widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
4340
4350
|
const breakdownSettings = widget.options.breakdown_options.settings;
|
|
4341
4351
|
const maxCategories = breakdownSettings.maxCategoriesCount;
|
|
4342
4352
|
const minCategories = breakdownSettings.minCategoriesCount;
|
|
@@ -6766,7 +6776,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6766
6776
|
};
|
|
6767
6777
|
|
|
6768
6778
|
highchartsRenderer.chartsTypesInfo = {
|
|
6769
|
-
[CHART_TYPES.WATERFALL_BREAKDOWN]: {
|
|
6779
|
+
[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN]: {
|
|
6770
6780
|
name: 'Waterfall Breakdown Chart ',
|
|
6771
6781
|
label: 'Waterfall Breakdown Chart ',
|
|
6772
6782
|
title: 'TODO: add text',
|
|
@@ -7416,8 +7426,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7416
7426
|
class: 'google-visualization-charteditor-mini-column',
|
|
7417
7427
|
subtypes: [
|
|
7418
7428
|
{
|
|
7419
|
-
type: CHART_TYPES.WATERFALL_BREAKDOWN,
|
|
7420
|
-
name: highchartsRenderer.chartsTypesInfo[CHART_TYPES.WATERFALL_BREAKDOWN].name,
|
|
7429
|
+
type: highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN,
|
|
7430
|
+
name: highchartsRenderer.chartsTypesInfo[highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN].name,
|
|
7421
7431
|
class: 'google-visualization-charteditor-thumbs-columnchart',
|
|
7422
7432
|
render: highchartsRenderer.ptRenderWaterfallBreakdown,
|
|
7423
7433
|
suboptions: [
|
|
@@ -7907,7 +7917,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7907
7917
|
|
|
7908
7918
|
let filters = [];
|
|
7909
7919
|
|
|
7910
|
-
if (widget.chart_type === CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
7920
|
+
if (widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
7911
7921
|
const colFilter = highchartsRenderer.createFilterObject(widget.cols[0]);
|
|
7912
7922
|
const labels = [];
|
|
7913
7923
|
colFilter.values = [];
|
|
@@ -8033,7 +8043,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8033
8043
|
}
|
|
8034
8044
|
}
|
|
8035
8045
|
|
|
8036
|
-
if (widget.chart_type === CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
8046
|
+
if (widget.chart_type === highchartsRenderer.CHART_TYPES.WATERFALL_BREAKDOWN) {
|
|
8037
8047
|
let filter = lodash.find(filters, {name: widget.cols[0].name});
|
|
8038
8048
|
if (filter) {
|
|
8039
8049
|
filter.is_excluded = false;
|
|
@@ -8202,9 +8212,16 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8202
8212
|
lodash.forEach(datesFields, function (row) {
|
|
8203
8213
|
row.values = lodash.uniq(row.values);
|
|
8204
8214
|
|
|
8205
|
-
const isTimestampDateField = row.type === 'Date' &&
|
|
8215
|
+
const isTimestampDateField = row.type === 'Date' && lodash.some(row.values, value => typeof value ==='number');
|
|
8206
8216
|
if (isTimestampDateField) {
|
|
8217
|
+
const nullValueIndex = row.values.indexOf(NULL_VALUE);
|
|
8218
|
+
if (~nullValueIndex) {
|
|
8219
|
+
row.values.splice(nullValueIndex, 1);
|
|
8220
|
+
}
|
|
8207
8221
|
row.values = row.values.sort((a, b) => a - b);
|
|
8222
|
+
if (~nullValueIndex) {
|
|
8223
|
+
row.values.push(NULL_VALUE);
|
|
8224
|
+
}
|
|
8208
8225
|
} else {
|
|
8209
8226
|
row.values = row.values.sort();
|
|
8210
8227
|
}
|
|
@@ -8636,7 +8653,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
8636
8653
|
rows = cols;
|
|
8637
8654
|
cols = [];
|
|
8638
8655
|
}
|
|
8639
|
-
return { rows
|
|
8656
|
+
return { rows, cols };
|
|
8640
8657
|
}
|
|
8641
8658
|
|
|
8642
8659
|
return highchartsRenderer;
|