@rcsb/rcsb-saguaro
Version:
RCSB 1D Feature Viewer
51 lines (50 loc) • 2.4 kB
JavaScript
;
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;