UNPKG

@rcsb/rcsb-saguaro-app

Version:
34 lines 1.55 kB
import { PolymerEntityInstanceTranslate } from "./PolymerEntityInstanceTranslate"; import { Operator } from "../Helpers/Operator"; import { TagDelimiter } from "@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter"; export class MultipleEntityInstanceTranslate { constructor() { this.entityInstanceTranslateMap = new Map(); } add(data) { const entryEntityInstanceMapList = new Map(); data.forEach(d => { var _a; const entityId = d.entryId + TagDelimiter.entity + d.entityId; if (!entryEntityInstanceMapList.has(entityId)) entryEntityInstanceMapList.set(entityId, new Array()); (_a = entryEntityInstanceMapList.get(entityId)) === null || _a === void 0 ? void 0 : _a.push(d); }); entryEntityInstanceMapList.forEach((v, entityId) => { this.entityInstanceTranslateMap.set(entityId, new PolymerEntityInstanceTranslate(v)); }); } getEntity(entityId) { return this.entityInstanceTranslateMap.get(entityId); } getEntities() { return Array.from(this.entityInstanceTranslateMap.keys()); } getEntries() { return Operator.uniqueValues(Array.from(this.entityInstanceTranslateMap.keys()).map(entityId => TagDelimiter.parseEntity(entityId).entryId)); } getInstances() { return Operator.uniqueValues(Array.from(this.entityInstanceTranslateMap.values()).map(peit => peit.getData()).flat().map(e => e.asymId)); } } //# sourceMappingURL=MultipleEntityInstanceTranslate.js.map