@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
41 lines • 2.47 kB
JavaScript
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