victory-stack 36.9.2-next.0 → 36.9.2-next.1
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 +7 -3
- package/dist/victory-stack.js +3507 -2961
- package/dist/victory-stack.min.js +1 -1
- package/es/helper-methods.js +162 -117
- package/es/victory-stack.js +72 -61
- package/lib/helper-methods.js +178 -117
- package/lib/index.js +2 -0
- package/lib/victory-stack.js +91 -60
- package/package.json +5 -5
- package/src/helper-methods.tsx +2 -2
package/lib/helper-methods.js
CHANGED
|
@@ -7,59 +7,85 @@ exports.getCalculatedProps = getCalculatedProps;
|
|
|
7
7
|
exports.getChildProps = getChildProps;
|
|
8
8
|
exports.getChildren = getChildren;
|
|
9
9
|
exports.useMemoizedProps = useMemoizedProps;
|
|
10
|
+
|
|
10
11
|
var _orderBy2 = _interopRequireDefault(require("lodash/orderBy"));
|
|
11
|
-
|
|
12
|
+
|
|
12
13
|
var _react = _interopRequireDefault(require("react"));
|
|
14
|
+
|
|
13
15
|
var _victoryCore = require("victory-core");
|
|
16
|
+
|
|
14
17
|
var _reactFastCompare = _interopRequireDefault(require("react-fast-compare"));
|
|
18
|
+
|
|
15
19
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
/* eslint-disable no-use-before-define */
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
22
|
+
|
|
23
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
24
|
+
|
|
25
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
26
|
+
|
|
27
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
28
|
+
|
|
29
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
30
|
+
|
|
31
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
32
|
+
|
|
33
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
34
|
+
|
|
35
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
36
|
+
|
|
37
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
38
|
+
|
|
39
|
+
var fallbackProps = {
|
|
19
40
|
width: 450,
|
|
20
41
|
height: 300,
|
|
21
42
|
padding: 50
|
|
22
|
-
};
|
|
43
|
+
}; // Assumes data in `datasets` is sorted by `Data.getData`.
|
|
23
44
|
|
|
24
|
-
// Assumes data in `datasets` is sorted by `Data.getData`.
|
|
25
45
|
function fillData(props, datasets) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const xMap = datasets.reduce((prev, dataset) => {
|
|
30
|
-
dataset.forEach(datum => {
|
|
46
|
+
var fillInMissingData = props.fillInMissingData;
|
|
47
|
+
var xMap = datasets.reduce(function (prev, dataset) {
|
|
48
|
+
dataset.forEach(function (datum) {
|
|
31
49
|
prev[datum._x instanceof Date ? datum._x.getTime() : datum._x] = true;
|
|
32
50
|
});
|
|
33
51
|
return prev;
|
|
34
52
|
}, {});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
53
|
+
var xKeys = Object.keys(xMap).map(function (k) {
|
|
54
|
+
return Number(k);
|
|
55
|
+
});
|
|
56
|
+
var xArr = (0, _orderBy2.default)(xKeys);
|
|
57
|
+
return datasets.map(function (dataset) {
|
|
58
|
+
var indexOffset = 0;
|
|
59
|
+
var isDate = dataset[0] && dataset[0]._x instanceof Date;
|
|
60
|
+
var filledInData = xArr.map(function (x, index) {
|
|
61
|
+
var parsedX = Number(x);
|
|
62
|
+
var datum = dataset[index - indexOffset];
|
|
63
|
+
|
|
43
64
|
if (datum) {
|
|
44
|
-
|
|
65
|
+
var x1 = isDate ? datum._x.getTime() : datum._x;
|
|
66
|
+
|
|
45
67
|
if (x1 === parsedX) {
|
|
46
68
|
return datum;
|
|
47
69
|
}
|
|
70
|
+
|
|
48
71
|
indexOffset++;
|
|
49
|
-
|
|
72
|
+
|
|
73
|
+
var _y = fillInMissingData ? 0 : null;
|
|
74
|
+
|
|
50
75
|
parsedX = isDate ? new Date(parsedX) : parsedX;
|
|
51
76
|
return {
|
|
52
77
|
x: parsedX,
|
|
53
|
-
y,
|
|
78
|
+
y: _y,
|
|
54
79
|
_x: parsedX,
|
|
55
|
-
_y:
|
|
80
|
+
_y: _y
|
|
56
81
|
};
|
|
57
82
|
}
|
|
58
|
-
|
|
83
|
+
|
|
84
|
+
var y = fillInMissingData ? 0 : null;
|
|
59
85
|
parsedX = isDate ? new Date(parsedX) : parsedX;
|
|
60
86
|
return {
|
|
61
87
|
x: parsedX,
|
|
62
|
-
y,
|
|
88
|
+
y: y,
|
|
63
89
|
_x: parsedX,
|
|
64
90
|
_y: y
|
|
65
91
|
};
|
|
@@ -67,29 +93,40 @@ function fillData(props, datasets) {
|
|
|
67
93
|
return filledInData;
|
|
68
94
|
});
|
|
69
95
|
}
|
|
96
|
+
|
|
70
97
|
function getY0(datum, index, datasets) {
|
|
71
98
|
if (datum.y0) {
|
|
72
99
|
return datum.y0;
|
|
73
100
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
101
|
+
|
|
102
|
+
var y = datum._y;
|
|
103
|
+
var group = datum._group;
|
|
104
|
+
var firstDatasetBaseline = datasets[0].map(function (d) {
|
|
105
|
+
return d.y0;
|
|
106
|
+
});
|
|
107
|
+
var previousDatasets = datasets.slice(0, index);
|
|
108
|
+
var previousPoints = previousDatasets.reduce(function (prev, dataset) {
|
|
109
|
+
return prev.concat(dataset.filter(function (previousDatum) {
|
|
110
|
+
return datum._x instanceof Date ? previousDatum._x.getTime() === datum._x.getTime() : previousDatum._x === datum._x;
|
|
111
|
+
}).map(function (previousDatum) {
|
|
112
|
+
return previousDatum._y || 0;
|
|
113
|
+
}));
|
|
80
114
|
}, []);
|
|
81
|
-
|
|
82
|
-
|
|
115
|
+
var y0 = previousPoints.length && previousPoints.reduce(function (memo, value) {
|
|
116
|
+
var sameSign = y < 0 && value < 0 || y >= 0 && value >= 0;
|
|
83
117
|
return sameSign ? Number(value) + memo : memo;
|
|
84
118
|
}, firstDatasetBaseline[group] || 0);
|
|
85
|
-
return previousPoints.some(
|
|
119
|
+
return previousPoints.some(function (point) {
|
|
120
|
+
return point instanceof Date;
|
|
121
|
+
}) ? new Date(y0) : y0;
|
|
86
122
|
}
|
|
87
|
-
|
|
88
123
|
/* eslint-disable no-nested-ternary */
|
|
124
|
+
|
|
125
|
+
|
|
89
126
|
function addLayoutData(props, datasets, index) {
|
|
90
|
-
|
|
91
|
-
return datasets[index].map(datum
|
|
92
|
-
|
|
127
|
+
var xOffset = props.xOffset || 0;
|
|
128
|
+
return datasets[index].map(function (datum) {
|
|
129
|
+
var yOffset = getY0(datum, index, datasets) || 0;
|
|
93
130
|
return Object.assign({}, datum, {
|
|
94
131
|
_y0: !(datum._y instanceof Date) ? yOffset : yOffset ? new Date(yOffset) : datum._y,
|
|
95
132
|
_y1: datum._y === null ? null : datum._y instanceof Date ? new Date(Number(datum._y) + Number(yOffset)) : datum._y + yOffset,
|
|
@@ -99,152 +136,176 @@ function addLayoutData(props, datasets, index) {
|
|
|
99
136
|
}
|
|
100
137
|
/* eslint-enable no-nested-ternary */
|
|
101
138
|
|
|
139
|
+
|
|
102
140
|
function stackData(props, childComponents) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
141
|
+
var dataFromChildren = _victoryCore.Wrapper.getDataFromChildren(props, childComponents);
|
|
142
|
+
|
|
143
|
+
var filterNullChildData = dataFromChildren.map(function (dataset) {
|
|
144
|
+
return dataset.filter(function (datum) {
|
|
145
|
+
return datum._x !== null && datum._y !== null;
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
var datasets = fillData(props, filterNullChildData);
|
|
149
|
+
return datasets.map(function (d, i) {
|
|
150
|
+
return addLayoutData(props, datasets, i);
|
|
151
|
+
});
|
|
107
152
|
}
|
|
153
|
+
|
|
108
154
|
function getCalculatedProps(initialProps, childComponents) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
155
|
+
var children = childComponents || _react.default.Children.toArray(initialProps.children);
|
|
156
|
+
|
|
157
|
+
var role = "stack";
|
|
158
|
+
|
|
159
|
+
var props = _victoryCore.Helpers.modifyProps(initialProps, fallbackProps, role);
|
|
160
|
+
|
|
161
|
+
var style = _victoryCore.Wrapper.getStyle(props.theme, props.style, role);
|
|
162
|
+
|
|
163
|
+
var categories = props.categories || _victoryCore.Wrapper.getCategories(props, children);
|
|
164
|
+
|
|
165
|
+
var datasets = props.datasets || stackData(props, children);
|
|
166
|
+
var clonedChildren = children.map(function (c, i) {
|
|
116
167
|
return /*#__PURE__*/_react.default.cloneElement(c, {
|
|
117
168
|
data: datasets[i]
|
|
118
169
|
});
|
|
119
170
|
});
|
|
120
|
-
|
|
171
|
+
var domain = {
|
|
121
172
|
x: _victoryCore.Wrapper.getDomain(Object.assign({}, props, {
|
|
122
|
-
categories
|
|
173
|
+
categories: categories
|
|
123
174
|
}), "x", clonedChildren),
|
|
124
175
|
y: _victoryCore.Wrapper.getDomain(Object.assign({}, props, {
|
|
125
|
-
categories
|
|
176
|
+
categories: categories
|
|
126
177
|
}), "y", clonedChildren)
|
|
127
178
|
};
|
|
128
|
-
|
|
179
|
+
var range = props.range || {
|
|
129
180
|
x: _victoryCore.Helpers.getRange(props, "x"),
|
|
130
181
|
y: _victoryCore.Helpers.getRange(props, "y")
|
|
131
182
|
};
|
|
132
|
-
|
|
183
|
+
var baseScale = {
|
|
133
184
|
x: _victoryCore.Scale.getScaleFromProps(props, "x") || _victoryCore.Wrapper.getScale(props, "x"),
|
|
134
185
|
y: _victoryCore.Scale.getScaleFromProps(props, "y") || _victoryCore.Wrapper.getScale(props, "y")
|
|
135
186
|
};
|
|
136
|
-
|
|
187
|
+
var scale = {
|
|
137
188
|
x: baseScale.x.domain(domain.x).range(props.horizontal ? range.y : range.x),
|
|
138
189
|
y: baseScale.y.domain(domain.y).range(props.horizontal ? range.x : range.y)
|
|
139
190
|
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
horizontal
|
|
143
|
-
} = props;
|
|
191
|
+
var colorScale = props.colorScale,
|
|
192
|
+
horizontal = props.horizontal;
|
|
144
193
|
return {
|
|
145
|
-
datasets,
|
|
146
|
-
categories,
|
|
147
|
-
range,
|
|
148
|
-
domain,
|
|
149
|
-
horizontal,
|
|
150
|
-
scale,
|
|
151
|
-
style,
|
|
152
|
-
colorScale,
|
|
153
|
-
role
|
|
194
|
+
datasets: datasets,
|
|
195
|
+
categories: categories,
|
|
196
|
+
range: range,
|
|
197
|
+
domain: domain,
|
|
198
|
+
horizontal: horizontal,
|
|
199
|
+
scale: scale,
|
|
200
|
+
style: style,
|
|
201
|
+
colorScale: colorScale,
|
|
202
|
+
role: role
|
|
154
203
|
};
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// We need to remove sharedEvents in order to memoize the calculated data
|
|
204
|
+
} // We need to remove sharedEvents in order to memoize the calculated data
|
|
158
205
|
// With shared events, the props change on every event, and every value is re-calculated
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
var withoutSharedEvents = function (props) {
|
|
209
|
+
var children = props.children;
|
|
210
|
+
|
|
211
|
+
var modifiedChildren = _react.default.Children.toArray(children).map(function (_child) {
|
|
212
|
+
var child = _child;
|
|
213
|
+
return _objectSpread(_objectSpread({}, child), {}, {
|
|
167
214
|
props: _victoryCore.Helpers.omit(child.props, ["sharedEvents"])
|
|
168
|
-
};
|
|
215
|
+
});
|
|
169
216
|
});
|
|
217
|
+
|
|
170
218
|
props.children = modifiedChildren;
|
|
171
219
|
return props;
|
|
172
220
|
};
|
|
221
|
+
|
|
173
222
|
function useMemoizedProps(initialProps) {
|
|
174
|
-
|
|
175
|
-
const [props, setProps] = _react.default.useState(modifiedProps);
|
|
223
|
+
var modifiedProps = withoutSharedEvents(initialProps);
|
|
176
224
|
|
|
177
|
-
|
|
225
|
+
var _React$useState = _react.default.useState(modifiedProps),
|
|
226
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
227
|
+
props = _React$useState2[0],
|
|
228
|
+
setProps = _React$useState2[1]; // React.memo uses shallow equality to compare objects. This way props
|
|
178
229
|
// will only be re-calculated when they change.
|
|
179
|
-
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
_react.default.useEffect(function () {
|
|
180
233
|
if (!(0, _reactFastCompare.default)(modifiedProps, props)) {
|
|
181
234
|
setProps(modifiedProps);
|
|
182
235
|
}
|
|
183
236
|
}, [props, setProps, modifiedProps]);
|
|
184
|
-
|
|
237
|
+
|
|
238
|
+
return _react.default.useMemo(function () {
|
|
185
239
|
return getCalculatedProps(props, props.children);
|
|
186
240
|
}, [props]);
|
|
187
241
|
}
|
|
242
|
+
|
|
188
243
|
function getLabels(props, datasets, index) {
|
|
189
244
|
if (!props.labels) {
|
|
190
245
|
return undefined;
|
|
191
246
|
}
|
|
247
|
+
|
|
192
248
|
return datasets.length === index + 1 ? props.labels : undefined;
|
|
193
249
|
}
|
|
250
|
+
|
|
194
251
|
function getChildProps(props, calculatedProps) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
horizontal
|
|
201
|
-
} = calculatedProps;
|
|
252
|
+
var categories = calculatedProps.categories,
|
|
253
|
+
domain = calculatedProps.domain,
|
|
254
|
+
range = calculatedProps.range,
|
|
255
|
+
scale = calculatedProps.scale,
|
|
256
|
+
horizontal = calculatedProps.horizontal;
|
|
202
257
|
return {
|
|
203
258
|
height: props.height,
|
|
204
259
|
width: props.width,
|
|
205
260
|
padding: _victoryCore.Helpers.getPadding(props),
|
|
206
261
|
standalone: false,
|
|
207
262
|
theme: props.theme,
|
|
208
|
-
categories,
|
|
209
|
-
domain,
|
|
210
|
-
range,
|
|
211
|
-
scale,
|
|
212
|
-
horizontal
|
|
263
|
+
categories: categories,
|
|
264
|
+
domain: domain,
|
|
265
|
+
range: range,
|
|
266
|
+
scale: scale,
|
|
267
|
+
horizontal: horizontal
|
|
213
268
|
};
|
|
214
269
|
}
|
|
270
|
+
|
|
215
271
|
function getColorScale(props, child) {
|
|
216
|
-
|
|
217
|
-
|
|
272
|
+
var role = child.type && child.type.role;
|
|
273
|
+
var colorScaleOptions = child.props.colorScale || props.colorScale;
|
|
274
|
+
|
|
218
275
|
if (role !== "group" && role !== "stack") {
|
|
219
276
|
return undefined;
|
|
220
277
|
}
|
|
278
|
+
|
|
221
279
|
return props.theme ? colorScaleOptions || props.theme.props.colorScale : colorScaleOptions;
|
|
222
280
|
}
|
|
281
|
+
|
|
223
282
|
function getChildren(initialProps, childComponents, calculatedProps) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
return children.map((child, index)
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
283
|
+
var props = _victoryCore.Helpers.modifyProps(initialProps, fallbackProps, "stack");
|
|
284
|
+
|
|
285
|
+
var children = childComponents || _react.default.Children.toArray(props.children);
|
|
286
|
+
|
|
287
|
+
var newCalculatedProps = calculatedProps || getCalculatedProps(props, children);
|
|
288
|
+
var datasets = newCalculatedProps.datasets;
|
|
289
|
+
var childProps = getChildProps(props, newCalculatedProps);
|
|
290
|
+
var parentName = props.name || "stack";
|
|
291
|
+
return children.map(function (child, index) {
|
|
292
|
+
var role = child.type && child.type.role;
|
|
293
|
+
var data = datasets[index];
|
|
294
|
+
|
|
295
|
+
var style = _victoryCore.Wrapper.getChildStyle(child, index, newCalculatedProps);
|
|
296
|
+
|
|
297
|
+
var labels = props.labels ? getLabels(props, datasets, index) : child.props.labels;
|
|
298
|
+
var name = child.props.name || "".concat(parentName, "-").concat(role, "-").concat(index);
|
|
238
299
|
return /*#__PURE__*/_react.default.cloneElement(child, Object.assign({
|
|
239
|
-
key:
|
|
240
|
-
labels,
|
|
241
|
-
name,
|
|
300
|
+
key: "".concat(name, "-key-").concat(index),
|
|
301
|
+
labels: labels,
|
|
302
|
+
name: name,
|
|
242
303
|
domainPadding: child.props.domainPadding || props.domainPadding,
|
|
243
304
|
theme: props.theme,
|
|
244
305
|
labelComponent: props.labelComponent || child.props.labelComponent,
|
|
245
|
-
style,
|
|
306
|
+
style: style,
|
|
246
307
|
colorScale: getColorScale(props, child),
|
|
247
|
-
data,
|
|
308
|
+
data: data,
|
|
248
309
|
polar: props.polar
|
|
249
310
|
}, childProps));
|
|
250
311
|
});
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
|
|
6
7
|
var _victoryStack = require("./victory-stack");
|
|
8
|
+
|
|
7
9
|
Object.keys(_victoryStack).forEach(function (key) {
|
|
8
10
|
if (key === "default" || key === "__esModule") return;
|
|
9
11
|
if (key in exports && exports[key] === _victoryStack[key]) return;
|
package/lib/victory-stack.js
CHANGED
|
@@ -4,65 +4,81 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VictoryStack = void 0;
|
|
7
|
+
|
|
7
8
|
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
|
9
|
+
|
|
8
10
|
var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
|
|
11
|
+
|
|
9
12
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
10
14
|
var _victoryCore = require("victory-core");
|
|
15
|
+
|
|
11
16
|
var _victorySharedEvents = require("victory-shared-events");
|
|
17
|
+
|
|
12
18
|
var _helperMethods = require("./helper-methods");
|
|
19
|
+
|
|
13
20
|
var _reactFastCompare = _interopRequireDefault(require("react-fast-compare"));
|
|
21
|
+
|
|
14
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
23
|
+
|
|
24
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
+
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
|
+
|
|
28
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
29
|
+
|
|
30
|
+
var fallbackProps = {
|
|
16
31
|
width: 450,
|
|
17
32
|
height: 300,
|
|
18
33
|
padding: 50
|
|
19
34
|
};
|
|
20
|
-
|
|
35
|
+
var defaultProps = {
|
|
21
36
|
containerComponent: /*#__PURE__*/_react.default.createElement(_victoryCore.VictoryContainer, null),
|
|
22
37
|
groupComponent: /*#__PURE__*/_react.default.createElement("g", null),
|
|
23
38
|
standalone: true,
|
|
24
39
|
theme: _victoryCore.VictoryTheme.grayscale,
|
|
25
40
|
fillInMissingData: true
|
|
26
41
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
42
|
+
|
|
43
|
+
var VictoryStackBase = function (initialProps) {
|
|
44
|
+
var role = VictoryStack.role;
|
|
45
|
+
|
|
46
|
+
var propsWithDefaults = _react.default.useMemo(function () {
|
|
47
|
+
return _objectSpread(_objectSpread({}, defaultProps), initialProps);
|
|
48
|
+
}, [initialProps]);
|
|
49
|
+
|
|
50
|
+
var _Hooks$useAnimationSt = _victoryCore.Hooks.useAnimationState(),
|
|
51
|
+
setAnimationState = _Hooks$useAnimationSt.setAnimationState,
|
|
52
|
+
getAnimationProps = _Hooks$useAnimationSt.getAnimationProps,
|
|
53
|
+
getProps = _Hooks$useAnimationSt.getProps;
|
|
54
|
+
|
|
55
|
+
var props = getProps(propsWithDefaults);
|
|
56
|
+
|
|
57
|
+
var modifiedProps = _victoryCore.Helpers.modifyProps(props, fallbackProps, role);
|
|
58
|
+
|
|
59
|
+
var eventKey = modifiedProps.eventKey,
|
|
60
|
+
containerComponent = modifiedProps.containerComponent,
|
|
61
|
+
standalone = modifiedProps.standalone,
|
|
62
|
+
groupComponent = modifiedProps.groupComponent,
|
|
63
|
+
externalEventMutations = modifiedProps.externalEventMutations,
|
|
64
|
+
width = modifiedProps.width,
|
|
65
|
+
height = modifiedProps.height,
|
|
66
|
+
theme = modifiedProps.theme,
|
|
67
|
+
polar = modifiedProps.polar,
|
|
68
|
+
horizontal = modifiedProps.horizontal,
|
|
69
|
+
name = modifiedProps.name;
|
|
70
|
+
|
|
71
|
+
var childComponents = _react.default.Children.toArray(modifiedProps.children);
|
|
72
|
+
|
|
73
|
+
var calculatedProps = (0, _helperMethods.useMemoizedProps)(modifiedProps);
|
|
74
|
+
var domain = calculatedProps.domain,
|
|
75
|
+
scale = calculatedProps.scale,
|
|
76
|
+
style = calculatedProps.style;
|
|
77
|
+
|
|
78
|
+
var newChildren = _react.default.useMemo(function () {
|
|
79
|
+
var children = (0, _helperMethods.getChildren)(props, childComponents, calculatedProps);
|
|
80
|
+
var orderedChildren = children.map(function (child, index) {
|
|
81
|
+
var childProps = Object.assign({
|
|
66
82
|
animate: getAnimationProps(props, child, index)
|
|
67
83
|
}, child.props);
|
|
68
84
|
return /*#__PURE__*/_react.default.cloneElement(child, childProps);
|
|
@@ -72,45 +88,57 @@ const VictoryStackBase = initialProps => {
|
|
|
72
88
|
are rendered behind lower children. This looks nicer for stacked bars with cornerRadius, and
|
|
73
89
|
areas with strokes
|
|
74
90
|
*/
|
|
91
|
+
|
|
75
92
|
return orderedChildren.reverse();
|
|
76
93
|
}, [props, childComponents, calculatedProps, getAnimationProps]);
|
|
77
|
-
|
|
94
|
+
|
|
95
|
+
var containerProps = _react.default.useMemo(function () {
|
|
78
96
|
if (standalone) {
|
|
79
97
|
return {
|
|
80
|
-
domain,
|
|
81
|
-
scale,
|
|
82
|
-
width,
|
|
83
|
-
height,
|
|
84
|
-
standalone,
|
|
85
|
-
theme,
|
|
98
|
+
domain: domain,
|
|
99
|
+
scale: scale,
|
|
100
|
+
width: width,
|
|
101
|
+
height: height,
|
|
102
|
+
standalone: standalone,
|
|
103
|
+
theme: theme,
|
|
86
104
|
style: style.parent,
|
|
87
|
-
horizontal,
|
|
88
|
-
polar,
|
|
89
|
-
name
|
|
105
|
+
horizontal: horizontal,
|
|
106
|
+
polar: polar,
|
|
107
|
+
name: name
|
|
90
108
|
};
|
|
91
109
|
}
|
|
110
|
+
|
|
92
111
|
return {};
|
|
93
112
|
}, [standalone, domain, scale, width, height, theme, style, horizontal, polar, name]);
|
|
94
|
-
|
|
95
|
-
|
|
113
|
+
|
|
114
|
+
var userProps = _react.default.useMemo(function () {
|
|
115
|
+
return _victoryCore.UserProps.getSafeUserProps(propsWithDefaults);
|
|
116
|
+
}, [propsWithDefaults]);
|
|
117
|
+
|
|
118
|
+
var container = _react.default.useMemo(function () {
|
|
96
119
|
if (standalone) {
|
|
97
|
-
|
|
120
|
+
var defaultContainerProps = (0, _defaults2.default)({}, containerComponent.props, containerProps, userProps);
|
|
98
121
|
return /*#__PURE__*/_react.default.cloneElement(containerComponent, defaultContainerProps);
|
|
99
122
|
}
|
|
123
|
+
|
|
100
124
|
return /*#__PURE__*/_react.default.cloneElement(groupComponent, userProps);
|
|
101
125
|
}, [groupComponent, standalone, containerComponent, containerProps, userProps]);
|
|
102
|
-
|
|
126
|
+
|
|
127
|
+
var events = _react.default.useMemo(function () {
|
|
103
128
|
return _victoryCore.Wrapper.getAllEvents(props);
|
|
104
129
|
}, [props]);
|
|
105
|
-
|
|
106
|
-
|
|
130
|
+
|
|
131
|
+
var previousProps = _victoryCore.Hooks.usePreviousProps(propsWithDefaults);
|
|
132
|
+
|
|
133
|
+
_react.default.useEffect(function () {
|
|
107
134
|
// This is called before dismount to keep state in sync
|
|
108
|
-
return ()
|
|
135
|
+
return function () {
|
|
109
136
|
if (propsWithDefaults.animate) {
|
|
110
137
|
setAnimationState(previousProps, propsWithDefaults);
|
|
111
138
|
}
|
|
112
139
|
};
|
|
113
140
|
}, [setAnimationState, previousProps, propsWithDefaults]);
|
|
141
|
+
|
|
114
142
|
if (!(0, _isEmpty2.default)(events)) {
|
|
115
143
|
return /*#__PURE__*/_react.default.createElement(_victorySharedEvents.VictorySharedEvents, {
|
|
116
144
|
container: container,
|
|
@@ -119,12 +147,15 @@ const VictoryStackBase = initialProps => {
|
|
|
119
147
|
externalEventMutations: externalEventMutations
|
|
120
148
|
}, newChildren);
|
|
121
149
|
}
|
|
150
|
+
|
|
122
151
|
return /*#__PURE__*/_react.default.cloneElement(container, container.props, newChildren);
|
|
123
152
|
};
|
|
124
|
-
|
|
153
|
+
|
|
154
|
+
var componentConfig = {
|
|
125
155
|
role: "stack",
|
|
126
156
|
expectedComponents: ["groupComponent", "containerComponent", "labelComponent"],
|
|
127
157
|
getChildren: _helperMethods.getChildren
|
|
128
158
|
};
|
|
129
|
-
|
|
159
|
+
var VictoryStack = Object.assign( /*#__PURE__*/_react.default.memo(VictoryStackBase, _reactFastCompare.default), componentConfig);
|
|
160
|
+
exports.VictoryStack = VictoryStack;
|
|
130
161
|
VictoryStack.displayName = "VictoryStack";
|