in src/UXClient/Components/AvailabilityChart/AvailabilityChart.ts [376:409]
private drawWarmRange () {
var svgGroup = this.targetElement.select('.tsi-timePickerContainer').select(".tsi-lineChartSVG").select(".svgGroup");
if (svgGroup.select('.tsi-warmRect').empty()) {
svgGroup.append("rect")
.classed("tsi-warmRect", true);
svgGroup.select('.brushElem').raise();
}
let warmRect = svgGroup.select(".tsi-warmRect");
let outOfRange = true;
if (this.chartOptions.warmStoreRange) {
let warmStart = new Date(this.chartOptions.warmStoreRange[0]);
let boundedWarmStart = new Date(Math.max(warmStart.valueOf(), this.zoomedFromMillis));
let warmEnd = new Date(this.chartOptions.warmStoreRange.length === 2 ? this.chartOptions.warmStoreRange[1] : this.toMillis);
let boundedWarmEnd = new Date(Math.min(warmEnd.valueOf(), this.zoomedToMillis));
if (boundedWarmStart < boundedWarmEnd) {
outOfRange = false;
warmRect.attr("x", Math.max(this.timePickerLineChart.x(boundedWarmStart)))
.attr("y", this.chartOptions.isCompact ? 12 : -8)
.attr("width", this.timePickerLineChart.x(boundedWarmEnd) - this.timePickerLineChart.x(boundedWarmStart))
.attr("height", this.chartOptions.isCompact ? 4 : Math.max((this.targetElement.select('.tsi-timePickerContainer').select(".tsi-lineChartSVG").node().getBoundingClientRect().height - 44), 0))
.attr("fill-opacity", this.chartOptions.isCompact ? .8 : .08)
.attr('stroke-opacity', this.chartOptions.isCompact ? 0 : .5)
.attr("pointer-events", "none");
}
}
if (outOfRange || this.chartOptions.warmStoreRange === null) {
warmRect.style('display', 'none');
} else {
warmRect.style('display', 'block');
}
}