UNPKG

@rcsb/rcsb-saguaro

Version:
51 lines (50 loc) 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RcsbD3AreaManager = void 0; const tslib_1 = require("tslib"); const RcsbD3Constants_1 = require("../RcsbD3Constants"); const classes = tslib_1.__importStar(require("../../../scss/RcsbBoard.module.scss")); 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_1.RcsbD3Constants.PATH); this.areaMap[config.id] .attr(RcsbD3Constants_1.RcsbD3Constants.ID, config.id) .style(RcsbD3Constants_1.RcsbD3Constants.FILL_OPACITY, (_a = config.opacity) !== null && _a !== void 0 ? _a : .2) .style(RcsbD3Constants_1.RcsbD3Constants.FILL, config.color) .attr(RcsbD3Constants_1.RcsbD3Constants.CLASS, classes.rcsbArea) .on(RcsbD3Constants_1.RcsbD3Constants.CLICK, (event) => { config.mouseclick(event); }); this.addAreaEvents(this.areaMap[config.id], config); } this.areaMap[config.id] .datum(config.points) .attr(RcsbD3Constants_1.RcsbD3Constants.D, config.area); }); } addAreaEvents(area, config) { area.on(RcsbD3Constants_1.RcsbD3Constants.CLICK, event => config.mouseclick(event)); } plotAxis(config) { config.trackG.select(RcsbD3Constants_1.RcsbD3Constants.LINE).remove(); config.trackG.append(RcsbD3Constants_1.RcsbD3Constants.LINE) .style(RcsbD3Constants_1.RcsbD3Constants.STROKE, "#CCC") .attr(RcsbD3Constants_1.RcsbD3Constants.STROKE_DASH, "2 1") .attr(RcsbD3Constants_1.RcsbD3Constants.X1, config.x1) .attr(RcsbD3Constants_1.RcsbD3Constants.X2, config.x2) .attr(RcsbD3Constants_1.RcsbD3Constants.Y1, config.y1) .attr(RcsbD3Constants_1.RcsbD3Constants.Y2, config.y2); } move(config) { config.trackG.select(RcsbD3Constants_1.RcsbD3Constants.PATH + "#" + config.id) .datum(config.points) .attr(RcsbD3Constants_1.RcsbD3Constants.D, config.area); } } exports.RcsbD3AreaManager = RcsbD3AreaManager;