/** * author: Samuel Gratzl * email: samuel_gratzl@gmx.at * created: 2016-12-07T13:38:55.615Z */ import './style.scss'; import { Species } from './data'; export { default as species } from './data'; export interface IAnatomogramOptions { /** * default css class for all tissues */ defaultClass?: string; /** * css class for the currently hovered tissue */ hoverClass?: string; /** * css class for selected tissues */ selectClass?: string; /** * map to pass a color for each tissue */ tissueColorMap?: { property: string | number; }; /** * on selection change listener * @param selections current selection */ onSelectionChanged?(selections: string[]): void; } export declare type AnatomogramTissueElement = SVGElement & SVGStylable; export interface IImageLoader { (fileName: string): Promise; } export default class Anatomogram { private readonly species; private readonly imageLoader; private root; /** * prefix to patch all ids to support multiple instances without naming conflict * @type {string} */ private readonly idPrefix; private options; private _tissues; constructor(parent: HTMLElement, species: Species, imageLoader: IImageLoader, options?: IAnatomogramOptions); readonly tissues: string[]; selections: string[]; readonly tissueElements: AnatomogramTissueElement[]; private static toId(tissue); private hover(tissue, hover?); private select(tissue); style(tissue: string, attr: string, value?: string): any; classed(tissue: string, clazz: string, enabled?: boolean): boolean; addClass(tissue: string, ...classes: string[]): boolean; removeClass(tissue: string, ...classes: string[]): boolean; private findElem(tissue); private build(root, svg); } export declare function fetchImageLoader(baseDir: string): (fileName: string) => any; export declare function create(parent: HTMLElement, species: Species, imageLoader: IImageLoader, options?: IAnatomogramOptions): Anatomogram;