UNPKG

@rcsb/rcsb-saguaro-app

Version:
41 lines 2.47 kB
import { __awaiter } from "tslib"; import { RcsbFvCoreBuilder } from "./RcsbFvCoreBuilder"; import { RcsbFvInstanceBuilder } from "./RcsbFvInstanceBuilder"; import { rcsbRequestCtxManager } from "../../RcsbRequest/RcsbRequestContextManager"; import { Assertions } from "../../RcsbUtils/Helpers/Assertions"; var assertDefined = Assertions.assertDefined; export class RcsbFvAssemblyBuilder { static buildAssemblySequenceFv(elementFvId, elementSelectAssemblyId, elementSelectInstanceId, entryId, onAsseblyChangeCallback, onInstanceChangeCallback) { return __awaiter(this, void 0, void 0, function* () { const assemblyTranslate = yield rcsbRequestCtxManager.getEntryToAssembly(entryId); const assemblyMap = assemblyTranslate.getData(); if (assemblyMap.size == 0) { RcsbFvCoreBuilder.showMessage(elementFvId, "No sequence features are available"); throw new Error("No sequence features are available"); } else { RcsbFvCoreBuilder.buildSelectButton(elementFvId, elementSelectAssemblyId, Array.from(assemblyMap.keys()).map(assemblyId => { return { name: assemblyId, label: assemblyId, onChange: () => __awaiter(this, void 0, void 0, function* () { const o = assemblyMap.get(assemblyId); if (!o) return; yield RcsbFvInstanceBuilder.buildSelectorInstanceFv(o, elementFvId, elementSelectInstanceId, entryId, { onChangeCallback: onInstanceChangeCallback }); if (typeof onAsseblyChangeCallback === "function") onAsseblyChangeCallback(assemblyId); }) }; }), { dropdownTitle: "ASSEMBLY" }); const o = assemblyMap.get(rcsbRequestCtxManager.modelKey); assertDefined(o); const out = yield RcsbFvInstanceBuilder.buildSelectorInstanceFv(o, elementFvId, elementSelectInstanceId, entryId, { onChangeCallback: onInstanceChangeCallback }); if (typeof onAsseblyChangeCallback === "function") onAsseblyChangeCallback(rcsbRequestCtxManager.modelKey); return out; } }); } } //# sourceMappingURL=RcsbFvAssemblyBuilder.js.map