@datarailsshared/dr_renderer 1.2.53 → 1.2.57
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 +68 -55
- package/src/highcharts_renderer.js +462 -155
package/package.json
CHANGED
package/src/dr_pivottable.js
CHANGED
|
@@ -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 && key.length === attrs.length) {
|
|
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) {
|
|
@@ -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,23 @@ 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
|
+
const trendSerieses = [];
|
|
912
913
|
|
|
913
914
|
lodash.forEach(row_n_keys, function (row_n_value) {
|
|
914
915
|
var ob = {};
|
|
916
|
+
let ySum = 0;
|
|
917
|
+
let xySum = 0;
|
|
918
|
+
let squareXSum = 0;
|
|
915
919
|
ob.data = [];
|
|
916
920
|
if (row_n_value && row_n_value.length > 0)
|
|
917
921
|
ob.name = row_n_value.join(highchartsRenderer.delimer);
|
|
918
922
|
|
|
919
|
-
lodash.forEach(col_n_keys, function (col_n_value) {
|
|
923
|
+
lodash.forEach(col_n_keys, function (col_n_value, index) {
|
|
920
924
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
921
925
|
var val = agg.value();
|
|
926
|
+
|
|
922
927
|
if (isUniqueVals && agg.uniq)
|
|
923
928
|
val = agg.uniq.join('<br>');
|
|
924
929
|
|
|
@@ -937,6 +942,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
937
942
|
else
|
|
938
943
|
val = 0;
|
|
939
944
|
}
|
|
945
|
+
|
|
946
|
+
xySum += Number(val) * (index + 1);
|
|
947
|
+
ySum += Number(val);
|
|
948
|
+
squareXSum += (index + 1) * (index + 1);
|
|
940
949
|
ob.data.push(val);
|
|
941
950
|
});
|
|
942
951
|
|
|
@@ -950,8 +959,27 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
950
959
|
}
|
|
951
960
|
|
|
952
961
|
chart_series.push(ob);
|
|
962
|
+
|
|
963
|
+
if (opts.trendLine) {
|
|
964
|
+
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
965
|
+
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
966
|
+
|
|
967
|
+
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
968
|
+
trendSeries.name = 'Trend Line (' + trendSeries.name + ')';
|
|
969
|
+
trendSeries.dashStyle = 'shortdot';
|
|
970
|
+
trendSeries.type = 'line';
|
|
971
|
+
trendSeries.data = trendSeries.data.map((el, index) => a + b * (index + 1));
|
|
972
|
+
|
|
973
|
+
if (colors && colors[i]) {
|
|
974
|
+
trendSeries.color = colors[i];
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
trendSerieses.push(trendSeries);
|
|
978
|
+
}
|
|
979
|
+
|
|
953
980
|
i++;
|
|
954
981
|
});
|
|
982
|
+
const ethalonSeries = chart_series[chart_series.length - 1];
|
|
955
983
|
|
|
956
984
|
if (has_delta && additionOptions && additionOptions.delta_column.only_variant) {
|
|
957
985
|
if (variat_serias)
|
|
@@ -970,30 +998,54 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
970
998
|
}
|
|
971
999
|
}
|
|
972
1000
|
|
|
1001
|
+
chart_series = [...chart_series, ...trendSerieses]
|
|
1002
|
+
|
|
1003
|
+
if (opts.total) {
|
|
1004
|
+
const newSeries = lodash.clone(ethalonSeries);
|
|
1005
|
+
if (opts.totalSeriesSettings) {
|
|
1006
|
+
newSeries.yAxis = opts.totalSeriesSettings.secondaryAxis ? 1 : undefined;
|
|
1007
|
+
}
|
|
1008
|
+
newSeries.name = 'Total';
|
|
1009
|
+
newSeries.data = [];
|
|
1010
|
+
col_n_keys.forEach(columnKey => {
|
|
1011
|
+
let totalKey = columnKey;
|
|
1012
|
+
if (lodash.isArray(columnKey)) {
|
|
1013
|
+
totalKey = totalKey.join(' , ');
|
|
1014
|
+
}
|
|
1015
|
+
newSeries.data.push(pivotData.colTotals[totalKey].sum);
|
|
1016
|
+
})
|
|
1017
|
+
|
|
1018
|
+
chart_series.push(newSeries);
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts, opts.total && opts.totalSeriesSettings && opts.totalSeriesSettings.secondaryAxis);
|
|
1022
|
+
|
|
973
1023
|
return chart_series;
|
|
974
1024
|
};
|
|
975
1025
|
|
|
976
|
-
|
|
977
|
-
highchartsRenderer.ptCreateColumnSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, isNotDrilldown, additionOptions) {
|
|
1026
|
+
highchartsRenderer.ptCreateColumnSeries = function (pivotData, colors, onlyNumbers, isUniqueVals, isNotDrilldown, additionOptions, opts, chartOptions, chartType) {
|
|
978
1027
|
var chart_series = [],
|
|
979
1028
|
row_n_keys = pivotData.getRowKeys(),
|
|
980
1029
|
col_n_keys = pivotData.getColKeys();
|
|
981
|
-
var num_cols = col_n_keys.length;
|
|
982
|
-
var num_rows = row_n_keys.length;
|
|
983
1030
|
|
|
984
1031
|
var has_delta = false;
|
|
985
1032
|
if (additionOptions && lodash.has(additionOptions, "delta_column.field") && additionOptions.delta_column.field == "series") {
|
|
986
1033
|
has_delta = true;
|
|
987
1034
|
}
|
|
988
1035
|
|
|
989
|
-
|
|
990
1036
|
if (row_n_keys.length == 0)
|
|
991
1037
|
row_n_keys.push([]);
|
|
992
1038
|
|
|
993
1039
|
var i = 0;
|
|
994
1040
|
var variat_serias = null;
|
|
1041
|
+
const n = col_n_keys.length;
|
|
1042
|
+
const xSum = (1 + n) / 2 * n;
|
|
1043
|
+
const trendSerieses = [];
|
|
995
1044
|
|
|
996
1045
|
lodash.forEach(row_n_keys, function (row_n_value) {
|
|
1046
|
+
let ySum = 0;
|
|
1047
|
+
let xySum = 0;
|
|
1048
|
+
let squareXSum = 0;
|
|
997
1049
|
var ob = {};
|
|
998
1050
|
ob.data = [];
|
|
999
1051
|
if (row_n_value && row_n_value.length > 0)
|
|
@@ -1006,7 +1058,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1006
1058
|
style: highchartsRenderer.getDataLabelsStyle(additionOptions)
|
|
1007
1059
|
}
|
|
1008
1060
|
|
|
1009
|
-
lodash.forEach(col_n_keys, function (col_n_value) {
|
|
1061
|
+
lodash.forEach(col_n_keys, function (col_n_value, index) {
|
|
1010
1062
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
|
1011
1063
|
var val = agg.value();
|
|
1012
1064
|
|
|
@@ -1040,6 +1092,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1040
1092
|
if (!isNotDrilldown)
|
|
1041
1093
|
tmoobj.drilldown = true;
|
|
1042
1094
|
|
|
1095
|
+
xySum += Number(val) * (index + 1);
|
|
1096
|
+
ySum += Number(val);
|
|
1097
|
+
squareXSum += (index + 1) * (index + 1);
|
|
1043
1098
|
ob.data.push(tmoobj);
|
|
1044
1099
|
});
|
|
1045
1100
|
|
|
@@ -1053,9 +1108,29 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1053
1108
|
}
|
|
1054
1109
|
|
|
1055
1110
|
chart_series.push(ob);
|
|
1111
|
+
|
|
1112
|
+
|
|
1113
|
+
if (opts.trendLine) {
|
|
1114
|
+
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1115
|
+
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
|
1116
|
+
|
|
1117
|
+
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
1118
|
+
trendSeries.name = 'Trend Line (' + trendSeries.name + ')';
|
|
1119
|
+
trendSeries.dashStyle = 'shortdot';
|
|
1120
|
+
trendSeries.type = 'line';
|
|
1121
|
+
trendSeries.data = trendSeries.data.map((data, index) => ({name: data.name, y: a + b * (index + 1)}));
|
|
1122
|
+
|
|
1123
|
+
if (colors && colors[i]) {
|
|
1124
|
+
trendSeries.color = colors[i];
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
trendSerieses.push(trendSeries);
|
|
1128
|
+
}
|
|
1056
1129
|
i++;
|
|
1057
1130
|
});
|
|
1058
1131
|
|
|
1132
|
+
const ethalonSeries = chart_series[chart_series.length - 1];
|
|
1133
|
+
|
|
1059
1134
|
if (has_delta && additionOptions.delta_column.only_variant) {
|
|
1060
1135
|
if (variat_serias)
|
|
1061
1136
|
return [variat_serias];
|
|
@@ -1064,18 +1139,75 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1064
1139
|
}
|
|
1065
1140
|
}
|
|
1066
1141
|
|
|
1142
|
+
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
|
1143
|
+
|
|
1144
|
+
if (opts.comboOptions && chartType.includes('combo')) {
|
|
1145
|
+
chart_series.forEach((series, seriesIndex) => {
|
|
1146
|
+
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
|
1147
|
+
if (savedSeriesOption) {
|
|
1148
|
+
highchartsRenderer.setChartTypeBySeriesType(savedSeriesOption.chartType, series);
|
|
1149
|
+
} else if (seriesIndex === chart_series.length - 1 && !has_delta) {
|
|
1150
|
+
series.type = 'line';
|
|
1151
|
+
}
|
|
1152
|
+
});
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
chart_series = [...chart_series, ...trendSerieses]
|
|
1156
|
+
|
|
1157
|
+
if (opts.total) {
|
|
1158
|
+
const totalSeries = lodash.clone(ethalonSeries);
|
|
1159
|
+
if (opts.totalSeriesSettings) {
|
|
1160
|
+
if (chartType.includes('combo')) {
|
|
1161
|
+
highchartsRenderer.setChartTypeBySeriesType(opts.totalSeriesSettings.chartType, totalSeries);
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
totalSeries.yAxis = opts.totalSeriesSettings.secondaryAxis ? 1 : undefined;
|
|
1165
|
+
}
|
|
1166
|
+
totalSeries.name = 'Total';
|
|
1167
|
+
totalSeries.data = [];
|
|
1168
|
+
col_n_keys.forEach(columnKey => {
|
|
1169
|
+
let key = columnKey;
|
|
1170
|
+
let totalKey = columnKey;
|
|
1171
|
+
if (lodash.isArray(columnKey)) {
|
|
1172
|
+
key = columnKey[0];
|
|
1173
|
+
totalKey = totalKey.join(' , ');
|
|
1174
|
+
}
|
|
1175
|
+
totalSeries.data.push({name: lodash.unescape(key), y: pivotData.colTotals[totalKey].sum});
|
|
1176
|
+
});
|
|
1177
|
+
|
|
1178
|
+
chart_series.push(totalSeries);
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(chart_series, pivotData, chartOptions, additionOptions, opts, opts.total && opts.totalSeriesSettings && opts.totalSeriesSettings.secondaryAxis);
|
|
1182
|
+
|
|
1183
|
+
chart_series.sort((a,b) => {
|
|
1184
|
+
return (weights[a.type] || 0) > (weights[b.type] || 0) ? 1 : (weights[a.type] || 0) < (weights[b.type] || 0) ? -1 : 0
|
|
1185
|
+
});
|
|
1186
|
+
|
|
1067
1187
|
return chart_series;
|
|
1068
|
-
}
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
highchartsRenderer.setChartTypeBySeriesType = function (type, series) {
|
|
1191
|
+
const types = {
|
|
1192
|
+
'line-chart': 'line',
|
|
1193
|
+
'line-chart-smooth': 'spline',
|
|
1194
|
+
'area-chart': 'area',
|
|
1195
|
+
'area-chart-smooth': 'areaspline',
|
|
1196
|
+
'scatter-chart': 'scatter',
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
if (type === 'column-chart' || type === 'column-chart-stacked') {
|
|
1200
|
+
delete series.type;
|
|
1201
|
+
} else {
|
|
1202
|
+
series.type = types[type]
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1069
1205
|
|
|
1070
1206
|
highchartsRenderer.getVariantSeries = function (series, delta_column_options) {
|
|
1071
1207
|
const varianceColor = delta_column_options.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1072
1208
|
series.name = delta_column_options.name.replace('_', '');
|
|
1073
1209
|
series.color = varianceColor;
|
|
1074
1210
|
|
|
1075
|
-
if (!delta_column_options.only_variant && !delta_column_options.same_yaxis) {
|
|
1076
|
-
series.yAxis = 1;
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
1211
|
if (delta_column_options.point_click_event) {
|
|
1080
1212
|
series.allowPointSelect = true;
|
|
1081
1213
|
series.point = {
|
|
@@ -1103,9 +1235,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1103
1235
|
series.marker = {
|
|
1104
1236
|
lineColor: varianceColor
|
|
1105
1237
|
};
|
|
1106
|
-
} else if (delta_column_options.chart == 'column') {
|
|
1238
|
+
} else if (delta_column_options.chart == 'column' || delta_column_options.chart == 'combo') {
|
|
1107
1239
|
series.type = 'column';
|
|
1108
|
-
} else {
|
|
1240
|
+
} else if (delta_column_options.chart == '' || delta_column_options == 'scatter-chart') {
|
|
1109
1241
|
series.type = 'spline';
|
|
1110
1242
|
series.lineWidth = 0;
|
|
1111
1243
|
series.lineColor = varianceColor;
|
|
@@ -1145,11 +1277,20 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1145
1277
|
}
|
|
1146
1278
|
};
|
|
1147
1279
|
}
|
|
1280
|
+
else if (delta_column_options.chart == 'area') {
|
|
1281
|
+
series.color = varianceColor;
|
|
1282
|
+
series.type = 'area'
|
|
1283
|
+
} else if (delta_column_options.chart == 'areaspline') {
|
|
1284
|
+
series.color = varianceColor;
|
|
1285
|
+
series.type = 'areaspline'
|
|
1286
|
+
} else if (delta_column_options.chart == 'spline') {
|
|
1287
|
+
series.color = varianceColor;
|
|
1288
|
+
series.type = 'spline'
|
|
1289
|
+
}
|
|
1148
1290
|
return series;
|
|
1149
1291
|
}
|
|
1150
1292
|
|
|
1151
|
-
|
|
1152
|
-
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData) {
|
|
1293
|
+
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1153
1294
|
var pie_series = [];
|
|
1154
1295
|
|
|
1155
1296
|
var col_n_keys = pivotData.getColKeys();
|
|
@@ -1180,13 +1321,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1180
1321
|
pie_series.push(ob);
|
|
1181
1322
|
});
|
|
1182
1323
|
|
|
1324
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_series, pivotData, chartOptions, additionOptions, opts);
|
|
1325
|
+
|
|
1183
1326
|
return ([{
|
|
1184
1327
|
colorByPoint: true,
|
|
1185
1328
|
data: pie_series
|
|
1186
1329
|
}]);
|
|
1187
1330
|
};
|
|
1188
1331
|
|
|
1189
|
-
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData) {
|
|
1332
|
+
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1190
1333
|
|
|
1191
1334
|
var pie_drill_down_series = [],
|
|
1192
1335
|
row_n_keys = pivotData.getRowKeys(),
|
|
@@ -1224,12 +1367,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1224
1367
|
}
|
|
1225
1368
|
});
|
|
1226
1369
|
|
|
1370
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_drill_down_series, pivotData, chartOptions, additionOptions, opts);
|
|
1227
1371
|
|
|
1228
1372
|
return ({
|
|
1229
1373
|
series: pie_drill_down_series
|
|
1230
1374
|
});
|
|
1231
1375
|
};
|
|
1232
1376
|
|
|
1377
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded = function(chartSeries, pivotData, chartOptions, additionOptions, opts, forceAddSecondaryAxis) {
|
|
1378
|
+
if (!opts || !opts.comboOptions) {
|
|
1379
|
+
return;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
let addSecondYAxis = false;
|
|
1383
|
+
lodash.forEach(chartSeries, function (series) {
|
|
1384
|
+
let sOptions = lodash.find(opts.comboOptions.seriesOptions, function(sOptions) {
|
|
1385
|
+
return sOptions.series === series.name || sOptions.series.replace('_', '') === series.name
|
|
1386
|
+
});
|
|
1387
|
+
if (sOptions && sOptions.secondaryAxis) {
|
|
1388
|
+
series.yAxis = 1;
|
|
1389
|
+
addSecondYAxis = true;
|
|
1390
|
+
}
|
|
1391
|
+
});
|
|
1392
|
+
|
|
1393
|
+
if (addSecondYAxis || forceAddSecondaryAxis) {
|
|
1394
|
+
highchartsRenderer.addSecondYAxis(pivotData, chartOptions, additionOptions, opts);
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
highchartsRenderer.addSecondYAxis = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1399
|
+
const varianceColor = (additionOptions && additionOptions.delta_column.color) || (highchartsRenderer && highchartsRenderer.variance_color) || Highcharts.getOptions().colors[7];
|
|
1400
|
+
let labels_formatter = opts.comboOptions.secondaryAxisSettings.is_percentage ?
|
|
1401
|
+
highchartsRenderer.persantageValueLabelsFormatter(pivotData, opts) :
|
|
1402
|
+
highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts);
|
|
1403
|
+
|
|
1404
|
+
chartOptions.yAxis = [chartOptions.yAxis];
|
|
1405
|
+
chartOptions.yAxis[1] = {
|
|
1406
|
+
min: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.min)) ? opts.comboOptions.secondaryAxisSettings.min : null,
|
|
1407
|
+
max: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.max)) ? opts.comboOptions.secondaryAxisSettings.max : null,
|
|
1408
|
+
title: {
|
|
1409
|
+
text: opts.comboOptions.secondaryAxisSettings.name,
|
|
1410
|
+
style: {
|
|
1411
|
+
color: varianceColor
|
|
1412
|
+
}
|
|
1413
|
+
},
|
|
1414
|
+
labels: {
|
|
1415
|
+
formatter: labels_formatter,
|
|
1416
|
+
style: {
|
|
1417
|
+
color: varianceColor
|
|
1418
|
+
}
|
|
1419
|
+
},
|
|
1420
|
+
opposite: true
|
|
1421
|
+
}
|
|
1422
|
+
};
|
|
1423
|
+
|
|
1233
1424
|
highchartsRenderer.ptRenderBasicPie = function (pivotData, opts) {
|
|
1234
1425
|
var chartOptions = {};
|
|
1235
1426
|
var additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('pie-chart');
|
|
@@ -1409,7 +1600,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1409
1600
|
}
|
|
1410
1601
|
|
|
1411
1602
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1412
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1603
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1413
1604
|
|
|
1414
1605
|
var total = [];
|
|
1415
1606
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1550,7 +1741,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1550
1741
|
|
|
1551
1742
|
|
|
1552
1743
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1553
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1744
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1554
1745
|
|
|
1555
1746
|
var total = [];
|
|
1556
1747
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1644,7 +1835,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1644
1835
|
};
|
|
1645
1836
|
var uniqueVals = kpioptions.value.value == "Unique";
|
|
1646
1837
|
|
|
1647
|
-
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals);
|
|
1838
|
+
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals, null, opts, chartOptions);
|
|
1648
1839
|
|
|
1649
1840
|
var total = [];
|
|
1650
1841
|
lodash.forEach(temp_series, function (obj) {
|
|
@@ -1764,12 +1955,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1764
1955
|
if (useNewUx) {
|
|
1765
1956
|
chartOptions.tooltip.borderColor = '#fff';
|
|
1766
1957
|
}
|
|
1767
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
1958
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1768
1959
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 1, false, true);
|
|
1769
1960
|
if (drilldownFunc)
|
|
1770
1961
|
chartOptions.drilldown = {}
|
|
1771
1962
|
else
|
|
1772
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
1963
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1773
1964
|
|
|
1774
1965
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
1775
1966
|
|
|
@@ -1826,7 +2017,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1826
2017
|
formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
|
|
1827
2018
|
}
|
|
1828
2019
|
};
|
|
1829
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1830
2020
|
|
|
1831
2021
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1832
2022
|
|
|
@@ -1871,7 +2061,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1871
2061
|
}
|
|
1872
2062
|
};
|
|
1873
2063
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1874
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2064
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
1875
2065
|
|
|
1876
2066
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1877
2067
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -1902,8 +2092,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1902
2092
|
}
|
|
1903
2093
|
};
|
|
1904
2094
|
|
|
1905
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1906
|
-
|
|
1907
2095
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1908
2096
|
|
|
1909
2097
|
chartOptions.plotOptions = {
|
|
@@ -1950,7 +2138,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1950
2138
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1951
2139
|
|
|
1952
2140
|
var colors = ['#ff0202', '#b3060e', '#70000a'];
|
|
1953
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions);
|
|
2141
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions, opts, chartOptions);
|
|
1954
2142
|
|
|
1955
2143
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1956
2144
|
|
|
@@ -1972,34 +2160,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1972
2160
|
|
|
1973
2161
|
}
|
|
1974
2162
|
|
|
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
2163
|
highchartsRenderer.ptRenderSpLine = function (pivotData, opts) {
|
|
2004
2164
|
var chartOptions = {};
|
|
2005
2165
|
var rowAttrs = pivotData.rowAttrs;
|
|
@@ -2025,8 +2185,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2025
2185
|
}
|
|
2026
2186
|
};
|
|
2027
2187
|
|
|
2028
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2029
|
-
|
|
2030
2188
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
2031
2189
|
|
|
2032
2190
|
chartOptions.plotOptions = {
|
|
@@ -2068,7 +2226,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2068
2226
|
}
|
|
2069
2227
|
};
|
|
2070
2228
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2071
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2229
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
2072
2230
|
|
|
2073
2231
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2074
2232
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -2116,7 +2274,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2116
2274
|
}
|
|
2117
2275
|
};
|
|
2118
2276
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2119
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2277
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2120
2278
|
|
|
2121
2279
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2122
2280
|
|
|
@@ -2213,14 +2371,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2213
2371
|
},
|
|
2214
2372
|
lineWidth: 0
|
|
2215
2373
|
};
|
|
2216
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2374
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2217
2375
|
|
|
2218
2376
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
|
|
2219
2377
|
|
|
2220
2378
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
2221
2379
|
};
|
|
2222
2380
|
|
|
2223
|
-
highchartsRenderer.ptRenderColumn = function (pivotData, opts, drilldownFunc) {
|
|
2381
|
+
highchartsRenderer.ptRenderColumn = function (pivotData, opts, drilldownFunc, chartType) {
|
|
2224
2382
|
var chartOptions = {};
|
|
2225
2383
|
var rowAttrs = pivotData.rowAttrs;
|
|
2226
2384
|
var colAttrs = pivotData.colAttrs;
|
|
@@ -2275,8 +2433,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2275
2433
|
}
|
|
2276
2434
|
};
|
|
2277
2435
|
|
|
2278
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2279
|
-
|
|
2280
2436
|
chartOptions.tooltip = {
|
|
2281
2437
|
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
|
2282
2438
|
shadow: highchartsRenderer.tooltipShadow,
|
|
@@ -2290,7 +2446,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2290
2446
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2291
2447
|
|
|
2292
2448
|
var isNotDrilldown = !(colAttrs && colAttrs.length > 1);
|
|
2293
|
-
|
|
2449
|
+
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
2450
|
+
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
2451
|
+
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
2452
|
+
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
2453
|
+
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
2454
|
+
}
|
|
2455
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, null, isNotDrilldown, additionOptions, opts, chartOptions, chartType);
|
|
2294
2456
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2295
2457
|
chartOptions.plotOptions = {
|
|
2296
2458
|
column: {
|
|
@@ -2327,7 +2489,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2327
2489
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
2328
2490
|
};
|
|
2329
2491
|
|
|
2330
|
-
highchartsRenderer.ptRenderStackedColumn = function (pivotData, opts, drilldownFunc) {
|
|
2492
|
+
highchartsRenderer.ptRenderStackedColumn = function (pivotData, opts, drilldownFunc, chartType) {
|
|
2331
2493
|
var chartOptions = {};
|
|
2332
2494
|
var rowAttrs = pivotData.rowAttrs;
|
|
2333
2495
|
var additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('column-chart-stacked');
|
|
@@ -2458,7 +2620,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2458
2620
|
};
|
|
2459
2621
|
//chartOptions.xAxis = { categories: pivotData.getColKeys() };
|
|
2460
2622
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2461
|
-
|
|
2623
|
+
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
2624
|
+
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
2625
|
+
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
2626
|
+
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
2627
|
+
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
2628
|
+
}
|
|
2629
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, true, true, additionOptions, opts, chartOptions, chartType);
|
|
2462
2630
|
//chartOptions.drilldown = {}
|
|
2463
2631
|
|
|
2464
2632
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
@@ -2535,11 +2703,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2535
2703
|
|
|
2536
2704
|
chartOptions.xAxis = {type: 'category'};
|
|
2537
2705
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2538
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
2706
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2539
2707
|
//if (drilldownFunc)
|
|
2540
2708
|
// chartOptions.drilldown = {}
|
|
2541
2709
|
//else
|
|
2542
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
2710
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2543
2711
|
|
|
2544
2712
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2545
2713
|
|
|
@@ -2610,7 +2778,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2610
2778
|
}
|
|
2611
2779
|
};
|
|
2612
2780
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2613
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2781
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2614
2782
|
|
|
2615
2783
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2616
2784
|
|
|
@@ -2724,7 +2892,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2724
2892
|
}
|
|
2725
2893
|
};
|
|
2726
2894
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2727
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2895
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2728
2896
|
|
|
2729
2897
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2730
2898
|
|
|
@@ -2813,6 +2981,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2813
2981
|
return format;
|
|
2814
2982
|
}
|
|
2815
2983
|
|
|
2984
|
+
highchartsRenderer.isRowKeyShouldBePercentage = function(render_options, rowKey) {
|
|
2985
|
+
if (render_options && render_options.comboOptions && render_options.comboOptions.secondaryAxisSettings &&
|
|
2986
|
+
render_options.comboOptions.secondaryAxisSettings.is_percentage) {
|
|
2987
|
+
const rowKeyString = rowKey.join(highchartsRenderer.delimer);
|
|
2988
|
+
const rowKeyOptions = lodash.find(render_options.comboOptions.seriesOptions, {series: rowKeyString});
|
|
2989
|
+
if (rowKeyOptions && rowKeyOptions.secondaryAxis) {
|
|
2990
|
+
return true;
|
|
2991
|
+
}
|
|
2992
|
+
}
|
|
2993
|
+
return false;
|
|
2994
|
+
}
|
|
2995
|
+
|
|
2816
2996
|
highchartsRenderer.ignoreIfCalculatedValue = function(data, rowKey, colKey, record, associatedFields, renderOptions, isGraph) {
|
|
2817
2997
|
var eliminate = renderOptions && renderOptions.chartOptions && renderOptions.chartOptions.table_options &&
|
|
2818
2998
|
renderOptions.chartOptions.table_options.eliminate_calc_totals && !_.isEmpty(associatedFields) && !isGraph;
|
|
@@ -2832,17 +3012,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2832
3012
|
|
|
2833
3013
|
highchartsRenderer.rhPivotCount = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
2834
3014
|
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
3015
|
return function (data, rowKey, colKey) {
|
|
2847
3016
|
return {
|
|
2848
3017
|
sum: 0,
|
|
@@ -2864,10 +3033,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2864
3033
|
this.formats = lodash.uniq(this.formats);
|
|
2865
3034
|
}
|
|
2866
3035
|
|
|
2867
|
-
if (
|
|
2868
|
-
|
|
2869
|
-
this.widget_values_format = "#,###%";
|
|
2870
|
-
}
|
|
3036
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3037
|
+
this.widget_values_format = "#,###%";
|
|
2871
3038
|
}
|
|
2872
3039
|
|
|
2873
3040
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -2987,17 +3154,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2987
3154
|
};
|
|
2988
3155
|
|
|
2989
3156
|
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
|
-
}
|
|
3157
|
+
var attr = arg[0];
|
|
3001
3158
|
return function (data, rowKey, colKey) {
|
|
3002
3159
|
return {
|
|
3003
3160
|
sum: 0,
|
|
@@ -3030,10 +3187,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3030
3187
|
this.formats = lodash.uniq(this.formats);
|
|
3031
3188
|
}
|
|
3032
3189
|
|
|
3033
|
-
if (
|
|
3034
|
-
|
|
3035
|
-
this.widget_values_format = "#,###%";
|
|
3036
|
-
}
|
|
3190
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3191
|
+
this.widget_values_format = "#,###%";
|
|
3037
3192
|
}
|
|
3038
3193
|
|
|
3039
3194
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3087,17 +3242,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3087
3242
|
};
|
|
3088
3243
|
|
|
3089
3244
|
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
|
-
}
|
|
3245
|
+
var attr = arg[0];
|
|
3101
3246
|
return function (data, rowKey, colKey) {
|
|
3102
3247
|
return {
|
|
3103
3248
|
val: null,
|
|
@@ -3131,10 +3276,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3131
3276
|
this.formats = lodash.uniq(this.formats);
|
|
3132
3277
|
}
|
|
3133
3278
|
|
|
3134
|
-
if (
|
|
3135
|
-
|
|
3136
|
-
this.widget_values_format = "#,###%";
|
|
3137
|
-
}
|
|
3279
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3280
|
+
this.widget_values_format = "#,###%";
|
|
3138
3281
|
}
|
|
3139
3282
|
|
|
3140
3283
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3185,17 +3328,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3185
3328
|
};
|
|
3186
3329
|
|
|
3187
3330
|
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
|
-
}
|
|
3331
|
+
var attr = arg[0];
|
|
3199
3332
|
return function (data, rowKey, colKey) {
|
|
3200
3333
|
return {
|
|
3201
3334
|
val: null,
|
|
@@ -3229,10 +3362,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3229
3362
|
this.formats = lodash.uniq(this.formats);
|
|
3230
3363
|
}
|
|
3231
3364
|
|
|
3232
|
-
if (
|
|
3233
|
-
|
|
3234
|
-
this.widget_values_format = "#,###%";
|
|
3235
|
-
}
|
|
3365
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3366
|
+
this.widget_values_format = "#,###%";
|
|
3236
3367
|
}
|
|
3237
3368
|
|
|
3238
3369
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3283,17 +3414,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3283
3414
|
};
|
|
3284
3415
|
|
|
3285
3416
|
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
|
-
}
|
|
3417
|
+
var attr = arg[0];
|
|
3297
3418
|
return function (data, rowKey, colKey) {
|
|
3298
3419
|
return {
|
|
3299
3420
|
sum: 0,
|
|
@@ -3328,10 +3449,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3328
3449
|
this.formats = lodash.uniq(this.formats);
|
|
3329
3450
|
}
|
|
3330
3451
|
|
|
3331
|
-
if (
|
|
3332
|
-
|
|
3333
|
-
this.widget_values_format = "#,###%";
|
|
3334
|
-
}
|
|
3452
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3453
|
+
this.widget_values_format = "#,###%";
|
|
3335
3454
|
}
|
|
3336
3455
|
|
|
3337
3456
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -4279,6 +4398,50 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4279
4398
|
delete options.chartOptions.label;
|
|
4280
4399
|
}
|
|
4281
4400
|
}
|
|
4401
|
+
|
|
4402
|
+
if (!options.comboOptions) {
|
|
4403
|
+
options.comboOptions = {
|
|
4404
|
+
secondaryAxisSettings: {
|
|
4405
|
+
name: 'Secondary Axis',
|
|
4406
|
+
max: null,
|
|
4407
|
+
min: null,
|
|
4408
|
+
is_percentage: false,
|
|
4409
|
+
},
|
|
4410
|
+
seriesOptions: []
|
|
4411
|
+
}
|
|
4412
|
+
if (options.chartOptions.delta_column && options.chartOptions.delta_column.field === 'series') {
|
|
4413
|
+
let deltaColumnSeries = {
|
|
4414
|
+
series: options.chartOptions.delta_column.name,
|
|
4415
|
+
secondaryAxis: !options.chartOptions.delta_column.same_yaxis,
|
|
4416
|
+
};
|
|
4417
|
+
switch (options.chartOptions.delta_column.chart) {
|
|
4418
|
+
case 'line':
|
|
4419
|
+
deltaColumnSeries.chartType = 'line-chart';
|
|
4420
|
+
break;
|
|
4421
|
+
case 'spline':
|
|
4422
|
+
deltaColumnSeries.chartType = 'line-chart-smooth';
|
|
4423
|
+
break;
|
|
4424
|
+
case 'area':
|
|
4425
|
+
deltaColumnSeries.chartType = 'area-chart';
|
|
4426
|
+
break;
|
|
4427
|
+
case 'areaspline':
|
|
4428
|
+
deltaColumnSeries.chartType = 'area-chart-smooth';
|
|
4429
|
+
break;
|
|
4430
|
+
case 'scatter':
|
|
4431
|
+
deltaColumnSeries.chartType = 'scatter-chart';
|
|
4432
|
+
break;
|
|
4433
|
+
case 'column':
|
|
4434
|
+
deltaColumnSeries.chartType = 'column-chart';
|
|
4435
|
+
break;
|
|
4436
|
+
default:
|
|
4437
|
+
deltaColumnSeries.chartType = 'scatter-chart';
|
|
4438
|
+
break;
|
|
4439
|
+
}
|
|
4440
|
+
options.comboOptions.seriesOptions.push(deltaColumnSeries);
|
|
4441
|
+
options.comboOptions.secondaryAxisSettings.name = options.chartOptions.delta_column.name.replace('_', '');
|
|
4442
|
+
options.comboOptions.secondaryAxisSettings.is_percentage = options.chartOptions.delta_column.is_percentage;
|
|
4443
|
+
}
|
|
4444
|
+
}
|
|
4282
4445
|
};
|
|
4283
4446
|
|
|
4284
4447
|
highchartsRenderer.addPivotOptions = function (selectedTemplateWOData, widgetOptions, drilldownFunction, drillDownListFunction) {
|
|
@@ -4386,6 +4549,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4386
4549
|
exTableOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(exTableOptions.calculated_values || []);
|
|
4387
4550
|
};
|
|
4388
4551
|
|
|
4552
|
+
highchartsRenderer.addTemplateDataToDynamicRangeOptions = function (selectedTemplate, dynamicRangeOptions) {
|
|
4553
|
+
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
4554
|
+
|
|
4555
|
+
var fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.widget_fields);
|
|
4556
|
+
var fieldOb;
|
|
4557
|
+
var filterFields = [];
|
|
4558
|
+
var selectedFields = [];
|
|
4559
|
+
|
|
4560
|
+
lodash.forEach(dynamicRangeOptions.filters, function (filterObj) {
|
|
4561
|
+
fieldOb = lodash.find(fields, {id: filterObj.field});
|
|
4562
|
+
if (fieldOb && filterObj.values && filterObj.values.datetype && filterObj.values.datetype === 'list') {
|
|
4563
|
+
filterObj.values = filterObj.values.val
|
|
4564
|
+
} else if (fieldOb && filterObj.values && filterObj.values.datetype && filterObj.values.datetype !== 'list') {
|
|
4565
|
+
fieldOb.values = filterObj.values;
|
|
4566
|
+
} else if (fieldOb && filterObj.values && filterObj.values.type === 'advanced') {
|
|
4567
|
+
fieldOb.values = filterObj.values;
|
|
4568
|
+
}
|
|
4569
|
+
if (fieldOb && filterObj.values && filterObj.values instanceof Array) {
|
|
4570
|
+
if (filterObj.is_excluded == true) {
|
|
4571
|
+
fieldOb.excludes = filterObj.values;
|
|
4572
|
+
} else {
|
|
4573
|
+
fieldOb.includes = filterObj.values;
|
|
4574
|
+
}
|
|
4575
|
+
}
|
|
4576
|
+
if (filterObj.allow_nulls && fieldOb) {
|
|
4577
|
+
fieldOb.allow_nulls = filterObj.allow_nulls;
|
|
4578
|
+
}
|
|
4579
|
+
});
|
|
4580
|
+
|
|
4581
|
+
// fill selected fields
|
|
4582
|
+
lodash.forEach(dynamicRangeOptions.fields, function (valObj) {
|
|
4583
|
+
fieldOb = lodash.find(fields, {id: valObj.field});
|
|
4584
|
+
if (fieldOb) {
|
|
4585
|
+
selectedFields.push(fieldOb);
|
|
4586
|
+
lodash.remove(fields, {id: fieldOb.id});
|
|
4587
|
+
}
|
|
4588
|
+
});
|
|
4589
|
+
|
|
4590
|
+
// fill filter fields
|
|
4591
|
+
lodash.forEach(dynamicRangeOptions.filters, function (valObj) {
|
|
4592
|
+
fieldOb = lodash.find(fields, {id: valObj.field});
|
|
4593
|
+
if (fieldOb) {
|
|
4594
|
+
filterFields.push(fieldOb);
|
|
4595
|
+
lodash.remove(fields, {id: fieldOb.id});
|
|
4596
|
+
}
|
|
4597
|
+
});
|
|
4598
|
+
|
|
4599
|
+
dynamicRangeOptions.pivot = {};
|
|
4600
|
+
dynamicRangeOptions.pivot.fieldsArray = fields;
|
|
4601
|
+
dynamicRangeOptions.pivot.selectedFieldsArray = selectedFields;
|
|
4602
|
+
dynamicRangeOptions.pivot.filtersArray = filterFields;
|
|
4603
|
+
dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
|
|
4604
|
+
}
|
|
4605
|
+
|
|
4389
4606
|
highchartsRenderer.addTemplateDataToFunctionOptions = function (selectedTemplate, functionOptions) {
|
|
4390
4607
|
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
4391
4608
|
|
|
@@ -5360,7 +5577,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5360
5577
|
element_options: [
|
|
5361
5578
|
{label: 'Markers', value: ''},
|
|
5362
5579
|
{label: 'Line', value: 'line'},
|
|
5580
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5363
5581
|
{label: 'Column', value: 'column'},
|
|
5582
|
+
{label: 'Area', value: 'area'},
|
|
5583
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5364
5584
|
],
|
|
5365
5585
|
default_value: ''
|
|
5366
5586
|
}, {
|
|
@@ -5372,7 +5592,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5372
5592
|
element_type: 'checkbox',
|
|
5373
5593
|
element_label: 'Same yAxis',
|
|
5374
5594
|
value_name: 'same_yaxis',
|
|
5375
|
-
default_value: false
|
|
5595
|
+
default_value: false,
|
|
5596
|
+
hidden: true,
|
|
5376
5597
|
}, {
|
|
5377
5598
|
element_type: 'checkbox',
|
|
5378
5599
|
element_label: 'Same xAxis',
|
|
@@ -5382,7 +5603,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5382
5603
|
element_type: 'checkbox',
|
|
5383
5604
|
element_label: 'Percentage',
|
|
5384
5605
|
value_name: 'is_percentage',
|
|
5385
|
-
default_value: false
|
|
5606
|
+
default_value: false,
|
|
5607
|
+
hidden: true,
|
|
5386
5608
|
}, {
|
|
5387
5609
|
element_type: 'checkbox',
|
|
5388
5610
|
element_label: 'Sort by variance',
|
|
@@ -5433,7 +5655,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5433
5655
|
element_options: [
|
|
5434
5656
|
{label: 'Markers', value: ''},
|
|
5435
5657
|
{label: 'Line', value: 'line'},
|
|
5658
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5436
5659
|
{label: 'Column', value: 'column'},
|
|
5660
|
+
{label: 'Area', value: 'area'},
|
|
5661
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5437
5662
|
],
|
|
5438
5663
|
default_value: ''
|
|
5439
5664
|
}, {
|
|
@@ -5445,7 +5670,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5445
5670
|
element_type: 'checkbox',
|
|
5446
5671
|
element_label: 'Same yAxis',
|
|
5447
5672
|
value_name: 'same_yaxis',
|
|
5448
|
-
default_value: false
|
|
5673
|
+
default_value: false,
|
|
5674
|
+
hidden: true,
|
|
5449
5675
|
}, {
|
|
5450
5676
|
element_type: 'checkbox',
|
|
5451
5677
|
element_label: 'Same xAxis',
|
|
@@ -5455,7 +5681,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5455
5681
|
element_type: 'checkbox',
|
|
5456
5682
|
element_label: 'Percentage',
|
|
5457
5683
|
value_name: 'is_percentage',
|
|
5458
|
-
default_value: false
|
|
5684
|
+
default_value: false,
|
|
5685
|
+
hidden: true,
|
|
5459
5686
|
}, {
|
|
5460
5687
|
element_type: 'checkbox',
|
|
5461
5688
|
element_label: 'Sort by variance',
|
|
@@ -5532,6 +5759,39 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5532
5759
|
};
|
|
5533
5760
|
|
|
5534
5761
|
highchartsRenderer.chartsTypesInfo = {
|
|
5762
|
+
'combo-chart': {
|
|
5763
|
+
name: 'Combo Chart ',
|
|
5764
|
+
label: 'Combo Chart ',
|
|
5765
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5766
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5767
|
+
axisName: 'X - Axis',
|
|
5768
|
+
legendName: 'Data series',
|
|
5769
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart',
|
|
5770
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5771
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts',
|
|
5772
|
+
},
|
|
5773
|
+
'combo-column-chart': {
|
|
5774
|
+
name: 'Column Combo Chart ',
|
|
5775
|
+
label: 'Column Chart',
|
|
5776
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5777
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5778
|
+
axisName: 'X - Axis',
|
|
5779
|
+
legendName: 'Data series',
|
|
5780
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5781
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5782
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5783
|
+
},
|
|
5784
|
+
'combo-stacked-chart': {
|
|
5785
|
+
name: 'Stacked Column Combo Chart ',
|
|
5786
|
+
label: 'Stacked Column',
|
|
5787
|
+
title: 'Allows for multiple chart display formats in one widget.',
|
|
5788
|
+
description: 'For example, different department stacked clomuns, and average as a line.',
|
|
5789
|
+
axisName: 'X - Axis',
|
|
5790
|
+
legendName: 'Data series',
|
|
5791
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5792
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5793
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5794
|
+
},
|
|
5535
5795
|
'line-chart': {
|
|
5536
5796
|
name: 'Line chart',
|
|
5537
5797
|
label: 'Line Chart',
|
|
@@ -5769,6 +6029,53 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5769
6029
|
}
|
|
5770
6030
|
]
|
|
5771
6031
|
},
|
|
6032
|
+
{
|
|
6033
|
+
type: 'combo',
|
|
6034
|
+
name: 'Combo',
|
|
6035
|
+
class: 'combo-chart',
|
|
6036
|
+
subtypes: [{
|
|
6037
|
+
type: 'combo-column-chart',
|
|
6038
|
+
name: highchartsRenderer.chartsTypesInfo['combo-column-chart'].name,
|
|
6039
|
+
class: 'combo-column-chart',
|
|
6040
|
+
render: highchartsRenderer.ptRenderColumn,
|
|
6041
|
+
suboptions: [
|
|
6042
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6043
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6044
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6045
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6046
|
+
highchartsRenderer.suboptions["label"],
|
|
6047
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6048
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6049
|
+
highchartsRenderer.suboptions["chart"],
|
|
6050
|
+
highchartsRenderer.suboptions["negative_number_format"],
|
|
6051
|
+
highchartsRenderer.suboptions["delta_column_for_drill_down"],
|
|
6052
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6053
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6054
|
+
highchartsRenderer.suboptions["legends"],
|
|
6055
|
+
],
|
|
6056
|
+
},
|
|
6057
|
+
{
|
|
6058
|
+
type: 'combo-stacked-chart',
|
|
6059
|
+
name: highchartsRenderer.chartsTypesInfo['combo-stacked-chart'].name,
|
|
6060
|
+
class: 'combo-stacked-chart',
|
|
6061
|
+
render: highchartsRenderer.ptRenderStackedColumn,
|
|
6062
|
+
suboptions: [
|
|
6063
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6064
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6065
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6066
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6067
|
+
highchartsRenderer.suboptions["label_with_percentage"],
|
|
6068
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6069
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6070
|
+
highchartsRenderer.suboptions["chart_grid"],
|
|
6071
|
+
highchartsRenderer.suboptions["delta_column"],
|
|
6072
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6073
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6074
|
+
highchartsRenderer.suboptions["legends"],
|
|
6075
|
+
]
|
|
6076
|
+
}
|
|
6077
|
+
]
|
|
6078
|
+
},
|
|
5772
6079
|
{
|
|
5773
6080
|
type: 'area',
|
|
5774
6081
|
name: 'Area',
|
|
@@ -6684,7 +6991,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6684
6991
|
var datesFields = [];
|
|
6685
6992
|
datesFields = lodash.filter(widget.rows, element => element.type == 'Date');
|
|
6686
6993
|
datesFields = datesFields.concat(lodash.filter(widget.cols, element => element.type == 'Date'));
|
|
6687
|
-
|
|
6994
|
+
|
|
6688
6995
|
const isCustomSorting = widget.options.sortingFields && Array.isArray(widget.options.sortingFields) && widget.options.sortingFields.length > 0;
|
|
6689
6996
|
if (isCustomSorting) {
|
|
6690
6997
|
lodash.forEach(datesFields, function (field) {
|
|
@@ -7047,7 +7354,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7047
7354
|
itemMarginTop: 2,
|
|
7048
7355
|
};
|
|
7049
7356
|
const none = {
|
|
7050
|
-
enabled: false,
|
|
7357
|
+
enabled: false,
|
|
7051
7358
|
};
|
|
7052
7359
|
|
|
7053
7360
|
if (additionOptions.legends_position && additionOptions.legends_position.value) {
|