UNPKG

@rcsb/rcsb-saguaro-app

Version:
83 lines 3.69 kB
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