@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
55 lines (54 loc) • 3.25 kB
TypeScript
import { BucketFacet } from "@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchResultInterface";
import { FacetMemberInterface } from "./FacetStore/FacetMemberInterface";
import { AttributeTextQueryParameters } from "@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchQueryInterface";
import { Service } from "@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchEnums";
import { ChartDisplayConfigInterface, ChartObjectInterface } from "@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface";
import { RcsbSearchAttributeType } from "@rcsb/rcsb-api-tools/lib/RcsbSearch/Types/SearchMetadata";
export type SearchFilter = {
attribute: RcsbSearchAttributeType;
value: AttributeTextQueryParameters['value'];
operator: AttributeTextQueryParameters["operator"];
service: Service.Text | Service.TextChem;
};
export interface RcsbChartInterface<T = any> extends Omit<FacetMemberInterface, "id" | "facet"> {
data: ChartObjectInterface<T>[];
filters?: SearchFilter[];
}
export declare class FacetTools {
static getResultDrilldowns(facetMembers: FacetMemberInterface[], searchResultFacets: Array<BucketFacet>): Array<RcsbChartInterface>;
static subtractDrilldowns(partial: Array<RcsbChartInterface>, full: Array<RcsbChartInterface>): Array<RcsbChartInterface>;
static getFacetFromName(facetMembers: FacetMemberInterface[], name: string): FacetMemberInterface | undefined;
static addChartDisplayConfig(chart: RcsbChartInterface, chartDisplayConfig: Partial<ChartDisplayConfigInterface>): {
chartConfig: {
chartDisplayConfig: Partial<ChartDisplayConfigInterface>;
mostPopulatedGroups?: number;
domainMinValue?: number;
domainMaxValue?: number;
domainEmptyBins?: boolean;
histogramBinIncrement?: number;
tickIncrement?: {
origin: number;
increment: number;
};
tickFormat?: {
domAxis?: (x: string | number) => string;
imgAxis?: (x: string | number) => string;
};
axisLabel?: string;
barClickCallback?: import("@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface").BarClickCallbackType;
sort?: (b: import("@rcsb/rcsb-charts/lib/RcsbChartDataProvider/ChartDataProviderInterface").ChartDataColumnInterface, a: import("@rcsb/rcsb-charts/lib/RcsbChartDataProvider/ChartDataProviderInterface").ChartDataColumnInterface) => number;
tooltipText?: (a: import("@rcsb/rcsb-charts/lib/RcsbChartDataProvider/ChartDataProviderInterface").ChartDataValueInterface) => string | string[] | undefined;
};
data: ChartObjectInterface<any>[];
filters?: SearchFilter[];
title?: string | undefined;
attribute: RcsbSearchAttributeType;
attributeName: string;
chartType: import("@rcsb/rcsb-charts/lib/RcsbChartComponent/ChartConfigInterface").ChartType;
facetConfig?: import("./FacetStore/FacetMemberInterface").FacetConfigInterface | undefined;
contentType: "date" | "number" | "string";
};
private static includeMissingFacets;
private static getFacetChartTypeFromAttribute;
private static getFacetFiltersFromName;
}