@swimlane/ngx-charts
Version:
Declarative Charting Framework for Angular2 and beyond!
69 lines • 1.83 kB
JavaScript
import { scaleLinear, scalePoint, scaleTime } from 'd3-scale';
export function getScaleType(values) {
var date = true;
var num = true;
for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {
var value = values_1[_i];
if (!isDate(value)) {
date = false;
}
if (typeof value !== 'number') {
num = false;
}
}
if (date)
return 'time';
if (num)
return 'linear';
return 'ordinal';
}
function isDate(value) {
if (value instanceof Date) {
return true;
}
return false;
}
export function getDomain(values, scaleType, autoScale) {
var domain = [];
if (scaleType === 'time') {
var min = Math.min.apply(Math, values);
var max = Math.max.apply(Math, values);
domain = [min, max];
}
else if (scaleType === 'linear') {
values = values.map(function (v) { return Number(v); });
var min = Math.min.apply(Math, values);
var max = Math.max.apply(Math, values);
if (!autoScale) {
min = Math.min(0, min);
}
domain = [min, max];
}
else {
domain = values;
}
return domain;
}
export function getScale(domain, range, scaleType, roundDomains) {
var scale;
if (scaleType === 'time') {
scale = scaleTime()
.range(range)
.domain(domain);
}
else if (scaleType === 'linear') {
scale = scaleLinear()
.range(range)
.domain(domain);
if (roundDomains) {
scale = scale.nice();
}
}
else if (scaleType === 'ordinal') {
scale = scalePoint()
.range([range[0], range[1]])
.domain(domain);
}
return scale;
}
//# sourceMappingURL=bubble-chart.utils.js.map