in src/configurableTL.js [1694:1787]
function configureFacetedRadialAxes(tl_layout, tl_representation, tl_scale, radial_axis, radial_axis_quantiles, duration, timeline_scale_segments, timeline_facet, width, height, timeline_scale, prev_tl_scale, prev_tl_layout, prev_tl_representation, timeline_container) {
if (tl_representation === "Radial" && tl_layout === "Faceted") {
radial_axis.duration(duration);
if (tl_scale === "Relative") {
radial_axis_quantiles = [];
radial_axis.radial_axis_units("Relative");
if (globals.segment_granularity === "days") {
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0)) * 3600000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.125)) * 3600000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.25)) * 3600000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.375)) * 3600000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.5)) * 3600000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.625)) * 3600000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.75)) * 3600000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.875)) * 3600000);
radial_axis.final_quantile(Math.round(d3.quantile(timeline_scale_segments, 1)) * 3600000);
} else {
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0)) * 86400000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.2)) * 86400000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.4)) * 86400000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.6)) * 86400000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 0.8)) * 86400000);
radial_axis_quantiles.push(Math.round(d3.quantile(timeline_scale_segments, 1)) * 86400000);
radial_axis.final_quantile(Math.round(d3.quantile(timeline_scale_segments, 1)) * 86400000);
}
radial_axis.track_bounds(globals.max_num_tracks + 1);
} else {
if (radial_axis_quantiles !== timeline_scale_segments) {
radial_axis_quantiles = timeline_scale_segments;
}
radial_axis.final_quantile(timeline_scale_segments[timeline_scale_segments.length - 1]);
if (tl_scale === "Chronological") {
radial_axis.radial_axis_units("Chronological");
if (globals.segment_granularity === "epochs") {
radial_axis.track_bounds(1);
} else {
radial_axis.track_bounds(globals.max_num_tracks + 1);
}
} else if (tl_scale === "Sequential") {
radial_axis.radial_axis_units("Sequential");
radial_axis.track_bounds(1);
}
}
// update the radial axis for faceted radial timelines
var faceted_radial_axis = timeline_facet.selectAll(".faceted_radial_axis")
.data([radial_axis_quantiles]);
faceted_radial_axis.enter()
.append("g")
.attr("class", "faceted_radial_axis")
.style("opacity", 0);
let facet_number = 0;
timeline_facet.selectAll(".faceted_radial_axis")
.transition("faceted_radial_axis_update")
.duration(duration)
.style("opacity", 1)
.attr("transform", function () {
var offset_x,
offset_y;
if (tl_layout !== "Faceted") {
offset_x = width / 2;
offset_y = height / 2;
} else if (tl_representation === "Linear") {
offset_x = width / 2;
offset_y = facet_number * (height / globals.num_facets);
facet_number++;
} else if (tl_representation === "Radial" || (tl_representation === "Spiral" && tl_scale === "Sequential")) {
var facet_dim_x = width / globals.num_facet_cols;
var facet_dim_y = height / globals.num_facet_rows;
offset_x = facet_number % globals.num_facet_cols * facet_dim_x;
offset_y = Math.floor(facet_number / globals.num_facet_cols - 1) * facet_dim_y + facet_dim_y + globals.buffer;
facet_number++;
} else {
offset_x = width / 2;
offset_y = height / 2;
}
return "translate(" + unNaN(offset_x) + "," + unNaN(offset_y) + ")";
})
.call(radial_axis.radial_axis_scale(timeline_scale).x_pos(width / globals.num_facet_cols / 2).y_pos(height / globals.num_facet_rows / 2));
logEvent("Faceted Radial axis updated", "axis_update");
} else if (prev_tl_representation === "Radial" && prev_tl_layout === "Faceted" && (tl_representation !== "Radial" || tl_layout !== "Faceted")) {
hideAxis(timeline_container, duration, "faceted_radial_axis");
}
return { radial_axis_quantiles };
}