@datarailsshared/dr_renderer 1.2.52 → 1.2.56
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 +80 -57
- package/src/highcharts_renderer.js +468 -165
package/package.json
CHANGED
package/src/dr_pivottable.js
CHANGED
|
@@ -3,7 +3,7 @@ let initDRPivotTable = function($, window, document) {
|
|
|
3
3
|
var slice = [].slice;
|
|
4
4
|
var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
|
5
5
|
|
|
6
|
-
var DRPivotData, sortDateStrings, getSort, processKey, SubtotalRenderer, getFormattedNumber, largeToSmallSort, NovixRenderer;
|
|
6
|
+
var DRPivotData, sortDateStrings, getSort, processKey, SubtotalRenderer, getFormattedNumber, largeToSmallSort, largeToSmallSortByAbsolute, NovixRenderer;
|
|
7
7
|
|
|
8
8
|
var delim = " , ";
|
|
9
9
|
const newTableColors = ['rgb(127, 196, 255)', 'rgb(200, 243,243)', 'rgb(247, 161, 173)', 'rgb(255, 237, 178)', 'rgb(221, 239, 255)',
|
|
@@ -133,75 +133,88 @@ let initDRPivotTable = function($, window, document) {
|
|
|
133
133
|
return key;
|
|
134
134
|
};
|
|
135
135
|
|
|
136
|
-
let newProcessKey = function (record, totals, keys, attrs, getAggregator) {
|
|
137
|
-
var addKey, attr, flatKey, k, key, len, ref;
|
|
138
|
-
key = [];
|
|
139
|
-
addKey = false;
|
|
140
|
-
for (k = 0, len = attrs.length; k < len; k++) {
|
|
141
|
-
attr = attrs[k];
|
|
142
|
-
if (record.hasOwnProperty(attr)) {
|
|
143
|
-
key.push((ref = record[attr]));
|
|
144
|
-
flatKey = key.join(delim);
|
|
145
|
-
}
|
|
146
|
-
if (totals[flatKey] && totals[flatKey].isChangeable) {
|
|
147
|
-
continue;
|
|
148
|
-
}
|
|
149
|
-
if (!flatKey) return [];
|
|
150
|
-
if (!totals[flatKey]) {
|
|
151
|
-
totals[flatKey] = getAggregator(key.slice());
|
|
152
|
-
addKey = true;
|
|
153
|
-
} else {
|
|
154
|
-
totals[flatKey] = getAggregator(key.slice());
|
|
155
|
-
totals[flatKey].push(record);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (addKey) {
|
|
159
|
-
keys.push(key);
|
|
160
|
-
}
|
|
161
|
-
return key;
|
|
162
|
-
};
|
|
163
|
-
|
|
164
136
|
DRPivotData.prototype.processRecord = function(record, useTotalsCalculation) {
|
|
165
|
-
var colKey, fColKey, fRowKey, flatColKey, flatRowKey, i, j, k, m, n, ref, results, rowKey;
|
|
166
|
-
rowKey = [];
|
|
167
|
-
colKey = [];
|
|
168
137
|
if (useTotalsCalculation) {
|
|
169
|
-
|
|
138
|
+
if (!this.notFirst) {
|
|
139
|
+
this.keysLength = Object.keys(record).length - 1;
|
|
140
|
+
this.notFirst = true;
|
|
141
|
+
}
|
|
142
|
+
let getRowAggregator = (function(_this) {
|
|
170
143
|
return function(key) {
|
|
171
144
|
return _this.aggregator(_this, key, []);
|
|
172
145
|
};
|
|
173
|
-
})(this)
|
|
174
|
-
|
|
146
|
+
})(this);
|
|
147
|
+
let getColAggregator = (function(_this) {
|
|
175
148
|
return function(key) {
|
|
176
149
|
return _this.aggregator(_this, [], key);
|
|
177
150
|
};
|
|
178
|
-
})(this)
|
|
151
|
+
})(this);
|
|
179
152
|
|
|
180
|
-
|
|
181
|
-
|
|
153
|
+
let rowKey = [];
|
|
154
|
+
for (k = 0; k < this.rowAttrs.length; k++) {
|
|
155
|
+
let attr = this.rowAttrs[k];
|
|
156
|
+
if (record.hasOwnProperty(attr)) {
|
|
157
|
+
rowKey.push((ref = record[attr]) != null ? ref : "null");
|
|
158
|
+
}
|
|
182
159
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
160
|
+
|
|
161
|
+
let colKey = [];
|
|
162
|
+
for (k = 0; k < this.colAttrs.length; k++) {
|
|
163
|
+
let attr = this.colAttrs[k];
|
|
164
|
+
if (record.hasOwnProperty(attr)) {
|
|
165
|
+
colKey.push((ref = record[attr]) != null ? ref : "null");
|
|
166
|
+
}
|
|
186
167
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
168
|
+
|
|
169
|
+
let flatRowKey = rowKey.join(delim);
|
|
170
|
+
let flatColKey = colKey.join(delim);
|
|
171
|
+
|
|
172
|
+
if (this.keysLength === rowKey.length + colKey.length) {
|
|
173
|
+
if (!this.rowKeys.some(rKey => rKey.join(delim) === flatRowKey)) {
|
|
174
|
+
this.rowKeys.push(rowKey);
|
|
175
|
+
}
|
|
176
|
+
if (!this.colKeys.some(cKey => cKey.join(delim) === flatColKey)) {
|
|
177
|
+
this.colKeys.push(colKey);
|
|
178
|
+
}
|
|
190
179
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
180
|
+
|
|
181
|
+
if (!colKey.length && !rowKey.length) {
|
|
182
|
+
this.allTotal.push(record);
|
|
183
|
+
} else if (!colKey.length && rowKey.length) {
|
|
184
|
+
if (!this.rowTotals[flatRowKey]) {
|
|
185
|
+
this.rowTotals[flatRowKey] = getRowAggregator(rowKey.slice());
|
|
186
|
+
this.rowTotals[flatRowKey].push(record);
|
|
187
|
+
}
|
|
188
|
+
} else if (!rowKey.length && colKey.length) {
|
|
189
|
+
if (!this.colTotals[flatColKey]) {
|
|
190
|
+
this.colTotals[flatColKey] = getColAggregator(rowKey.slice());
|
|
191
|
+
this.colTotals[flatColKey].push(record);
|
|
192
|
+
}
|
|
193
|
+
} else {
|
|
194
|
+
if (!this.tree[flatRowKey]) {
|
|
195
|
+
this.tree[flatRowKey] = {};
|
|
196
|
+
}
|
|
197
|
+
this.tree[flatRowKey][flatColKey] = this.aggregator(this, rowKey, colKey);
|
|
198
|
+
this.tree[flatRowKey][flatColKey].push(record);
|
|
199
|
+
}
|
|
200
|
+
return;
|
|
203
201
|
}
|
|
204
202
|
|
|
203
|
+
var colKey, fColKey, fRowKey, flatColKey, flatRowKey, i, j, k, m, n, ref, results, rowKey;
|
|
204
|
+
rowKey = [];
|
|
205
|
+
colKey = [];
|
|
206
|
+
this.allTotal.push(record);
|
|
207
|
+
rowKey = processKey(record, this.rowTotals, this.rowKeys, this.rowAttrs, (function(_this) {
|
|
208
|
+
return function(key) {
|
|
209
|
+
return _this.aggregator(_this, key, []);
|
|
210
|
+
};
|
|
211
|
+
})(this));
|
|
212
|
+
colKey = processKey(record, this.colTotals, this.colKeys, this.colAttrs, (function(_this) {
|
|
213
|
+
return function(key) {
|
|
214
|
+
return _this.aggregator(_this, [], key);
|
|
215
|
+
};
|
|
216
|
+
})(this));
|
|
217
|
+
|
|
205
218
|
m = rowKey.length - 1;
|
|
206
219
|
n = colKey.length - 1;
|
|
207
220
|
if (m < 0 || n < 0) {
|
|
@@ -340,7 +353,11 @@ let initDRPivotTable = function($, window, document) {
|
|
|
340
353
|
};
|
|
341
354
|
};
|
|
342
355
|
|
|
343
|
-
|
|
356
|
+
largeToSmallSortByAbsolute = function (as, bs) {
|
|
357
|
+
return largeToSmallSort(as , bs, true);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
largeToSmallSort = function(as, bs, is_abs = false) {
|
|
344
361
|
var a, a1, b, b1, rd, rx, rz;
|
|
345
362
|
rx = /(\d+)|(\D+)/g;
|
|
346
363
|
rd = /\d/;
|
|
@@ -352,6 +369,11 @@ let initDRPivotTable = function($, window, document) {
|
|
|
352
369
|
if (isNaN(bs)) {
|
|
353
370
|
return 1;
|
|
354
371
|
}
|
|
372
|
+
|
|
373
|
+
if (is_abs) {
|
|
374
|
+
return Math.abs(bs) - Math.abs(as);
|
|
375
|
+
}
|
|
376
|
+
|
|
355
377
|
return bs - as;
|
|
356
378
|
}
|
|
357
379
|
a = String(as).toLowerCase();
|
|
@@ -2217,6 +2239,7 @@ let initDRPivotTable = function($, window, document) {
|
|
|
2217
2239
|
$.pivotUtilities.getFormattedNumber = getFormattedNumber;
|
|
2218
2240
|
$.pivotUtilities.sortDateStrings = sortDateStrings;
|
|
2219
2241
|
$.pivotUtilities.largeToSmallSort = largeToSmallSort;
|
|
2242
|
+
$.pivotUtilities.largeToSmallSortByAbsolute = largeToSmallSortByAbsolute;
|
|
2220
2243
|
$.pivotUtilities.getPivotDataModel = function(input, opts){ return new DRPivotData(input, opts); }
|
|
2221
2244
|
$.pivotUtilities.getPivotTableFormula = function(rowData, opts, func, colFields, rowFields, aggregationDefaults, utils) {
|
|
2222
2245
|
let totalStr = 'Grand Totals';
|
|
@@ -891,14 +891,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
891
891
|
return chartOptions;
|
|
892
892
|
};
|
|
893
893
|
|
|
894
|
-
|
|
894
|
+
// Generate series for charts functions
|
|
895
|
+
highchartsRenderer.ptCreateBasicLineSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, additionOptions, opts, chartOptions) {
|
|
895
896
|
var chart_series = [],
|
|
896
897
|
row_n_keys = pivotData.getRowKeys(),
|
|
897
898
|
col_n_keys = pivotData.getColKeys();
|
|
898
899
|
|
|
899
|
-
var num_cols = col_n_keys.length;
|
|
900
|
-
var num_rows = row_n_keys.length;
|
|
901
|
-
|
|
902
900
|
var has_delta = false;
|
|
903
901
|
if (additionOptions && lodash.has(additionOptions, "delta_column.field") && additionOptions.delta_column.field == "series") {
|
|
904
902
|
has_delta = true;
|
|
@@ -909,16 +907,22 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
909
907
|
|
|
910
908
|
var i = 0;
|
|
911
909
|
var variat_serias = null;
|
|
910
|
+
const n = col_n_keys.length;
|
|
911
|
+
const xSum = (1 + n) / 2 * n;
|
|
912
912
|
|
|
913
913
|
lodash.forEach(row_n_keys, function (row_n_value) {
|
|
914
914
|
var ob = {};
|
|
915
|
+
let ySum = 0;
|
|
916
|
+
let xySum = 0;
|
|
917
|
+
let squareXSum = 0;
|
|
915
918
|
ob.data = [];
|
|
916
919
|
if (row_n_value && row_n_value.length > 0)
|
|
917
920
|
ob.name = row_n_value.join(highchartsRenderer.delimer);
|
|
918
921
|
|
|
919
|
-
lodash.forEach(col_n_keys, function (col_n_value) {
|
|
922
|
+
lodash.forEach(col_n_keys, function (col_n_value, index) {
|
|
920
923
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
921
924
|
var val = agg.value();
|
|
925
|
+
|
|
922
926
|
if (isUniqueVals && agg.uniq)
|
|
923
927
|
val = agg.uniq.join('<br>');
|
|
924
928
|
|
|
@@ -937,6 +941,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
937
941
|
else
|
|
938
942
|
val = 0;
|
|
939
943
|
}
|
|
944
|
+
|
|
945
|
+
xySum += Number(val) * (index + 1);
|
|
946
|
+
ySum += Number(val);
|
|
947
|
+
squareXSum += (index + 1) * (index + 1);
|
|
940
948
|
ob.data.push(val);
|
|
941
949
|
});
|
|
942
950
|
|
|
@@ -950,6 +958,24 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
950
958
|
}
|
|
951
959
|
|
|
952
960
|
chart_series.push(ob);
|
|
961
|
+
|
|
962
|
+
if (opts.trendLine) {
|
|
963
|
+
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
964
|
+
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
965
|
+
|
|
966
|
+
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
967
|
+
trendSeries.name = 'Trend Line (' + trendSeries.name + ')';
|
|
968
|
+
trendSeries.dashStyle = 'shortdot';
|
|
969
|
+
trendSeries.type = 'line';
|
|
970
|
+
trendSeries.data = trendSeries.data.map((el, index) => a + b * (index + 1));
|
|
971
|
+
|
|
972
|
+
if (colors && colors[i]) {
|
|
973
|
+
trendSeries.color = colors[i];
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
chart_series.push(trendSeries);
|
|
977
|
+
}
|
|
978
|
+
|
|
953
979
|
i++;
|
|
954
980
|
});
|
|
955
981
|
|
|
@@ -970,30 +996,48 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
970
996
|
}
|
|
971
997
|
}
|
|
972
998
|
|
|
999
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts);
|
|
1000
|
+
|
|
1001
|
+
if (opts.total) {
|
|
1002
|
+
const newSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1003
|
+
newSeries.name = 'Total';
|
|
1004
|
+
newSeries.data = [];
|
|
1005
|
+
col_n_keys.forEach(columnKey => {
|
|
1006
|
+
let totalKey = columnKey;
|
|
1007
|
+
if (lodash.isArray(columnKey)) {
|
|
1008
|
+
totalKey = totalKey.join(' , ');
|
|
1009
|
+
}
|
|
1010
|
+
newSeries.data.push(pivotData.colTotals[totalKey].sum);
|
|
1011
|
+
})
|
|
1012
|
+
|
|
1013
|
+
chart_series.push(newSeries);
|
|
1014
|
+
}
|
|
1015
|
+
|
|
973
1016
|
return chart_series;
|
|
974
1017
|
};
|
|
975
1018
|
|
|
976
|
-
|
|
977
|
-
highchartsRenderer.ptCreateColumnSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, isNotDrilldown, additionOptions) {
|
|
1019
|
+
highchartsRenderer.ptCreateColumnSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, isNotDrilldown, additionOptions, opts, chartOptions, chartType) {
|
|
978
1020
|
var chart_series = [],
|
|
979
1021
|
row_n_keys = pivotData.getRowKeys(),
|
|
980
1022
|
col_n_keys = pivotData.getColKeys();
|
|
981
|
-
var num_cols = col_n_keys.length;
|
|
982
|
-
var num_rows = row_n_keys.length;
|
|
983
1023
|
|
|
984
1024
|
var has_delta = false;
|
|
985
1025
|
if (additionOptions && lodash.has(additionOptions, "delta_column.field") && additionOptions.delta_column.field == "series") {
|
|
986
1026
|
has_delta = true;
|
|
987
1027
|
}
|
|
988
1028
|
|
|
989
|
-
|
|
990
1029
|
if (row_n_keys.length == 0)
|
|
991
1030
|
row_n_keys.push([]);
|
|
992
1031
|
|
|
993
1032
|
var i = 0;
|
|
994
1033
|
var variat_serias = null;
|
|
1034
|
+
const n = col_n_keys.length;
|
|
1035
|
+
const xSum = (1 + n) / 2 * n;
|
|
995
1036
|
|
|
996
1037
|
lodash.forEach(row_n_keys, function (row_n_value) {
|
|
1038
|
+
let ySum = 0;
|
|
1039
|
+
let xySum = 0;
|
|
1040
|
+
let squareXSum = 0;
|
|
997
1041
|
var ob = {};
|
|
998
1042
|
ob.data = [];
|
|
999
1043
|
if (row_n_value && row_n_value.length > 0)
|
|
@@ -1006,7 +1050,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1006
1050
|
style: highchartsRenderer.getDataLabelsStyle(additionOptions)
|
|
1007
1051
|
}
|
|
1008
1052
|
|
|
1009
|
-
lodash.forEach(col_n_keys, function (col_n_value) {
|
|
1053
|
+
lodash.forEach(col_n_keys, function (col_n_value, index) {
|
|
1010
1054
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
1011
1055
|
var val = agg.value();
|
|
1012
1056
|
|
|
@@ -1040,6 +1084,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1040
1084
|
if (!isNotDrilldown)
|
|
1041
1085
|
tmoobj.drilldown = true;
|
|
1042
1086
|
|
|
1087
|
+
xySum += Number(val) * (index + 1);
|
|
1088
|
+
ySum += Number(val);
|
|
1089
|
+
squareXSum += (index + 1) * (index + 1);
|
|
1043
1090
|
ob.data.push(tmoobj);
|
|
1044
1091
|
});
|
|
1045
1092
|
|
|
@@ -1053,6 +1100,23 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1053
1100
|
}
|
|
1054
1101
|
|
|
1055
1102
|
chart_series.push(ob);
|
|
1103
|
+
|
|
1104
|
+
if (opts.trendLine) {
|
|
1105
|
+
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1106
|
+
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1107
|
+
|
|
1108
|
+
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1109
|
+
trendSeries.name = 'Trend Line (' + trendSeries.name + ')';
|
|
1110
|
+
trendSeries.dashStyle = 'shortdot';
|
|
1111
|
+
trendSeries.type = 'line';
|
|
1112
|
+
trendSeries.data = trendSeries.data.map((data, index) => ({name: data.name, y: a + b * (index + 1)}));
|
|
1113
|
+
|
|
1114
|
+
if (colors && colors[i]) {
|
|
1115
|
+
trendSeries.color = colors[i];
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
chart_series.push(trendSeries);
|
|
1119
|
+
}
|
|
1056
1120
|
i++;
|
|
1057
1121
|
});
|
|
1058
1122
|
|
|
@@ -1064,18 +1128,69 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1064
1128
|
}
|
|
1065
1129
|
}
|
|
1066
1130
|
|
|
1131
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts);
|
|
1132
|
+
|
|
1133
|
+
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1134
|
+
|
|
1135
|
+
if (opts.comboOptions && chartType.includes('combo')) {
|
|
1136
|
+
chart_series.forEach((series, seriesIndex) => {
|
|
1137
|
+
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
1138
|
+
if (savedSeriesOption) {
|
|
1139
|
+
switch (savedSeriesOption.chartType) {
|
|
1140
|
+
case 'line-chart':
|
|
1141
|
+
series.type = 'line';
|
|
1142
|
+
break;
|
|
1143
|
+
case 'line-chart-smooth':
|
|
1144
|
+
series.type = 'spline';
|
|
1145
|
+
break;
|
|
1146
|
+
case 'area-chart':
|
|
1147
|
+
series.type = 'area';
|
|
1148
|
+
break;
|
|
1149
|
+
case 'area-chart-smooth':
|
|
1150
|
+
series.type = 'areaspline';
|
|
1151
|
+
break;
|
|
1152
|
+
case 'scatter-chart':
|
|
1153
|
+
series.type = 'scatter';
|
|
1154
|
+
break;
|
|
1155
|
+
case 'column-chart' || 'column-chart-stacked':
|
|
1156
|
+
delete series.type;
|
|
1157
|
+
break;
|
|
1158
|
+
}
|
|
1159
|
+
} else if (seriesIndex === chart_series.length - 1 && !has_delta) {
|
|
1160
|
+
series.type = 'line';
|
|
1161
|
+
}
|
|
1162
|
+
});
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
if (opts.total) {
|
|
1166
|
+
const totalSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1167
|
+
totalSeries.name = 'Total';
|
|
1168
|
+
totalSeries.data = [];
|
|
1169
|
+
col_n_keys.forEach(columnKey => {
|
|
1170
|
+
let key = columnKey;
|
|
1171
|
+
let totalKey = columnKey;
|
|
1172
|
+
if (lodash.isArray(columnKey)) {
|
|
1173
|
+
key = columnKey[0];
|
|
1174
|
+
totalKey = totalKey.join(' , ');
|
|
1175
|
+
}
|
|
1176
|
+
totalSeries.data.push({name: lodash.unescape(key), y: pivotData.colTotals[totalKey].sum});
|
|
1177
|
+
});
|
|
1178
|
+
|
|
1179
|
+
chart_series.push(totalSeries);
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
chart_series.sort((a,b) => {
|
|
1183
|
+
return (weights[a.type] || 0) > (weights[b.type] || 0) ? 1 : (weights[a.type] || 0) < (weights[b.type] || 0) ? -1 : 0
|
|
1184
|
+
});
|
|
1185
|
+
|
|
1067
1186
|
return chart_series;
|
|
1068
|
-
}
|
|
1187
|
+
}
|
|
1069
1188
|
|
|
1070
1189
|
highchartsRenderer.getVariantSeries = function (series, delta_column_options) {
|
|
1071
1190
|
const varianceColor = delta_column_options.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1072
1191
|
series.name = delta_column_options.name.replace('_', '');
|
|
1073
1192
|
series.color = varianceColor;
|
|
1074
1193
|
|
|
1075
|
-
if (!delta_column_options.only_variant && !delta_column_options.same_yaxis) {
|
|
1076
|
-
series.yAxis = 1;
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
1194
|
if (delta_column_options.point_click_event) {
|
|
1080
1195
|
series.allowPointSelect = true;
|
|
1081
1196
|
series.point = {
|
|
@@ -1103,9 +1218,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1103
1218
|
series.marker = {
|
|
1104
1219
|
lineColor: varianceColor
|
|
1105
1220
|
};
|
|
1106
|
-
} else if (delta_column_options.chart == 'column') {
|
|
1221
|
+
} else if (delta_column_options.chart == 'column' || delta_column_options.chart == 'combo') {
|
|
1107
1222
|
series.type = 'column';
|
|
1108
|
-
} else {
|
|
1223
|
+
} else if (delta_column_options.chart == '' || delta_column_options == 'scatter-chart') {
|
|
1109
1224
|
series.type = 'spline';
|
|
1110
1225
|
series.lineWidth = 0;
|
|
1111
1226
|
series.lineColor = varianceColor;
|
|
@@ -1145,11 +1260,20 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1145
1260
|
}
|
|
1146
1261
|
};
|
|
1147
1262
|
}
|
|
1263
|
+
else if (delta_column_options.chart == 'area') {
|
|
1264
|
+
series.color = varianceColor;
|
|
1265
|
+
series.type = 'area'
|
|
1266
|
+
} else if (delta_column_options.chart == 'areaspline') {
|
|
1267
|
+
series.color = varianceColor;
|
|
1268
|
+
series.type = 'areaspline'
|
|
1269
|
+
} else if (delta_column_options.chart == 'spline') {
|
|
1270
|
+
series.color = varianceColor;
|
|
1271
|
+
series.type = 'spline'
|
|
1272
|
+
}
|
|
1148
1273
|
return series;
|
|
1149
1274
|
}
|
|
1150
1275
|
|
|
1151
|
-
|
|
1152
|
-
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData) {
|
|
1276
|
+
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1153
1277
|
var pie_series = [];
|
|
1154
1278
|
|
|
1155
1279
|
var col_n_keys = pivotData.getColKeys();
|
|
@@ -1180,13 +1304,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1180
1304
|
pie_series.push(ob);
|
|
1181
1305
|
});
|
|
1182
1306
|
|
|
1307
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_series, pivotData, chartOptions, additionOptions, opts);
|
|
1308
|
+
|
|
1183
1309
|
return ([{
|
|
1184
1310
|
colorByPoint: true,
|
|
1185
1311
|
data: pie_series
|
|
1186
1312
|
}]);
|
|
1187
1313
|
};
|
|
1188
1314
|
|
|
1189
|
-
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData) {
|
|
1315
|
+
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1190
1316
|
|
|
1191
1317
|
var pie_drill_down_series = [],
|
|
1192
1318
|
row_n_keys = pivotData.getRowKeys(),
|
|
@@ -1224,12 +1350,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1224
1350
|
}
|
|
1225
1351
|
});
|
|
1226
1352
|
|
|
1353
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_drill_down_series, pivotData, chartOptions, additionOptions, opts);
|
|
1227
1354
|
|
|
1228
1355
|
return ({
|
|
1229
1356
|
series: pie_drill_down_series
|
|
1230
1357
|
});
|
|
1231
1358
|
};
|
|
1232
1359
|
|
|
1360
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded = function(chartSeries, pivotData, chartOptions, additionOptions, opts) {
|
|
1361
|
+
if (!opts || !opts.comboOptions) {
|
|
1362
|
+
return;
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
let addSecondYAxis = false;
|
|
1366
|
+
lodash.forEach(chartSeries, function (series) {
|
|
1367
|
+
let sOptions = lodash.find(opts.comboOptions.seriesOptions, function(sOptions) {
|
|
1368
|
+
return sOptions.series === series.name || sOptions.series.replace('_', '') === series.name
|
|
1369
|
+
});
|
|
1370
|
+
if (sOptions && sOptions.secondaryAxis) {
|
|
1371
|
+
series.yAxis = 1;
|
|
1372
|
+
addSecondYAxis = true;
|
|
1373
|
+
}
|
|
1374
|
+
});
|
|
1375
|
+
|
|
1376
|
+
if (addSecondYAxis) {
|
|
1377
|
+
highchartsRenderer.addSecondYAxis(pivotData, chartOptions, additionOptions, opts);
|
|
1378
|
+
}
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1381
|
+
highchartsRenderer.addSecondYAxis = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1382
|
+
const varianceColor = (additionOptions && additionOptions.delta_column.color) || (highchartsRenderer && highchartsRenderer.variance_color) || Highcharts.getOptions().colors[7];
|
|
1383
|
+
let labels_formatter = opts.comboOptions.secondaryAxisSettings.is_percentage ?
|
|
1384
|
+
highchartsRenderer.persantageValueLabelsFormatter(pivotData, opts) :
|
|
1385
|
+
highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts);
|
|
1386
|
+
|
|
1387
|
+
chartOptions.yAxis = [chartOptions.yAxis];
|
|
1388
|
+
chartOptions.yAxis[1] = {
|
|
1389
|
+
min: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.min)) ? opts.comboOptions.secondaryAxisSettings.min : null,
|
|
1390
|
+
max: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.max)) ? opts.comboOptions.secondaryAxisSettings.max : null,
|
|
1391
|
+
title: {
|
|
1392
|
+
text: opts.comboOptions.secondaryAxisSettings.name,
|
|
1393
|
+
style: {
|
|
1394
|
+
color: varianceColor
|
|
1395
|
+
}
|
|
1396
|
+
},
|
|
1397
|
+
labels: {
|
|
1398
|
+
formatter: labels_formatter,
|
|
1399
|
+
style: {
|
|
1400
|
+
color: varianceColor
|
|
1401
|
+
}
|
|
1402
|
+
},
|
|
1403
|
+
opposite: true
|
|
1404
|
+
}
|
|
1405
|
+
};
|
|
1406
|
+
|
|
1233
1407
|
highchartsRenderer.ptRenderBasicPie = function (pivotData, opts) {
|
|
1234
1408
|
var chartOptions = {};
|
|
1235
1409
|
var additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('pie-chart');
|
|
@@ -1409,7 +1583,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1409
1583
|
}
|
|
1410
1584
|
|
|
1411
1585
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1412
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1586
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1413
1587
|
|
|
1414
1588
|
var total = [];
|
|
1415
1589
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1550,7 +1724,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1550
1724
|
|
|
1551
1725
|
|
|
1552
1726
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1553
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1727
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1554
1728
|
|
|
1555
1729
|
var total = [];
|
|
1556
1730
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1644,7 +1818,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1644
1818
|
};
|
|
1645
1819
|
var uniqueVals = kpioptions.value.value == "Unique";
|
|
1646
1820
|
|
|
1647
|
-
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals);
|
|
1821
|
+
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals, null, opts, chartOptions);
|
|
1648
1822
|
|
|
1649
1823
|
var total = [];
|
|
1650
1824
|
lodash.forEach(temp_series, function (obj) {
|
|
@@ -1764,12 +1938,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1764
1938
|
if (useNewUx) {
|
|
1765
1939
|
chartOptions.tooltip.borderColor = '#fff';
|
|
1766
1940
|
}
|
|
1767
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
1941
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1768
1942
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 1, false, true);
|
|
1769
1943
|
if (drilldownFunc)
|
|
1770
1944
|
chartOptions.drilldown = {}
|
|
1771
1945
|
else
|
|
1772
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
1946
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1773
1947
|
|
|
1774
1948
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
1775
1949
|
|
|
@@ -1826,7 +2000,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1826
2000
|
formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
|
|
1827
2001
|
}
|
|
1828
2002
|
};
|
|
1829
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1830
2003
|
|
|
1831
2004
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1832
2005
|
|
|
@@ -1871,7 +2044,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1871
2044
|
}
|
|
1872
2045
|
};
|
|
1873
2046
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1874
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2047
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
1875
2048
|
|
|
1876
2049
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1877
2050
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -1902,8 +2075,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1902
2075
|
}
|
|
1903
2076
|
};
|
|
1904
2077
|
|
|
1905
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1906
|
-
|
|
1907
2078
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1908
2079
|
|
|
1909
2080
|
chartOptions.plotOptions = {
|
|
@@ -1950,7 +2121,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1950
2121
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1951
2122
|
|
|
1952
2123
|
var colors = ['#ff0202', '#b3060e', '#70000a'];
|
|
1953
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions);
|
|
2124
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions, opts, chartOptions);
|
|
1954
2125
|
|
|
1955
2126
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1956
2127
|
|
|
@@ -1972,34 +2143,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1972
2143
|
|
|
1973
2144
|
}
|
|
1974
2145
|
|
|
1975
|
-
highchartsRenderer.addSecondYAxisIfNeed = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1976
|
-
if (additionOptions && additionOptions.delta_column && additionOptions.delta_column.field == "series") {
|
|
1977
|
-
chartOptions.yAxis = [chartOptions.yAxis];
|
|
1978
|
-
|
|
1979
|
-
let labels_formatter = highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts);
|
|
1980
|
-
if (additionOptions.delta_column.is_percentage) {
|
|
1981
|
-
labels_formatter = highchartsRenderer.persantageValueLabelsFormatter(pivotData, opts);
|
|
1982
|
-
}
|
|
1983
|
-
|
|
1984
|
-
const varianceColor = additionOptions.delta_column.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1985
|
-
chartOptions.yAxis[1] = {
|
|
1986
|
-
title: {
|
|
1987
|
-
text: additionOptions.delta_column.name.replace('_', ''),
|
|
1988
|
-
style: {
|
|
1989
|
-
color: varianceColor
|
|
1990
|
-
}
|
|
1991
|
-
},
|
|
1992
|
-
labels: {
|
|
1993
|
-
formatter: labels_formatter,
|
|
1994
|
-
style: {
|
|
1995
|
-
color: varianceColor
|
|
1996
|
-
}
|
|
1997
|
-
},
|
|
1998
|
-
opposite: true
|
|
1999
|
-
}
|
|
2000
|
-
}
|
|
2001
|
-
};
|
|
2002
|
-
|
|
2003
2146
|
highchartsRenderer.ptRenderSpLine = function (pivotData, opts) {
|
|
2004
2147
|
var chartOptions = {};
|
|
2005
2148
|
var rowAttrs = pivotData.rowAttrs;
|
|
@@ -2025,8 +2168,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2025
2168
|
}
|
|
2026
2169
|
};
|
|
2027
2170
|
|
|
2028
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2029
|
-
|
|
2030
2171
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
2031
2172
|
|
|
2032
2173
|
chartOptions.plotOptions = {
|
|
@@ -2068,7 +2209,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2068
2209
|
}
|
|
2069
2210
|
};
|
|
2070
2211
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2071
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2212
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
2072
2213
|
|
|
2073
2214
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2074
2215
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -2116,7 +2257,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2116
2257
|
}
|
|
2117
2258
|
};
|
|
2118
2259
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2119
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2260
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2120
2261
|
|
|
2121
2262
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2122
2263
|
|
|
@@ -2213,14 +2354,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2213
2354
|
},
|
|
2214
2355
|
lineWidth: 0
|
|
2215
2356
|
};
|
|
2216
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2357
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2217
2358
|
|
|
2218
2359
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
|
|
2219
2360
|
|
|
2220
2361
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
2221
2362
|
};
|
|
2222
2363
|
|
|
2223
|
-
highchartsRenderer.ptRenderColumn = function (pivotData, opts, drilldownFunc) {
|
|
2364
|
+
highchartsRenderer.ptRenderColumn = function (pivotData, opts, drilldownFunc, chartType) {
|
|
2224
2365
|
var chartOptions = {};
|
|
2225
2366
|
var rowAttrs = pivotData.rowAttrs;
|
|
2226
2367
|
var colAttrs = pivotData.colAttrs;
|
|
@@ -2275,8 +2416,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2275
2416
|
}
|
|
2276
2417
|
};
|
|
2277
2418
|
|
|
2278
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2279
|
-
|
|
2280
2419
|
chartOptions.tooltip = {
|
|
2281
2420
|
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
|
2282
2421
|
shadow: highchartsRenderer.tooltipShadow,
|
|
@@ -2290,7 +2429,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2290
2429
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2291
2430
|
|
|
2292
2431
|
var isNotDrilldown = !(colAttrs && colAttrs.length > 1);
|
|
2293
|
-
|
|
2432
|
+
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
2433
|
+
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
2434
|
+
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
2435
|
+
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
2436
|
+
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
2437
|
+
}
|
|
2438
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, null, isNotDrilldown, additionOptions, opts, chartOptions, chartType);
|
|
2294
2439
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2295
2440
|
chartOptions.plotOptions = {
|
|
2296
2441
|
column: {
|
|
@@ -2327,7 +2472,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2327
2472
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
2328
2473
|
};
|
|
2329
2474
|
|
|
2330
|
-
highchartsRenderer.ptRenderStackedColumn = function (pivotData, opts, drilldownFunc) {
|
|
2475
|
+
highchartsRenderer.ptRenderStackedColumn = function (pivotData, opts, drilldownFunc, chartType) {
|
|
2331
2476
|
var chartOptions = {};
|
|
2332
2477
|
var rowAttrs = pivotData.rowAttrs;
|
|
2333
2478
|
var additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('column-chart-stacked');
|
|
@@ -2458,7 +2603,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2458
2603
|
};
|
|
2459
2604
|
//chartOptions.xAxis = { categories: pivotData.getColKeys() };
|
|
2460
2605
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2461
|
-
|
|
2606
|
+
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
2607
|
+
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
2608
|
+
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
2609
|
+
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
2610
|
+
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
2611
|
+
}
|
|
2612
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, true, true, additionOptions, opts, chartOptions, chartType);
|
|
2462
2613
|
//chartOptions.drilldown = {}
|
|
2463
2614
|
|
|
2464
2615
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
@@ -2535,11 +2686,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2535
2686
|
|
|
2536
2687
|
chartOptions.xAxis = {type: 'category'};
|
|
2537
2688
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2538
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
2689
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2539
2690
|
//if (drilldownFunc)
|
|
2540
2691
|
// chartOptions.drilldown = {}
|
|
2541
2692
|
//else
|
|
2542
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
2693
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2543
2694
|
|
|
2544
2695
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2545
2696
|
|
|
@@ -2610,7 +2761,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2610
2761
|
}
|
|
2611
2762
|
};
|
|
2612
2763
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2613
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2764
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2614
2765
|
|
|
2615
2766
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2616
2767
|
|
|
@@ -2724,7 +2875,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2724
2875
|
}
|
|
2725
2876
|
};
|
|
2726
2877
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2727
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2878
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2728
2879
|
|
|
2729
2880
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2730
2881
|
|
|
@@ -2813,6 +2964,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2813
2964
|
return format;
|
|
2814
2965
|
}
|
|
2815
2966
|
|
|
2967
|
+
highchartsRenderer.isRowKeyShouldBePercentage = function(render_options, rowKey) {
|
|
2968
|
+
if (render_options && render_options.comboOptions && render_options.comboOptions.secondaryAxisSettings &&
|
|
2969
|
+
render_options.comboOptions.secondaryAxisSettings.is_percentage) {
|
|
2970
|
+
const rowKeyString = rowKey.join(highchartsRenderer.delimer);
|
|
2971
|
+
const rowKeyOptions = lodash.find(render_options.comboOptions.seriesOptions, {series: rowKeyString});
|
|
2972
|
+
if (rowKeyOptions && rowKeyOptions.secondaryAxis) {
|
|
2973
|
+
return true;
|
|
2974
|
+
}
|
|
2975
|
+
}
|
|
2976
|
+
return false;
|
|
2977
|
+
}
|
|
2978
|
+
|
|
2816
2979
|
highchartsRenderer.ignoreIfCalculatedValue = function(data, rowKey, colKey, record, associatedFields, renderOptions, isGraph) {
|
|
2817
2980
|
var eliminate = renderOptions && renderOptions.chartOptions && renderOptions.chartOptions.table_options &&
|
|
2818
2981
|
renderOptions.chartOptions.table_options.eliminate_calc_totals && !_.isEmpty(associatedFields) && !isGraph;
|
|
@@ -2832,17 +2995,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2832
2995
|
|
|
2833
2996
|
highchartsRenderer.rhPivotCount = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
2834
2997
|
var attr = arg[0];
|
|
2835
|
-
var has_variants_persentage = false;
|
|
2836
|
-
var variant_name = '';
|
|
2837
|
-
|
|
2838
|
-
if (render_options && render_options.chartOptions &&
|
|
2839
|
-
render_options.chartOptions.delta_column &&
|
|
2840
|
-
render_options.chartOptions.delta_column.field === 'series' &&
|
|
2841
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
2842
|
-
has_variants_persentage = true;
|
|
2843
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
2844
|
-
}
|
|
2845
|
-
|
|
2846
2998
|
return function (data, rowKey, colKey) {
|
|
2847
2999
|
return {
|
|
2848
3000
|
sum: 0,
|
|
@@ -2864,10 +3016,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2864
3016
|
this.formats = lodash.uniq(this.formats);
|
|
2865
3017
|
}
|
|
2866
3018
|
|
|
2867
|
-
if (
|
|
2868
|
-
|
|
2869
|
-
this.widget_values_format = "#,###%";
|
|
2870
|
-
}
|
|
3019
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3020
|
+
this.widget_values_format = "#,###%";
|
|
2871
3021
|
}
|
|
2872
3022
|
|
|
2873
3023
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -2987,17 +3137,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2987
3137
|
};
|
|
2988
3138
|
|
|
2989
3139
|
highchartsRenderer.rhPivotAggregatorSum = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
2990
|
-
var attr;
|
|
2991
|
-
attr = arg[0];
|
|
2992
|
-
var has_variants_persentage = false;
|
|
2993
|
-
var variant_name = '';
|
|
2994
|
-
if (render_options && render_options.chartOptions &&
|
|
2995
|
-
render_options.chartOptions.delta_column &&
|
|
2996
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
2997
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
2998
|
-
has_variants_persentage = true;
|
|
2999
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3000
|
-
}
|
|
3140
|
+
var attr = arg[0];
|
|
3001
3141
|
return function (data, rowKey, colKey) {
|
|
3002
3142
|
return {
|
|
3003
3143
|
sum: 0,
|
|
@@ -3030,10 +3170,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3030
3170
|
this.formats = lodash.uniq(this.formats);
|
|
3031
3171
|
}
|
|
3032
3172
|
|
|
3033
|
-
if (
|
|
3034
|
-
|
|
3035
|
-
this.widget_values_format = "#,###%";
|
|
3036
|
-
}
|
|
3173
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3174
|
+
this.widget_values_format = "#,###%";
|
|
3037
3175
|
}
|
|
3038
3176
|
|
|
3039
3177
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3087,17 +3225,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3087
3225
|
};
|
|
3088
3226
|
|
|
3089
3227
|
highchartsRenderer.rhPivotAggregatorMin = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
3090
|
-
var attr;
|
|
3091
|
-
attr = arg[0];
|
|
3092
|
-
var has_variants_persentage = false;
|
|
3093
|
-
var variant_name = '';
|
|
3094
|
-
if (render_options && render_options.chartOptions &&
|
|
3095
|
-
render_options.chartOptions.delta_column &&
|
|
3096
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
3097
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
3098
|
-
has_variants_persentage = true;
|
|
3099
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3100
|
-
}
|
|
3228
|
+
var attr = arg[0];
|
|
3101
3229
|
return function (data, rowKey, colKey) {
|
|
3102
3230
|
return {
|
|
3103
3231
|
val: null,
|
|
@@ -3131,10 +3259,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3131
3259
|
this.formats = lodash.uniq(this.formats);
|
|
3132
3260
|
}
|
|
3133
3261
|
|
|
3134
|
-
if (
|
|
3135
|
-
|
|
3136
|
-
this.widget_values_format = "#,###%";
|
|
3137
|
-
}
|
|
3262
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3263
|
+
this.widget_values_format = "#,###%";
|
|
3138
3264
|
}
|
|
3139
3265
|
|
|
3140
3266
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3185,17 +3311,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3185
3311
|
};
|
|
3186
3312
|
|
|
3187
3313
|
highchartsRenderer.rhPivotAggregatorMax = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
3188
|
-
var attr;
|
|
3189
|
-
attr = arg[0];
|
|
3190
|
-
var has_variants_persentage = false;
|
|
3191
|
-
var variant_name = '';
|
|
3192
|
-
if (render_options && render_options.chartOptions &&
|
|
3193
|
-
render_options.chartOptions.delta_column &&
|
|
3194
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
3195
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
3196
|
-
has_variants_persentage = true;
|
|
3197
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3198
|
-
}
|
|
3314
|
+
var attr = arg[0];
|
|
3199
3315
|
return function (data, rowKey, colKey) {
|
|
3200
3316
|
return {
|
|
3201
3317
|
val: null,
|
|
@@ -3229,10 +3345,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3229
3345
|
this.formats = lodash.uniq(this.formats);
|
|
3230
3346
|
}
|
|
3231
3347
|
|
|
3232
|
-
if (
|
|
3233
|
-
|
|
3234
|
-
this.widget_values_format = "#,###%";
|
|
3235
|
-
}
|
|
3348
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3349
|
+
this.widget_values_format = "#,###%";
|
|
3236
3350
|
}
|
|
3237
3351
|
|
|
3238
3352
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3283,17 +3397,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3283
3397
|
};
|
|
3284
3398
|
|
|
3285
3399
|
highchartsRenderer.rhPivotAggregatorAverage = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
3286
|
-
var attr;
|
|
3287
|
-
attr = arg[0];
|
|
3288
|
-
var has_variants_persentage = false;
|
|
3289
|
-
var variant_name = '';
|
|
3290
|
-
if (render_options && render_options.chartOptions &&
|
|
3291
|
-
render_options.chartOptions.delta_column &&
|
|
3292
|
-
render_options.chartOptions.delta_column.field == "series" &&
|
|
3293
|
-
render_options.chartOptions.delta_column.is_percentage) {
|
|
3294
|
-
has_variants_persentage = true;
|
|
3295
|
-
variant_name = render_options.chartOptions.delta_column.name;
|
|
3296
|
-
}
|
|
3400
|
+
var attr = arg[0];
|
|
3297
3401
|
return function (data, rowKey, colKey) {
|
|
3298
3402
|
return {
|
|
3299
3403
|
sum: 0,
|
|
@@ -3328,10 +3432,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3328
3432
|
this.formats = lodash.uniq(this.formats);
|
|
3329
3433
|
}
|
|
3330
3434
|
|
|
3331
|
-
if (
|
|
3332
|
-
|
|
3333
|
-
this.widget_values_format = "#,###%";
|
|
3334
|
-
}
|
|
3435
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3436
|
+
this.widget_values_format = "#,###%";
|
|
3335
3437
|
}
|
|
3336
3438
|
|
|
3337
3439
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3879,11 +3981,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3879
3981
|
pivotData.sorters = new_sorting_function;
|
|
3880
3982
|
}
|
|
3881
3983
|
|
|
3882
|
-
|
|
3883
|
-
result = highchartsRenderer.generateFilteredResult(totalFilters, optsFiltered, rowData, opts, pivotData);
|
|
3884
|
-
} else {
|
|
3885
|
-
result = opts.renderer(pivotData, opts.rendererOptions);
|
|
3886
|
-
}
|
|
3984
|
+
result = opts.renderer(pivotData, opts.rendererOptions);
|
|
3887
3985
|
} catch (_error) {
|
|
3888
3986
|
e = _error;
|
|
3889
3987
|
if (typeof console !== "undefined" && console !== null) {
|
|
@@ -4283,6 +4381,50 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4283
4381
|
delete options.chartOptions.label;
|
|
4284
4382
|
}
|
|
4285
4383
|
}
|
|
4384
|
+
|
|
4385
|
+
if (!options.comboOptions) {
|
|
4386
|
+
options.comboOptions = {
|
|
4387
|
+
secondaryAxisSettings: {
|
|
4388
|
+
name: 'Secondary Axis',
|
|
4389
|
+
max: null,
|
|
4390
|
+
min: null,
|
|
4391
|
+
is_percentage: false,
|
|
4392
|
+
},
|
|
4393
|
+
seriesOptions: []
|
|
4394
|
+
}
|
|
4395
|
+
if (options.chartOptions.delta_column && options.chartOptions.delta_column.field === 'series') {
|
|
4396
|
+
let deltaColumnSeries = {
|
|
4397
|
+
series: options.chartOptions.delta_column.name,
|
|
4398
|
+
secondaryAxis: !options.chartOptions.delta_column.same_yaxis,
|
|
4399
|
+
};
|
|
4400
|
+
switch (options.chartOptions.delta_column.chart) {
|
|
4401
|
+
case 'line':
|
|
4402
|
+
deltaColumnSeries.chartType = 'line-chart';
|
|
4403
|
+
break;
|
|
4404
|
+
case 'spline':
|
|
4405
|
+
deltaColumnSeries.chartType = 'line-chart-smooth';
|
|
4406
|
+
break;
|
|
4407
|
+
case 'area':
|
|
4408
|
+
deltaColumnSeries.chartType = 'area-chart';
|
|
4409
|
+
break;
|
|
4410
|
+
case 'areaspline':
|
|
4411
|
+
deltaColumnSeries.chartType = 'area-chart-smooth';
|
|
4412
|
+
break;
|
|
4413
|
+
case 'scatter':
|
|
4414
|
+
deltaColumnSeries.chartType = 'scatter-chart';
|
|
4415
|
+
break;
|
|
4416
|
+
case 'column':
|
|
4417
|
+
deltaColumnSeries.chartType = 'column-chart';
|
|
4418
|
+
break;
|
|
4419
|
+
default:
|
|
4420
|
+
deltaColumnSeries.chartType = 'scatter-chart';
|
|
4421
|
+
break;
|
|
4422
|
+
}
|
|
4423
|
+
options.comboOptions.seriesOptions.push(deltaColumnSeries);
|
|
4424
|
+
options.comboOptions.secondaryAxisSettings.name = options.chartOptions.delta_column.name.replace('_', '');
|
|
4425
|
+
options.comboOptions.secondaryAxisSettings.is_percentage = options.chartOptions.delta_column.is_percentage;
|
|
4426
|
+
}
|
|
4427
|
+
}
|
|
4286
4428
|
};
|
|
4287
4429
|
|
|
4288
4430
|
highchartsRenderer.addPivotOptions = function (selectedTemplateWOData, widgetOptions, drilldownFunction, drillDownListFunction) {
|
|
@@ -4390,6 +4532,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4390
4532
|
exTableOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(exTableOptions.calculated_values || []);
|
|
4391
4533
|
};
|
|
4392
4534
|
|
|
4535
|
+
highchartsRenderer.addTemplateDataToDynamicRangeOptions = function (selectedTemplate, dynamicRangeOptions) {
|
|
4536
|
+
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
4537
|
+
|
|
4538
|
+
var fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.widget_fields);
|
|
4539
|
+
var fieldOb;
|
|
4540
|
+
var filterFields = [];
|
|
4541
|
+
var selectedFields = [];
|
|
4542
|
+
|
|
4543
|
+
lodash.forEach(dynamicRangeOptions.filters, function (filterObj) {
|
|
4544
|
+
fieldOb = lodash.find(fields, {id: filterObj.field});
|
|
4545
|
+
if (fieldOb && filterObj.values && filterObj.values.datetype && filterObj.values.datetype === 'list') {
|
|
4546
|
+
filterObj.values = filterObj.values.val
|
|
4547
|
+
} else if (fieldOb && filterObj.values && filterObj.values.datetype && filterObj.values.datetype !== 'list') {
|
|
4548
|
+
fieldOb.values = filterObj.values;
|
|
4549
|
+
} else if (fieldOb && filterObj.values && filterObj.values.type === 'advanced') {
|
|
4550
|
+
fieldOb.values = filterObj.values;
|
|
4551
|
+
}
|
|
4552
|
+
if (fieldOb && filterObj.values && filterObj.values instanceof Array) {
|
|
4553
|
+
if (filterObj.is_excluded == true) {
|
|
4554
|
+
fieldOb.excludes = filterObj.values;
|
|
4555
|
+
} else {
|
|
4556
|
+
fieldOb.includes = filterObj.values;
|
|
4557
|
+
}
|
|
4558
|
+
}
|
|
4559
|
+
if (filterObj.allow_nulls && fieldOb) {
|
|
4560
|
+
fieldOb.allow_nulls = filterObj.allow_nulls;
|
|
4561
|
+
}
|
|
4562
|
+
});
|
|
4563
|
+
|
|
4564
|
+
// fill selected fields
|
|
4565
|
+
lodash.forEach(dynamicRangeOptions.fields, function (valObj) {
|
|
4566
|
+
fieldOb = lodash.find(fields, {id: valObj.field});
|
|
4567
|
+
if (fieldOb) {
|
|
4568
|
+
selectedFields.push(fieldOb);
|
|
4569
|
+
lodash.remove(fields, {id: fieldOb.id});
|
|
4570
|
+
}
|
|
4571
|
+
});
|
|
4572
|
+
|
|
4573
|
+
// fill filter fields
|
|
4574
|
+
lodash.forEach(dynamicRangeOptions.filters, function (valObj) {
|
|
4575
|
+
fieldOb = lodash.find(fields, {id: valObj.field});
|
|
4576
|
+
if (fieldOb) {
|
|
4577
|
+
filterFields.push(fieldOb);
|
|
4578
|
+
lodash.remove(fields, {id: fieldOb.id});
|
|
4579
|
+
}
|
|
4580
|
+
});
|
|
4581
|
+
|
|
4582
|
+
dynamicRangeOptions.pivot = {};
|
|
4583
|
+
dynamicRangeOptions.pivot.fieldsArray = fields;
|
|
4584
|
+
dynamicRangeOptions.pivot.selectedFieldsArray = selectedFields;
|
|
4585
|
+
dynamicRangeOptions.pivot.filtersArray = filterFields;
|
|
4586
|
+
dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
|
|
4587
|
+
}
|
|
4588
|
+
|
|
4393
4589
|
highchartsRenderer.addTemplateDataToFunctionOptions = function (selectedTemplate, functionOptions) {
|
|
4394
4590
|
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
4395
4591
|
|
|
@@ -4834,6 +5030,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4834
5030
|
value_name: 'remove_underscores',
|
|
4835
5031
|
default_value: true
|
|
4836
5032
|
},
|
|
5033
|
+
{
|
|
5034
|
+
element_type: 'checkbox',
|
|
5035
|
+
element_label: 'Use big data table',
|
|
5036
|
+
value_name: 'use_handsOnTable',
|
|
5037
|
+
default_value: false
|
|
5038
|
+
},
|
|
4837
5039
|
{
|
|
4838
5040
|
element_type: 'checkbox',
|
|
4839
5041
|
element_label: 'Use new table design',
|
|
@@ -5358,7 +5560,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5358
5560
|
element_options: [
|
|
5359
5561
|
{label: 'Markers', value: ''},
|
|
5360
5562
|
{label: 'Line', value: 'line'},
|
|
5563
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5361
5564
|
{label: 'Column', value: 'column'},
|
|
5565
|
+
{label: 'Area', value: 'area'},
|
|
5566
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5362
5567
|
],
|
|
5363
5568
|
default_value: ''
|
|
5364
5569
|
}, {
|
|
@@ -5370,7 +5575,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5370
5575
|
element_type: 'checkbox',
|
|
5371
5576
|
element_label: 'Same yAxis',
|
|
5372
5577
|
value_name: 'same_yaxis',
|
|
5373
|
-
default_value: false
|
|
5578
|
+
default_value: false,
|
|
5579
|
+
hidden: true,
|
|
5374
5580
|
}, {
|
|
5375
5581
|
element_type: 'checkbox',
|
|
5376
5582
|
element_label: 'Same xAxis',
|
|
@@ -5380,17 +5586,20 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5380
5586
|
element_type: 'checkbox',
|
|
5381
5587
|
element_label: 'Percentage',
|
|
5382
5588
|
value_name: 'is_percentage',
|
|
5383
|
-
default_value: false
|
|
5589
|
+
default_value: false,
|
|
5590
|
+
hidden: true,
|
|
5384
5591
|
}, {
|
|
5385
5592
|
element_type: 'checkbox',
|
|
5386
5593
|
element_label: 'Sort by variance',
|
|
5387
5594
|
value_name: 'sort_by_variance',
|
|
5388
|
-
default_value: false
|
|
5595
|
+
default_value: false,
|
|
5596
|
+
hidden: true
|
|
5389
5597
|
}, {
|
|
5390
5598
|
element_type: 'checkbox',
|
|
5391
5599
|
element_label: 'Sort by absolute variance',
|
|
5392
5600
|
value_name: 'sort_by_absolute_variance',
|
|
5393
|
-
default_value: false
|
|
5601
|
+
default_value: false,
|
|
5602
|
+
hidden: true
|
|
5394
5603
|
}]
|
|
5395
5604
|
},
|
|
5396
5605
|
'delta_column_for_drill_down': {
|
|
@@ -5429,7 +5638,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5429
5638
|
element_options: [
|
|
5430
5639
|
{label: 'Markers', value: ''},
|
|
5431
5640
|
{label: 'Line', value: 'line'},
|
|
5641
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5432
5642
|
{label: 'Column', value: 'column'},
|
|
5643
|
+
{label: 'Area', value: 'area'},
|
|
5644
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5433
5645
|
],
|
|
5434
5646
|
default_value: ''
|
|
5435
5647
|
}, {
|
|
@@ -5441,7 +5653,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5441
5653
|
element_type: 'checkbox',
|
|
5442
5654
|
element_label: 'Same yAxis',
|
|
5443
5655
|
value_name: 'same_yaxis',
|
|
5444
|
-
default_value: false
|
|
5656
|
+
default_value: false,
|
|
5657
|
+
hidden: true,
|
|
5445
5658
|
}, {
|
|
5446
5659
|
element_type: 'checkbox',
|
|
5447
5660
|
element_label: 'Same xAxis',
|
|
@@ -5451,17 +5664,20 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5451
5664
|
element_type: 'checkbox',
|
|
5452
5665
|
element_label: 'Percentage',
|
|
5453
5666
|
value_name: 'is_percentage',
|
|
5454
|
-
default_value: false
|
|
5667
|
+
default_value: false,
|
|
5668
|
+
hidden: true,
|
|
5455
5669
|
}, {
|
|
5456
5670
|
element_type: 'checkbox',
|
|
5457
5671
|
element_label: 'Sort by variance',
|
|
5458
5672
|
value_name: 'sort_by_variance',
|
|
5459
|
-
default_value: false
|
|
5673
|
+
default_value: false,
|
|
5674
|
+
hidden: true
|
|
5460
5675
|
}, {
|
|
5461
5676
|
element_type: 'checkbox',
|
|
5462
5677
|
element_label: 'Sort by absolute variance',
|
|
5463
5678
|
value_name: 'sort_by_absolute_variance',
|
|
5464
|
-
default_value: false
|
|
5679
|
+
default_value: false,
|
|
5680
|
+
hidden: true
|
|
5465
5681
|
}, {
|
|
5466
5682
|
element_type: 'checkbox',
|
|
5467
5683
|
element_label: 'Filter zero values',
|
|
@@ -5526,6 +5742,39 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5526
5742
|
};
|
|
5527
5743
|
|
|
5528
5744
|
highchartsRenderer.chartsTypesInfo = {
|
|
5745
|
+
'combo-chart': {
|
|
5746
|
+
name: 'Combo Chart ',
|
|
5747
|
+
label: 'Combo Chart ',
|
|
5748
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5749
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5750
|
+
axisName: 'X - Axis',
|
|
5751
|
+
legendName: 'Data series',
|
|
5752
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart',
|
|
5753
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5754
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts',
|
|
5755
|
+
},
|
|
5756
|
+
'combo-column-chart': {
|
|
5757
|
+
name: 'Column Combo Chart ',
|
|
5758
|
+
label: 'Column Chart',
|
|
5759
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5760
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5761
|
+
axisName: 'X - Axis',
|
|
5762
|
+
legendName: 'Data series',
|
|
5763
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5764
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5765
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5766
|
+
},
|
|
5767
|
+
'combo-stacked-chart': {
|
|
5768
|
+
name: 'Stacked Column Combo Chart ',
|
|
5769
|
+
label: 'Stacked Column',
|
|
5770
|
+
title: 'Allows for multiple chart display formats in one widget.',
|
|
5771
|
+
description: 'For example, different department stacked clomuns, and average as a line.',
|
|
5772
|
+
axisName: 'X - Axis',
|
|
5773
|
+
legendName: 'Data series',
|
|
5774
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5775
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5776
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5777
|
+
},
|
|
5529
5778
|
'line-chart': {
|
|
5530
5779
|
name: 'Line chart',
|
|
5531
5780
|
label: 'Line Chart',
|
|
@@ -5763,6 +6012,53 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5763
6012
|
}
|
|
5764
6013
|
]
|
|
5765
6014
|
},
|
|
6015
|
+
{
|
|
6016
|
+
type: 'combo',
|
|
6017
|
+
name: 'Combo',
|
|
6018
|
+
class: 'combo-chart',
|
|
6019
|
+
subtypes: [{
|
|
6020
|
+
type: 'combo-column-chart',
|
|
6021
|
+
name: highchartsRenderer.chartsTypesInfo['combo-column-chart'].name,
|
|
6022
|
+
class: 'combo-column-chart',
|
|
6023
|
+
render: highchartsRenderer.ptRenderColumn,
|
|
6024
|
+
suboptions: [
|
|
6025
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6026
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6027
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6028
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6029
|
+
highchartsRenderer.suboptions["label"],
|
|
6030
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6031
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6032
|
+
highchartsRenderer.suboptions["chart"],
|
|
6033
|
+
highchartsRenderer.suboptions["negative_number_format"],
|
|
6034
|
+
highchartsRenderer.suboptions["delta_column_for_drill_down"],
|
|
6035
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6036
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6037
|
+
highchartsRenderer.suboptions["legends"],
|
|
6038
|
+
],
|
|
6039
|
+
},
|
|
6040
|
+
{
|
|
6041
|
+
type: 'combo-stacked-chart',
|
|
6042
|
+
name: highchartsRenderer.chartsTypesInfo['combo-stacked-chart'].name,
|
|
6043
|
+
class: 'combo-stacked-chart',
|
|
6044
|
+
render: highchartsRenderer.ptRenderStackedColumn,
|
|
6045
|
+
suboptions: [
|
|
6046
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6047
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6048
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6049
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6050
|
+
highchartsRenderer.suboptions["label_with_percentage"],
|
|
6051
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6052
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6053
|
+
highchartsRenderer.suboptions["chart_grid"],
|
|
6054
|
+
highchartsRenderer.suboptions["delta_column"],
|
|
6055
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6056
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6057
|
+
highchartsRenderer.suboptions["legends"],
|
|
6058
|
+
]
|
|
6059
|
+
}
|
|
6060
|
+
]
|
|
6061
|
+
},
|
|
5766
6062
|
{
|
|
5767
6063
|
type: 'area',
|
|
5768
6064
|
name: 'Area',
|
|
@@ -6661,6 +6957,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6661
6957
|
};
|
|
6662
6958
|
|
|
6663
6959
|
highchartsRenderer.setNewFieldNames = function (res) {
|
|
6960
|
+
if (useTotalsCalculation) {
|
|
6961
|
+
return res;
|
|
6962
|
+
}
|
|
6963
|
+
|
|
6664
6964
|
if (res && res[0] && res[0]['DR_Values']) {
|
|
6665
6965
|
lodash.forEach(res, function (item) {
|
|
6666
6966
|
item['DR_Values'] = highchartsRenderer.getFieldName(item['DR_Values']);
|
|
@@ -6674,7 +6974,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6674
6974
|
var datesFields = [];
|
|
6675
6975
|
datesFields = lodash.filter(widget.rows, element => element.type == 'Date');
|
|
6676
6976
|
datesFields = datesFields.concat(lodash.filter(widget.cols, element => element.type == 'Date'));
|
|
6677
|
-
|
|
6977
|
+
|
|
6678
6978
|
const isCustomSorting = widget.options.sortingFields && Array.isArray(widget.options.sortingFields) && widget.options.sortingFields.length > 0;
|
|
6679
6979
|
if (isCustomSorting) {
|
|
6680
6980
|
lodash.forEach(datesFields, function (field) {
|
|
@@ -6742,7 +7042,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6742
7042
|
"name": field.name,
|
|
6743
7043
|
"type": field.type,
|
|
6744
7044
|
"values": [],
|
|
6745
|
-
"sorting": field.sorting
|
|
7045
|
+
"sorting": field.sorting,
|
|
6746
7046
|
});
|
|
6747
7047
|
}
|
|
6748
7048
|
} else if (field.sorting && field.sorting.type == "CustomOrder" && field.sorting.values) {
|
|
@@ -6827,6 +7127,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6827
7127
|
if (field.sorting && field.sorting.type == "DateString") {
|
|
6828
7128
|
return $.pivotUtilities.sortDateStrings(field.sorting.month_order);
|
|
6829
7129
|
} else if (field.sorting && field.sorting.type == "largestToSmallest") {
|
|
7130
|
+
if (field.sorting.is_absolute)
|
|
7131
|
+
return $.pivotUtilities.largeToSmallSortByAbsolute;
|
|
7132
|
+
|
|
6830
7133
|
return $.pivotUtilities.largeToSmallSort;
|
|
6831
7134
|
} else {
|
|
6832
7135
|
return $.pivotUtilities.sortAs(field.values);
|
|
@@ -7034,7 +7337,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7034
7337
|
itemMarginTop: 2,
|
|
7035
7338
|
};
|
|
7036
7339
|
const none = {
|
|
7037
|
-
enabled: false,
|
|
7340
|
+
enabled: false,
|
|
7038
7341
|
};
|
|
7039
7342
|
|
|
7040
7343
|
if (additionOptions.legends_position && additionOptions.legends_position.value) {
|