UNPKG

@iktos-oss/molecule-representation

Version:

exports interactif molecule represnetations as react components

56 lines (55 loc) 1.75 kB
/// <reference types="react" /> export declare const createSvgElement: (svg: string, svgProps?: Record<string, unknown>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>; export declare const computeIconsCoords: ({ svg, attachedIcons, }: { svg: string; attachedIcons: AttachedSvgIcon[]; }) => IconCoords[]; export declare const buildBondsHitboxes: ({ numAtoms, svg, isClickable, }: { numAtoms: number; svg: string; isClickable: boolean; }) => SVGPathElement[]; export declare const buildAtomsHitboxes: ({ numAtoms, svg, clickableAtoms, isClickable, }: { numAtoms: number; svg: string; clickableAtoms: Set<number> | null; isClickable: boolean; }) => SVGEllipseElement[]; export declare const applyUserStyles: ({ svg, numAtoms, atomsStyles, bondsStyles, }: { svg: string; numAtoms: number; atomsStyles: AtomsStyles | undefined; bondsStyles: BondsStyles | undefined; }) => string; export interface AttachedSvgIcon { svg: string; atomIds: number[]; bondIds: number[]; } export interface IconCoords { svg: string; scale: number; placements: IconsPlacements[]; } interface IconsPlacements { xTranslate: number; yTranslate: number; } export interface BondIdentifiers { bondId: string; startAtomId: string; endAtomId: string; } type CustomStyles = Record<string, string | number>; export interface AtomsStyles { [atomId: number]: CustomStyles; default?: CustomStyles; } export interface BondsStyles { [bondId: number]: CustomStyles; [atomIds: `${number}-${number}`]: CustomStyles; [atomIds: `${number}-*`]: CustomStyles; [atomIds: `*-${number}`]: CustomStyles; default?: CustomStyles; } export {};