UNPKG

@rcsb/rcsb-saguaro

Version:
46 lines (45 loc) 1.86 kB
import { RcsbD3Constants } from "../RcsbD3Constants"; import * as classes from "../../../scss/RcsbBoard.module.scss"; export class RcsbD3AreaManager { constructor() { this.areaMap = {}; } plot(multiConfig) { multiConfig.forEach(config => { var _a; if (this.areaMap[config.id] == null) { this.areaMap[config.id] = config.trackG.append(RcsbD3Constants.PATH); this.areaMap[config.id] .attr(RcsbD3Constants.ID, config.id) .style(RcsbD3Constants.FILL_OPACITY, (_a = config.opacity) !== null && _a !== void 0 ? _a : .2) .style(RcsbD3Constants.FILL, config.color) .attr(RcsbD3Constants.CLASS, classes.rcsbArea) .on(RcsbD3Constants.CLICK, (event) => { config.mouseclick(event); }); this.addAreaEvents(this.areaMap[config.id], config); } this.areaMap[config.id] .datum(config.points) .attr(RcsbD3Constants.D, config.area); }); } addAreaEvents(area, config) { area.on(RcsbD3Constants.CLICK, event => config.mouseclick(event)); } plotAxis(config) { config.trackG.select(RcsbD3Constants.LINE).remove(); config.trackG.append(RcsbD3Constants.LINE) .style(RcsbD3Constants.STROKE, "#CCC") .attr(RcsbD3Constants.STROKE_DASH, "2 1") .attr(RcsbD3Constants.X1, config.x1) .attr(RcsbD3Constants.X2, config.x2) .attr(RcsbD3Constants.Y1, config.y1) .attr(RcsbD3Constants.Y2, config.y2); } move(config) { config.trackG.select(RcsbD3Constants.PATH + "#" + config.id) .datum(config.points) .attr(RcsbD3Constants.D, config.area); } }