in src/core/configurableTL.ts [1913:2095]
function configureLinearAxis(timeline_scale, tl_layout, tl_representation, prev_tl_representation, tl_scale, data, tick_format, unit_width, timeline_container, duration, width, height) {
const timeline_axis = d3.svg.axis().orient("top");
if (tl_representation === "Linear") {
timeline_axis.scale(timeline_scale);
timeline_axis.ticks(10);
timeline_axis.tickSize(6, 0);
timeline_axis.tickFormat(undefined);
timeline_axis.tickValues(undefined);
if (tl_layout !== "Segmented" && tl_scale === "Chronological" && globals.date_granularity === "years" && data.min_start_date.getUTCFullYear() < 0) {
timeline_axis.tickFormat(tick_format);
timeline_axis.tickValues(undefined);
} else if (tl_scale === "Sequential" || tl_scale === "Collapsed") {
timeline_axis.ticks(10);
timeline_axis.tickSize(6, 0);
timeline_axis.tickValues(d3.range(0, globals.max_seq_index * 1.5 * unit_width - unit_width, unit_width * 10));
timeline_axis.tickFormat(function (d) {
return d / unit_width;
});
} else if (tl_scale === "Log") {
timeline_axis.ticks(10, tick_format);
timeline_axis.tickSize(6, 0);
timeline_axis.tickValues(undefined);
} else if (tl_scale === "Relative" || globals.date_granularity === "epochs") {
timeline_axis.tickFormat(tick_format);
timeline_axis.tickValues(undefined);
} else if (tl_layout === "Segmented") {
if (globals.segment_granularity === "decades") {
timeline_axis.tickValues(d3.range(0, 120, 12));
} else {
timeline_axis.tickValues(undefined);
}
timeline_axis.tickFormat(function (d) {
var converted_tick = d;
switch (globals.segment_granularity) {
case "days":
converted_tick = moment().hour(d).format("hA");
break;
case "weeks":
converted_tick = moment().weekday(d).format("ddd");
break;
case "months":
converted_tick = moment().date(d).format("Do");
break;
case "years":
converted_tick = moment().week(d + 1).format("MMM");
break;
case "decades":
converted_tick = (d / 12) + " years";
break;
case "centuries":
case "millenia":
converted_tick = d + " years";
break;
case "epochs":
converted_tick = globals.formatAbbreviation(d) + " years";
break;
default:
break;
}
return converted_tick;
});
} else {
timeline_axis.tickValues(undefined);
timeline_axis.tickFormat(function (d) {
var converted_tick = d;
switch (globals.segment_granularity) {
case "days":
converted_tick = moment(d).format("MMM D hA");
break;
case "weeks":
converted_tick = moment(d).format("MMM D");
break;
case "months":
converted_tick = moment(d).format("MMM D");
break;
case "years":
case "decades":
case "centuries":
case "millenia":
converted_tick = moment(d).format("YYYY");
break;
case "epochs":
converted_tick = globals.formatAbbreviation(d);
break;
default:
break;
}
return converted_tick;
});
}
// update the timeline axis for linear timelines
var timeline_axis_container = timeline_container.selectAll(".timeline_axis")
.data([null]);
timeline_axis_container.enter()
.append("g")
.attr("class", "timeline_axis")
.style("opacity", 0);
timeline_axis_container.enter()
.append("g")
.attr("class", "timeline_axis")
.attr("id", "bottom_timeline_axis")
.style("opacity", 0);
var timeline_axis_update = timeline_container.select(".timeline_axis")
.transition("timeline_axis_update")
.delay(0)
.duration(duration)
.style("opacity", 1)
.call(timeline_axis);
timeline_axis_update.selectAll("text")
.attr("y", -12)
.style("fill", "#666")
.style("font-weight", "normal");
timeline_axis_update.selectAll(".tick line")
.delay(function (d, i) { // eslint-disable-line no-shadow
return i * duration / timeline_axis_update.selectAll(".tick line")[0].length;
})
.attr("y1", -6)
.attr("y2", 0);
var bottom_timeline_axis_update = timeline_container.select("#bottom_timeline_axis")
.transition("bottom_timeline_axis_update")
.delay(0)
.duration(duration)
.style("opacity", 1)
.call(timeline_axis);
bottom_timeline_axis_update.selectAll("text")
.delay(function (d, i) { // eslint-disable-line no-shadow
return i * duration / bottom_timeline_axis_update.selectAll(".tick line")[0].length;
})
.attr("y", height + 18);
bottom_timeline_axis_update.select(".domain")
.attr("transform", function () {
return "translate(0," + height + ")";
});
bottom_timeline_axis_update.selectAll(".tick line")
.delay(function (d, i) { // eslint-disable-line no-shadow
return i * duration / bottom_timeline_axis_update.selectAll(".tick line")[0].length;
})
.attr("y1", 0)
.attr("y2", height + 6);
//logEvent("Linear axis updated", "axis_update");
} else if (prev_tl_representation === "Linear" && tl_representation !== "Linear") { // remove axes for non-linear timelines
var timeline_axis_hide = timeline_container.select(".timeline_axis")
.transition("timeline_axis_hide")
.duration(duration);
var bottom_timeline_axis_hide = timeline_container.select("#bottom_timeline_axis")
.transition("bottom_timeline_axis_hide")
.duration(duration);
timeline_axis_hide.selectAll(".tick line")
.attr("y1", -6)
.attr("y2", -6);
bottom_timeline_axis_hide.select(".domain")
.attr("transform", function () {
return "translate(0,0)";
});
bottom_timeline_axis_hide.selectAll("text")
.attr("y", -12);
bottom_timeline_axis_hide.selectAll(".tick line")
.attr("y1", -6)
.attr("y2", -6);
timeline_container.selectAll(".timeline_axis")
.transition("timeline_container_axis")
.duration(duration)
.style("opacity", 0);
}
}