@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
45 lines (44 loc) • 2.8 kB
JavaScript
;
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;