UNPKG

@rcsb/rcsb-saguaro-app

Version:
45 lines (44 loc) 2.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RcsbFvAssemblyBuilder = void 0; const tslib_1 = require("tslib"); const RcsbFvCoreBuilder_1 = require("./RcsbFvCoreBuilder"); const RcsbFvInstanceBuilder_1 = require("./RcsbFvInstanceBuilder"); const RcsbRequestContextManager_1 = require("../../RcsbRequest/RcsbRequestContextManager"); const Assertions_1 = require("../../RcsbUtils/Helpers/Assertions"); var assertDefined = Assertions_1.Assertions.assertDefined; class RcsbFvAssemblyBuilder { static buildAssemblySequenceFv(elementFvId, elementSelectAssemblyId, elementSelectInstanceId, entryId, onAsseblyChangeCallback, onInstanceChangeCallback) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const assemblyTranslate = yield RcsbRequestContextManager_1.rcsbRequestCtxManager.getEntryToAssembly(entryId); const assemblyMap = assemblyTranslate.getData(); if (assemblyMap.size == 0) { RcsbFvCoreBuilder_1.RcsbFvCoreBuilder.showMessage(elementFvId, "No sequence features are available"); throw new Error("No sequence features are available"); } else { RcsbFvCoreBuilder_1.RcsbFvCoreBuilder.buildSelectButton(elementFvId, elementSelectAssemblyId, Array.from(assemblyMap.keys()).map(assemblyId => { return { name: assemblyId, label: assemblyId, onChange: () => tslib_1.__awaiter(this, void 0, void 0, function* () { const o = assemblyMap.get(assemblyId); if (!o) return; yield RcsbFvInstanceBuilder_1.RcsbFvInstanceBuilder.buildSelectorInstanceFv(o, elementFvId, elementSelectInstanceId, entryId, { onChangeCallback: onInstanceChangeCallback }); if (typeof onAsseblyChangeCallback === "function") onAsseblyChangeCallback(assemblyId); }) }; }), { dropdownTitle: "ASSEMBLY" }); const o = assemblyMap.get(RcsbRequestContextManager_1.rcsbRequestCtxManager.modelKey); assertDefined(o); const out = yield RcsbFvInstanceBuilder_1.RcsbFvInstanceBuilder.buildSelectorInstanceFv(o, elementFvId, elementSelectInstanceId, entryId, { onChangeCallback: onInstanceChangeCallback }); if (typeof onAsseblyChangeCallback === "function") onAsseblyChangeCallback(RcsbRequestContextManager_1.rcsbRequestCtxManager.modelKey); return out; } }); } } exports.RcsbFvAssemblyBuilder = RcsbFvAssemblyBuilder;