@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
83 lines • 3.69 kB
JavaScript
export class RcsbFvTooltip {
showTooltip(d) {
const tooltipDiv = document.createElement("div");
let region = "Position: " + d.begin.toString();
if (typeof d.end === "number" && d.end != d.begin)
region += " - " + d.end.toString();
const spanRegion = document.createElement("span");
spanRegion.append(region);
if (typeof d.beginName === "string" && d.indexName != undefined) {
spanRegion.append(RcsbFvTooltip.buildIndexNames(d.beginName, d.endName, d.indexName));
}
if (typeof d.oriBegin === "number") {
let ori_region = d.oriBegin.toString();
if (typeof d.oriEnd === "number")
ori_region += " - " + d.oriEnd.toString();
const spanOriRegion = document.createElement("span");
if (d.source != undefined)
spanOriRegion.append(" | [" + d.source.replace("_", " ") + "] " + d.sourceId + ": " + ori_region);
spanOriRegion.style.color = "#888888";
if (typeof d.oriBeginName === "string" && d.indexName != undefined)
spanOriRegion.append(RcsbFvTooltip.buildIndexNames(d.oriBeginName, d.oriEndName, d.indexName));
spanRegion.append(spanOriRegion);
}
let title = d.title;
if (typeof d.name === "string")
title = d.name;
else if (typeof d.featureId === "string")
title = d.featureId;
if (title != undefined)
tooltipDiv.append(title);
if (typeof d.provenanceName === "string") {
const spanProvenance = document.createElement("span");
const spanProvenanceString = document.createElement("span");
spanProvenanceString.append(d.provenanceName);
if (typeof d.provenanceColor === "string")
spanProvenanceString.style.color = d.provenanceColor;
else
spanProvenanceString.style.color = "#888888";
spanProvenance.append(" [", spanProvenanceString, "]");
spanProvenance.style.color = "#888888";
tooltipDiv.append(spanProvenance);
tooltipDiv.append(RcsbFvTooltip.bNode());
}
else if (title != undefined) {
tooltipDiv.append(RcsbFvTooltip.bNode());
}
if (typeof d.value === "number") {
const valueRegion = document.createElement("span");
valueRegion.append(" value: " + d.value);
tooltipDiv.append(valueRegion);
tooltipDiv.append(RcsbFvTooltip.bNode());
}
tooltipDiv.append(spanRegion);
return tooltipDiv;
}
showTooltipDescription(d) {
if (d.description == null || d.description.length == 0)
return undefined;
const tooltipDescriptionDiv = document.createElement("div");
d.description.slice(0, 2).forEach(des => {
const desDiv = document.createElement("div");
desDiv.append(des);
tooltipDescriptionDiv.append(desDiv);
});
return tooltipDescriptionDiv;
}
static buildIndexNames(beginName, endName, name) {
const spanAuthRegion = document.createElement("span");
let authRegion = beginName;
if (typeof endName === "string")
authRegion += " - " + endName;
spanAuthRegion.append(" [" + name + ": " + authRegion + "]");
spanAuthRegion.style.color = "#888888";
return spanAuthRegion;
}
static bNode() {
const b = document.createElement("span");
b.append(" | ");
b.style.fontWeight = "bold";
return b;
}
}
//# sourceMappingURL=RcsbFvTooltip.js.map