UNPKG

@rcsb/rcsb-saguaro-app

Version:
82 lines (81 loc) 4.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExperimentalAlignmentTrackTitleFactory = void 0; const tslib_1 = require("tslib"); const GqlTypes_1 = require("@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes"); const web_resources_json_1 = tslib_1.__importDefault(require("../../../../RcsbServerConfig/web.resources.json")); const RcsbAnnotationConstants_1 = require("../../../../RcsbAnnotationConfig/RcsbAnnotationConstants"); const Assertions_1 = require("../../../../RcsbUtils/Helpers/Assertions"); var assertDefined = Assertions_1.Assertions.assertDefined; const TagDelimiter_1 = require("@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter"); class ExperimentalAlignmentTrackTitleFactory { constructor(entityInstanceTranslator) { this.entityInstanceTranslator = undefined; this.entityInstanceTranslator = entityInstanceTranslator; } getTrackTitle(alignmentQueryContext, targetAlignment) { return tslib_1.__awaiter(this, void 0, void 0, function* () { let rowTitle; assertDefined(targetAlignment.target_id); if (alignmentQueryContext.excludeAlignmentLinks) { rowTitle = targetAlignment.target_id; } else if (alignmentQueryContext.to === GqlTypes_1.SequenceReference.PdbInstance && this.entityInstanceTranslator != null) { const entityId = this.entityInstanceTranslator.translateAsymToEntity(TagDelimiter_1.TagDelimiter.parseInstance(targetAlignment.target_id).instanceId); assertDefined(entityId); rowTitle = { visibleTex: this.buildInstanceId(targetAlignment.target_id), url: web_resources_json_1.default.rcsb_entry.url + TagDelimiter_1.TagDelimiter.parseInstance(targetAlignment.target_id).entryId + "#entity-" + entityId, style: { fontWeight: "bold", color: RcsbAnnotationConstants_1.RcsbAnnotationConstants.provenanceColorCode.rcsbLink } }; } else if (alignmentQueryContext.to === GqlTypes_1.SequenceReference.PdbEntity) { const entityId = TagDelimiter_1.TagDelimiter.parseEntity(targetAlignment.target_id).entityId; rowTitle = { visibleTex: targetAlignment.target_id, url: web_resources_json_1.default.rcsb_entry.url + TagDelimiter_1.TagDelimiter.parseEntity(targetAlignment.target_id).entryId + "#entity-" + entityId, style: { fontWeight: "bold", color: RcsbAnnotationConstants_1.RcsbAnnotationConstants.provenanceColorCode.rcsbLink } }; } else if (alignmentQueryContext.to === GqlTypes_1.SequenceReference.Uniprot) { rowTitle = { visibleTex: targetAlignment.target_id, url: web_resources_json_1.default.rcsb_uniprot.url + targetAlignment.target_id, style: { fontWeight: "bold", color: RcsbAnnotationConstants_1.RcsbAnnotationConstants.provenanceColorCode.rcsbLink } }; } else { rowTitle = targetAlignment.target_id; } return rowTitle; }); } getTrackTitlePrefix(alignmentQueryContext, targetAlignment) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return alignmentQueryContext.to && !alignmentQueryContext.to.includes("PDB") ? alignmentQueryContext.to.replace("_", " ") + " " + TagDelimiter_1.TagDelimiter.alignmentTitle : ""; }); } getTrackTitleFlagColor(alignmentQueryContext, targetAlignment) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (alignmentQueryContext.to === GqlTypes_1.SequenceReference.Uniprot) return RcsbAnnotationConstants_1.RcsbAnnotationConstants.provenanceColorCode.external; return RcsbAnnotationConstants_1.RcsbAnnotationConstants.provenanceColorCode.rcsbPdb; }); } buildInstanceId(targetId) { var _a; const labelAsymId = TagDelimiter_1.TagDelimiter.parseInstance(targetId).instanceId; const authAsymId = (_a = this.entityInstanceTranslator) === null || _a === void 0 ? void 0 : _a.translateAsymToAuth(labelAsymId); return TagDelimiter_1.TagDelimiter.parseInstance(targetId).entryId + TagDelimiter_1.TagDelimiter.instance + (labelAsymId === authAsymId || !authAsymId ? labelAsymId : labelAsymId + "[auth " + authAsymId + "]"); } } exports.ExperimentalAlignmentTrackTitleFactory = ExperimentalAlignmentTrackTitleFactory;