@semcore/d3-chart 2.13.4 → 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 +6 -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/utils.js
CHANGED
|
@@ -1,84 +1,61 @@
|
|
|
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.uniqueId = exports.scaleOfBandwidth = exports.roundedPath = exports.minMax = exports.memoize = exports.measureText = exports.invert = exports.getNullData = exports.getIndexFromData = exports.getBandwidth = exports.eventToPoint = exports.definedNullData = exports.definedData = exports.CONSTANT = void 0;
|
|
9
|
-
|
|
10
8
|
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
|
|
11
|
-
|
|
12
9
|
var _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
-
|
|
14
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
11
|
var _d3Array = require("d3-array");
|
|
17
|
-
|
|
18
12
|
var _d3Scale = require("d3-scale");
|
|
19
|
-
|
|
20
13
|
var CONSTANT = {
|
|
21
14
|
VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT')
|
|
22
15
|
};
|
|
23
16
|
exports.CONSTANT = CONSTANT;
|
|
24
|
-
|
|
25
17
|
var eventToPoint = function eventToPoint(event, svgRoot) {
|
|
26
18
|
var node = event.currentTarget || event.target;
|
|
27
19
|
var rect = svgRoot.getBoundingClientRect();
|
|
28
20
|
return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
|
|
29
21
|
};
|
|
30
|
-
|
|
31
22
|
exports.eventToPoint = eventToPoint;
|
|
32
|
-
|
|
33
23
|
var invert = function invert(scale, value) {
|
|
34
24
|
if ('invert' in scale && scale.invert) return scale.invert(value);
|
|
35
25
|
var range = scale.range();
|
|
36
26
|
var domain = scale.domain();
|
|
37
|
-
|
|
38
27
|
if ('paddingOuter' in scale) {
|
|
39
28
|
range[0] += scale.paddingOuter() * scale.step();
|
|
40
29
|
range[1] -= scale.paddingOuter() * scale.step();
|
|
41
30
|
}
|
|
42
|
-
|
|
43
31
|
return (0, _d3Scale.scaleQuantize)().domain(range[0] <= range[1] ? range : range.slice().reverse()).range(range[0] <= range[1] ? domain : domain.slice().reverse())(value);
|
|
44
32
|
};
|
|
45
|
-
|
|
46
33
|
exports.invert = invert;
|
|
47
|
-
|
|
48
34
|
var definedNullData = function definedNullData(x, y) {
|
|
49
35
|
return function (plot) {
|
|
50
36
|
return plot[x] !== null && plot[y] !== null;
|
|
51
37
|
};
|
|
52
38
|
};
|
|
53
|
-
|
|
54
39
|
exports.definedNullData = definedNullData;
|
|
55
|
-
|
|
56
40
|
var definedData = function definedData(x, y) {
|
|
57
41
|
return function (plot) {
|
|
58
42
|
return plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;
|
|
59
43
|
};
|
|
60
44
|
};
|
|
61
|
-
|
|
62
45
|
exports.definedData = definedData;
|
|
63
|
-
|
|
64
46
|
var scaleOfBandwidth = function scaleOfBandwidth(scale, value) {
|
|
65
47
|
return scale.bandwidth ? scale(value) + scale.bandwidth() / 2 : scale(value);
|
|
66
48
|
};
|
|
67
|
-
|
|
68
49
|
exports.scaleOfBandwidth = scaleOfBandwidth;
|
|
69
|
-
|
|
70
50
|
var minMax = function minMax(data, key) {
|
|
71
51
|
if (typeof key === 'string') {
|
|
72
52
|
return (0, _d3Array.extent)(data, function (d) {
|
|
73
53
|
return d[key];
|
|
74
54
|
});
|
|
75
55
|
}
|
|
76
|
-
|
|
77
56
|
return (0, _d3Array.extent)(data, key);
|
|
78
57
|
};
|
|
79
|
-
|
|
80
58
|
exports.minMax = minMax;
|
|
81
|
-
|
|
82
59
|
var getNullData = function getNullData(data, defined, name) {
|
|
83
60
|
return data.reduce(function (acc, d, i, data) {
|
|
84
61
|
if (defined(d)) {
|
|
@@ -86,34 +63,29 @@ var getNullData = function getNullData(data, defined, name) {
|
|
|
86
63
|
} else {
|
|
87
64
|
var prev = data[i - 1];
|
|
88
65
|
var next = data[i + 1];
|
|
89
|
-
|
|
90
66
|
if (i === 0) {
|
|
91
67
|
var defNext = data.find(defined);
|
|
92
68
|
acc.push((0, _objectSpread4["default"])((0, _objectSpread4["default"])({}, d), {}, (0, _defineProperty2["default"])({}, name, defNext ? defNext[name] : null)));
|
|
93
|
-
}
|
|
94
|
-
|
|
69
|
+
}
|
|
95
70
|
|
|
71
|
+
// prev
|
|
96
72
|
if (prev && defined(prev)) {
|
|
97
73
|
acc.push(prev);
|
|
98
|
-
}
|
|
99
|
-
|
|
74
|
+
}
|
|
100
75
|
|
|
76
|
+
// next
|
|
101
77
|
if (next && defined(next)) {
|
|
102
78
|
acc.push(next);
|
|
103
79
|
}
|
|
104
|
-
|
|
105
80
|
if (data.length - 1 === i) {
|
|
106
81
|
var defPrev = data.slice().reverse().find(defined);
|
|
107
82
|
acc.push((0, _objectSpread4["default"])((0, _objectSpread4["default"])({}, d), {}, (0, _defineProperty2["default"])({}, name, defPrev ? defPrev[name] : null)));
|
|
108
83
|
}
|
|
109
84
|
}
|
|
110
|
-
|
|
111
85
|
return acc;
|
|
112
86
|
}, []);
|
|
113
87
|
};
|
|
114
|
-
|
|
115
88
|
exports.getNullData = getNullData;
|
|
116
|
-
|
|
117
89
|
var getIndexFromData = function getIndexFromData(data, scale, key, value) {
|
|
118
90
|
// detect line chart
|
|
119
91
|
if ('invert' in scale && typeof scale.invert === 'function') {
|
|
@@ -121,7 +93,8 @@ var getIndexFromData = function getIndexFromData(data, scale, key, value) {
|
|
|
121
93
|
return d[key];
|
|
122
94
|
}).center;
|
|
123
95
|
return bisect(data, value);
|
|
124
|
-
}
|
|
96
|
+
}
|
|
97
|
+
// detect bar chart
|
|
125
98
|
else if ('step' in scale && typeof scale.step !== 'undefined') {
|
|
126
99
|
// console.log({ key, scale, value });
|
|
127
100
|
var index = data.findIndex(function (d) {
|
|
@@ -134,9 +107,7 @@ var getIndexFromData = function getIndexFromData(data, scale, key, value) {
|
|
|
134
107
|
return null;
|
|
135
108
|
}
|
|
136
109
|
};
|
|
137
|
-
|
|
138
110
|
exports.getIndexFromData = getIndexFromData;
|
|
139
|
-
|
|
140
111
|
var roundedPath = function roundedPath(x, y, w, h, r) {
|
|
141
112
|
var tl = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
142
113
|
var tr = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
|
|
@@ -144,88 +115,68 @@ var roundedPath = function roundedPath(x, y, w, h, r) {
|
|
|
144
115
|
var br = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;
|
|
145
116
|
var result = 'M' + (x + r) + ',' + y;
|
|
146
117
|
result += 'h' + (w - 2 * r);
|
|
147
|
-
|
|
148
118
|
if (tr) {
|
|
149
119
|
result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;
|
|
150
120
|
} else {
|
|
151
121
|
result += 'h' + r;
|
|
152
122
|
result += 'v' + r;
|
|
153
123
|
}
|
|
154
|
-
|
|
155
124
|
result += 'v' + (h - 2 * r);
|
|
156
|
-
|
|
157
125
|
if (br) {
|
|
158
126
|
result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;
|
|
159
127
|
} else {
|
|
160
128
|
result += 'v' + r;
|
|
161
129
|
result += 'h' + -r;
|
|
162
130
|
}
|
|
163
|
-
|
|
164
131
|
result += 'h' + (2 * r - w);
|
|
165
|
-
|
|
166
132
|
if (bl) {
|
|
167
133
|
result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;
|
|
168
134
|
} else {
|
|
169
135
|
result += 'h' + -r;
|
|
170
136
|
result += 'v' + -r;
|
|
171
137
|
}
|
|
172
|
-
|
|
173
138
|
result += 'v' + (2 * r - h);
|
|
174
|
-
|
|
175
139
|
if (tl) {
|
|
176
140
|
result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;
|
|
177
141
|
} else {
|
|
178
142
|
result += 'v' + -r;
|
|
179
143
|
result += 'h' + r;
|
|
180
144
|
}
|
|
181
|
-
|
|
182
145
|
result += 'z';
|
|
183
146
|
return result;
|
|
184
147
|
};
|
|
185
|
-
|
|
186
148
|
exports.roundedPath = roundedPath;
|
|
187
|
-
|
|
188
149
|
var getBandwidth = function getBandwidth(scale) {
|
|
189
150
|
if ('bandwidth' in scale) {
|
|
190
151
|
return scale.bandwidth();
|
|
191
152
|
}
|
|
192
|
-
|
|
193
153
|
var range = scale.range();
|
|
194
154
|
var domain = scale.domain();
|
|
195
155
|
return Math.abs(range[range.length - 1] - range[0]) / domain.length;
|
|
196
156
|
};
|
|
197
|
-
|
|
198
157
|
exports.getBandwidth = getBandwidth;
|
|
199
|
-
|
|
200
158
|
var memoize = function memoize(func) {
|
|
201
159
|
var results = {};
|
|
202
160
|
return function () {
|
|
203
161
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
204
162
|
args[_key] = arguments[_key];
|
|
205
163
|
}
|
|
206
|
-
|
|
207
164
|
var argsKey = args.join(',');
|
|
208
|
-
|
|
209
165
|
if (!results[argsKey]) {
|
|
210
166
|
results[argsKey] = func.apply(void 0, args);
|
|
211
167
|
}
|
|
212
|
-
|
|
213
168
|
return results[argsKey];
|
|
214
169
|
};
|
|
215
170
|
};
|
|
216
|
-
|
|
217
171
|
exports.memoize = memoize;
|
|
218
172
|
var measureText = memoize(function (text, fontSize) {
|
|
219
173
|
if (!text) return 0;
|
|
220
174
|
var span = document.createElement('span');
|
|
221
|
-
|
|
222
175
|
if (fontSize) {
|
|
223
176
|
span.style.fontSize = "".concat(fontSize, "px");
|
|
224
177
|
}
|
|
225
|
-
|
|
226
178
|
var _iterator = (0, _createForOfIteratorHelper2["default"])(text.split('\n')),
|
|
227
|
-
|
|
228
|
-
|
|
179
|
+
_step;
|
|
229
180
|
try {
|
|
230
181
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
231
182
|
var line = _step.value;
|
|
@@ -237,7 +188,6 @@ var measureText = memoize(function (text, fontSize) {
|
|
|
237
188
|
} finally {
|
|
238
189
|
_iterator.f();
|
|
239
190
|
}
|
|
240
|
-
|
|
241
191
|
span.style.display = 'inline-block';
|
|
242
192
|
document.body.append(span);
|
|
243
193
|
var textWidth = span.offsetWidth;
|
|
@@ -247,11 +197,9 @@ var measureText = memoize(function (text, fontSize) {
|
|
|
247
197
|
});
|
|
248
198
|
exports.measureText = measureText;
|
|
249
199
|
var idCounter = 0;
|
|
250
|
-
|
|
251
200
|
var uniqueId = function uniqueId() {
|
|
252
201
|
var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'id-';
|
|
253
202
|
return "".concat(prefix).concat(idCounter++);
|
|
254
203
|
};
|
|
255
|
-
|
|
256
204
|
exports.uniqueId = uniqueId;
|
|
257
205
|
//# sourceMappingURL=utils.js.map
|
package/lib/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["CONSTANT","VIRTUAL_ELEMENT","Symbol","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","scaleQuantize","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","extent","d","getNullData","defined","name","reduce","acc","i","push","prev","next","defNext","find","length","defPrev","getIndexFromData","bisect","bisector","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","args","argsKey","join","measureText","text","fontSize","span","document","createElement","style","split","line","append","createTextNode","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","max","idCounter","uniqueId","prefix"],"sources":["../../src/utils.ts"],"sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleBand<unknown>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends Iterable<{ [key in Key]: Numeric | null | undefined }> = Iterable<{\n [key in Key]: Numeric | null | undefined;\n }>,\n>(\n data: Data,\n key: Key,\n) => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Data extends {\n [key: string]: number;\n } = {},\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: string,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n // console.log({ key, scale, value });\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n // eslint-disable-next-line no-console\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = 'M' + (x + r) + ',' + y;\n result += 'h' + (w - 2 * r);\n if (tr) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;\n } else {\n result += 'h' + r;\n result += 'v' + r;\n }\n result += 'v' + (h - 2 * r);\n if (br) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;\n } else {\n result += 'v' + r;\n result += 'h' + -r;\n }\n result += 'h' + (2 * r - w);\n if (bl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;\n } else {\n result += 'h' + -r;\n result += 'v' + -r;\n }\n result += 'v' + (2 * r - h);\n if (tl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;\n } else {\n result += 'v' + -r;\n result += 'h' + r;\n }\n result += 'z';\n return result;\n};\n\nexport const getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_d3Array","require","_d3Scale","CONSTANT","VIRTUAL_ELEMENT","Symbol","exports","eventToPoint","event","svgRoot","node","currentTarget","target","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","invert","scale","value","range","domain","paddingOuter","step","scaleQuantize","slice","reverse","definedNullData","x","y","plot","definedData","undefined","scaleOfBandwidth","bandwidth","minMax","data","key","extent","d","getNullData","defined","name","reduce","acc","i","push","_defineProperty2","prev","next","defNext","find","_objectSpread4","length","defPrev","getIndexFromData","bisect","bisector","center","index","findIndex","console","warn","roundedPath","w","h","r","tl","arguments","tr","bl","br","result","getBandwidth","Math","abs","memoize","func","results","_len","args","Array","_key","argsKey","join","apply","measureText","text","fontSize","span","document","createElement","style","concat","_iterator","_createForOfIteratorHelper2","split","_step","s","n","done","line","append","createTextNode","err","e","f","display","body","textWidth","offsetWidth","textHeight","offsetHeight","remove","max","idCounter","uniqueId","prefix"],"sources":["../../src/utils.ts"],"sourcesContent":["import { extent, bisector, Numeric } from 'd3-array';\nimport {\n scaleQuantize,\n ScaleIdentity,\n ScaleTime,\n ScaleContinuousNumeric,\n ScaleBand,\n ScalePoint,\n NumberValue,\n} from 'd3-scale';\nimport React from 'react';\n\nconst CONSTANT = {\n VIRTUAL_ELEMENT: Symbol('VIRTUAL_ELEMENT'),\n} as const;\n\nexport { CONSTANT };\n\nexport const eventToPoint = (event: React.MouseEvent<HTMLElement>, svgRoot: SVGElement) => {\n const node = (event.currentTarget || event.target) as HTMLElement;\n const rect = svgRoot.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n};\n\ntype InvertableScale =\n | ScaleIdentity\n | ScaleBand<unknown>\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>;\nexport const invert = <Scale extends InvertableScale = InvertableScale>(\n scale: Scale,\n value: number,\n) => {\n if ('invert' in scale && scale.invert) return scale.invert(value);\n\n const range = scale.range() as [number, number];\n const domain = scale.domain();\n if ('paddingOuter' in scale) {\n range[0] += scale.paddingOuter() * scale.step();\n range[1] -= scale.paddingOuter() * scale.step();\n }\n\n return scaleQuantize()\n .domain((range[0] <= range[1] ? range : range.slice().reverse()) as NumberValue[])\n .range((range[0] <= range[1] ? domain : domain.slice().reverse()) as number[])(value);\n};\n\nexport const definedNullData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[y] !== null;\n\nexport const definedData = (x: number, y: number) => (plot: { [xOrY: number]: unknown }) =>\n plot[x] !== null && plot[x] !== undefined && plot[y] !== null && plot[y] !== undefined;\n\nexport const scaleOfBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale, value: number) =>\n scale.bandwidth ? scale(value)! + scale.bandwidth() / 2 : scale(value);\n\nexport const minMax = <\n Key extends string = string,\n Data extends Iterable<{ [key in Key]: Numeric | null | undefined }> = Iterable<{\n [key in Key]: Numeric | null | undefined;\n }>,\n>(\n data: Data,\n key: Key,\n) => {\n if (typeof key === 'string') {\n return extent(data, (d) => d[key]);\n }\n return extent(data, key);\n};\n\nexport const getNullData = <\n Name extends string = string,\n Data extends { [name in Name]?: unknown | null } = {},\n>(\n data: Data[],\n defined: (data: Data) => boolean,\n name: Name,\n) =>\n data.reduce((acc, d, i, data) => {\n if (defined(d)) {\n acc.push({\n [name]: null,\n } as Data);\n } else {\n const prev = data[i - 1];\n const next = data[i + 1];\n\n if (i === 0) {\n const defNext = data.find(defined);\n acc.push({\n ...d,\n [name]: defNext ? defNext[name] : null,\n });\n }\n\n // prev\n if (prev && defined(prev)) {\n acc.push(prev);\n }\n\n // next\n if (next && defined(next)) {\n acc.push(next);\n }\n\n if (data.length - 1 === i) {\n const defPrev = data.slice().reverse().find(defined);\n acc.push({\n ...d,\n [name]: defPrev ? defPrev[name] : null,\n });\n }\n }\n return acc;\n }, [] as Data[]);\n\ntype IndexFromDataScale =\n | ScaleIdentity\n | ScaleTime<unknown, unknown>\n | ScaleContinuousNumeric<unknown, unknown>\n | ScaleBand<{}>\n | ScalePoint<{}>;\nexport const getIndexFromData = <\n Data extends {\n [key: string]: number;\n } = {},\n Scale extends IndexFromDataScale = IndexFromDataScale,\n>(\n data: Data[],\n scale: Scale,\n key: string,\n value: number,\n) => {\n // detect line chart\n if ('invert' in scale && typeof scale.invert === 'function') {\n const bisect = bisector((d: { [key: string]: number }) => d[key]).center;\n return bisect(data, value);\n }\n // detect bar chart\n else if ('step' in scale && typeof scale.step !== 'undefined') {\n // console.log({ key, scale, value });\n const index = data.findIndex((d) => d[key] === value);\n return index >= 0 ? index : null;\n } else {\n // eslint-disable-next-line no-console\n console.warn('[d3-chart/utils/getIndexFromData] encountered incompatible scale type');\n return null;\n }\n};\n\nexport const roundedPath = (\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n tl = false,\n tr = false,\n bl = false,\n br = false,\n) => {\n let result = 'M' + (x + r) + ',' + y;\n result += 'h' + (w - 2 * r);\n if (tr) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + r;\n } else {\n result += 'h' + r;\n result += 'v' + r;\n }\n result += 'v' + (h - 2 * r);\n if (br) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + r;\n } else {\n result += 'v' + r;\n result += 'h' + -r;\n }\n result += 'h' + (2 * r - w);\n if (bl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + -r + ',' + -r;\n } else {\n result += 'h' + -r;\n result += 'v' + -r;\n }\n result += 'v' + (2 * r - h);\n if (tl) {\n result += 'a' + r + ',' + r + ' 0 0 1 ' + r + ',' + -r;\n } else {\n result += 'v' + -r;\n result += 'h' + r;\n }\n result += 'z';\n return result;\n};\n\nexport const getBandwidth = <Scale extends ScaleBand<{}>>(scale: Scale) => {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n\n const range = scale.range();\n const domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n};\n\nexport const memoize = <Func extends (...args: any[]) => any>(func: Func): Func => {\n const results: { [cacheKey: string]: any } = {};\n return ((...args: any[]) => {\n const argsKey = args.join(',');\n if (!results[argsKey]) {\n results[argsKey] = func(...args);\n }\n return results[argsKey];\n }) as Func;\n};\n\nexport const measureText = memoize((text: string, fontSize?: number) => {\n if (!text) return 0;\n\n const span = document.createElement('span');\n if (fontSize) {\n span.style.fontSize = `${fontSize}px`;\n }\n for (const line of text.split('\\n')) {\n span.append(document.createTextNode(line));\n span.append(document.createElement('br'));\n }\n span.style.display = 'inline-block';\n document.body.append(span);\n const textWidth = span.offsetWidth;\n const textHeight = span.offsetHeight;\n span.remove();\n return Math.max(textWidth, textHeight);\n});\n\nlet idCounter = 0;\nexport const uniqueId = (prefix = 'id-') => `${prefix}${idCounter++}`;\n"],"mappings":"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"}
|
package/lib/es6/Area.js
CHANGED
|
@@ -14,48 +14,34 @@ import Dots from './Dots';
|
|
|
14
14
|
import createElement from './createElement';
|
|
15
15
|
import { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';
|
|
16
16
|
import ClipPath from './ClipPath';
|
|
17
|
-
|
|
18
17
|
/*__reshadow-styles__:"./style/area.shadow.css"*/
|
|
19
|
-
var style = (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"__SArea": "___SArea_fuzdt_gg_",
|
|
29
|
-
"_color": "__color_fuzdt_gg_",
|
|
30
|
-
"--color": "--color_fuzdt",
|
|
31
|
-
"_transparent": "__transparent_fuzdt_gg_",
|
|
32
|
-
"__SAreaLine": "___SAreaLine_fuzdt_gg_",
|
|
33
|
-
"--duration": "--duration_fuzdt",
|
|
34
|
-
"__SNull": "___SNull_fuzdt_gg_",
|
|
35
|
-
"_hide": "__hide_fuzdt_gg_"
|
|
18
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SArea_15342_gg_{fill:var(--intergalactic-chart-palette-order-1, #2bb3ff);fill-opacity:.2}.___SArea_15342_gg_.__color_15342_gg_{fill:var(--color_15342)}.___SArea_15342_gg_.__transparent_15342_gg_{opacity:.3}.___SAreaLine_15342_gg_{stroke:var(--intergalactic-chart-palette-order-1, #2bb3ff);stroke-width:3;fill:transparent}.___SAreaLine_15342_gg_.__color_15342_gg_{stroke:var(--color_15342)}.___SAreaLine_15342_gg_.__transparent_15342_gg_{opacity:.3}.___SAreaLine_15342_gg_,.___SArea_15342_gg_{transition-property:d;transition-duration:var(--duration_15342);transition-timing-function:ease-in-out}.___SNull_15342_gg_{fill:transparent;stroke:var(--intergalactic-chart-grid-x-axis, #c4c7cf);stroke-dasharray:4}.___SNull_15342_gg_.__hide_15342_gg_{display:none}" /*__inner_css_end__*/, "15342_gg_") /*__reshadow_css_end__*/, {
|
|
19
|
+
"__SArea": "___SArea_15342_gg_",
|
|
20
|
+
"_color": "__color_15342_gg_",
|
|
21
|
+
"--color": "--color_15342",
|
|
22
|
+
"_transparent": "__transparent_15342_gg_",
|
|
23
|
+
"__SAreaLine": "___SAreaLine_15342_gg_",
|
|
24
|
+
"--duration": "--duration_15342",
|
|
25
|
+
"__SNull": "___SNull_15342_gg_",
|
|
26
|
+
"_hide": "__hide_15342_gg_"
|
|
36
27
|
});
|
|
37
|
-
|
|
38
28
|
var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
39
29
|
_inherits(AreaRoot, _Component);
|
|
40
|
-
|
|
41
30
|
var _super = _createSuper(AreaRoot);
|
|
42
|
-
|
|
43
31
|
function AreaRoot() {
|
|
44
32
|
_classCallCheck(this, AreaRoot);
|
|
45
|
-
|
|
46
33
|
return _super.apply(this, arguments);
|
|
47
34
|
}
|
|
48
|
-
|
|
49
35
|
_createClass(AreaRoot, [{
|
|
50
36
|
key: "getDotsProps",
|
|
51
37
|
value: function getDotsProps() {
|
|
52
38
|
var _this$asProps = this.asProps,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
39
|
+
x = _this$asProps.x,
|
|
40
|
+
y = _this$asProps.y,
|
|
41
|
+
color = _this$asProps.color,
|
|
42
|
+
data = _this$asProps.data,
|
|
43
|
+
d3Line = _this$asProps.d3Line,
|
|
44
|
+
transparent = _this$asProps.transparent;
|
|
59
45
|
return {
|
|
60
46
|
x: x,
|
|
61
47
|
y: y,
|
|
@@ -69,11 +55,11 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
69
55
|
key: "getNullProps",
|
|
70
56
|
value: function getNullProps() {
|
|
71
57
|
var _this$asProps2 = this.asProps,
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
58
|
+
x = _this$asProps2.x,
|
|
59
|
+
y = _this$asProps2.y,
|
|
60
|
+
color = _this$asProps2.color,
|
|
61
|
+
data = _this$asProps2.data,
|
|
62
|
+
d3Line = _this$asProps2.d3Line;
|
|
77
63
|
return {
|
|
78
64
|
data: getNullData(data, definedNullData(x, y), y),
|
|
79
65
|
d3: d3Line,
|
|
@@ -84,11 +70,11 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
84
70
|
key: "getLineProps",
|
|
85
71
|
value: function getLineProps() {
|
|
86
72
|
var _this$asProps3 = this.asProps,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
73
|
+
duration = _this$asProps3.duration,
|
|
74
|
+
color = _this$asProps3.color,
|
|
75
|
+
data = _this$asProps3.data,
|
|
76
|
+
d3Line = _this$asProps3.d3Line,
|
|
77
|
+
uid = _this$asProps3.uid;
|
|
92
78
|
return {
|
|
93
79
|
uid: uid,
|
|
94
80
|
data: data,
|
|
@@ -101,23 +87,22 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
101
87
|
key: "render",
|
|
102
88
|
value: function render() {
|
|
103
89
|
var _ref;
|
|
104
|
-
|
|
105
90
|
var SArea = this.Element;
|
|
106
91
|
var SAreaLine = 'path';
|
|
107
92
|
var _this$asProps4 = this.asProps,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
93
|
+
styles = _this$asProps4.styles,
|
|
94
|
+
hide = _this$asProps4.hide,
|
|
95
|
+
d3 = _this$asProps4.d3,
|
|
96
|
+
d3Line = _this$asProps4.d3Line,
|
|
97
|
+
data = _this$asProps4.data,
|
|
98
|
+
color = _this$asProps4.color,
|
|
99
|
+
uid = _this$asProps4.uid,
|
|
100
|
+
size = _this$asProps4.size,
|
|
101
|
+
duration = _this$asProps4.duration,
|
|
102
|
+
x = _this$asProps4.x,
|
|
103
|
+
y = _this$asProps4.y,
|
|
104
|
+
Children = _this$asProps4.Children,
|
|
105
|
+
transparent = _this$asProps4.transparent;
|
|
121
106
|
var advanceMode = !!findComponent(Children, [Area.Line.displayName]);
|
|
122
107
|
this.asProps.dataHintsHandler.specifyDataRowFields(x, y);
|
|
123
108
|
this.asProps.dataHintsHandler.establishDataType('time-series');
|
|
@@ -151,30 +136,23 @@ var AreaRoot = /*#__PURE__*/function (_Component) {
|
|
|
151
136
|
})));
|
|
152
137
|
}
|
|
153
138
|
}]);
|
|
154
|
-
|
|
155
139
|
return AreaRoot;
|
|
156
140
|
}(Component);
|
|
157
|
-
|
|
158
141
|
_defineProperty(AreaRoot, "displayName", 'Area');
|
|
159
|
-
|
|
160
142
|
_defineProperty(AreaRoot, "style", style);
|
|
161
|
-
|
|
162
143
|
_defineProperty(AreaRoot, "enhance", [uniqueIDEnhancement()]);
|
|
163
|
-
|
|
164
144
|
_defineProperty(AreaRoot, "defaultProps", function (_ref4) {
|
|
165
145
|
var x = _ref4.x,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
146
|
+
y = _ref4.y,
|
|
147
|
+
y0 = _ref4.y0,
|
|
148
|
+
$rootProps = _ref4.$rootProps,
|
|
149
|
+
_ref4$curve = _ref4.curve,
|
|
150
|
+
curve = _ref4$curve === void 0 ? curveLinear : _ref4$curve,
|
|
151
|
+
scale = _ref4.scale;
|
|
173
152
|
var _ref5 = scale || $rootProps.scale,
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
153
|
+
_ref6 = _slicedToArray(_ref5, 2),
|
|
154
|
+
xScale = _ref6[0],
|
|
155
|
+
yScale = _ref6[1];
|
|
178
156
|
var yRange = yScale.range();
|
|
179
157
|
return {
|
|
180
158
|
d3: area().defined(definedData(x, y)).curve(curve).x(function (p) {
|
|
@@ -192,18 +170,16 @@ _defineProperty(AreaRoot, "defaultProps", function (_ref4) {
|
|
|
192
170
|
duration: 500
|
|
193
171
|
};
|
|
194
172
|
});
|
|
195
|
-
|
|
196
173
|
function Line(props) {
|
|
197
174
|
var _ref2;
|
|
198
|
-
|
|
199
175
|
var SAreaLine = props.Element,
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
176
|
+
styles = props.styles,
|
|
177
|
+
d3 = props.d3,
|
|
178
|
+
data = props.data,
|
|
179
|
+
color = props.color,
|
|
180
|
+
duration = props.duration,
|
|
181
|
+
uid = props.uid,
|
|
182
|
+
transparent = props.transparent;
|
|
207
183
|
return _ref2 = sstyled(styles), /*#__PURE__*/React.createElement(SAreaLine, _ref2.cn("SAreaLine", {
|
|
208
184
|
"render": "path",
|
|
209
185
|
"clipPath": "url(#".concat(uid, ")"),
|
|
@@ -213,16 +189,14 @@ function Line(props) {
|
|
|
213
189
|
"transparent": transparent
|
|
214
190
|
}));
|
|
215
191
|
}
|
|
216
|
-
|
|
217
192
|
function Null(props) {
|
|
218
193
|
var _ref3;
|
|
219
|
-
|
|
220
194
|
var SNull = props.Element,
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
195
|
+
styles = props.styles,
|
|
196
|
+
d3 = props.d3,
|
|
197
|
+
data = props.data,
|
|
198
|
+
hide = props.hide,
|
|
199
|
+
color = props.color;
|
|
226
200
|
return _ref3 = sstyled(styles), /*#__PURE__*/React.createElement(SNull, _ref3.cn("SNull", {
|
|
227
201
|
"render": "path",
|
|
228
202
|
"d": d3(data),
|
|
@@ -230,7 +204,6 @@ function Null(props) {
|
|
|
230
204
|
"color": color
|
|
231
205
|
}));
|
|
232
206
|
}
|
|
233
|
-
|
|
234
207
|
var Area = createElement(AreaRoot, {
|
|
235
208
|
Dots: Dots,
|
|
236
209
|
Null: Null,
|
package/lib/es6/Area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Area.js","names":["React","area","curveLinear","line","Component","sstyled","uniqueIDEnhancement","findComponent","Dots","createElement","definedData","scaleOfBandwidth","getNullData","definedNullData","ClipPath","AreaRoot","asProps","x","y","color","data","d3Line","transparent","d3","duration","uid","SArea","Element","SAreaLine","styles","hide","size","Children","advanceMode","Area","Line","displayName","dataHintsHandler","specifyDataRowFields","establishDataType","rect","setAttribute","style","y0","$rootProps","curve","scale","xScale","yScale","yRange","range","defined","p","y1","props","Null","SNull"],"sources":["../../src/Area.jsx"],"sourcesContent":["import React from 'react';\nimport { area, curveLinear, line } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport Dots from './Dots';\nimport createElement from './createElement';\nimport { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';\nimport ClipPath from './ClipPath';\n\nimport style from './style/area.shadow.css';\n\nclass AreaRoot extends Component {\n static displayName = 'Area';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear, scale }) => {\n const [xScale, yScale] = scale || $rootProps.scale;\n const yRange = yScale.range();\n\n return {\n d3: area()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y0((p) => (p[y0] ? scaleOfBandwidth(yScale, p[y0]) : yRange[0]))\n .y1((p) => scaleOfBandwidth(yScale, p[y])),\n d3Line: line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, color, data, d3Line, transparent } = this.asProps;\n\n return {\n x,\n y,\n data,\n d3: d3Line,\n color,\n transparent,\n };\n }\n\n getNullProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n return {\n data: getNullData(data, definedNullData(x, y), y),\n d3: d3Line,\n color,\n };\n }\n\n getLineProps() {\n const { duration, color, data, d3Line, uid } = this.asProps;\n\n return {\n uid,\n data,\n d3: d3Line,\n color,\n duration,\n };\n }\n\n render() {\n const SArea = this.Element;\n const SAreaLine = 'path';\n const {\n styles,\n hide,\n d3,\n d3Line,\n data,\n color,\n uid,\n size,\n duration,\n x,\n y,\n Children,\n transparent,\n } = this.asProps;\n const advanceMode = !!findComponent(Children, [Area.Line.displayName]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y);\n this.asProps.dataHintsHandler.establishDataType('time-series');\n\n return sstyled(styles)(\n <>\n {!advanceMode && (\n <SAreaLine\n aria-hidden\n clipPath={`url(#${uid})`}\n d={d3Line(data)}\n color={color}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n )}\n <SArea\n aria-hidden\n clipPath={`url(#${uid})`}\n render=\"path\"\n d={d3(data)}\n hide={hide}\n color={color}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {duration && (\n <ClipPath\n aria-hidden\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Line(props) {\n const { Element: SAreaLine, styles, d3, data, color, duration, uid, transparent } = props;\n return sstyled(styles)(\n <SAreaLine\n render=\"path\"\n clipPath={`url(#${uid})`}\n d={d3(data)}\n color={color}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />,\n );\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide, color } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} color={color} />);\n}\n\nconst Area = createElement(AreaRoot, {\n Dots,\n Null,\n Line,\n});\n\nexport default Area;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Area.js","names":["React","area","curveLinear","line","Component","sstyled","uniqueIDEnhancement","findComponent","Dots","createElement","definedData","scaleOfBandwidth","getNullData","definedNullData","ClipPath","style","_sstyled","insert","AreaRoot","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","getDotsProps","_this$asProps","asProps","x","y","color","data","d3Line","transparent","d3","getNullProps","_this$asProps2","getLineProps","_this$asProps3","duration","uid","render","_ref","SArea","Element","SAreaLine","_this$asProps4","styles","hide","size","Children","advanceMode","Area","Line","displayName","dataHintsHandler","specifyDataRowFields","establishDataType","Fragment","cn","concat","setAttributeTag","rect","setAttribute","_defineProperty","_ref4","y0","$rootProps","_ref4$curve","curve","scale","_ref5","_ref6","_slicedToArray","xScale","yScale","yRange","range","defined","p","y1","props","_ref2","Null","_ref3","SNull"],"sources":["../../src/Area.jsx"],"sourcesContent":["import React from 'react';\nimport { area, curveLinear, line } from 'd3-shape';\nimport { Component, sstyled } from '@semcore/core';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport Dots from './Dots';\nimport createElement from './createElement';\nimport { definedData, scaleOfBandwidth, getNullData, definedNullData } from './utils';\nimport ClipPath from './ClipPath';\n\nimport style from './style/area.shadow.css';\n\nclass AreaRoot extends Component {\n static displayName = 'Area';\n static style = style;\n static enhance = [uniqueIDEnhancement()];\n\n static defaultProps = ({ x, y, y0, $rootProps, curve = curveLinear, scale }) => {\n const [xScale, yScale] = scale || $rootProps.scale;\n const yRange = yScale.range();\n\n return {\n d3: area()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y0((p) => (p[y0] ? scaleOfBandwidth(yScale, p[y0]) : yRange[0]))\n .y1((p) => scaleOfBandwidth(yScale, p[y])),\n d3Line: line()\n .defined(definedData(x, y))\n .curve(curve)\n .x((p) => scaleOfBandwidth(xScale, p[x]))\n .y((p) => scaleOfBandwidth(yScale, p[y])),\n duration: 500,\n };\n };\n\n getDotsProps() {\n const { x, y, color, data, d3Line, transparent } = this.asProps;\n\n return {\n x,\n y,\n data,\n d3: d3Line,\n color,\n transparent,\n };\n }\n\n getNullProps() {\n const { x, y, color, data, d3Line } = this.asProps;\n return {\n data: getNullData(data, definedNullData(x, y), y),\n d3: d3Line,\n color,\n };\n }\n\n getLineProps() {\n const { duration, color, data, d3Line, uid } = this.asProps;\n\n return {\n uid,\n data,\n d3: d3Line,\n color,\n duration,\n };\n }\n\n render() {\n const SArea = this.Element;\n const SAreaLine = 'path';\n const {\n styles,\n hide,\n d3,\n d3Line,\n data,\n color,\n uid,\n size,\n duration,\n x,\n y,\n Children,\n transparent,\n } = this.asProps;\n const advanceMode = !!findComponent(Children, [Area.Line.displayName]);\n\n this.asProps.dataHintsHandler.specifyDataRowFields(x, y);\n this.asProps.dataHintsHandler.establishDataType('time-series');\n\n return sstyled(styles)(\n <>\n {!advanceMode && (\n <SAreaLine\n aria-hidden\n clipPath={`url(#${uid})`}\n d={d3Line(data)}\n color={color}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n )}\n <SArea\n aria-hidden\n clipPath={`url(#${uid})`}\n render=\"path\"\n d={d3(data)}\n hide={hide}\n color={color}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />\n {duration && (\n <ClipPath\n aria-hidden\n setAttributeTag={(rect) => {\n rect.setAttribute('width', size[0]);\n }}\n id={uid}\n x=\"0\"\n y=\"0\"\n width={0}\n height={size[1]}\n transition={`width ${duration}ms ease-in-out`}\n />\n )}\n </>,\n );\n }\n}\n\nfunction Line(props) {\n const { Element: SAreaLine, styles, d3, data, color, duration, uid, transparent } = props;\n return sstyled(styles)(\n <SAreaLine\n render=\"path\"\n clipPath={`url(#${uid})`}\n d={d3(data)}\n color={color}\n use:duration={`${duration}ms`}\n transparent={transparent}\n />,\n );\n}\n\nfunction Null(props) {\n const { Element: SNull, styles, d3, data, hide, color } = props;\n return sstyled(styles)(<SNull render=\"path\" d={d3(data)} hide={hide} color={color} />);\n}\n\nconst Area = createElement(AreaRoot, {\n Dots,\n Null,\n Line,\n});\n\nexport default Area;\n"],"mappings":"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"}
|