@rcsb/rcsb-saguaro-3d
Version:
RCSB Molstar/Saguaro Web App
65 lines • 3.85 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { RcsbFv3DAbstract } from "./RcsbFv3DAbstract";
import uniqid from "uniqid";
import { LoadMethod } from "../RcsbFvStructure/StructureViewers/MolstarViewer/MolstarActionManager";
import { StructureViewer } from "../RcsbFvStructure/StructureViewers/StructureViewer";
import { MolstarManagerFactory } from "../RcsbFvStructure/StructureViewers/MolstarViewer/MolstarManagerFactory";
import { MsaCallbackManagerFactory } from "../RcsbFvSequence/SequenceViews/RcsbView/CallbackManagerFactoryImplementation/MsaCallbackManager";
import { RcsbFvStructure } from "../RcsbFvStructure/RcsbFvStructure";
import { MolstarAlignmentLoader } from "../RcsbFvStructure/StructureViewers/MolstarViewer/MolstarUtils/MolstarAlignmentLoader";
import { MsaBehaviourObserver } from "../RcsbFvStructure/StructureViewerBehaviour/MsaBehaviour";
import { HelpLinkComponent } from "../RcsbFvSequence/SequenceViews/RcsbView/Components/HelpLinkComponent";
import { DataContainer } from "../Utils/DataContainer";
import { MsaPfvManagerFactory } from "../RcsbFvSequence/SequenceViews/RcsbView/PfvManagerFactoryImplementation/MsaPfvManagerFactory";
import { MolstarTools } from "../RcsbFvStructure/StructureViewers/MolstarViewer/MolstarUtils/MolstarTools";
var getModelIdFromTrajectory = MolstarTools.getModelIdFromTrajectory;
import { AlignmentProviderBehaviour } from "../RcsbFvSequence/SequenceViews/RcsbView/RcsbViewBehaviour/AlignmentProviderBehaviour";
import { buildDataProviderFv } from "@rcsb/rcsb-saguaro-app/lib/RcsbFvWeb/RcsbFvBuilder";
export class RcsbFv3DAlignmentProvider extends RcsbFv3DAbstract {
constructor(params) {
var _a, _b, _c;
const elementId = (_a = params.elementId) !== null && _a !== void 0 ? _a : uniqid("RcsbFv3D_");
const alignmentResponseContainer = new DataContainer();
super({
elementId,
sequenceConfig: {
title: params.config.title,
subtitle: params.config.subtitle,
config: {
rcsbId: "external-data",
additionalConfig: params.additionalConfig,
pfvParams: {
id: "external-data",
buildMsaAlignmentFv: buildDataProviderFv,
pfvArgs: [params.config.dataProvider],
alignmentResponseContainer
},
buildPfvOnMount: true,
pfvManagerFactory: new MsaPfvManagerFactory(),
callbackManagerFactory: new MsaCallbackManagerFactory({
pluginLoadParamsDefinition,
alignmentResponseContainer
}),
additionalContent: (_b = params.config.additionalContent) !== null && _b !== void 0 ? _b : ((props) => (_jsx(HelpLinkComponent, Object.assign({}, props, { helpHref: "/docs/grouping-structures/explore-sequence-alignments-in-3d" }))))
},
rcsbViewBehaviour: new AlignmentProviderBehaviour()
},
structureConfig: {
loadConfig: undefined,
structureViewerConfig: {
viewerElement: RcsbFvStructure.componentId(elementId),
viewerProps: (_c = params.molstarProps) !== null && _c !== void 0 ? _c : {}
}
},
structureViewer: new StructureViewer(new MolstarManagerFactory(getModelIdFromTrajectory)),
structureViewerBehaviourObserver: new MsaBehaviourObserver(new MolstarAlignmentLoader(params.config.loadParamsProvider))
});
}
}
const pluginLoadParamsDefinition = (entryId) => ({
loadMethod: LoadMethod.loadPdbId,
loadParams: {
entryId
}
});
//# sourceMappingURL=RcsbFv3DAlignmentProvider.js.map