@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
28 lines (27 loc) • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlignmentBlockFactory = void 0;
const tslib_1 = require("tslib");
class AlignmentBlockFactory {
constructor(alignmentTrackFactory, trackModifier) {
this.trackFactory = alignmentTrackFactory;
this.trackConfigModifier = trackModifier;
}
getBlock(alignmentRequestContext, alignmentData) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
var _a;
alignmentRequestContext = Object.assign(Object.assign({}, alignmentRequestContext), { querySequence: (_a = alignmentData.query_sequence) !== null && _a !== void 0 ? _a : undefined });
if (!alignmentData.target_alignments)
return [];
return (yield Promise.all(alignmentData.target_alignments.map((alignment, index) => tslib_1.__awaiter(this, void 0, void 0, function* () {
var _a, _b;
if (alignmentRequestContext.filterByTargetContains != null && !((_a = alignment === null || alignment === void 0 ? void 0 : alignment.target_id) === null || _a === void 0 ? void 0 : _a.includes(alignmentRequestContext.filterByTargetContains)))
return;
if ((alignment === null || alignment === void 0 ? void 0 : alignment.target_sequence) == null)
return;
return Object.assign(Object.assign({}, yield this.trackFactory.getTrack(alignmentRequestContext, alignment)), yield ((_b = this.trackConfigModifier) === null || _b === void 0 ? void 0 : _b.call(this, alignmentRequestContext, alignment, alignmentData, index)));
})))).filter((x) => x != undefined);
});
}
}
exports.AlignmentBlockFactory = AlignmentBlockFactory;