UNPKG

@rcsb/rcsb-saguaro-3d

Version:
96 lines 3.94 kB
import { RcsbFv3DAssembly } from "../../RcsbFv3D/RcsbFv3DAssembly"; import { FeaturesType } from "@rcsb/rcsb-api-tools/lib/RcsbGraphQL/Types/Borrego/GqlTypes"; document.addEventListener("DOMContentLoaded", function (event) { function getJsonFromUrl() { const url = location.search; var query = url.substring(1); var result = {}; query.split("&").forEach(function (part) { var item = part.split("="); result[item[0]] = decodeURIComponent(item[1]); }); return result; } const args = getJsonFromUrl().pdbId ? getJsonFromUrl() : { pdbId: "1A0E" }; const defaultAsymId = "A"; const config = { entryId: args.pdbId, title: "Title " + args.pdbId, subtitle: "Subtitle for " + args.pdbId, asymId: defaultAsymId }; const panel3d = new RcsbFv3DAssembly({ elementId: "null", config: config, instanceSequenceConfig: { dropdownTitle: "Chain", module: "interface", defaultValue: defaultAsymId, onChangeCallback: (context, module) => { console.log(context); } }, additionalConfig: { boardConfig: { elementClickCallback: (e) => { console.log(`Element clicked ${e === null || e === void 0 ? void 0 : e.type}`); } }, externalTrackBuilder: externalTrackBuilder() }, useOperatorsFlag: true }); panel3d.render(); }); function externalTrackBuilder() { let myComputedTrack = { trackId: "blockTrack", trackHeight: 20, trackColor: "#F9F9F9", titleFlagColor: "#48a1b3", displayType: "block" /* RcsbFvDisplayTypes.BLOCK */, displayColor: "#56e0f5", rowTitle: "COMPUTED", trackData: [] }; return { processAlignmentAndFeatures(data) { return new Promise(resolve => { var _a; myComputedTrack.trackData = []; (_a = data.annotations) === null || _a === void 0 ? void 0 : _a.forEach(a => { var _a; (_a = a.features) === null || _a === void 0 ? void 0 : _a.forEach(f => { var _a, _b; if (f != null && f.type === FeaturesType.Site) { if (f.feature_positions) (_a = myComputedTrack.trackData) === null || _a === void 0 ? void 0 : _a.push(...(_b = f.feature_positions) === null || _b === void 0 ? void 0 : _b.map(p => { var _a, _b; return ({ begin: (_a = p === null || p === void 0 ? void 0 : p.beg_seq_id) !== null && _a !== void 0 ? _a : 0, end: (_b = p === null || p === void 0 ? void 0 : p.end_seq_id) !== null && _b !== void 0 ? _b : undefined }); })); } }); }); resolve(void 0); }); }, addTo(tracks) { return new Promise(resolve => { var _a, _b; if (((_a = tracks.rcsbContext) === null || _a === void 0 ? void 0 : _a.asymId) === "A" && (myComputedTrack === null || myComputedTrack === void 0 ? void 0 : myComputedTrack.trackData) && myComputedTrack.trackData.length > 0) { (_b = tracks.annotationTracks) === null || _b === void 0 ? void 0 : _b.push(myComputedTrack); } resolve(void 0); }); }, filterFeatures(data) { return new Promise(resolve => { resolve(data.annotations); }); } }; } //# sourceMappingURL=index.js.map