@rcsb/rcsb-saguaro
Version:
RCSB 1D Feature Viewer
46 lines (45 loc) • 1.86 kB
JavaScript
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);
}
}