UNPKG

@rcsb/rcsb-saguaro-app

Version:
92 lines 4.92 kB
import { __awaiter } from "tslib"; import { groupProvenanceToReturnType } from "../../../RcsbUtils/Groups/GroupProvenanceToAggregationType"; import { SearchQueryTools as SQT } from "../../../RcsbSeacrh/SearchQueryTools"; import { FacetTools } from "../../../RcsbSeacrh/FacetTools"; import { cloneDeep } from "lodash"; import { GroupChartEvents as GDE } from "./GroupChartEvents"; import { rcsbRequestCtxManager } from "../../../RcsbRequest/RcsbRequestContextManager"; export var GroupChartMap; (function (GroupChartMap) { function getChartMap(groupProvenanceId, groupId, searchQuery) { return __awaiter(this, void 0, void 0, function* () { var _a; const facetStore = SQT.getFacetStoreFromGroupProvenance(groupProvenanceId); let facets = []; for (const service of facetStore.getServices()) { const groupQuery = SQT.searchGroupQuery(groupProvenanceId, groupId, service); const groupProperties = yield rcsbRequestCtxManager.getSearchQueryFacets(groupQuery, facetStore.getFacetService(service).map(f => f.facet), facetStore.returnType, SQT.searchContentType(searchQuery)); if (groupProperties) facets = facets.concat(groupProperties.facets); } let chartData = FacetTools.getResultDrilldowns(facetStore.getFacetService("all"), facets); let subData = []; if (searchQuery) { const searchData = yield subtractSearchQuery(chartData, groupProvenanceId, groupId, searchQuery); chartData = searchData.chartData; subData = (_a = searchData.subData) !== null && _a !== void 0 ? _a : []; } addCharMapColor("#5e94c3", chartData); addCharMapIds("included", chartData); addCharMapColor("#d0d0d0", subData); addCharMapIds("excluded", subData); chartData.forEach((chart => { GDE.addBarClickCallback(chart, groupProvenanceToReturnType[groupProvenanceId]); GDE.addTooltipText(chart); })); return chartData.reduce((prev, current) => { var _a; prev.set(current.attributeName, [current]); const comp = subData === null || subData === void 0 ? void 0 : subData.find((c) => (c.attributeName === current.attributeName)); if (comp) (_a = prev.get(current.attributeName)) === null || _a === void 0 ? void 0 : _a.push(comp); return prev; }, new Map()); }); } GroupChartMap.getChartMap = getChartMap; function subtractSearchQuery(chartData, groupProvenanceId, groupId, searchQuery) { return __awaiter(this, void 0, void 0, function* () { var _a, _b; const facetStore = SQT.getFacetStoreFromGroupProvenance(groupProvenanceId); let subData; let partialFacets = []; for (const service of facetStore.getServices()) { if (searchQuery.query) { const groupQuery = SQT.addGroupNodeToSearchQuery(groupProvenanceId, groupId, searchQuery.query, service); const groupProperties = yield rcsbRequestCtxManager.getSearchQueryFacets(groupQuery, facetStore.getFacetService(service).map(f => f.facet), facetStore.returnType, (_b = (_a = searchQuery.request_options) === null || _a === void 0 ? void 0 : _a.results_content_type) !== null && _b !== void 0 ? _b : ["computational", "experimental"]); if (groupProperties) partialFacets = partialFacets.concat(groupProperties.facets); } } let partialData = cloneDeep(chartData); if (partialFacets.length > 0) { partialData = FacetTools.getResultDrilldowns(facetStore.getFacetService("all"), partialFacets); subData = FacetTools.subtractDrilldowns(partialData, chartData); } else { subData = cloneDeep(chartData); partialData.forEach(chart => { chart.data.forEach(d => { d.population = 0; }); }); } return { chartData: partialData, subData: subData }; }); } function addCharMapColor(color, char) { char.forEach(ch => { ch.data.forEach(d => { d.objectConfig = Object.assign(Object.assign({}, d.objectConfig), { color }); }); }); } function addCharMapIds(id, char) { char.forEach(ch => { ch.data.forEach(d => { d.objectConfig = Object.assign(Object.assign({}, d.objectConfig), { objectId: id }); }); }); } })(GroupChartMap || (GroupChartMap = {})); //# sourceMappingURL=GroupChartTools.js.map