@semcore/d3-chart 2.13.3 → 2.13.5
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/CHANGELOG.md +12 -0
- package/lib/cjs/Area.js +59 -97
- package/lib/cjs/Area.js.map +1 -1
- package/lib/cjs/Axis.js +76 -143
- package/lib/cjs/Axis.js.map +1 -1
- package/lib/cjs/Bar.js +49 -96
- package/lib/cjs/Bar.js.map +1 -1
- package/lib/cjs/Bubble.js +39 -81
- package/lib/cjs/Bubble.js.map +1 -1
- package/lib/cjs/ClipPath.js +9 -35
- package/lib/cjs/ClipPath.js.map +1 -1
- package/lib/cjs/Donut.js +77 -152
- package/lib/cjs/Donut.js.map +1 -1
- package/lib/cjs/Dots.js +29 -57
- package/lib/cjs/Dots.js.map +1 -1
- package/lib/cjs/GroupBar.js +5 -26
- package/lib/cjs/GroupBar.js.map +1 -1
- package/lib/cjs/HorizontalBar.js +43 -84
- package/lib/cjs/HorizontalBar.js.map +1 -1
- package/lib/cjs/Hover.js +33 -88
- package/lib/cjs/Hover.js.map +1 -1
- package/lib/cjs/Line.js +42 -78
- package/lib/cjs/Line.js.map +1 -1
- package/lib/cjs/Plot.js +27 -73
- package/lib/cjs/Plot.js.map +1 -1
- package/lib/cjs/Radar.js +152 -277
- package/lib/cjs/Radar.js.map +1 -1
- package/lib/cjs/RadialTree.js +105 -211
- package/lib/cjs/RadialTree.js.map +1 -1
- package/lib/cjs/ReferenceLine.js +45 -87
- package/lib/cjs/ReferenceLine.js.map +1 -1
- package/lib/cjs/ResponsiveContainer.js +9 -38
- package/lib/cjs/ResponsiveContainer.js.map +1 -1
- package/lib/cjs/ScatterPlot.js +34 -74
- package/lib/cjs/ScatterPlot.js.map +1 -1
- package/lib/cjs/StackBar.js +9 -38
- package/lib/cjs/StackBar.js.map +1 -1
- package/lib/cjs/StackedArea.js +5 -29
- package/lib/cjs/StackedArea.js.map +1 -1
- package/lib/cjs/Tooltip.js +27 -76
- package/lib/cjs/Tooltip.js.map +1 -1
- package/lib/cjs/Venn.js +32 -75
- package/lib/cjs/Venn.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yModule.js +18 -71
- package/lib/cjs/a11y/PlotA11yModule.js.map +1 -1
- package/lib/cjs/a11y/PlotA11yView.js +19 -83
- package/lib/cjs/a11y/PlotA11yView.js.map +1 -1
- package/lib/cjs/a11y/bezier.js +0 -7
- package/lib/cjs/a11y/bezier.js.map +1 -1
- package/lib/cjs/a11y/focus.js +2 -11
- package/lib/cjs/a11y/focus.js.map +1 -1
- package/lib/cjs/a11y/hints.js +0 -13
- package/lib/cjs/a11y/hints.js.map +1 -1
- package/lib/cjs/a11y/insights.js +21 -132
- package/lib/cjs/a11y/insights.js.map +1 -1
- package/lib/cjs/a11y/intl.js +0 -6
- package/lib/cjs/a11y/intl.js.map +1 -1
- package/lib/cjs/a11y/locale.js +4 -22
- package/lib/cjs/a11y/locale.js.map +1 -1
- package/lib/cjs/a11y/serialize.js +23 -83
- package/lib/cjs/a11y/serialize.js.map +1 -1
- package/lib/cjs/a11y/summarize.js +0 -4
- package/lib/cjs/a11y/summarize.js.map +1 -1
- package/lib/cjs/a11y/translations/module/__intergalactic-dynamic-locales.js +0 -13
- package/lib/cjs/a11y/translations/module/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/cjs/a11y/translations/view/__intergalactic-dynamic-locales.js +0 -13
- package/lib/cjs/a11y/translations/view/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/cjs/color.js +0 -3
- package/lib/cjs/color.js.map +1 -1
- package/lib/cjs/createElement.js +18 -47
- package/lib/cjs/createElement.js.map +1 -1
- package/lib/cjs/index.js +0 -23
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types/Plot.d.js.map +1 -1
- package/lib/cjs/types/index.d.js +0 -39
- package/lib/cjs/types/index.d.js.map +1 -1
- package/lib/cjs/utils.js +7 -59
- package/lib/cjs/utils.js.map +1 -1
- package/lib/es6/Area.js +59 -86
- package/lib/es6/Area.js.map +1 -1
- package/lib/es6/Axis.js +76 -135
- package/lib/es6/Axis.js.map +1 -1
- package/lib/es6/Bar.js +49 -86
- package/lib/es6/Bar.js.map +1 -1
- package/lib/es6/Bubble.js +39 -70
- package/lib/es6/Bubble.js.map +1 -1
- package/lib/es6/ClipPath.js +9 -23
- package/lib/es6/ClipPath.js.map +1 -1
- package/lib/es6/Donut.js +77 -141
- package/lib/es6/Donut.js.map +1 -1
- package/lib/es6/Dots.js +29 -46
- package/lib/es6/Dots.js.map +1 -1
- package/lib/es6/GroupBar.js +5 -15
- package/lib/es6/GroupBar.js.map +1 -1
- package/lib/es6/HorizontalBar.js +43 -75
- package/lib/es6/HorizontalBar.js.map +1 -1
- package/lib/es6/Hover.js +33 -85
- package/lib/es6/Hover.js.map +1 -1
- package/lib/es6/Line.js +42 -67
- package/lib/es6/Line.js.map +1 -1
- package/lib/es6/Plot.js +27 -66
- package/lib/es6/Plot.js.map +1 -1
- package/lib/es6/Radar.js +152 -281
- package/lib/es6/Radar.js.map +1 -1
- package/lib/es6/RadialTree.js +105 -203
- package/lib/es6/RadialTree.js.map +1 -1
- package/lib/es6/ReferenceLine.js +45 -79
- package/lib/es6/ReferenceLine.js.map +1 -1
- package/lib/es6/ResponsiveContainer.js +9 -28
- package/lib/es6/ResponsiveContainer.js.map +1 -1
- package/lib/es6/ScatterPlot.js +34 -65
- package/lib/es6/ScatterPlot.js.map +1 -1
- package/lib/es6/StackBar.js +9 -26
- package/lib/es6/StackBar.js.map +1 -1
- package/lib/es6/StackedArea.js +5 -18
- package/lib/es6/StackedArea.js.map +1 -1
- package/lib/es6/Tooltip.js +27 -63
- package/lib/es6/Tooltip.js.map +1 -1
- package/lib/es6/Venn.js +32 -64
- package/lib/es6/Venn.js.map +1 -1
- package/lib/es6/a11y/PlotA11yModule.js +18 -52
- package/lib/es6/a11y/PlotA11yModule.js.map +1 -1
- package/lib/es6/a11y/PlotA11yView.js +19 -53
- package/lib/es6/a11y/PlotA11yView.js.map +1 -1
- package/lib/es6/a11y/bezier.js +0 -5
- package/lib/es6/a11y/bezier.js.map +1 -1
- package/lib/es6/a11y/focus.js +2 -9
- package/lib/es6/a11y/focus.js.map +1 -1
- package/lib/es6/a11y/hints.js +0 -3
- package/lib/es6/a11y/hints.js.map +1 -1
- package/lib/es6/a11y/insights.js +21 -133
- package/lib/es6/a11y/insights.js.map +1 -1
- package/lib/es6/a11y/intl.js +0 -1
- package/lib/es6/a11y/intl.js.map +1 -1
- package/lib/es6/a11y/locale.js +4 -18
- package/lib/es6/a11y/locale.js.map +1 -1
- package/lib/es6/a11y/serialize.js +23 -74
- package/lib/es6/a11y/serialize.js.map +1 -1
- package/lib/es6/a11y/summarize.js.map +1 -1
- package/lib/es6/a11y/translations/module/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/es6/a11y/translations/view/__intergalactic-dynamic-locales.js.map +1 -1
- package/lib/es6/color.js +0 -1
- package/lib/es6/color.js.map +1 -1
- package/lib/es6/createElement.js +18 -34
- package/lib/es6/createElement.js.map +1 -1
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/types/Plot.d.js.map +1 -1
- package/lib/es6/types/index.d.js +5 -3
- package/lib/es6/types/index.d.js.map +1 -1
- package/lib/es6/utils.js +7 -28
- package/lib/es6/utils.js.map +1 -1
- package/package.json +1 -1
package/lib/cjs/a11y/insights.js
CHANGED
|
@@ -1,40 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.extractDataInsights = void 0;
|
|
9
|
-
|
|
10
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
10
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
15
|
-
|
|
16
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
-
|
|
18
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
19
|
-
|
|
20
13
|
var _bezier = require("./bezier");
|
|
21
|
-
|
|
22
14
|
var getPropByPath = function getPropByPath(obj, path) {
|
|
23
15
|
if (typeof path === 'number') path = String(path);
|
|
24
16
|
if (typeof path === 'string') path = path.split('.');
|
|
25
|
-
|
|
26
17
|
for (var i = 0; i < path.length; i++) {
|
|
27
18
|
if ((0, _typeof2["default"])(obj) !== 'object' || obj === null) return obj;
|
|
28
19
|
obj = obj[path[i]];
|
|
29
20
|
}
|
|
30
|
-
|
|
31
21
|
return obj;
|
|
32
22
|
};
|
|
33
|
-
|
|
34
23
|
var movingAverage = function movingAverage(data, frame) {
|
|
35
24
|
var result = [];
|
|
36
25
|
frame = Math.floor(frame) % 2 === data.length % 2 ? Math.floor(frame) : Math.ceil(frame);
|
|
37
|
-
|
|
38
26
|
for (var i = 0; i < data.length; i++) {
|
|
39
27
|
var startIndex = Math.max(0, i - Math.floor(frame / 2));
|
|
40
28
|
var endIndex = Math.min(data.length, i + Math.ceil(frame / 2));
|
|
@@ -47,13 +35,10 @@ var movingAverage = function movingAverage(data, frame) {
|
|
|
47
35
|
var value = sum / part.length;
|
|
48
36
|
result.push(value);
|
|
49
37
|
}
|
|
50
|
-
|
|
51
38
|
return result;
|
|
52
39
|
};
|
|
53
|
-
|
|
54
40
|
var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
55
41
|
var _config$dataType, _hints$axesTitle$vert, _ref;
|
|
56
|
-
|
|
57
42
|
var insights = [];
|
|
58
43
|
var dataType = (_config$dataType = config.dataType) !== null && _config$dataType !== void 0 ? _config$dataType : hints.dataType;
|
|
59
44
|
var dataRange = [];
|
|
@@ -63,7 +48,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
63
48
|
var keysMap = Object.fromEntries(Object.keys((_ref = Array.isArray(data) ? data[0] : data) !== null && _ref !== void 0 ? _ref : {}).map(function (key) {
|
|
64
49
|
return [key, true];
|
|
65
50
|
}));
|
|
66
|
-
|
|
67
51
|
if (!dataType) {
|
|
68
52
|
if ((keysMap['y'] || keysMap['y1'] || keysMap['y2']) && keysMap['x'] && (keysMap['value'] || keysMap['label']) || hints.fields.horizontalAxes.size > 0 && hints.fields.verticalAxes.size > 0 && hints.fields.valueAxes.size > 0) {
|
|
69
53
|
dataType = 'points-cloud';
|
|
@@ -78,7 +62,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
78
62
|
});
|
|
79
63
|
return new Set(allData).size === allData.length;
|
|
80
64
|
});
|
|
81
|
-
|
|
82
65
|
if (possibleGroupKeys.length === 1) {
|
|
83
66
|
groupKeys = possibleGroupKeys;
|
|
84
67
|
dataType = 'grouped-values';
|
|
@@ -89,15 +72,12 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
89
72
|
dataType = 'values-set';
|
|
90
73
|
}
|
|
91
74
|
}
|
|
92
|
-
|
|
93
75
|
if (dataType === 'grouped-values' && groupKeys.length === 0) {
|
|
94
76
|
dataType = 'values-set';
|
|
95
77
|
}
|
|
96
|
-
|
|
97
78
|
if (Array.isArray(data)) {
|
|
98
79
|
if (dataType === 'time-series') {
|
|
99
80
|
var _ref2, _hints$titles$getHori, _hints$titles$getHori2, _hints$titles, _ref3, _hints$titles$getHori3, _hints$titles$getHori4, _hints$titles2;
|
|
100
|
-
|
|
101
81
|
var firstRow = data[0];
|
|
102
82
|
var lastRow = data[data.length - 1];
|
|
103
83
|
var possibleValueKeys = ['y', 'value'].concat((0, _toConsumableArray2["default"])(hints.fields.verticalAxes));
|
|
@@ -113,24 +93,19 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
113
93
|
var toKey = lastRow[labelsKey];
|
|
114
94
|
var from = (_ref2 = (_hints$titles$getHori = (_hints$titles$getHori2 = (_hints$titles = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori2 === void 0 ? void 0 : _hints$titles$getHori2.call(_hints$titles, fromKey)) !== null && _hints$titles$getHori !== void 0 ? _hints$titles$getHori : hints.titles.horizontalAxes[fromKey]) !== null && _ref2 !== void 0 ? _ref2 : fromKey;
|
|
115
95
|
var to = (_ref3 = (_hints$titles$getHori3 = (_hints$titles$getHori4 = (_hints$titles2 = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori4 === void 0 ? void 0 : _hints$titles$getHori4.call(_hints$titles2, toKey)) !== null && _hints$titles$getHori3 !== void 0 ? _hints$titles$getHori3 : hints.titles.horizontalAxes[toKey]) !== null && _ref3 !== void 0 ? _ref3 : toKey;
|
|
116
|
-
|
|
117
96
|
if (entitiesCount > 0) {
|
|
118
97
|
var _hints$axesTitle$vert2;
|
|
119
|
-
|
|
120
98
|
dataRange.push({
|
|
121
99
|
from: from,
|
|
122
100
|
to: to,
|
|
123
101
|
label: (_hints$axesTitle$vert2 = hints.axesTitle.vertical) !== null && _hints$axesTitle$vert2 !== void 0 ? _hints$axesTitle$vert2 : labelsKey
|
|
124
102
|
});
|
|
125
103
|
}
|
|
126
|
-
|
|
127
104
|
var _iterator = (0, _createForOfIteratorHelper2["default"])(valuesKeys),
|
|
128
|
-
|
|
129
|
-
|
|
105
|
+
_step;
|
|
130
106
|
try {
|
|
131
107
|
var _loop = function _loop() {
|
|
132
108
|
var _config$movingAverage, _config$movingAverage2, _insights;
|
|
133
|
-
|
|
134
109
|
var valueKey = _step.value;
|
|
135
110
|
var values = data.map(function (row) {
|
|
136
111
|
return row[valueKey];
|
|
@@ -152,17 +127,14 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
152
127
|
var longMovingAverage = movingAverage(values, longMovingAverageSize);
|
|
153
128
|
var shortMovingAverage = values.length < 8 ? values : movingAverage(values, shortMovingAverageSize);
|
|
154
129
|
var table = [];
|
|
155
|
-
|
|
156
130
|
for (var i in values) {
|
|
157
131
|
var _values$i, _longMovingAverage$i, _shortMovingAverage$i;
|
|
158
|
-
|
|
159
132
|
table.push({
|
|
160
133
|
value: ((_values$i = values[i]) !== null && _values$i !== void 0 ? _values$i : NaN).toFixed(2),
|
|
161
134
|
"long": ((_longMovingAverage$i = longMovingAverage[i]) !== null && _longMovingAverage$i !== void 0 ? _longMovingAverage$i : NaN).toFixed(2),
|
|
162
135
|
"short": ((_shortMovingAverage$i = shortMovingAverage[i]) !== null && _shortMovingAverage$i !== void 0 ? _shortMovingAverage$i : NaN).toFixed(2)
|
|
163
136
|
});
|
|
164
137
|
}
|
|
165
|
-
|
|
166
138
|
var strengthsMap = {
|
|
167
139
|
growth: {
|
|
168
140
|
"static": 'static',
|
|
@@ -177,21 +149,17 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
177
149
|
strong: 'strong-reduction'
|
|
178
150
|
}
|
|
179
151
|
};
|
|
180
|
-
|
|
181
152
|
var recordTrend = function recordTrend(_ref4) {
|
|
182
153
|
var value = _ref4.value,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
154
|
+
width = _ref4.width,
|
|
155
|
+
label = _ref4.label,
|
|
156
|
+
type = _ref4.type;
|
|
187
157
|
for (var _i = 0; _i < trendStrengths.length; _i++) {
|
|
188
158
|
var _hints$pointsDensity$, _hints$pointsDensity, _hints$pointsDensity$2, _hints$pointsDensity2;
|
|
189
|
-
|
|
190
159
|
var normalizedHeight = Math.abs(value.from - value.to) / ((_hints$pointsDensity$ = (_hints$pointsDensity = hints.pointsDensity) === null || _hints$pointsDensity === void 0 ? void 0 : _hints$pointsDensity.verticalAxes) !== null && _hints$pointsDensity$ !== void 0 ? _hints$pointsDensity$ : 1);
|
|
191
160
|
var normalizedWidth = width / ((_hints$pointsDensity$2 = (_hints$pointsDensity2 = hints.pointsDensity) === null || _hints$pointsDensity2 === void 0 ? void 0 : _hints$pointsDensity2.horizontalAxes) !== null && _hints$pointsDensity$2 !== void 0 ? _hints$pointsDensity$2 : 1);
|
|
192
161
|
var tang = normalizedHeight / normalizedWidth;
|
|
193
162
|
var trendStrength = trendStrengths[_i];
|
|
194
|
-
|
|
195
163
|
if (tang <= config.trendTangens[trendStrength] || _i === trendStrengths.length - 1) {
|
|
196
164
|
var strength = value.to > value.from ? strengthsMap.growth[trendStrength] : strengthsMap.reduction[trendStrength];
|
|
197
165
|
return {
|
|
@@ -209,7 +177,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
209
177
|
}
|
|
210
178
|
}
|
|
211
179
|
};
|
|
212
|
-
|
|
213
180
|
var generalTrend = recordTrend({
|
|
214
181
|
type: 'general-trend',
|
|
215
182
|
value: {
|
|
@@ -226,15 +193,12 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
226
193
|
var localTrends = [];
|
|
227
194
|
{
|
|
228
195
|
var _config$movingAverage3;
|
|
229
|
-
|
|
230
196
|
var notableDiff = (_config$movingAverage3 = config.movingAverage.notableDiff) !== null && _config$movingAverage3 !== void 0 ? _config$movingAverage3 : standardDeviation / 10;
|
|
231
197
|
var lastSwitch = 0;
|
|
232
198
|
var lastSwitchValue = shortMovingAverage[lastSwitch];
|
|
233
199
|
var shortWasAbove = shortMovingAverage[0] > longMovingAverage[0];
|
|
234
|
-
|
|
235
200
|
for (var _i2 = 1; _i2 < data.length; _i2++) {
|
|
236
201
|
var _ref5, _hints$titles$getHori5, _hints$titles$getHori6, _hints$titles3, _ref6, _hints$titles$getHori7, _hints$titles$getHori8, _hints$titles4;
|
|
237
|
-
|
|
238
202
|
var shortIsAbove = shortMovingAverage[_i2] > longMovingAverage[_i2];
|
|
239
203
|
var diff = Math.abs(shortMovingAverage[_i2] - longMovingAverage[_i2]);
|
|
240
204
|
if (shortIsAbove === shortWasAbove) continue;
|
|
@@ -244,11 +208,8 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
244
208
|
_i2 = Math.min(_i2, data.length - 1);
|
|
245
209
|
var _fromKey = data[lastSwitch][labelsKey];
|
|
246
210
|
var _toKey = data[_i2][labelsKey];
|
|
247
|
-
|
|
248
211
|
var _from = (_ref5 = (_hints$titles$getHori5 = (_hints$titles$getHori6 = (_hints$titles3 = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori6 === void 0 ? void 0 : _hints$titles$getHori6.call(_hints$titles3, _fromKey)) !== null && _hints$titles$getHori5 !== void 0 ? _hints$titles$getHori5 : hints.titles.horizontalAxes[_fromKey]) !== null && _ref5 !== void 0 ? _ref5 : _fromKey;
|
|
249
|
-
|
|
250
212
|
var _to = (_ref6 = (_hints$titles$getHori7 = (_hints$titles$getHori8 = (_hints$titles4 = hints.titles).getHorizontalAxesTitle) === null || _hints$titles$getHori8 === void 0 ? void 0 : _hints$titles$getHori8.call(_hints$titles4, _toKey)) !== null && _hints$titles$getHori7 !== void 0 ? _hints$titles$getHori7 : hints.titles.horizontalAxes[_toKey]) !== null && _ref6 !== void 0 ? _ref6 : _toKey;
|
|
251
|
-
|
|
252
213
|
localTrends.push(recordTrend({
|
|
253
214
|
type: 'trend',
|
|
254
215
|
value: {
|
|
@@ -266,11 +227,9 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
266
227
|
lastSwitchValue = shortMovingAverage[lastSwitch];
|
|
267
228
|
shortWasAbove = shortIsAbove;
|
|
268
229
|
}
|
|
269
|
-
|
|
270
230
|
if (lastSwitch !== 0) {
|
|
271
231
|
var lastIndex = shortMovingAverage.length - 1;
|
|
272
232
|
var lastValue = shortMovingAverage[lastIndex];
|
|
273
|
-
|
|
274
233
|
if (Math.abs(lastSwitchValue - lastValue) > notableDiff) {
|
|
275
234
|
localTrends.push(recordTrend({
|
|
276
235
|
type: 'trend',
|
|
@@ -289,10 +248,8 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
289
248
|
}
|
|
290
249
|
}
|
|
291
250
|
insights.push(generalTrend);
|
|
292
|
-
|
|
293
251
|
(_insights = insights).push.apply(_insights, localTrends);
|
|
294
252
|
};
|
|
295
|
-
|
|
296
253
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
297
254
|
_loop();
|
|
298
255
|
}
|
|
@@ -303,7 +260,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
303
260
|
}
|
|
304
261
|
} else if (dataType === 'points-cloud') {
|
|
305
262
|
var _ref7, _config$clustersGridS, _relativeSizeDistrivu, _insights2;
|
|
306
|
-
|
|
307
263
|
var guessedXKey = [].concat((0, _toConsumableArray2["default"])(hints.fields.horizontalAxes.values()), ['x'])[0];
|
|
308
264
|
var guessedYKey = [].concat((0, _toConsumableArray2["default"])(hints.fields.verticalAxes.values()), ['y'])[0];
|
|
309
265
|
var guessedValueKey = [].concat((0, _toConsumableArray2["default"])(hints.fields.valueAxes.values()), ['value'])[0];
|
|
@@ -317,19 +273,16 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
317
273
|
};
|
|
318
274
|
});
|
|
319
275
|
var gridSize = (_ref7 = (_config$clustersGridS = config.clustersGridSize) !== null && _config$clustersGridS !== void 0 ? _config$clustersGridS : hints.grid.verticalAxes) !== null && _ref7 !== void 0 ? _ref7 : hints.grid.horizontalAxes;
|
|
320
|
-
|
|
321
276
|
if (!gridSize) {
|
|
322
277
|
var usedX = new Set();
|
|
323
278
|
var usedY = new Set();
|
|
324
|
-
|
|
325
279
|
var _iterator2 = (0, _createForOfIteratorHelper2["default"])(normalized),
|
|
326
|
-
|
|
327
|
-
|
|
280
|
+
_step2;
|
|
328
281
|
try {
|
|
329
282
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
330
283
|
var _step2$value = _step2.value,
|
|
331
|
-
|
|
332
|
-
|
|
284
|
+
_x = _step2$value.x,
|
|
285
|
+
_y = _step2$value.y;
|
|
333
286
|
usedX.add(_x);
|
|
334
287
|
usedY.add(_y);
|
|
335
288
|
}
|
|
@@ -338,7 +291,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
338
291
|
} finally {
|
|
339
292
|
_iterator2.f();
|
|
340
293
|
}
|
|
341
|
-
|
|
342
294
|
var orderedX = (0, _toConsumableArray2["default"])(usedX).sort(function (a, b) {
|
|
343
295
|
return a - b;
|
|
344
296
|
});
|
|
@@ -370,7 +322,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
370
322
|
return sum + y;
|
|
371
323
|
}, 0) / belowAvgDistancesY.length;
|
|
372
324
|
var avgDistance = 0;
|
|
373
|
-
|
|
374
325
|
if (!Number.isNaN(betweenDistanceX) && !Number.isNaN(betweenDistanceY)) {
|
|
375
326
|
avgDistance = (betweenDistanceX + betweenDistanceY) / 2;
|
|
376
327
|
} else if (!Number.isNaN(betweenDistanceX)) {
|
|
@@ -380,20 +331,16 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
380
331
|
} else {
|
|
381
332
|
avgDistance = (avgDistanceX + avgDistanceY) / 2;
|
|
382
333
|
}
|
|
383
|
-
|
|
384
334
|
gridSize = Math.sqrt(Math.sqrt(avgDistance));
|
|
385
335
|
}
|
|
386
|
-
|
|
387
336
|
var grid = {};
|
|
388
337
|
var takenY = new Set();
|
|
389
338
|
var takenX = new Set();
|
|
390
|
-
|
|
391
339
|
for (var i = 0; i < normalized.length; i++) {
|
|
392
340
|
var _grid$gridX, _grid$gridX$gridY;
|
|
393
|
-
|
|
394
341
|
var _normalized$i = normalized[i],
|
|
395
|
-
|
|
396
|
-
|
|
342
|
+
_x2 = _normalized$i.x,
|
|
343
|
+
_y2 = _normalized$i.y;
|
|
397
344
|
var gridX = Math.round(_x2 / gridSize);
|
|
398
345
|
var gridY = Math.round(_y2 / gridSize);
|
|
399
346
|
takenY.add(_y2);
|
|
@@ -405,36 +352,27 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
405
352
|
};
|
|
406
353
|
grid[gridX][gridY].members.push(normalized[i]);
|
|
407
354
|
}
|
|
408
|
-
|
|
409
355
|
var clusters = {};
|
|
410
|
-
|
|
411
356
|
var _iterator3 = (0, _createForOfIteratorHelper2["default"])(Object.keys(grid).map(function (x) {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
357
|
+
return parseInt(x, 10);
|
|
358
|
+
})),
|
|
359
|
+
_step3;
|
|
416
360
|
try {
|
|
417
361
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
418
362
|
var _x4 = _step3.value;
|
|
419
|
-
|
|
420
363
|
var _iterator4 = (0, _createForOfIteratorHelper2["default"])(Object.keys(grid[_x4]).map(function (y) {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
364
|
+
return parseInt(y, 10);
|
|
365
|
+
})),
|
|
366
|
+
_step4;
|
|
425
367
|
try {
|
|
426
368
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
427
369
|
var _clusters$grid$_x4$_y, _clusters$grid$_x4$_y2;
|
|
428
|
-
|
|
429
370
|
var _y4 = _step4.value;
|
|
430
371
|
var pointHandled = false;
|
|
431
|
-
|
|
432
372
|
for (var _i4 = 0, _arr = [_x4 - 1, _x4, _x4 + 1]; _i4 < _arr.length; _i4++) {
|
|
433
373
|
var xNeighbour = _arr[_i4];
|
|
434
|
-
|
|
435
374
|
for (var _i5 = 0, _arr2 = [_y4 - 1, _y4, _y4 + 1]; _i5 < _arr2.length; _i5++) {
|
|
436
375
|
var _grid$xNeighbour;
|
|
437
|
-
|
|
438
376
|
var yNeighbour = _arr2[_i5];
|
|
439
377
|
if (xNeighbour === undefined || yNeighbour === undefined) continue;
|
|
440
378
|
if (xNeighbour === _x4 && yNeighbour === _y4) continue;
|
|
@@ -443,12 +381,9 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
443
381
|
grid[_x4][_y4].clusterId = grid[xNeighbour][yNeighbour].clusterId;
|
|
444
382
|
break;
|
|
445
383
|
}
|
|
446
|
-
|
|
447
384
|
if (pointHandled) break;
|
|
448
385
|
}
|
|
449
|
-
|
|
450
386
|
clusters[grid[_x4][_y4].clusterId] = (_clusters$grid$_x4$_y = clusters[grid[_x4][_y4].clusterId]) !== null && _clusters$grid$_x4$_y !== void 0 ? _clusters$grid$_x4$_y : [];
|
|
451
|
-
|
|
452
387
|
(_clusters$grid$_x4$_y2 = clusters[grid[_x4][_y4].clusterId]).push.apply(_clusters$grid$_x4$_y2, (0, _toConsumableArray2["default"])(grid[_x4][_y4].members));
|
|
453
388
|
}
|
|
454
389
|
} catch (err) {
|
|
@@ -462,17 +397,13 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
462
397
|
} finally {
|
|
463
398
|
_iterator3.f();
|
|
464
399
|
}
|
|
465
|
-
|
|
466
400
|
var clustersInsights = [];
|
|
467
|
-
|
|
468
401
|
for (var _clusterId in clusters) {
|
|
469
402
|
var _hints$axesTitle$hori, _hints$axesTitle$vert3;
|
|
470
|
-
|
|
471
403
|
var size = clusters[_clusterId].reduce(function (sum, _ref8) {
|
|
472
404
|
var value = _ref8.value;
|
|
473
405
|
return sum + (value !== null && value !== void 0 ? value : 1);
|
|
474
406
|
}, 0);
|
|
475
|
-
|
|
476
407
|
var labels = (0, _toConsumableArray2["default"])(clusters[_clusterId]).sort(function (a, b) {
|
|
477
408
|
return b.value - a.value;
|
|
478
409
|
}).map(function (_ref9) {
|
|
@@ -482,17 +413,14 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
482
413
|
return label !== undefined;
|
|
483
414
|
});
|
|
484
415
|
var uniqueLabels = (0, _toConsumableArray2["default"])(new Set(labels));
|
|
485
|
-
|
|
486
416
|
var _x3 = clusters[_clusterId].reduce(function (sum, _ref10) {
|
|
487
417
|
var x = _ref10.x;
|
|
488
418
|
return sum + x;
|
|
489
419
|
}, 0) / clusters[_clusterId].length;
|
|
490
|
-
|
|
491
420
|
var _y3 = clusters[_clusterId].reduce(function (sum, _ref11) {
|
|
492
421
|
var y = _ref11.y;
|
|
493
422
|
return sum + y;
|
|
494
423
|
}, 0) / clusters[_clusterId].length;
|
|
495
|
-
|
|
496
424
|
clustersInsights.push({
|
|
497
425
|
type: 'cluster',
|
|
498
426
|
priority: 1,
|
|
@@ -507,7 +435,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
507
435
|
}
|
|
508
436
|
});
|
|
509
437
|
}
|
|
510
|
-
|
|
511
438
|
entitiesCount = Object.keys(clusters).length;
|
|
512
439
|
clustersInsights.sort(function (a, b) {
|
|
513
440
|
return b.size - a.size;
|
|
@@ -577,26 +504,21 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
577
504
|
width: 1,
|
|
578
505
|
height: 1
|
|
579
506
|
});
|
|
580
|
-
|
|
581
507
|
for (var _i3 = 0, _clustersInsights = clustersInsights; _i3 < _clustersInsights.length; _i3++) {
|
|
582
508
|
var clustersInsight = _clustersInsights[_i3];
|
|
583
509
|
var _size = clustersInsight.size;
|
|
584
510
|
var mappedSize = sizeMapBezier(_size / normalizingSize);
|
|
585
|
-
|
|
586
511
|
for (var relativeSize in relativeSizeDistrivution) {
|
|
587
512
|
var _relativeSizeDistrivu2 = relativeSizeDistrivution[relativeSize],
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
513
|
+
min = _relativeSizeDistrivu2.min,
|
|
514
|
+
max = _relativeSizeDistrivu2.max;
|
|
591
515
|
if (mappedSize > min && mappedSize <= max) {
|
|
592
516
|
clustersInsight.relativeSize = relativeSize;
|
|
593
517
|
break;
|
|
594
518
|
}
|
|
595
519
|
}
|
|
596
520
|
}
|
|
597
|
-
|
|
598
521
|
(_insights2 = insights).push.apply(_insights2, clustersInsights);
|
|
599
|
-
|
|
600
522
|
if (hints.axesTitle.horizontal) {
|
|
601
523
|
var sortedX = (0, _toConsumableArray2["default"])(takenX).sort(function (a, b) {
|
|
602
524
|
return a - b;
|
|
@@ -607,7 +529,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
607
529
|
label: hints.axesTitle.horizontal
|
|
608
530
|
});
|
|
609
531
|
}
|
|
610
|
-
|
|
611
532
|
if (hints.axesTitle.vertical) {
|
|
612
533
|
var sortedY = (0, _toConsumableArray2["default"])(takenY).sort(function (a, b) {
|
|
613
534
|
return a - b;
|
|
@@ -620,19 +541,15 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
620
541
|
}
|
|
621
542
|
} else if (dataType === 'grouped-values') {
|
|
622
543
|
var _insights3;
|
|
623
|
-
|
|
624
544
|
var makeRowKey = function makeRowKey(row) {
|
|
625
545
|
return groupKeys.map(function (key, index) {
|
|
626
546
|
return "".concat(index, "-").concat(getPropByPath(row, key));
|
|
627
547
|
}).join('-');
|
|
628
548
|
};
|
|
629
|
-
|
|
630
549
|
var allRowsIds = data.map(makeRowKey);
|
|
631
550
|
var groupedValues = {};
|
|
632
|
-
|
|
633
551
|
for (var _i6 = 0; _i6 < data.length; _i6++) {
|
|
634
552
|
var _groupedValues$key;
|
|
635
|
-
|
|
636
553
|
var row = data[_i6];
|
|
637
554
|
var key = allRowsIds[_i6];
|
|
638
555
|
groupedValues[key] = (_groupedValues$key = groupedValues[key]) !== null && _groupedValues$key !== void 0 ? _groupedValues$key : {
|
|
@@ -641,44 +558,33 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
641
558
|
};
|
|
642
559
|
groupedValues[key].rows.push(row);
|
|
643
560
|
}
|
|
644
|
-
|
|
645
561
|
var fields = (0, _toConsumableArray2["default"])(hints.fields.values);
|
|
646
562
|
var grouppingKeys = Object.fromEntries(groupKeys.map(function (key) {
|
|
647
563
|
return [key, true];
|
|
648
564
|
}));
|
|
649
|
-
|
|
650
565
|
if (fields.length === 0) {
|
|
651
566
|
var _fields;
|
|
652
|
-
|
|
653
567
|
(_fields = fields).push.apply(_fields, (0, _toConsumableArray2["default"])(Object.keys(keysMap)));
|
|
654
568
|
}
|
|
655
|
-
|
|
656
569
|
fields = fields.filter(function (key) {
|
|
657
570
|
return !grouppingKeys[key];
|
|
658
571
|
});
|
|
659
572
|
var groups = Object.entries(groupedValues).map(function (_ref12) {
|
|
660
573
|
var _group$groupName;
|
|
661
|
-
|
|
662
574
|
var _ref13 = (0, _slicedToArray2["default"])(_ref12, 2),
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
575
|
+
groupKey = _ref13[0],
|
|
576
|
+
group = _ref13[1];
|
|
666
577
|
var values = [];
|
|
667
|
-
|
|
668
578
|
var _iterator5 = (0, _createForOfIteratorHelper2["default"])(group.rows),
|
|
669
|
-
|
|
670
|
-
|
|
579
|
+
_step5;
|
|
671
580
|
try {
|
|
672
581
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
673
582
|
var _row = _step5.value;
|
|
674
|
-
|
|
675
583
|
var _iterator6 = (0, _createForOfIteratorHelper2["default"])(fields),
|
|
676
|
-
|
|
677
|
-
|
|
584
|
+
_step6;
|
|
678
585
|
try {
|
|
679
586
|
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
680
587
|
var _ref15, _hints$titles$getVert, _hints$titles$getVert2, _hints$titles5;
|
|
681
|
-
|
|
682
588
|
var field = _step6.value;
|
|
683
589
|
values.push({
|
|
684
590
|
label: (_ref15 = (_hints$titles$getVert = (_hints$titles$getVert2 = (_hints$titles5 = hints.titles).getVerticalAxesTitle) === null || _hints$titles$getVert2 === void 0 ? void 0 : _hints$titles$getVert2.call(_hints$titles5, field)) !== null && _hints$titles$getVert !== void 0 ? _hints$titles$getVert : hints.titles.valuesAxes[field]) !== null && _ref15 !== void 0 ? _ref15 : field,
|
|
@@ -696,7 +602,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
696
602
|
} finally {
|
|
697
603
|
_iterator5.f();
|
|
698
604
|
}
|
|
699
|
-
|
|
700
605
|
values.sort(function (a, b) {
|
|
701
606
|
if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;
|
|
702
607
|
return b.value - a.value;
|
|
@@ -716,7 +621,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
716
621
|
return b.averageValue - a.averageValue;
|
|
717
622
|
});
|
|
718
623
|
entitiesCount = groups.length;
|
|
719
|
-
|
|
720
624
|
(_insights3 = insights).push.apply(_insights3, (0, _toConsumableArray2["default"])(groups.map(function (group) {
|
|
721
625
|
return {
|
|
722
626
|
type: 'comparison',
|
|
@@ -727,23 +631,18 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
727
631
|
})));
|
|
728
632
|
}
|
|
729
633
|
}
|
|
730
|
-
|
|
731
634
|
if (dataType === 'values-set') {
|
|
732
635
|
var _fields2 = (0, _toConsumableArray2["default"])(hints.fields.values);
|
|
733
|
-
|
|
734
636
|
if (_fields2.length === 0) {
|
|
735
637
|
_fields2.push.apply(_fields2, (0, _toConsumableArray2["default"])(Object.keys(keysMap)));
|
|
736
638
|
}
|
|
737
|
-
|
|
738
639
|
var values = _fields2.map(function (field) {
|
|
739
640
|
var _ref16, _hints$titles$getValu, _hints$titles$getValu2, _hints$titles6;
|
|
740
|
-
|
|
741
641
|
return {
|
|
742
642
|
label: (_ref16 = (_hints$titles$getValu = (_hints$titles$getValu2 = (_hints$titles6 = hints.titles).getValueAxesTitle) === null || _hints$titles$getValu2 === void 0 ? void 0 : _hints$titles$getValu2.call(_hints$titles6, field)) !== null && _hints$titles$getValu !== void 0 ? _hints$titles$getValu : hints.titles.valuesAxes[field]) !== null && _ref16 !== void 0 ? _ref16 : field,
|
|
743
643
|
value: getPropByPath(data, field)
|
|
744
644
|
};
|
|
745
645
|
});
|
|
746
|
-
|
|
747
646
|
entitiesCount = values.length;
|
|
748
647
|
values.sort(function (a, b) {
|
|
749
648
|
if (typeof a.value !== 'number' || typeof b.value !== 'number') return 0;
|
|
@@ -755,13 +654,10 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
755
654
|
priority: 1
|
|
756
655
|
});
|
|
757
656
|
}
|
|
758
|
-
|
|
759
657
|
if (dataType === 'indexed-groups') {
|
|
760
658
|
var _insights4;
|
|
761
|
-
|
|
762
659
|
var _groups = (0, _toConsumableArray2["default"])(hints.groups).map(function (groupKey) {
|
|
763
660
|
var _getPropByPath;
|
|
764
|
-
|
|
765
661
|
var values = (0, _toConsumableArray2["default"])(hints.fields.values).filter(function (fieldPath) {
|
|
766
662
|
return String(fieldPath).startsWith("".concat(groupKey, "."));
|
|
767
663
|
}).map(function (fieldPath) {
|
|
@@ -784,14 +680,11 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
784
680
|
averageValue: !Number.isNaN(averageValue) ? averageValue : undefined
|
|
785
681
|
};
|
|
786
682
|
});
|
|
787
|
-
|
|
788
683
|
_groups.sort(function (a, b) {
|
|
789
684
|
if (typeof a.averageValue !== 'number' || typeof b.averageValue !== 'number') return 0;
|
|
790
685
|
return b.averageValue - a.averageValue;
|
|
791
686
|
});
|
|
792
|
-
|
|
793
687
|
entitiesCount = _groups.length;
|
|
794
|
-
|
|
795
688
|
(_insights4 = insights).push.apply(_insights4, (0, _toConsumableArray2["default"])(_groups.map(function (group) {
|
|
796
689
|
return {
|
|
797
690
|
type: 'comparison',
|
|
@@ -801,11 +694,9 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
801
694
|
};
|
|
802
695
|
})));
|
|
803
696
|
}
|
|
804
|
-
|
|
805
697
|
var hasHighPriorityInsights = insights.some(function (insight) {
|
|
806
698
|
return insight.priority > 0;
|
|
807
699
|
});
|
|
808
|
-
|
|
809
700
|
if (hasHighPriorityInsights) {
|
|
810
701
|
insights = insights.filter(function (insight) {
|
|
811
702
|
return insight.priority > 0;
|
|
@@ -813,7 +704,6 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
813
704
|
} else {
|
|
814
705
|
insights = insights.slice(0, 1);
|
|
815
706
|
}
|
|
816
|
-
|
|
817
707
|
return {
|
|
818
708
|
insights: insights,
|
|
819
709
|
dataType: dataType,
|
|
@@ -822,6 +712,5 @@ var extractDataInsights = function extractDataInsights(data, hints, config) {
|
|
|
822
712
|
entitiesCount: entitiesCount
|
|
823
713
|
};
|
|
824
714
|
};
|
|
825
|
-
|
|
826
715
|
exports.extractDataInsights = extractDataInsights;
|
|
827
716
|
//# sourceMappingURL=insights.js.map
|