UNPKG

@rcsb/rcsb-saguaro-app

Version:
35 lines 1.75 kB
import { RcsbDistributionConfig } from "../../../../../RcsbAnnotationConfig/RcsbDistributionConfig"; import { Operator } from "../../../../../RcsbUtils/Helpers/Operator"; import { ChartType } from "@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface"; export class DistributionChartFactory { constructor(distributionConfig) { this.distributionConfig = distributionConfig !== null && distributionConfig !== void 0 ? distributionConfig : new RcsbDistributionConfig(); } getChart(residueDistribution) { var _a, _b; const sort = (_a = this.distributionConfig.getBlockConfig(residueDistribution.attribute)) === null || _a === void 0 ? void 0 : _a.sort; const axisLabel = (_b = this.distributionConfig.getBlockConfig(residueDistribution.attribute)) === null || _b === void 0 ? void 0 : _b.axisLabel; return { chartType: ChartType.barplot, attribute: residueDistribution.attribute, attributeName: residueDistribution.attribute, contentType: "number", data: residueDistribution.buckets.map(b => ({ label: b.label, population: b.residueSet.size, objectConfig: { color: b.color, objectId: b.id } })), title: residueDistribution.title, chartConfig: { sort: sort ? (a, b) => (sort.findIndex(x => x === a.x) - sort.findIndex(x => x === b.x)) : undefined, tooltipText: (d) => (`${Operator.digitGrouping(d.y)} residues`), axisLabel, domainEmptyBins: true } }; } } //# sourceMappingURL=DistributionChartFactory.js.map