topola
Version:
Topola – online genealogy visualization
38 lines (37 loc) • 1.21 kB
TypeScript
import { ChartColors } from '.';
import { Chart, ChartInfo, ChartOptions, FamInfo, IndiInfo, Renderer, RendererOptions } from './api';
import { FamDetails, IndiDetails, JsonGedcomData } from './data';
export interface ChartType {
new (options: ChartOptions): Chart;
}
export interface RendererType {
new (options: RendererOptions<IndiDetails, FamDetails>): Renderer;
}
/** Options when rendering or rerendering a chart. */
export interface RenderOptions {
startIndi?: string;
startFam?: string;
baseGeneration?: number;
}
/** Options when initializing a chart. */
export interface SimpleChartOptions {
json: JsonGedcomData;
indiUrl?: string;
famUrl?: string;
indiCallback?: (id: IndiInfo) => void;
famCallback?: (id: FamInfo) => void;
svgSelector?: string;
chartType: ChartType;
renderer: RendererType;
horizontal?: boolean;
colors?: ChartColors;
animate?: boolean;
updateSvgSize?: boolean;
locale?: string;
expanders?: boolean;
}
export interface ChartHandle {
render(data?: RenderOptions): ChartInfo;
setData(json: JsonGedcomData): void;
}
export declare function createChart(options: SimpleChartOptions): ChartHandle;