@datarailsshared/dr_renderer 1.2.301-dragons → 1.2.303
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 +1 -7
- package/src/highcharts_renderer.js +98 -62
package/package.json
CHANGED
package/src/dr_pivottable.js
CHANGED
@@ -91,7 +91,6 @@ let initDRPivotTable = function($, window, document) {
|
|
91
91
|
|
92
92
|
DRPivotData.prototype.arrSort = function(attrs) {
|
93
93
|
var a, sortersArr;
|
94
|
-
const sortByValueAttrs = this.sortByValueAttrs;
|
95
94
|
sortersArr = (function() {
|
96
95
|
var l, len1, results;
|
97
96
|
results = [];
|
@@ -101,16 +100,11 @@ let initDRPivotTable = function($, window, document) {
|
|
101
100
|
}
|
102
101
|
return results;
|
103
102
|
}).call(this);
|
104
|
-
|
105
103
|
return function(a, b) {
|
106
104
|
var comparison, i, sorter;
|
107
105
|
for (i in sortersArr) {
|
108
106
|
sorter = sortersArr[i];
|
109
|
-
|
110
|
-
comparison = sorter(a.slice(0, parseInt(i) + 1).join(','), b.slice(0, parseInt(i) + 1).join(','));
|
111
|
-
} else {
|
112
|
-
comparison = sorter(a[i], b[i]);
|
113
|
-
}
|
107
|
+
comparison = sorter(a[i], b[i]);
|
114
108
|
if (comparison !== 0) {
|
115
109
|
return comparison;
|
116
110
|
}
|
@@ -81,11 +81,6 @@ const HIGHCHARTS_CONSTANTS = {
|
|
81
81
|
MAX_SELECTED_ITEMS_CHARECHTERS_IN_LABEL: 50,
|
82
82
|
}
|
83
83
|
|
84
|
-
const SUBOPTIONS_FONT_SIZE_VALUES = (new Array(19).fill(null).map(function (item, index) {
|
85
|
-
const fontValue = index + 6;
|
86
|
-
return { label: fontValue, value: fontValue }
|
87
|
-
}));
|
88
|
-
|
89
84
|
const SUBOPTIONS_FONTS = [
|
90
85
|
'Arial',
|
91
86
|
'Arial Black',
|
@@ -694,7 +689,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
694
689
|
setTimeout(() => {
|
695
690
|
var aggr = highchartsRenderer.defaultFormatterToTooltip(pivotData, opts);
|
696
691
|
const formatted_value_to_return = aggr.bind(this)();
|
697
|
-
opts.insightsTooltipFunc(
|
692
|
+
opts.insightsTooltipFunc(lodash.merge(lodash.cloneDeep(this), formatted_value_to_return, insight));
|
698
693
|
});
|
699
694
|
}
|
700
695
|
}
|
@@ -1155,7 +1150,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1155
1150
|
ob.name = row_n_value.join(highchartsRenderer.delimer)
|
1156
1151
|
.replace(highchartsRenderer.DR_OTHERS_KEY, othersName);
|
1157
1152
|
}
|
1158
|
-
|
1159
1153
|
lodash.forEach(col_n_keys, function (col_n_value, index) {
|
1160
1154
|
var agg = pivotData.getAggregator(row_n_value, col_n_value);
|
1161
1155
|
var val = agg.value();
|
@@ -1397,7 +1391,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1397
1391
|
if (opts.trendLine) {
|
1398
1392
|
const a = ((ySum * squareXSum) - (xSum * xySum)) / ((n * squareXSum) - (xSum * xSum));
|
1399
1393
|
const b = ((n * xySum) - (xSum* ySum)) / ((n * squareXSum) - (xSum * xSum));
|
1400
|
-
|
1401
1394
|
const trendSeries = lodash.clone(chart_series[chart_series.length - 1]);
|
1402
1395
|
trendSeries.className = 'trendSeries';
|
1403
1396
|
trendSeries.name = highchartsRenderer.getTrendSeriesName(trendSeries);
|
@@ -1408,7 +1401,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1408
1401
|
if (colors && colors[i]) {
|
1409
1402
|
trendSeries.color = colors[i];
|
1410
1403
|
}
|
1411
|
-
|
1412
1404
|
trendSerieses.push(trendSeries);
|
1413
1405
|
}
|
1414
1406
|
i++;
|
@@ -1425,7 +1417,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
1425
1417
|
}
|
1426
1418
|
|
1427
1419
|
let weights = { line: 2,spline: 3 ,area:-2, areaspline: -1, scatter:4, column: 1 };
|
1428
|
-
|
1429
1420
|
if (opts.comboOptions && lodash.includes(chartType,'combo') && !lodash.isEqual(row_n_keys, EMPTY_ROW_N_KEYS)) {
|
1430
1421
|
chart_series.forEach((series, seriesIndex) => {
|
1431
1422
|
const savedSeriesOption = lodash.find(opts.comboOptions.seriesOptions, {series: series.name});
|
@@ -4397,25 +4388,72 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4397
4388
|
return ret_str;
|
4398
4389
|
};
|
4399
4390
|
|
4400
|
-
highchartsRenderer.
|
4391
|
+
highchartsRenderer.getNewAttrSortingForCol = function (pivotData, sortingOptions) {
|
4392
|
+
let rowAttrs, rowKeys, colKeys, colAttrs;
|
4393
|
+
rowAttrs = pivotData.rowAttrs;
|
4394
|
+
rowKeys = pivotData.rowKeys;
|
4395
|
+
colKeys = pivotData.colKeys;
|
4396
|
+
colAttrs = pivotData.colAttrs;
|
4397
|
+
|
4398
|
+
|
4399
|
+
if (!colAttrs || colAttrs.length == 0) {
|
4400
|
+
return null;
|
4401
|
+
}
|
4402
|
+
|
4401
4403
|
let values_names_arr = [];
|
4404
|
+
let keysArray = sortingOptions.field ? rowKeys : colKeys;
|
4405
|
+
|
4402
4406
|
lodash.forEach(keysArray, function (val) {
|
4403
|
-
|
4404
|
-
|
4405
|
-
let
|
4407
|
+
let firstArray = sortingOptions.field ? [val[0]] : [];
|
4408
|
+
let secondArray = sortingOptions.field ? sortingOptions.field.split(highchartsRenderer.delimer) : [val[0]];
|
4409
|
+
let aggregator_subtotal = pivotData.getAggregator(firstArray, secondArray);
|
4406
4410
|
|
4407
|
-
if (
|
4408
|
-
|
4411
|
+
if (aggregator_subtotal) {
|
4412
|
+
let value_subtotal = aggregator_subtotal.value();
|
4413
|
+
if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
|
4414
|
+
value_subtotal = Math.abs(value_subtotal);
|
4415
|
+
}
|
4416
|
+
values_names_arr.push({name: val[0], value: value_subtotal});
|
4409
4417
|
}
|
4418
|
+
});
|
4410
4419
|
|
4411
|
-
|
4420
|
+
// ORDERING
|
4421
|
+
let sorting_vector = ['asc'];
|
4422
|
+
if (sortingOptions && sortingOptions.type == 'largestToSmallest') {
|
4423
|
+
sorting_vector = ['desc'];
|
4424
|
+
}
|
4425
|
+
values_names_arr = lodash.orderBy(values_names_arr, ['value'], sorting_vector);
|
4426
|
+
|
4427
|
+
// map only names
|
4428
|
+
let attr_sorted_values = lodash.map(values_names_arr, 'name');
|
4429
|
+
return {name: sortingOptions.field ? rowAttrs[0] : colAttrs[0], values: attr_sorted_values};
|
4430
|
+
};
|
4431
|
+
|
4432
|
+
highchartsRenderer.getNewAttrSortingForRow = function (pivotData, sortingOptions) {
|
4433
|
+
let rowAttrs, rowKeys, colKeys, colAttrs;
|
4434
|
+
rowAttrs = pivotData.rowAttrs;
|
4435
|
+
rowKeys = pivotData.rowKeys;
|
4436
|
+
colKeys = pivotData.colKeys;
|
4437
|
+
colAttrs = pivotData.colAttrs;
|
4438
|
+
|
4439
|
+
if (!rowAttrs || rowAttrs.length == 0) {
|
4440
|
+
return null;
|
4441
|
+
}
|
4442
|
+
|
4443
|
+
let values_names_arr = [];
|
4444
|
+
let keysArray = sortingOptions.field ? colKeys : rowKeys;
|
4445
|
+
|
4446
|
+
lodash.forEach(keysArray, function (val) {
|
4447
|
+
let firstArray = sortingOptions.field ? sortingOptions.field.split(highchartsRenderer.delimer) : [val[0]];
|
4448
|
+
let secondArray = sortingOptions.field ? [val[0]] : [];
|
4449
|
+
let aggregator_subtotal = pivotData.getAggregator(firstArray, secondArray);
|
4412
4450
|
|
4413
4451
|
if (aggregator_subtotal) {
|
4414
4452
|
let value_subtotal = aggregator_subtotal.value();
|
4415
4453
|
if (sortingOptions && sortingOptions.is_absolute && !isNaN(parseFloat(value_subtotal))) {
|
4416
4454
|
value_subtotal = Math.abs(value_subtotal);
|
4417
4455
|
}
|
4418
|
-
values_names_arr.push({name:
|
4456
|
+
values_names_arr.push({name: val[0], value: value_subtotal});
|
4419
4457
|
}
|
4420
4458
|
});
|
4421
4459
|
|
@@ -4427,32 +4465,36 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4427
4465
|
values_names_arr = lodash.orderBy(values_names_arr, ['value'], sorting_vector);
|
4428
4466
|
|
4429
4467
|
// map only names
|
4430
|
-
|
4468
|
+
let attr_sorted_values = lodash.map(values_names_arr, 'name');
|
4469
|
+
return {name: sortingOptions.field ? colAttrs[0] : rowAttrs[0], values: attr_sorted_values};
|
4431
4470
|
};
|
4432
4471
|
|
4433
|
-
highchartsRenderer.generateSortingFunctionByValues = function (
|
4472
|
+
highchartsRenderer.generateSortingFunctionByValues = function (sortingOptions, pivotData, opts) {
|
4473
|
+
let new_map;
|
4474
|
+
let axis = highchartsRenderer.getAxis(sortingOptions.axis, opts);
|
4475
|
+
if (axis == 'col_total') {
|
4476
|
+
new_map = highchartsRenderer.getNewAttrSortingForCol(pivotData, sortingOptions);
|
4477
|
+
} else if (axis == 'row_total') {
|
4478
|
+
new_map = highchartsRenderer.getNewAttrSortingForRow(pivotData, sortingOptions);
|
4479
|
+
}
|
4480
|
+
|
4434
4481
|
let old_sorters_function = opts.sorters;
|
4435
4482
|
if (!old_sorters_function) {
|
4436
4483
|
old_sorters_function = function () {
|
4437
4484
|
};
|
4438
4485
|
}
|
4439
|
-
|
4440
|
-
|
4441
|
-
|
4442
|
-
|
4443
|
-
|
4444
|
-
|
4445
|
-
|
4446
|
-
|
4447
|
-
sortingOptions.sorting,
|
4448
|
-
pivotData[isColumnSort ? 'colKeys' : 'rowKeys'],
|
4449
|
-
pivotData[isColumnSort ? 'colAttrs' : 'rowAttrs'],
|
4450
|
-
fieldIndex
|
4451
|
-
);
|
4452
|
-
return $.pivotUtilities.sortAs(orderedNamesList);
|
4453
|
-
} else {
|
4454
|
-
return old_sorters_function(attr);
|
4486
|
+
if (new_map) {
|
4487
|
+
var sortAs = $.pivotUtilities.sortAs;
|
4488
|
+
let new_sorters_function = function (attr) {
|
4489
|
+
if (new_map.name == attr) {
|
4490
|
+
return $.pivotUtilities.sortAs(new_map.values);
|
4491
|
+
} else {
|
4492
|
+
return old_sorters_function(attr);
|
4493
|
+
}
|
4455
4494
|
}
|
4495
|
+
return new_sorters_function;
|
4496
|
+
} else {
|
4497
|
+
return old_sorters_function;
|
4456
4498
|
}
|
4457
4499
|
};
|
4458
4500
|
|
@@ -4656,7 +4698,6 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4656
4698
|
result = null;
|
4657
4699
|
try {
|
4658
4700
|
pivotData = $.pivotUtilities.getPivotDataModel(rowData, opts);
|
4659
|
-
pivotData.sortByValueAttrs = [];
|
4660
4701
|
try {
|
4661
4702
|
if (options && options.onlyOptions) {
|
4662
4703
|
if (!opts.rendererOptions) {
|
@@ -4664,15 +4705,9 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4664
4705
|
}
|
4665
4706
|
opts.rendererOptions.onlyOptions = true;
|
4666
4707
|
}
|
4667
|
-
|
4668
|
-
|
4669
|
-
|
4670
|
-
sortingField => lodash.get(sortingField, 'sorting.sort_by') === 'field_values'
|
4671
|
-
);
|
4672
|
-
|
4673
|
-
if (sortByValueSettings.length) {
|
4674
|
-
pivotData.sortByValueAttrs = lodash.map(sortByValueSettings, fieldSorting => fieldSorting.name);
|
4675
|
-
let new_sorting_function = highchartsRenderer.generateSortingFunctionByValues(sortByValueSettings, pivotData, opts, widget);
|
4708
|
+
var totalFilters = lodash.get(opts, 'rendererOptions.total_value_options', null);
|
4709
|
+
if (totalFilters && totalFilters.sorting_options) {
|
4710
|
+
let new_sorting_function = highchartsRenderer.generateSortingFunctionByValues(totalFilters.sorting_options, pivotData, opts);
|
4676
4711
|
opts.sorters = new_sorting_function;
|
4677
4712
|
optsFiltered.sorters = new_sorting_function;
|
4678
4713
|
pivotData.sorters = new_sorting_function;
|
@@ -4937,7 +4972,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
4937
4972
|
const fiscalYearMonthsModifier = highchartsRenderer.getFiscalYearMonthModifier();
|
4938
4973
|
|
4939
4974
|
let date = moment_lib(tryParse).utcOffset(0);
|
4940
|
-
if (['quarter', 'year']
|
4975
|
+
if (lodash.includes(['quarter', 'year'], timeframe)) {
|
4941
4976
|
date = date.subtract(fiscalYearMonthsModifier, 'M');
|
4942
4977
|
}
|
4943
4978
|
|
@@ -5975,6 +6010,11 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
5975
6010
|
|
5976
6011
|
highchartsRenderer.widgetPlaceholders = lodash.assign({}, $.pivotUtilities.errorHandling.placeholders);
|
5977
6012
|
|
6013
|
+
const suboptionsFontSizeValues = (lodash.map(lodash.fill(new Array(19), null), function (item, index) {
|
6014
|
+
const fontValue = index + 6;
|
6015
|
+
return { label: fontValue, value: fontValue }
|
6016
|
+
}));
|
6017
|
+
|
5978
6018
|
highchartsRenderer.suboptions = {
|
5979
6019
|
'widget_library': {
|
5980
6020
|
is_hidden: true,
|
@@ -6136,7 +6176,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6136
6176
|
element_type: 'select',
|
6137
6177
|
value_name: 'columns_font_size',
|
6138
6178
|
element_label: 'Font size',
|
6139
|
-
element_options:
|
6179
|
+
element_options: suboptionsFontSizeValues,
|
6140
6180
|
default_value: '10'
|
6141
6181
|
},
|
6142
6182
|
{
|
@@ -6165,7 +6205,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6165
6205
|
element_type: 'select',
|
6166
6206
|
value_name: 'rows_font_size',
|
6167
6207
|
element_label: 'Font size',
|
6168
|
-
element_options:
|
6208
|
+
element_options: suboptionsFontSizeValues,
|
6169
6209
|
default_value: '10'
|
6170
6210
|
},
|
6171
6211
|
{
|
@@ -6194,7 +6234,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6194
6234
|
element_type: 'select',
|
6195
6235
|
value_name: 'values_font_size',
|
6196
6236
|
element_label: 'Font size',
|
6197
|
-
element_options:
|
6237
|
+
element_options: suboptionsFontSizeValues,
|
6198
6238
|
default_value: '10'
|
6199
6239
|
},
|
6200
6240
|
{
|
@@ -6223,7 +6263,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6223
6263
|
element_type: 'select',
|
6224
6264
|
value_name: 'totals_font_size',
|
6225
6265
|
element_label: 'Font size',
|
6226
|
-
element_options:
|
6266
|
+
element_options: suboptionsFontSizeValues,
|
6227
6267
|
default_value: '10'
|
6228
6268
|
},
|
6229
6269
|
{
|
@@ -6499,7 +6539,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6499
6539
|
element_type: 'select',
|
6500
6540
|
value_name: 'font_size',
|
6501
6541
|
element_label: 'Font size',
|
6502
|
-
element_options:
|
6542
|
+
element_options: suboptionsFontSizeValues,
|
6503
6543
|
default_value: LABEL_DEFAULT_SETTINGS.FONT_SIZE,
|
6504
6544
|
},
|
6505
6545
|
{
|
@@ -6577,7 +6617,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6577
6617
|
element_type: 'select',
|
6578
6618
|
value_name: 'font_size',
|
6579
6619
|
element_label: 'Font size',
|
6580
|
-
element_options:
|
6620
|
+
element_options: suboptionsFontSizeValues,
|
6581
6621
|
default_value: LABEL_DEFAULT_SETTINGS.FONT_SIZE,
|
6582
6622
|
},
|
6583
6623
|
{
|
@@ -6654,7 +6694,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6654
6694
|
element_type: 'select',
|
6655
6695
|
value_name: 'font_size',
|
6656
6696
|
element_label: 'Font size',
|
6657
|
-
element_options:
|
6697
|
+
element_options: suboptionsFontSizeValues,
|
6658
6698
|
default_value: LABEL_DEFAULT_SETTINGS.FONT_SIZE,
|
6659
6699
|
},
|
6660
6700
|
{
|
@@ -6823,7 +6863,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6823
6863
|
element_type: 'select',
|
6824
6864
|
value_name: 'font_size',
|
6825
6865
|
element_label: 'Font size',
|
6826
|
-
element_options:
|
6866
|
+
element_options: suboptionsFontSizeValues,
|
6827
6867
|
default_value: TOOLTIP_DEFAULT_SETTINGS.FONT_SIZE,
|
6828
6868
|
},
|
6829
6869
|
{
|
@@ -6913,7 +6953,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
6913
6953
|
element_type: 'select',
|
6914
6954
|
value_name: 'font_size',
|
6915
6955
|
element_label: 'Font size',
|
6916
|
-
element_options:
|
6956
|
+
element_options: suboptionsFontSizeValues,
|
6917
6957
|
default_value: TOOLTIP_DEFAULT_SETTINGS.FONT_SIZE,
|
6918
6958
|
},
|
6919
6959
|
{
|
@@ -8624,9 +8664,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
8624
8664
|
const isCustomSorting = widget.options.sortingFields && Array.isArray(widget.options.sortingFields) && widget.options.sortingFields.length > 0;
|
8625
8665
|
if (isCustomSorting) {
|
8626
8666
|
lodash.forEach(datesFields, function (field) {
|
8627
|
-
const fieldToSort = lodash.find(
|
8628
|
-
widget.options.sortingFields, element => element.id === field.id && lodash.get(element, 'sorting.sort_by') === 'field_items'
|
8629
|
-
);
|
8667
|
+
const fieldToSort = lodash.find(widget.options.sortingFields, element => element.id === field.id);
|
8630
8668
|
field.sorting = fieldToSort ? fieldToSort.sorting : field.sorting;
|
8631
8669
|
});
|
8632
8670
|
}
|
@@ -8708,9 +8746,7 @@ let getHighchartsRenderer = function ($, document, Highcharts, default_colors, h
|
|
8708
8746
|
});
|
8709
8747
|
} else if (isCustomSorting) {
|
8710
8748
|
lodash.forEach(rowsAndCols, function (field) {
|
8711
|
-
const fieldToSort = lodash.find(
|
8712
|
-
widget.options.sortingFields, element => element.id === field.id && lodash.get(element, 'sorting.sort_by') === 'field_items'
|
8713
|
-
);
|
8749
|
+
const fieldToSort = lodash.find(widget.options.sortingFields, element => element.id === field.id);
|
8714
8750
|
field.sorting = fieldToSort ? fieldToSort.sorting : field.sorting;
|
8715
8751
|
});
|
8716
8752
|
}
|