in src/main.js [3005:3039]
function getSegmentGranularity(min_date, max_date) {
if (min_date === undefined || max_date === undefined) {
return "";
}
var timeline_range, // limit the number of facets to less than 20, rounding up / down to nearest natural temporal boundary
days_to_years; // flag for transitioning to granularities of years or longer
if (globals.date_granularity === "days") {
timeline_range = time.day.count(time.day.floor(min_date), time.day.floor(max_date));
if (timeline_range <= 7) {
return "days";
} else if (timeline_range > 7 && timeline_range <= 42) {
return "weeks";
} else if (timeline_range > 42 && timeline_range <= 732) {
return "months";
}
days_to_years = true;
}
if (globals.date_granularity === "years" || days_to_years) {
timeline_range = max_date.getUTCFullYear() - min_date.getUTCFullYear();
if (timeline_range <= 10) {
return "years";
} else if (timeline_range > 10 && timeline_range <= 100) {
return "decades";
} else if (timeline_range > 100 && timeline_range <= 1000) {
return "centuries";
}
return "millenia";
} else if (globals.date_granularity === "epochs") {
return "epochs";
}
}