@datarailsshared/dr_renderer 1.2.53 → 1.2.54
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 +596 -153
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,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,68 @@ 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 && opts.comboOptions.seriesOptions.length && chartType.includes('combo')) {
|
|
1136
|
+
opts.comboOptions.seriesOptions.forEach(option => {
|
|
1137
|
+
chart_series.forEach(series => {
|
|
1138
|
+
if (option.series === series.name) {
|
|
1139
|
+
switch (option.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
|
+
}
|
|
1160
|
+
})
|
|
1161
|
+
})
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
if (opts.total) {
|
|
1165
|
+
const totalSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
|
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
|
+
chart_series.sort((a,b) => {
|
|
1182
|
+
return (weights[a.type] || 0) > (weights[b.type] || 0) ? 1 : (weights[a.type] || 0) < (weights[b.type] || 0) ? -1 : 0
|
|
1183
|
+
});
|
|
1184
|
+
|
|
1067
1185
|
return chart_series;
|
|
1068
|
-
}
|
|
1186
|
+
}
|
|
1069
1187
|
|
|
1070
1188
|
highchartsRenderer.getVariantSeries = function (series, delta_column_options) {
|
|
1071
1189
|
const varianceColor = delta_column_options.color || highchartsRenderer.variance_color || Highcharts.getOptions().colors[7];
|
|
1072
1190
|
series.name = delta_column_options.name.replace('_', '');
|
|
1073
1191
|
series.color = varianceColor;
|
|
1074
1192
|
|
|
1075
|
-
if (!delta_column_options.only_variant && !delta_column_options.same_yaxis) {
|
|
1076
|
-
series.yAxis = 1;
|
|
1077
|
-
}
|
|
1078
|
-
|
|
1079
1193
|
if (delta_column_options.point_click_event) {
|
|
1080
1194
|
series.allowPointSelect = true;
|
|
1081
1195
|
series.point = {
|
|
@@ -1103,9 +1217,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1103
1217
|
series.marker = {
|
|
1104
1218
|
lineColor: varianceColor
|
|
1105
1219
|
};
|
|
1106
|
-
} else if (delta_column_options.chart == 'column') {
|
|
1220
|
+
} else if (delta_column_options.chart == 'column' || delta_column_options.chart == 'combo') {
|
|
1107
1221
|
series.type = 'column';
|
|
1108
|
-
} else {
|
|
1222
|
+
} else if (delta_column_options.chart == 'spline') {
|
|
1109
1223
|
series.type = 'spline';
|
|
1110
1224
|
series.lineWidth = 0;
|
|
1111
1225
|
series.lineColor = varianceColor;
|
|
@@ -1145,11 +1259,20 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1145
1259
|
}
|
|
1146
1260
|
};
|
|
1147
1261
|
}
|
|
1262
|
+
else if (delta_column_options.chart == 'area') {
|
|
1263
|
+
series.color = varianceColor;
|
|
1264
|
+
series.type = 'area'
|
|
1265
|
+
} else if (delta_column_options.chart == 'areaspline') {
|
|
1266
|
+
series.color = varianceColor;
|
|
1267
|
+
series.type = 'areaspline'
|
|
1268
|
+
} else if (delta_column_options.chart == 'scatter-chart') {
|
|
1269
|
+
series.color = varianceColor;
|
|
1270
|
+
series.type = 'scatter-chart'
|
|
1271
|
+
}
|
|
1148
1272
|
return series;
|
|
1149
1273
|
}
|
|
1150
1274
|
|
|
1151
|
-
|
|
1152
|
-
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData) {
|
|
1275
|
+
highchartsRenderer.ptCreateSeriesToDrillDownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1153
1276
|
var pie_series = [];
|
|
1154
1277
|
|
|
1155
1278
|
var col_n_keys = pivotData.getColKeys();
|
|
@@ -1180,13 +1303,15 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1180
1303
|
pie_series.push(ob);
|
|
1181
1304
|
});
|
|
1182
1305
|
|
|
1306
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_series, pivotData, chartOptions, additionOptions, opts);
|
|
1307
|
+
|
|
1183
1308
|
return ([{
|
|
1184
1309
|
colorByPoint: true,
|
|
1185
1310
|
data: pie_series
|
|
1186
1311
|
}]);
|
|
1187
1312
|
};
|
|
1188
1313
|
|
|
1189
|
-
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData) {
|
|
1314
|
+
highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1190
1315
|
|
|
1191
1316
|
var pie_drill_down_series = [],
|
|
1192
1317
|
row_n_keys = pivotData.getRowKeys(),
|
|
@@ -1224,12 +1349,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1224
1349
|
}
|
|
1225
1350
|
});
|
|
1226
1351
|
|
|
1352
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded(pie_drill_down_series, pivotData, chartOptions, additionOptions, opts);
|
|
1227
1353
|
|
|
1228
1354
|
return ({
|
|
1229
1355
|
series: pie_drill_down_series
|
|
1230
1356
|
});
|
|
1231
1357
|
};
|
|
1232
1358
|
|
|
1359
|
+
highchartsRenderer.moveSeriesToSecondYAxisIfNeeded = function(chartSeries, pivotData, chartOptions, additionOptions, opts) {
|
|
1360
|
+
if (!opts || !opts.comboOptions) {
|
|
1361
|
+
return;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
let addSecondYAxis = false;
|
|
1365
|
+
lodash.forEach(chartSeries, function (series) {
|
|
1366
|
+
let sOptions = lodash.find(opts.comboOptions.seriesOptions, function(sOptions) {
|
|
1367
|
+
return sOptions.series === series.name || sOptions.series.replace('_', '') === series.name
|
|
1368
|
+
});
|
|
1369
|
+
if (sOptions && sOptions.secondaryAxis) {
|
|
1370
|
+
series.yAxis = 1;
|
|
1371
|
+
addSecondYAxis = true;
|
|
1372
|
+
}
|
|
1373
|
+
});
|
|
1374
|
+
|
|
1375
|
+
if (addSecondYAxis) {
|
|
1376
|
+
highchartsRenderer.addSecondYAxis(pivotData, chartOptions, additionOptions, opts);
|
|
1377
|
+
}
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
highchartsRenderer.addSecondYAxis = function (pivotData, chartOptions, additionOptions, opts) {
|
|
1381
|
+
const varianceColor = (additionOptions && additionOptions.delta_column.color) || (highchartsRenderer && highchartsRenderer.variance_color) || Highcharts.getOptions().colors[7];
|
|
1382
|
+
let labels_formatter = opts.comboOptions.secondaryAxisSettings.is_percentage ?
|
|
1383
|
+
highchartsRenderer.persantageValueLabelsFormatter(pivotData, opts) :
|
|
1384
|
+
highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts);
|
|
1385
|
+
|
|
1386
|
+
chartOptions.yAxis = [chartOptions.yAxis];
|
|
1387
|
+
chartOptions.yAxis[1] = {
|
|
1388
|
+
min: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.min)) ? opts.comboOptions.secondaryAxisSettings.min : null,
|
|
1389
|
+
max: !isNaN(parseInt(opts.comboOptions.secondaryAxisSettings.max)) ? opts.comboOptions.secondaryAxisSettings.max : null,
|
|
1390
|
+
title: {
|
|
1391
|
+
text: opts.comboOptions.secondaryAxisSettings.name,
|
|
1392
|
+
style: {
|
|
1393
|
+
color: varianceColor
|
|
1394
|
+
}
|
|
1395
|
+
},
|
|
1396
|
+
labels: {
|
|
1397
|
+
formatter: labels_formatter,
|
|
1398
|
+
style: {
|
|
1399
|
+
color: varianceColor
|
|
1400
|
+
}
|
|
1401
|
+
},
|
|
1402
|
+
opposite: true
|
|
1403
|
+
}
|
|
1404
|
+
};
|
|
1405
|
+
|
|
1233
1406
|
highchartsRenderer.ptRenderBasicPie = function (pivotData, opts) {
|
|
1234
1407
|
var chartOptions = {};
|
|
1235
1408
|
var additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('pie-chart');
|
|
@@ -1409,7 +1582,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1409
1582
|
}
|
|
1410
1583
|
|
|
1411
1584
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1412
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1585
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1413
1586
|
|
|
1414
1587
|
var total = [];
|
|
1415
1588
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1550,7 +1723,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1550
1723
|
|
|
1551
1724
|
|
|
1552
1725
|
chartOptions.xAxis = {categories: pivotData.getColKeys()};
|
|
1553
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true);
|
|
1726
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, null, null, opts, chartOptions);
|
|
1554
1727
|
|
|
1555
1728
|
var total = [];
|
|
1556
1729
|
lodash.forEach(chartOptions.series, function (obj) {
|
|
@@ -1644,7 +1817,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1644
1817
|
};
|
|
1645
1818
|
var uniqueVals = kpioptions.value.value == "Unique";
|
|
1646
1819
|
|
|
1647
|
-
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals);
|
|
1820
|
+
let temp_series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, true, uniqueVals, null, opts, chartOptions);
|
|
1648
1821
|
|
|
1649
1822
|
var total = [];
|
|
1650
1823
|
lodash.forEach(temp_series, function (obj) {
|
|
@@ -1764,12 +1937,12 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1764
1937
|
if (useNewUx) {
|
|
1765
1938
|
chartOptions.tooltip.borderColor = '#fff';
|
|
1766
1939
|
}
|
|
1767
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
1940
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1768
1941
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, 1, false, true);
|
|
1769
1942
|
if (drilldownFunc)
|
|
1770
1943
|
chartOptions.drilldown = {}
|
|
1771
1944
|
else
|
|
1772
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
1945
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
1773
1946
|
|
|
1774
1947
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
1775
1948
|
|
|
@@ -1826,7 +1999,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1826
1999
|
formatter: highchartsRenderer.defaultValueLabelsFormatter(pivotData, opts)
|
|
1827
2000
|
}
|
|
1828
2001
|
};
|
|
1829
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1830
2002
|
|
|
1831
2003
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1832
2004
|
|
|
@@ -1871,7 +2043,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1871
2043
|
}
|
|
1872
2044
|
};
|
|
1873
2045
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1874
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2046
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
1875
2047
|
|
|
1876
2048
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1877
2049
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -1902,8 +2074,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1902
2074
|
}
|
|
1903
2075
|
};
|
|
1904
2076
|
|
|
1905
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
1906
|
-
|
|
1907
2077
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
1908
2078
|
|
|
1909
2079
|
chartOptions.plotOptions = {
|
|
@@ -1950,7 +2120,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1950
2120
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
1951
2121
|
|
|
1952
2122
|
var colors = ['#ff0202', '#b3060e', '#70000a'];
|
|
1953
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions);
|
|
2123
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, colors, null, null, additionOptions, opts, chartOptions);
|
|
1954
2124
|
|
|
1955
2125
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
1956
2126
|
|
|
@@ -1972,34 +2142,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
1972
2142
|
|
|
1973
2143
|
}
|
|
1974
2144
|
|
|
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
2145
|
highchartsRenderer.ptRenderSpLine = function (pivotData, opts) {
|
|
2004
2146
|
var chartOptions = {};
|
|
2005
2147
|
var rowAttrs = pivotData.rowAttrs;
|
|
@@ -2025,8 +2167,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2025
2167
|
}
|
|
2026
2168
|
};
|
|
2027
2169
|
|
|
2028
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2029
|
-
|
|
2030
2170
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, true);
|
|
2031
2171
|
|
|
2032
2172
|
chartOptions.plotOptions = {
|
|
@@ -2068,7 +2208,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2068
2208
|
}
|
|
2069
2209
|
};
|
|
2070
2210
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2071
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions);
|
|
2211
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, additionOptions, opts, chartOptions);
|
|
2072
2212
|
|
|
2073
2213
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2074
2214
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
@@ -2116,7 +2256,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2116
2256
|
}
|
|
2117
2257
|
};
|
|
2118
2258
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2119
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2259
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2120
2260
|
|
|
2121
2261
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2122
2262
|
|
|
@@ -2213,14 +2353,14 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2213
2353
|
},
|
|
2214
2354
|
lineWidth: 0
|
|
2215
2355
|
};
|
|
2216
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2356
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2217
2357
|
|
|
2218
2358
|
chartOptions.legend = highchartsRenderer.getOptionsForLegends(additionOptions, rowAttrs.length, false);
|
|
2219
2359
|
|
|
2220
2360
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
2221
2361
|
};
|
|
2222
2362
|
|
|
2223
|
-
highchartsRenderer.ptRenderColumn = function (pivotData, opts, drilldownFunc) {
|
|
2363
|
+
highchartsRenderer.ptRenderColumn = function (pivotData, opts, drilldownFunc, chartType) {
|
|
2224
2364
|
var chartOptions = {};
|
|
2225
2365
|
var rowAttrs = pivotData.rowAttrs;
|
|
2226
2366
|
var colAttrs = pivotData.colAttrs;
|
|
@@ -2275,8 +2415,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2275
2415
|
}
|
|
2276
2416
|
};
|
|
2277
2417
|
|
|
2278
|
-
highchartsRenderer.addSecondYAxisIfNeed(pivotData, chartOptions, additionOptions, opts);
|
|
2279
|
-
|
|
2280
2418
|
chartOptions.tooltip = {
|
|
2281
2419
|
formatter: highchartsRenderer.defaultFormatterToTooltip(pivotData, opts),
|
|
2282
2420
|
shadow: highchartsRenderer.tooltipShadow,
|
|
@@ -2290,7 +2428,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2290
2428
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions);
|
|
2291
2429
|
|
|
2292
2430
|
var isNotDrilldown = !(colAttrs && colAttrs.length > 1);
|
|
2293
|
-
|
|
2431
|
+
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
2432
|
+
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
2433
|
+
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
2434
|
+
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
2435
|
+
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
2436
|
+
}
|
|
2437
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, null, isNotDrilldown, additionOptions, opts, chartOptions, chartType);
|
|
2294
2438
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2295
2439
|
chartOptions.plotOptions = {
|
|
2296
2440
|
column: {
|
|
@@ -2327,7 +2471,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2327
2471
|
return highchartsRenderer.ptCreateElementAndDraw(chartOptions, opts);
|
|
2328
2472
|
};
|
|
2329
2473
|
|
|
2330
|
-
highchartsRenderer.ptRenderStackedColumn = function (pivotData, opts, drilldownFunc) {
|
|
2474
|
+
highchartsRenderer.ptRenderStackedColumn = function (pivotData, opts, drilldownFunc, chartType) {
|
|
2331
2475
|
var chartOptions = {};
|
|
2332
2476
|
var rowAttrs = pivotData.rowAttrs;
|
|
2333
2477
|
var additionOptions = opts.chartOptions ? opts.chartOptions : highchartsRenderer.getDefaultValueForChart('column-chart-stacked');
|
|
@@ -2458,7 +2602,13 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2458
2602
|
};
|
|
2459
2603
|
//chartOptions.xAxis = { categories: pivotData.getColKeys() };
|
|
2460
2604
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2461
|
-
|
|
2605
|
+
if (lodash.get(opts, 'paletteOptions.widgetPalette', null)) {
|
|
2606
|
+
const mc_palette = lodash.find(lodash.get(opts.paletteOptions, 'monochromePalettes', []), { selected: true });
|
|
2607
|
+
chartOptions.colors = mc_palette ? mc_palette.colors : opts.paletteOptions.widgetPalette;
|
|
2608
|
+
} else if (lodash.get(opts, 'paletteOptions.dashboardPalette.colors', null)) {
|
|
2609
|
+
chartOptions.colors = opts.paletteOptions.dashboardPalette.colors;
|
|
2610
|
+
}
|
|
2611
|
+
chartOptions.series = highchartsRenderer.ptCreateColumnSeries(pivotData, chartOptions.colors, null, true, true, null, opts, chartOptions, chartType);
|
|
2462
2612
|
//chartOptions.drilldown = {}
|
|
2463
2613
|
|
|
2464
2614
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
@@ -2535,11 +2685,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2535
2685
|
|
|
2536
2686
|
chartOptions.xAxis = {type: 'category'};
|
|
2537
2687
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2538
|
-
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData);
|
|
2688
|
+
chartOptions.series = highchartsRenderer.ptCreateSeriesToDrillDownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2539
2689
|
//if (drilldownFunc)
|
|
2540
2690
|
// chartOptions.drilldown = {}
|
|
2541
2691
|
//else
|
|
2542
|
-
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData);
|
|
2692
|
+
chartOptions.drilldown = highchartsRenderer.ptCreateDrillDownSeriesToDrilldownChart(pivotData, chartOptions, additionOptions, opts);
|
|
2543
2693
|
|
|
2544
2694
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2545
2695
|
|
|
@@ -2610,7 +2760,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2610
2760
|
}
|
|
2611
2761
|
};
|
|
2612
2762
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2613
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2763
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2614
2764
|
|
|
2615
2765
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2616
2766
|
|
|
@@ -2724,7 +2874,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2724
2874
|
}
|
|
2725
2875
|
};
|
|
2726
2876
|
chartOptions = highchartsRenderer.prepareAxisX(chartOptions, additionOptions, pivotData.getColKeys());
|
|
2727
|
-
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData);
|
|
2877
|
+
chartOptions.series = highchartsRenderer.ptCreateBasicLineSeries(pivotData, null, null, null, null, opts, chartOptions);
|
|
2728
2878
|
|
|
2729
2879
|
highchartsRenderer.handleGridLines(additionOptions, chartOptions)
|
|
2730
2880
|
|
|
@@ -2813,6 +2963,18 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2813
2963
|
return format;
|
|
2814
2964
|
}
|
|
2815
2965
|
|
|
2966
|
+
highchartsRenderer.isRowKeyShouldBePercentage = function(render_options, rowKey) {
|
|
2967
|
+
if (render_options && render_options.comboOptions && render_options.comboOptions.secondaryAxisSettings &&
|
|
2968
|
+
render_options.comboOptions.secondaryAxisSettings.is_percentage) {
|
|
2969
|
+
const rowKeyString = rowKey.join(highchartsRenderer.delimer);
|
|
2970
|
+
const rowKeyOptions = lodash.find(render_options.comboOptions.seriesOptions, {series: rowKeyString});
|
|
2971
|
+
if (rowKeyOptions && rowKeyOptions.secondaryAxis) {
|
|
2972
|
+
return true;
|
|
2973
|
+
}
|
|
2974
|
+
}
|
|
2975
|
+
return false;
|
|
2976
|
+
}
|
|
2977
|
+
|
|
2816
2978
|
highchartsRenderer.ignoreIfCalculatedValue = function(data, rowKey, colKey, record, associatedFields, renderOptions, isGraph) {
|
|
2817
2979
|
var eliminate = renderOptions && renderOptions.chartOptions && renderOptions.chartOptions.table_options &&
|
|
2818
2980
|
renderOptions.chartOptions.table_options.eliminate_calc_totals && !_.isEmpty(associatedFields) && !isGraph;
|
|
@@ -2832,17 +2994,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2832
2994
|
|
|
2833
2995
|
highchartsRenderer.rhPivotCount = function (arg, widget_values_format, is_graph, render_options, calculated_info) {
|
|
2834
2996
|
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
2997
|
return function (data, rowKey, colKey) {
|
|
2847
2998
|
return {
|
|
2848
2999
|
sum: 0,
|
|
@@ -2864,10 +3015,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2864
3015
|
this.formats = lodash.uniq(this.formats);
|
|
2865
3016
|
}
|
|
2866
3017
|
|
|
2867
|
-
if (
|
|
2868
|
-
|
|
2869
|
-
this.widget_values_format = "#,###%";
|
|
2870
|
-
}
|
|
3018
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3019
|
+
this.widget_values_format = "#,###%";
|
|
2871
3020
|
}
|
|
2872
3021
|
|
|
2873
3022
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -2987,17 +3136,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
2987
3136
|
};
|
|
2988
3137
|
|
|
2989
3138
|
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
|
-
}
|
|
3139
|
+
var attr = arg[0];
|
|
3001
3140
|
return function (data, rowKey, colKey) {
|
|
3002
3141
|
return {
|
|
3003
3142
|
sum: 0,
|
|
@@ -3030,10 +3169,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3030
3169
|
this.formats = lodash.uniq(this.formats);
|
|
3031
3170
|
}
|
|
3032
3171
|
|
|
3033
|
-
if (
|
|
3034
|
-
|
|
3035
|
-
this.widget_values_format = "#,###%";
|
|
3036
|
-
}
|
|
3172
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3173
|
+
this.widget_values_format = "#,###%";
|
|
3037
3174
|
}
|
|
3038
3175
|
|
|
3039
3176
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3087,17 +3224,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3087
3224
|
};
|
|
3088
3225
|
|
|
3089
3226
|
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
|
-
}
|
|
3227
|
+
var attr = arg[0];
|
|
3101
3228
|
return function (data, rowKey, colKey) {
|
|
3102
3229
|
return {
|
|
3103
3230
|
val: null,
|
|
@@ -3131,10 +3258,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3131
3258
|
this.formats = lodash.uniq(this.formats);
|
|
3132
3259
|
}
|
|
3133
3260
|
|
|
3134
|
-
if (
|
|
3135
|
-
|
|
3136
|
-
this.widget_values_format = "#,###%";
|
|
3137
|
-
}
|
|
3261
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3262
|
+
this.widget_values_format = "#,###%";
|
|
3138
3263
|
}
|
|
3139
3264
|
|
|
3140
3265
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3185,17 +3310,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3185
3310
|
};
|
|
3186
3311
|
|
|
3187
3312
|
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
|
-
}
|
|
3313
|
+
var attr = arg[0];
|
|
3199
3314
|
return function (data, rowKey, colKey) {
|
|
3200
3315
|
return {
|
|
3201
3316
|
val: null,
|
|
@@ -3229,10 +3344,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3229
3344
|
this.formats = lodash.uniq(this.formats);
|
|
3230
3345
|
}
|
|
3231
3346
|
|
|
3232
|
-
if (
|
|
3233
|
-
|
|
3234
|
-
this.widget_values_format = "#,###%";
|
|
3235
|
-
}
|
|
3347
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3348
|
+
this.widget_values_format = "#,###%";
|
|
3236
3349
|
}
|
|
3237
3350
|
|
|
3238
3351
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -3283,17 +3396,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3283
3396
|
};
|
|
3284
3397
|
|
|
3285
3398
|
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
|
-
}
|
|
3399
|
+
var attr = arg[0];
|
|
3297
3400
|
return function (data, rowKey, colKey) {
|
|
3298
3401
|
return {
|
|
3299
3402
|
sum: 0,
|
|
@@ -3328,10 +3431,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
3328
3431
|
this.formats = lodash.uniq(this.formats);
|
|
3329
3432
|
}
|
|
3330
3433
|
|
|
3331
|
-
if (
|
|
3332
|
-
|
|
3333
|
-
this.widget_values_format = "#,###%";
|
|
3334
|
-
}
|
|
3434
|
+
if (highchartsRenderer.isRowKeyShouldBePercentage(render_options, rowKey)) {
|
|
3435
|
+
this.widget_values_format = "#,###%";
|
|
3335
3436
|
}
|
|
3336
3437
|
|
|
3337
3438
|
if (highchartsRenderer.ignoreIfCalculatedValue(data, rowKey, colKey, record, calculated_info.associated_fields, render_options, is_graph)) {
|
|
@@ -4279,6 +4380,50 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4279
4380
|
delete options.chartOptions.label;
|
|
4280
4381
|
}
|
|
4281
4382
|
}
|
|
4383
|
+
|
|
4384
|
+
if (!options.comboOptions) {
|
|
4385
|
+
options.comboOptions = {
|
|
4386
|
+
secondaryAxisSettings: {
|
|
4387
|
+
name: 'Secondary Axis',
|
|
4388
|
+
max: null,
|
|
4389
|
+
min: null,
|
|
4390
|
+
is_percentage: false,
|
|
4391
|
+
},
|
|
4392
|
+
seriesOptions: []
|
|
4393
|
+
}
|
|
4394
|
+
if (options.chartOptions.delta_column && options.chartOptions.delta_column.field === 'series') {
|
|
4395
|
+
let deltaColumnSeries = {
|
|
4396
|
+
series: options.chartOptions.delta_column.name,
|
|
4397
|
+
secondaryAxis: !options.chartOptions.delta_column.same_yaxis,
|
|
4398
|
+
};
|
|
4399
|
+
switch (options.chartOptions.delta_column.chart) {
|
|
4400
|
+
case 'line':
|
|
4401
|
+
deltaColumnSeries.chartType = 'line-chart';
|
|
4402
|
+
break;
|
|
4403
|
+
case 'spline':
|
|
4404
|
+
deltaColumnSeries.chartType = 'line-chart-smooth';
|
|
4405
|
+
break;
|
|
4406
|
+
case 'area':
|
|
4407
|
+
deltaColumnSeries.chartType = 'area-chart';
|
|
4408
|
+
break;
|
|
4409
|
+
case 'areaspline':
|
|
4410
|
+
deltaColumnSeries.chartType = 'area-chart-smooth';
|
|
4411
|
+
break;
|
|
4412
|
+
case 'scatter':
|
|
4413
|
+
deltaColumnSeries.chartType = 'scatter-chart';
|
|
4414
|
+
break;
|
|
4415
|
+
case 'column':
|
|
4416
|
+
deltaColumnSeries.chartType = 'column-chart';
|
|
4417
|
+
break;
|
|
4418
|
+
default:
|
|
4419
|
+
deltaColumnSeries.chartType = 'scatter-chart';
|
|
4420
|
+
break;
|
|
4421
|
+
}
|
|
4422
|
+
options.comboOptions.seriesOptions.push(deltaColumnSeries);
|
|
4423
|
+
options.comboOptions.secondaryAxisSettings.name = options.chartOptions.delta_column.name.replace('_', '');
|
|
4424
|
+
options.comboOptions.secondaryAxisSettings.is_percentage = options.chartOptions.delta_column.is_percentage;
|
|
4425
|
+
}
|
|
4426
|
+
}
|
|
4282
4427
|
};
|
|
4283
4428
|
|
|
4284
4429
|
highchartsRenderer.addPivotOptions = function (selectedTemplateWOData, widgetOptions, drilldownFunction, drillDownListFunction) {
|
|
@@ -4386,6 +4531,60 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
4386
4531
|
exTableOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(exTableOptions.calculated_values || []);
|
|
4387
4532
|
};
|
|
4388
4533
|
|
|
4534
|
+
highchartsRenderer.addTemplateDataToDynamicRangeOptions = function (selectedTemplate, dynamicRangeOptions) {
|
|
4535
|
+
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
4536
|
+
|
|
4537
|
+
var fields = highchartsRenderer.objectCopyJsonMethod(selectedTemplate.widget_fields);
|
|
4538
|
+
var fieldOb;
|
|
4539
|
+
var filterFields = [];
|
|
4540
|
+
var selectedFields = [];
|
|
4541
|
+
|
|
4542
|
+
lodash.forEach(dynamicRangeOptions.filters, function (filterObj) {
|
|
4543
|
+
fieldOb = lodash.find(fields, {id: filterObj.field});
|
|
4544
|
+
if (fieldOb && filterObj.values && filterObj.values.datetype && filterObj.values.datetype === 'list') {
|
|
4545
|
+
filterObj.values = filterObj.values.val
|
|
4546
|
+
} else if (fieldOb && filterObj.values && filterObj.values.datetype && filterObj.values.datetype !== 'list') {
|
|
4547
|
+
fieldOb.values = filterObj.values;
|
|
4548
|
+
} else if (fieldOb && filterObj.values && filterObj.values.type === 'advanced') {
|
|
4549
|
+
fieldOb.values = filterObj.values;
|
|
4550
|
+
}
|
|
4551
|
+
if (fieldOb && filterObj.values && filterObj.values instanceof Array) {
|
|
4552
|
+
if (filterObj.is_excluded == true) {
|
|
4553
|
+
fieldOb.excludes = filterObj.values;
|
|
4554
|
+
} else {
|
|
4555
|
+
fieldOb.includes = filterObj.values;
|
|
4556
|
+
}
|
|
4557
|
+
}
|
|
4558
|
+
if (filterObj.allow_nulls && fieldOb) {
|
|
4559
|
+
fieldOb.allow_nulls = filterObj.allow_nulls;
|
|
4560
|
+
}
|
|
4561
|
+
});
|
|
4562
|
+
|
|
4563
|
+
// fill selected fields
|
|
4564
|
+
lodash.forEach(dynamicRangeOptions.fields, function (valObj) {
|
|
4565
|
+
fieldOb = lodash.find(fields, {id: valObj.field});
|
|
4566
|
+
if (fieldOb) {
|
|
4567
|
+
selectedFields.push(fieldOb);
|
|
4568
|
+
lodash.remove(fields, {id: fieldOb.id});
|
|
4569
|
+
}
|
|
4570
|
+
});
|
|
4571
|
+
|
|
4572
|
+
// fill filter fields
|
|
4573
|
+
lodash.forEach(dynamicRangeOptions.filters, function (valObj) {
|
|
4574
|
+
fieldOb = lodash.find(fields, {id: valObj.field});
|
|
4575
|
+
if (fieldOb) {
|
|
4576
|
+
filterFields.push(fieldOb);
|
|
4577
|
+
lodash.remove(fields, {id: fieldOb.id});
|
|
4578
|
+
}
|
|
4579
|
+
});
|
|
4580
|
+
|
|
4581
|
+
dynamicRangeOptions.pivot = {};
|
|
4582
|
+
dynamicRangeOptions.pivot.fieldsArray = fields;
|
|
4583
|
+
dynamicRangeOptions.pivot.selectedFieldsArray = selectedFields;
|
|
4584
|
+
dynamicRangeOptions.pivot.filtersArray = filterFields;
|
|
4585
|
+
dynamicRangeOptions.pivot.calculatedValues = highchartsRenderer.objectCopyJsonMethod(dynamicRangeOptions.calculated_values || []);
|
|
4586
|
+
}
|
|
4587
|
+
|
|
4389
4588
|
highchartsRenderer.addTemplateDataToFunctionOptions = function (selectedTemplate, functionOptions) {
|
|
4390
4589
|
highchartsRenderer.setWidgetFieldsToTemplate(selectedTemplate);
|
|
4391
4590
|
|
|
@@ -5360,7 +5559,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5360
5559
|
element_options: [
|
|
5361
5560
|
{label: 'Markers', value: ''},
|
|
5362
5561
|
{label: 'Line', value: 'line'},
|
|
5562
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5363
5563
|
{label: 'Column', value: 'column'},
|
|
5564
|
+
{label: 'Area', value: 'area'},
|
|
5565
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5364
5566
|
],
|
|
5365
5567
|
default_value: ''
|
|
5366
5568
|
}, {
|
|
@@ -5372,7 +5574,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5372
5574
|
element_type: 'checkbox',
|
|
5373
5575
|
element_label: 'Same yAxis',
|
|
5374
5576
|
value_name: 'same_yaxis',
|
|
5375
|
-
default_value: false
|
|
5577
|
+
default_value: false,
|
|
5578
|
+
hidden: true,
|
|
5376
5579
|
}, {
|
|
5377
5580
|
element_type: 'checkbox',
|
|
5378
5581
|
element_label: 'Same xAxis',
|
|
@@ -5382,7 +5585,8 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5382
5585
|
element_type: 'checkbox',
|
|
5383
5586
|
element_label: 'Percentage',
|
|
5384
5587
|
value_name: 'is_percentage',
|
|
5385
|
-
default_value: false
|
|
5588
|
+
default_value: false,
|
|
5589
|
+
hidden: true,
|
|
5386
5590
|
}, {
|
|
5387
5591
|
element_type: 'checkbox',
|
|
5388
5592
|
element_label: 'Sort by variance',
|
|
@@ -5433,7 +5637,10 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5433
5637
|
element_options: [
|
|
5434
5638
|
{label: 'Markers', value: ''},
|
|
5435
5639
|
{label: 'Line', value: 'line'},
|
|
5640
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5436
5641
|
{label: 'Column', value: 'column'},
|
|
5642
|
+
{label: 'Area', value: 'area'},
|
|
5643
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5437
5644
|
],
|
|
5438
5645
|
default_value: ''
|
|
5439
5646
|
}, {
|
|
@@ -5445,7 +5652,85 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5445
5652
|
element_type: 'checkbox',
|
|
5446
5653
|
element_label: 'Same yAxis',
|
|
5447
5654
|
value_name: 'same_yaxis',
|
|
5655
|
+
default_value: false,
|
|
5656
|
+
hidden: true,
|
|
5657
|
+
}, {
|
|
5658
|
+
element_type: 'checkbox',
|
|
5659
|
+
element_label: 'Same xAxis',
|
|
5660
|
+
value_name: 'same_xaxis',
|
|
5661
|
+
default_value: false
|
|
5662
|
+
}, {
|
|
5663
|
+
element_type: 'checkbox',
|
|
5664
|
+
element_label: 'Percentage',
|
|
5665
|
+
value_name: 'is_percentage',
|
|
5666
|
+
default_value: false,
|
|
5667
|
+
hidden: true,
|
|
5668
|
+
}, {
|
|
5669
|
+
element_type: 'checkbox',
|
|
5670
|
+
element_label: 'Sort by variance',
|
|
5671
|
+
value_name: 'sort_by_variance',
|
|
5672
|
+
default_value: false
|
|
5673
|
+
}, {
|
|
5674
|
+
element_type: 'checkbox',
|
|
5675
|
+
element_label: 'Sort by absolute variance',
|
|
5676
|
+
value_name: 'sort_by_absolute_variance',
|
|
5677
|
+
default_value: false
|
|
5678
|
+
}, {
|
|
5679
|
+
element_type: 'checkbox',
|
|
5680
|
+
element_label: 'Filter zero values',
|
|
5681
|
+
value_name: 'is_filter_zero',
|
|
5682
|
+
default_value: false
|
|
5683
|
+
}]
|
|
5684
|
+
},
|
|
5685
|
+
'delta_column_combo': {
|
|
5686
|
+
category_class: 'google-visualization-charteditor-mini-more',
|
|
5687
|
+
category_label: 'Variance',
|
|
5688
|
+
category_type: 'delta_column',
|
|
5689
|
+
elements: [{
|
|
5690
|
+
element_type: 'radio',
|
|
5691
|
+
value_name: 'field',
|
|
5692
|
+
element_label: 'Select Field',
|
|
5693
|
+
element_options: [
|
|
5694
|
+
{label: 'None', value: ''},
|
|
5695
|
+
{label: 'Axis', value: 'category'},
|
|
5696
|
+
{label: 'Legend', value: 'series'},
|
|
5697
|
+
],
|
|
5698
|
+
default_value: ''
|
|
5699
|
+
}, {
|
|
5700
|
+
element_type: 'input',
|
|
5701
|
+
value_name: 'name',
|
|
5702
|
+
element_label: 'Name',
|
|
5703
|
+
default_value: '_Variance'
|
|
5704
|
+
}, {
|
|
5705
|
+
element_type: 'input',
|
|
5706
|
+
value_name: 'formula',
|
|
5707
|
+
element_label: 'Formula',
|
|
5708
|
+
default_value: 'x2-x1'
|
|
5709
|
+
}, {
|
|
5710
|
+
hidden: true,
|
|
5711
|
+
element_type: 'radio',
|
|
5712
|
+
value_name: 'chart',
|
|
5713
|
+
element_label: 'Chart',
|
|
5714
|
+
element_options: [
|
|
5715
|
+
{label: 'Markers', value: ''},
|
|
5716
|
+
{label: 'Line', value: 'line'},
|
|
5717
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5718
|
+
{label: 'Column', value: 'column'},
|
|
5719
|
+
{label: 'Area', value: 'area'},
|
|
5720
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5721
|
+
],
|
|
5722
|
+
default_value: ''
|
|
5723
|
+
}, {
|
|
5724
|
+
element_type: 'checkbox',
|
|
5725
|
+
element_label: 'Only variance',
|
|
5726
|
+
value_name: 'only_variant',
|
|
5448
5727
|
default_value: false
|
|
5728
|
+
}, {
|
|
5729
|
+
element_type: 'checkbox',
|
|
5730
|
+
element_label: 'Same yAxis',
|
|
5731
|
+
value_name: 'same_yaxis',
|
|
5732
|
+
default_value: false,
|
|
5733
|
+
hidden: true,
|
|
5449
5734
|
}, {
|
|
5450
5735
|
element_type: 'checkbox',
|
|
5451
5736
|
element_label: 'Same xAxis',
|
|
@@ -5455,7 +5740,85 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5455
5740
|
element_type: 'checkbox',
|
|
5456
5741
|
element_label: 'Percentage',
|
|
5457
5742
|
value_name: 'is_percentage',
|
|
5743
|
+
default_value: false,
|
|
5744
|
+
hidden: true,
|
|
5745
|
+
}, {
|
|
5746
|
+
element_type: 'checkbox',
|
|
5747
|
+
element_label: 'Sort by variance',
|
|
5748
|
+
value_name: 'sort_by_variance',
|
|
5458
5749
|
default_value: false
|
|
5750
|
+
}, {
|
|
5751
|
+
element_type: 'checkbox',
|
|
5752
|
+
element_label: 'Sort by absolute variance',
|
|
5753
|
+
value_name: 'sort_by_absolute_variance',
|
|
5754
|
+
default_value: false
|
|
5755
|
+
}]
|
|
5756
|
+
},
|
|
5757
|
+
'delta_column_for_drill_down_combo': {
|
|
5758
|
+
category_class: 'google-visualization-charteditor-mini-more',
|
|
5759
|
+
category_label: 'Variance',
|
|
5760
|
+
category_type: 'delta_column',
|
|
5761
|
+
elements: [{
|
|
5762
|
+
element_type: 'radio',
|
|
5763
|
+
value_name: 'field',
|
|
5764
|
+
element_label: 'Select Field',
|
|
5765
|
+
element_options: [
|
|
5766
|
+
{label: 'None', value: ''},
|
|
5767
|
+
{label: 'Axis', value: 'category'},
|
|
5768
|
+
{label: 'Legend', value: 'series'},
|
|
5769
|
+
],
|
|
5770
|
+
default_value: ''
|
|
5771
|
+
}, {
|
|
5772
|
+
element_type: 'input',
|
|
5773
|
+
value_name: 'name',
|
|
5774
|
+
element_label: 'Name',
|
|
5775
|
+
default_value: '_Variance'
|
|
5776
|
+
}, {
|
|
5777
|
+
element_type: 'input',
|
|
5778
|
+
value_name: 'formula',
|
|
5779
|
+
element_label: 'Formula',
|
|
5780
|
+
default_value: 'x2-x1'
|
|
5781
|
+
}, {
|
|
5782
|
+
element_type: 'input',
|
|
5783
|
+
value_name: 'color',
|
|
5784
|
+
element_label: 'Color',
|
|
5785
|
+
default_value: ''
|
|
5786
|
+
}, {
|
|
5787
|
+
hidden: true,
|
|
5788
|
+
element_type: 'radio',
|
|
5789
|
+
value_name: 'chart',
|
|
5790
|
+
element_label: 'Chart',
|
|
5791
|
+
element_options: [
|
|
5792
|
+
{label: 'Markers', value: ''},
|
|
5793
|
+
{label: 'Line', value: 'line'},
|
|
5794
|
+
{label: 'Smooth Line', value: 'spline'},
|
|
5795
|
+
{label: 'Column', value: 'column'},
|
|
5796
|
+
{label: 'Area', value: 'area'},
|
|
5797
|
+
{label: 'Smooth Area', value: 'areaspline'},
|
|
5798
|
+
],
|
|
5799
|
+
default_value: ''
|
|
5800
|
+
}, {
|
|
5801
|
+
element_type: 'checkbox',
|
|
5802
|
+
element_label: 'Only variance',
|
|
5803
|
+
value_name: 'only_variant',
|
|
5804
|
+
default_value: false
|
|
5805
|
+
}, {
|
|
5806
|
+
element_type: 'checkbox',
|
|
5807
|
+
element_label: 'Same yAxis',
|
|
5808
|
+
value_name: 'same_yaxis',
|
|
5809
|
+
default_value: false,
|
|
5810
|
+
hidden: true,
|
|
5811
|
+
}, {
|
|
5812
|
+
element_type: 'checkbox',
|
|
5813
|
+
element_label: 'Same xAxis',
|
|
5814
|
+
value_name: 'same_xaxis',
|
|
5815
|
+
default_value: false
|
|
5816
|
+
}, {
|
|
5817
|
+
element_type: 'checkbox',
|
|
5818
|
+
element_label: 'Percentage',
|
|
5819
|
+
value_name: 'is_percentage',
|
|
5820
|
+
default_value: false,
|
|
5821
|
+
hidden: true,
|
|
5459
5822
|
}, {
|
|
5460
5823
|
element_type: 'checkbox',
|
|
5461
5824
|
element_label: 'Sort by variance',
|
|
@@ -5532,6 +5895,39 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5532
5895
|
};
|
|
5533
5896
|
|
|
5534
5897
|
highchartsRenderer.chartsTypesInfo = {
|
|
5898
|
+
'combo-chart': {
|
|
5899
|
+
name: 'Column Combo Chart ',
|
|
5900
|
+
label: 'Column Combo Chart ',
|
|
5901
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5902
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5903
|
+
axisName: 'X - Axis',
|
|
5904
|
+
legendName: 'Data series',
|
|
5905
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart',
|
|
5906
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5907
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts',
|
|
5908
|
+
},
|
|
5909
|
+
'combo-column-chart': {
|
|
5910
|
+
name: 'Column Combo Chart ',
|
|
5911
|
+
label: 'Column Chart',
|
|
5912
|
+
title: 'Allows for multiple chart display formats in one widget',
|
|
5913
|
+
description: 'For example, Revenue and Cost of goods sold as clomuns, and Gross margin as a line',
|
|
5914
|
+
axisName: 'X - Axis',
|
|
5915
|
+
legendName: 'Data series',
|
|
5916
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5917
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5918
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5919
|
+
},
|
|
5920
|
+
'combo-stacked-chart': {
|
|
5921
|
+
name: 'Stacked Column Combo Chart ',
|
|
5922
|
+
label: 'Stacked Column',
|
|
5923
|
+
title: 'Allows for multiple chart display formats in one widget.',
|
|
5924
|
+
description: 'For example, different department stacked clomuns, and average as a line.',
|
|
5925
|
+
axisName: 'X - Axis',
|
|
5926
|
+
legendName: 'Data series',
|
|
5927
|
+
startedMessage: 'To add multiple chart types, click on “Combo Chart Options“. A Secondary Axis is available in this chart.',
|
|
5928
|
+
axisTooltipTitle: 'Drag one or more fields here to create your x-axis.',
|
|
5929
|
+
legendTooltipTitle: 'Click to display these data series as line or area charts.',
|
|
5930
|
+
},
|
|
5535
5931
|
'line-chart': {
|
|
5536
5932
|
name: 'Line chart',
|
|
5537
5933
|
label: 'Line Chart',
|
|
@@ -5761,6 +6157,53 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
5761
6157
|
highchartsRenderer.suboptions["table_options_transpose"],
|
|
5762
6158
|
highchartsRenderer.suboptions["chart_grid"],
|
|
5763
6159
|
highchartsRenderer.suboptions["negative_number_format"],
|
|
6160
|
+
highchartsRenderer.suboptions["delta_column_combo"],
|
|
6161
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6162
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6163
|
+
highchartsRenderer.suboptions["legends"],
|
|
6164
|
+
]
|
|
6165
|
+
}
|
|
6166
|
+
]
|
|
6167
|
+
},
|
|
6168
|
+
{
|
|
6169
|
+
type: 'combo',
|
|
6170
|
+
name: 'Combo',
|
|
6171
|
+
class: 'combo-chart',
|
|
6172
|
+
subtypes: [{
|
|
6173
|
+
type: 'combo-column-chart',
|
|
6174
|
+
name: highchartsRenderer.chartsTypesInfo['combo-column-chart'].name,
|
|
6175
|
+
class: 'combo-column-chart',
|
|
6176
|
+
render: highchartsRenderer.ptRenderColumn,
|
|
6177
|
+
suboptions: [
|
|
6178
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6179
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6180
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6181
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6182
|
+
highchartsRenderer.suboptions["label"],
|
|
6183
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6184
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6185
|
+
highchartsRenderer.suboptions["chart"],
|
|
6186
|
+
highchartsRenderer.suboptions["negative_number_format"],
|
|
6187
|
+
highchartsRenderer.suboptions["delta_column_for_drill_down_combo"],
|
|
6188
|
+
highchartsRenderer.suboptions["error_policy"],
|
|
6189
|
+
highchartsRenderer.suboptions["from_version"],
|
|
6190
|
+
highchartsRenderer.suboptions["legends"],
|
|
6191
|
+
],
|
|
6192
|
+
},
|
|
6193
|
+
{
|
|
6194
|
+
type: 'combo-stacked-chart',
|
|
6195
|
+
name: highchartsRenderer.chartsTypesInfo['combo-stacked-chart'].name,
|
|
6196
|
+
class: 'combo-stacked-chart',
|
|
6197
|
+
render: highchartsRenderer.ptRenderStackedColumn,
|
|
6198
|
+
suboptions: [
|
|
6199
|
+
highchartsRenderer.suboptions["default_show"],
|
|
6200
|
+
highchartsRenderer.suboptions["axisY"],
|
|
6201
|
+
highchartsRenderer.suboptions["axisX"],
|
|
6202
|
+
highchartsRenderer.suboptions["tooltips"],
|
|
6203
|
+
highchartsRenderer.suboptions["label_with_percentage"],
|
|
6204
|
+
highchartsRenderer.suboptions["subtitle"],
|
|
6205
|
+
highchartsRenderer.suboptions["table_options"],
|
|
6206
|
+
highchartsRenderer.suboptions["chart_grid"],
|
|
5764
6207
|
highchartsRenderer.suboptions["delta_column"],
|
|
5765
6208
|
highchartsRenderer.suboptions["error_policy"],
|
|
5766
6209
|
highchartsRenderer.suboptions["from_version"],
|
|
@@ -6684,7 +7127,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
6684
7127
|
var datesFields = [];
|
|
6685
7128
|
datesFields = lodash.filter(widget.rows, element => element.type == 'Date');
|
|
6686
7129
|
datesFields = datesFields.concat(lodash.filter(widget.cols, element => element.type == 'Date'));
|
|
6687
|
-
|
|
7130
|
+
|
|
6688
7131
|
const isCustomSorting = widget.options.sortingFields && Array.isArray(widget.options.sortingFields) && widget.options.sortingFields.length > 0;
|
|
6689
7132
|
if (isCustomSorting) {
|
|
6690
7133
|
lodash.forEach(datesFields, function (field) {
|
|
@@ -7047,7 +7490,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
|
7047
7490
|
itemMarginTop: 2,
|
|
7048
7491
|
};
|
|
7049
7492
|
const none = {
|
|
7050
|
-
enabled: false,
|
|
7493
|
+
enabled: false,
|
|
7051
7494
|
};
|
|
7052
7495
|
|
|
7053
7496
|
if (additionOptions.legends_position && additionOptions.legends_position.value) {
|