UNPKG

@rcsb/rcsb-saguaro

Version:
115 lines (114 loc) 5.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RcsbD3BondManager = void 0; const d3_selection_1 = require("d3-selection"); const RcsbD3Constants_1 = require("../RcsbD3Constants"); class RcsbD3BondManager { constructor() { this.beginCircleElements = (0, d3_selection_1.select)(RcsbD3Constants_1.RcsbD3Constants.EMPTY); this.endCircleElements = (0, d3_selection_1.select)(RcsbD3Constants_1.RcsbD3Constants.EMPTY); this.lineElements = (0, d3_selection_1.select)(RcsbD3Constants_1.RcsbD3Constants.EMPTY); } plot(config) { const elements = config.elements; const xScale = config.xScale; const yScale = config.yScale; const height = config.height; const color = config.color != undefined ? config.color : "#CCCCCC"; const radius = config.radius; this.lineElements = elements.select(RcsbD3Constants_1.RcsbD3Constants.LINE); this.lineElements.attr(RcsbD3Constants_1.RcsbD3Constants.STROKE_WIDTH, 2) .attr(RcsbD3Constants_1.RcsbD3Constants.STROKE, (d) => { if (d.color === undefined) { return color; } else { return d.color; } }) .attr(RcsbD3Constants_1.RcsbD3Constants.X1, (d) => { var _a; return (_a = xScale(d.begin)) !== null && _a !== void 0 ? _a : 0; }) .attr(RcsbD3Constants_1.RcsbD3Constants.Y1, (d) => { var _a; return height - ((_a = yScale(0.5)) !== null && _a !== void 0 ? _a : 0); }) .attr(RcsbD3Constants_1.RcsbD3Constants.X2, (d) => { var _a; if (d.end == undefined) throw "Element end position not found"; return (_a = xScale(d.end)) !== null && _a !== void 0 ? _a : 0; }) .attr(RcsbD3Constants_1.RcsbD3Constants.Y2, (d) => { var _a; return height - ((_a = yScale(0.5)) !== null && _a !== void 0 ? _a : 0); }); this.beginCircleElements = elements.select(RcsbD3Constants_1.RcsbD3Constants.CIRCLE + "." + RcsbD3Constants_1.RcsbD3Constants.BOND_BEGIN); this.beginCircleElements.attr(RcsbD3Constants_1.RcsbD3Constants.CX, (d) => { var _a; return (_a = xScale(d.begin)) !== null && _a !== void 0 ? _a : 0; }) .attr(RcsbD3Constants_1.RcsbD3Constants.CY, (d) => { var _a; return height - ((_a = yScale(0.5)) !== null && _a !== void 0 ? _a : 0); }) .attr(RcsbD3Constants_1.RcsbD3Constants.R, radius) .attr(RcsbD3Constants_1.RcsbD3Constants.FILL, (d) => { if (typeof d.color === "string") return d.color; return color; }); this.endCircleElements = elements.select(RcsbD3Constants_1.RcsbD3Constants.CIRCLE + "." + RcsbD3Constants_1.RcsbD3Constants.BOND_END); this.endCircleElements.attr(RcsbD3Constants_1.RcsbD3Constants.CX, (d) => { var _a; if (d.end == undefined) throw "Element end position not found"; return (_a = xScale(d.end)) !== null && _a !== void 0 ? _a : 0; }) .attr(RcsbD3Constants_1.RcsbD3Constants.CY, (d) => { var _a; return height - ((_a = yScale(0.5)) !== null && _a !== void 0 ? _a : 0); }) .attr(RcsbD3Constants_1.RcsbD3Constants.R, radius) .attr(RcsbD3Constants_1.RcsbD3Constants.FILL, (d) => { if (typeof d.color === "string") return d.color; return color; }); } move(config) { const xScale = config.xScale; const yScale = config.yScale; const height = config.height; this.lineElements.attr(RcsbD3Constants_1.RcsbD3Constants.X1, (d) => { var _a; return (_a = xScale(d.begin)) !== null && _a !== void 0 ? _a : 0; }) .attr(RcsbD3Constants_1.RcsbD3Constants.X2, (d) => { var _a; if (d.end == undefined) throw "Missing bond end property"; return (_a = xScale(d.end)) !== null && _a !== void 0 ? _a : 0; }); this.beginCircleElements.attr(RcsbD3Constants_1.RcsbD3Constants.CX, (d) => { var _a; return (_a = xScale(d.begin)) !== null && _a !== void 0 ? _a : 0; }) .attr(RcsbD3Constants_1.RcsbD3Constants.CY, (d) => { var _a; return height - ((_a = yScale(0.5)) !== null && _a !== void 0 ? _a : 0); }); this.endCircleElements.attr(RcsbD3Constants_1.RcsbD3Constants.CX, (d) => { var _a; if (d.end == undefined) throw "Missing bond end property"; return (_a = xScale(d.end)) !== null && _a !== void 0 ? _a : 0; }) .attr(RcsbD3Constants_1.RcsbD3Constants.CY, (d) => { var _a; return height - ((_a = yScale(0.5)) !== null && _a !== void 0 ? _a : 0); }); } } exports.RcsbD3BondManager = RcsbD3BondManager;