victory-core 17.2.6 → 17.2.7
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 +5 -0
- package/dist/victory-core.js +33 -20
- package/dist/victory-core.min.js +1 -1
- package/es/victory-util/domain.js +33 -20
- package/lib/victory-util/domain.js +33 -20
- package/package.json +1 -1
- package/src/victory-util/domain.js +34 -17
|
@@ -68,27 +68,36 @@ export default {
|
|
|
68
68
|
* @returns {Array} the domain for the given axis
|
|
69
69
|
*/
|
|
70
70
|
getDomainWithZero: function (props, axis) {
|
|
71
|
-
var _this = this;
|
|
72
|
-
|
|
73
71
|
var propsDomain = this.getDomainFromProps(props, axis);
|
|
74
72
|
if (propsDomain) {
|
|
75
73
|
return this.cleanDomain(this.padDomain(propsDomain, props, axis), props, axis);
|
|
76
74
|
}
|
|
77
75
|
var horizontal = props.horizontal;
|
|
78
76
|
|
|
79
|
-
var ensureZero = function (domain) {
|
|
80
|
-
var
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
var ensureZero = function (domain, dataset) {
|
|
78
|
+
var currentAxis = Helpers.getCurrentAxis(axis, horizontal);
|
|
79
|
+
if (currentAxis === "x") {
|
|
80
|
+
return domain;
|
|
81
|
+
} else if (!dataset) {
|
|
82
|
+
return [Collection.getMinValue(domain, 0), Collection.getMaxValue(domain, 0)];
|
|
83
|
+
}
|
|
84
|
+
var flatData = _flatten(dataset);
|
|
85
|
+
var minData = flatData.map(function (datum) {
|
|
86
|
+
return datum["_" + currentAxis + "0"] || 0;
|
|
87
|
+
});
|
|
88
|
+
var maxData = flatData.map(function (datum) {
|
|
89
|
+
return datum["_" + currentAxis + "1"] || datum["_" + currentAxis] || 0;
|
|
90
|
+
});
|
|
91
|
+
var min = Collection.getMinValue([].concat(_toConsumableArray(domain), _toConsumableArray(minData)));
|
|
92
|
+
var max = Collection.getMaxValue([].concat(_toConsumableArray(domain), _toConsumableArray(maxData)));
|
|
93
|
+
return [min, max];
|
|
85
94
|
};
|
|
86
95
|
var categoryDomain = this.getDomainFromCategories(props, axis);
|
|
87
96
|
if (categoryDomain) {
|
|
88
97
|
return this.cleanDomain(this.padDomain(ensureZero(categoryDomain), props, axis), props, axis);
|
|
89
98
|
}
|
|
90
99
|
var dataset = Data.getData(props);
|
|
91
|
-
var domain = ensureZero(this.getDomainFromData(props, axis, dataset));
|
|
100
|
+
var domain = ensureZero(this.getDomainFromData(props, axis, dataset), dataset);
|
|
92
101
|
return this.cleanDomain(this.padDomain(domain, props, axis), props, axis);
|
|
93
102
|
},
|
|
94
103
|
|
|
@@ -118,18 +127,21 @@ export default {
|
|
|
118
127
|
*/
|
|
119
128
|
getDomainFromData: function (props, axis, dataset) {
|
|
120
129
|
var currentAxis = Helpers.getCurrentAxis(axis, props.horizontal);
|
|
121
|
-
var
|
|
122
|
-
|
|
130
|
+
var flatData = _flatten(dataset);
|
|
131
|
+
var allData = flatData.map(function (datum) {
|
|
132
|
+
return typeof datum["_" + currentAxis + "1"] === "undefined" ? datum["_" + currentAxis] : datum["_" + currentAxis + "1"];
|
|
133
|
+
});
|
|
134
|
+
var allMinData = flatData.map(function (datum) {
|
|
135
|
+
return typeof datum["_" + currentAxis + "0"] === "undefined" ? datum["_" + currentAxis] : datum["_" + currentAxis + "0"];
|
|
123
136
|
});
|
|
124
|
-
|
|
125
137
|
if (allData.length < 1) {
|
|
126
138
|
return Scale.getBaseScale(props, axis).domain();
|
|
127
139
|
}
|
|
128
140
|
|
|
129
|
-
var min = Collection.getMinValue(
|
|
141
|
+
var min = Collection.getMinValue(allMinData);
|
|
130
142
|
var max = Collection.getMaxValue(allData);
|
|
131
143
|
var domain = void 0;
|
|
132
|
-
if (min === max) {
|
|
144
|
+
if (+min === +max) {
|
|
133
145
|
domain = this.getSinglePointDomain(max);
|
|
134
146
|
} else {
|
|
135
147
|
domain = [min, max];
|
|
@@ -140,10 +152,11 @@ export default {
|
|
|
140
152
|
getSinglePointDomain: function (val) {
|
|
141
153
|
// d3-scale does not properly resolve very small differences.
|
|
142
154
|
// eslint-disable-next-line no-magic-numbers
|
|
143
|
-
var verySmallNumber = Math.pow(10, -
|
|
144
|
-
var
|
|
145
|
-
var
|
|
146
|
-
|
|
155
|
+
var verySmallNumber = Math.pow(10, -10);
|
|
156
|
+
var verySmallDate = 1;
|
|
157
|
+
var min = val instanceof Date ? new Date(+val - verySmallDate) : val - verySmallNumber;
|
|
158
|
+
var max = val instanceof Date ? new Date(+val + verySmallDate) : val + verySmallNumber;
|
|
159
|
+
return [min, max];
|
|
147
160
|
},
|
|
148
161
|
getSymmetricDomain: function (domain, data) {
|
|
149
162
|
var processedData = _sortedUniq(data.sort(function (a, b) {
|
|
@@ -234,8 +247,8 @@ export default {
|
|
|
234
247
|
// use greatest min / max
|
|
235
248
|
var domainMin = cumulativeMin < 0 ? cumulativeMin : Collection.getMinValue(globalDomain);
|
|
236
249
|
var domainMax = Collection.getMaxValue.apply(Collection, [globalDomain].concat(_toConsumableArray(cumulativeMaxArray)));
|
|
237
|
-
if (domainMin === domainMax) {
|
|
238
|
-
return this.getSinglePointDomain(
|
|
250
|
+
if (+domainMin === +domainMax) {
|
|
251
|
+
return this.getSinglePointDomain(domainMin);
|
|
239
252
|
}
|
|
240
253
|
return [domainMin, domainMax];
|
|
241
254
|
},
|
|
@@ -96,27 +96,36 @@ exports.default = {
|
|
|
96
96
|
* @returns {Array} the domain for the given axis
|
|
97
97
|
*/
|
|
98
98
|
getDomainWithZero: function (props, axis) {
|
|
99
|
-
var _this = this;
|
|
100
|
-
|
|
101
99
|
var propsDomain = this.getDomainFromProps(props, axis);
|
|
102
100
|
if (propsDomain) {
|
|
103
101
|
return this.cleanDomain(this.padDomain(propsDomain, props, axis), props, axis);
|
|
104
102
|
}
|
|
105
103
|
var horizontal = props.horizontal;
|
|
106
104
|
|
|
107
|
-
var ensureZero = function (domain) {
|
|
108
|
-
var
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
var ensureZero = function (domain, dataset) {
|
|
106
|
+
var currentAxis = _helpers2.default.getCurrentAxis(axis, horizontal);
|
|
107
|
+
if (currentAxis === "x") {
|
|
108
|
+
return domain;
|
|
109
|
+
} else if (!dataset) {
|
|
110
|
+
return [_collection2.default.getMinValue(domain, 0), _collection2.default.getMaxValue(domain, 0)];
|
|
111
|
+
}
|
|
112
|
+
var flatData = (0, _flatten3.default)(dataset);
|
|
113
|
+
var minData = flatData.map(function (datum) {
|
|
114
|
+
return datum["_" + currentAxis + "0"] || 0;
|
|
115
|
+
});
|
|
116
|
+
var maxData = flatData.map(function (datum) {
|
|
117
|
+
return datum["_" + currentAxis + "1"] || datum["_" + currentAxis] || 0;
|
|
118
|
+
});
|
|
119
|
+
var min = _collection2.default.getMinValue([].concat(_toConsumableArray(domain), _toConsumableArray(minData)));
|
|
120
|
+
var max = _collection2.default.getMaxValue([].concat(_toConsumableArray(domain), _toConsumableArray(maxData)));
|
|
121
|
+
return [min, max];
|
|
113
122
|
};
|
|
114
123
|
var categoryDomain = this.getDomainFromCategories(props, axis);
|
|
115
124
|
if (categoryDomain) {
|
|
116
125
|
return this.cleanDomain(this.padDomain(ensureZero(categoryDomain), props, axis), props, axis);
|
|
117
126
|
}
|
|
118
127
|
var dataset = _data2.default.getData(props);
|
|
119
|
-
var domain = ensureZero(this.getDomainFromData(props, axis, dataset));
|
|
128
|
+
var domain = ensureZero(this.getDomainFromData(props, axis, dataset), dataset);
|
|
120
129
|
return this.cleanDomain(this.padDomain(domain, props, axis), props, axis);
|
|
121
130
|
},
|
|
122
131
|
|
|
@@ -146,18 +155,21 @@ exports.default = {
|
|
|
146
155
|
*/
|
|
147
156
|
getDomainFromData: function (props, axis, dataset) {
|
|
148
157
|
var currentAxis = _helpers2.default.getCurrentAxis(axis, props.horizontal);
|
|
149
|
-
var
|
|
150
|
-
|
|
158
|
+
var flatData = (0, _flatten3.default)(dataset);
|
|
159
|
+
var allData = flatData.map(function (datum) {
|
|
160
|
+
return typeof datum["_" + currentAxis + "1"] === "undefined" ? datum["_" + currentAxis] : datum["_" + currentAxis + "1"];
|
|
161
|
+
});
|
|
162
|
+
var allMinData = flatData.map(function (datum) {
|
|
163
|
+
return typeof datum["_" + currentAxis + "0"] === "undefined" ? datum["_" + currentAxis] : datum["_" + currentAxis + "0"];
|
|
151
164
|
});
|
|
152
|
-
|
|
153
165
|
if (allData.length < 1) {
|
|
154
166
|
return _scale2.default.getBaseScale(props, axis).domain();
|
|
155
167
|
}
|
|
156
168
|
|
|
157
|
-
var min = _collection2.default.getMinValue(
|
|
169
|
+
var min = _collection2.default.getMinValue(allMinData);
|
|
158
170
|
var max = _collection2.default.getMaxValue(allData);
|
|
159
171
|
var domain = void 0;
|
|
160
|
-
if (min === max) {
|
|
172
|
+
if (+min === +max) {
|
|
161
173
|
domain = this.getSinglePointDomain(max);
|
|
162
174
|
} else {
|
|
163
175
|
domain = [min, max];
|
|
@@ -168,10 +180,11 @@ exports.default = {
|
|
|
168
180
|
getSinglePointDomain: function (val) {
|
|
169
181
|
// d3-scale does not properly resolve very small differences.
|
|
170
182
|
// eslint-disable-next-line no-magic-numbers
|
|
171
|
-
var verySmallNumber = Math.pow(10, -
|
|
172
|
-
var
|
|
173
|
-
var
|
|
174
|
-
|
|
183
|
+
var verySmallNumber = Math.pow(10, -10);
|
|
184
|
+
var verySmallDate = 1;
|
|
185
|
+
var min = val instanceof Date ? new Date(+val - verySmallDate) : val - verySmallNumber;
|
|
186
|
+
var max = val instanceof Date ? new Date(+val + verySmallDate) : val + verySmallNumber;
|
|
187
|
+
return [min, max];
|
|
175
188
|
},
|
|
176
189
|
getSymmetricDomain: function (domain, data) {
|
|
177
190
|
var processedData = (0, _sortedUniq3.default)(data.sort(function (a, b) {
|
|
@@ -262,8 +275,8 @@ exports.default = {
|
|
|
262
275
|
// use greatest min / max
|
|
263
276
|
var domainMin = cumulativeMin < 0 ? cumulativeMin : _collection2.default.getMinValue(globalDomain);
|
|
264
277
|
var domainMax = _collection2.default.getMaxValue.apply(_collection2.default, [globalDomain].concat(_toConsumableArray(cumulativeMaxArray)));
|
|
265
|
-
if (domainMin === domainMax) {
|
|
266
|
-
return this.getSinglePointDomain(
|
|
278
|
+
if (+domainMin === +domainMax) {
|
|
279
|
+
return this.getSinglePointDomain(domainMin);
|
|
267
280
|
}
|
|
268
281
|
return [domainMin, domainMax];
|
|
269
282
|
},
|
package/package.json
CHANGED
|
@@ -66,19 +66,28 @@ export default {
|
|
|
66
66
|
return this.cleanDomain(this.padDomain(propsDomain, props, axis), props, axis);
|
|
67
67
|
}
|
|
68
68
|
const { horizontal } = props;
|
|
69
|
-
const ensureZero = (domain) => {
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
const ensureZero = (domain, dataset) => {
|
|
70
|
+
const currentAxis = Helpers.getCurrentAxis(axis, horizontal);
|
|
71
|
+
if (currentAxis === "x") {
|
|
72
|
+
return domain;
|
|
73
|
+
} else if (!dataset) {
|
|
74
|
+
return [Collection.getMinValue(domain, 0), Collection.getMaxValue(domain, 0)];
|
|
75
|
+
}
|
|
76
|
+
const flatData = flatten(dataset);
|
|
77
|
+
const minData = flatData.map((datum) => datum[`_${currentAxis}0`] || 0);
|
|
78
|
+
const maxData = flatData.map((datum) => {
|
|
79
|
+
return datum[`_${currentAxis}1`] || datum[`_${currentAxis}`] || 0;
|
|
80
|
+
});
|
|
81
|
+
const min = Collection.getMinValue([...domain, ...minData]);
|
|
82
|
+
const max = Collection.getMaxValue([...domain, ...maxData]);
|
|
83
|
+
return [min, max];
|
|
75
84
|
};
|
|
76
85
|
const categoryDomain = this.getDomainFromCategories(props, axis);
|
|
77
86
|
if (categoryDomain) {
|
|
78
87
|
return this.cleanDomain(this.padDomain(ensureZero(categoryDomain), props, axis), props, axis);
|
|
79
88
|
}
|
|
80
89
|
const dataset = Data.getData(props);
|
|
81
|
-
const domain = ensureZero(this.getDomainFromData(props, axis, dataset));
|
|
90
|
+
const domain = ensureZero(this.getDomainFromData(props, axis, dataset), dataset);
|
|
82
91
|
return this.cleanDomain(this.padDomain(domain, props, axis), props, axis);
|
|
83
92
|
},
|
|
84
93
|
|
|
@@ -106,16 +115,23 @@ export default {
|
|
|
106
115
|
*/
|
|
107
116
|
getDomainFromData(props, axis, dataset) {
|
|
108
117
|
const currentAxis = Helpers.getCurrentAxis(axis, props.horizontal);
|
|
109
|
-
const
|
|
110
|
-
|
|
118
|
+
const flatData = flatten(dataset);
|
|
119
|
+
const allData = flatData.map((datum) => {
|
|
120
|
+
return typeof datum[`_${currentAxis}1`] === "undefined" ?
|
|
121
|
+
datum[`_${currentAxis}`] : datum[`_${currentAxis}1`];
|
|
122
|
+
});
|
|
123
|
+
const allMinData = flatData.map((datum) => {
|
|
124
|
+
return typeof datum[`_${currentAxis}0`] === "undefined" ?
|
|
125
|
+
datum[`_${currentAxis}`] : datum[`_${currentAxis}0`];
|
|
126
|
+
});
|
|
111
127
|
if (allData.length < 1) {
|
|
112
128
|
return Scale.getBaseScale(props, axis).domain();
|
|
113
129
|
}
|
|
114
130
|
|
|
115
|
-
const min = Collection.getMinValue(
|
|
131
|
+
const min = Collection.getMinValue(allMinData);
|
|
116
132
|
const max = Collection.getMaxValue(allData);
|
|
117
133
|
let domain;
|
|
118
|
-
if (min === max) {
|
|
134
|
+
if (+min === +max) {
|
|
119
135
|
domain = this.getSinglePointDomain(max);
|
|
120
136
|
} else {
|
|
121
137
|
domain = [min, max];
|
|
@@ -128,10 +144,11 @@ export default {
|
|
|
128
144
|
getSinglePointDomain(val) {
|
|
129
145
|
// d3-scale does not properly resolve very small differences.
|
|
130
146
|
// eslint-disable-next-line no-magic-numbers
|
|
131
|
-
const verySmallNumber = Math.pow(10, -
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
|
|
147
|
+
const verySmallNumber = Math.pow(10, -10);
|
|
148
|
+
const verySmallDate = 1;
|
|
149
|
+
const min = val instanceof Date ? new Date(+val - verySmallDate) : val - verySmallNumber;
|
|
150
|
+
const max = val instanceof Date ? new Date(+val + verySmallDate) : val + verySmallNumber;
|
|
151
|
+
return [min, max];
|
|
135
152
|
},
|
|
136
153
|
|
|
137
154
|
getSymmetricDomain(domain, data) {
|
|
@@ -220,8 +237,8 @@ export default {
|
|
|
220
237
|
// use greatest min / max
|
|
221
238
|
const domainMin = cumulativeMin < 0 ? cumulativeMin : Collection.getMinValue(globalDomain);
|
|
222
239
|
const domainMax = Collection.getMaxValue(globalDomain, ...cumulativeMaxArray);
|
|
223
|
-
if (domainMin === domainMax) {
|
|
224
|
-
return this.getSinglePointDomain(
|
|
240
|
+
if (+domainMin === +domainMax) {
|
|
241
|
+
return this.getSinglePointDomain(domainMin);
|
|
225
242
|
}
|
|
226
243
|
return [domainMin, domainMax];
|
|
227
244
|
},
|