import * as DG from 'datagrok-api/dg'; import { MonomerToShortFunc } from './macromolecule'; import { CellRendererBackBase } from './cell-renderer-back-base'; import { ILogger } from './logger'; import { IMonomerLibBase } from '../types/monomer-library'; type MonomerPlacerProps = { separatorWidth: number; monomerToShort: MonomerToShortFunc; font: string; fontCharWidth: number; }; export declare const undefinedColor = "rgb(100,100,100)"; export declare const shiftedLeftPaddingText = "..."; /** Be ware, this can return -1 meaning that hovering/clicking happened on the three dots * and not on the monomer itself */ export declare function hitBounds(bounds: number[], x: number, positionShiftPixels?: number): number | null; export declare class MonomerPlacer extends CellRendererBackBase { monomerLengthLimit: number; private readonly propsProvider; private colWidth; private _monomerLengthList; private get separatorWidth(); props: MonomerPlacerProps; private _processedRows; private _processedMaxVisibleSeqLength; _monomerLengthMap: { [key: string]: TextMetrics; }; _monomerStructureMap: { [key: string]: HTMLElement; }; private _ellipsisBounds; private _totalLinesNeeded; private _lineHeight; private _cellBounds; private seqHelper; private sysMonomerLib; /** Lazily created annotation renderer — null cost when no annotations exist. */ private _annotationRenderer; private getAnnotationRenderer; /** View is required to subscribe and handle for data frame changes */ constructor(gridCol: DG.GridColumn | null, tableCol: DG.Column, logger: ILogger, monomerLengthLimit: number, propsProvider: () => MonomerPlacerProps); private calculateFontBasedSpacing; private shouldUseMultilineRendering; private calculateMultiLineLayoutDynamic; init(): Promise; private handleHighlightEvent; private getHighlightForRow; private drawHighlightBackground; static getFontSettings(tableCol?: DG.Column): { font: string; fontWidth: number; }; toLog(): string; protected getMonomerLib(): IMonomerLibBase | null; protected reset(): void; protected invalidateGrid(): void; /** Returns monomers lengths of the {@link rowIdx} and cumulative sums for borders, monomer places */ getCellMonomerLengths(rowIdx: number, newWidth: number): [number[], number[]]; private getSummedMonomerLengths; private getCellMonomerLengthsForSeqValue; private getCellMonomerLengthsForSeq; private getCellMonomerLengthsForSeqMsa; /** Returns seq position for pointer x */ getPosition(rowIdx: number, x: number, width: number, positionShiftPadding?: number): number | null; setMonomerLengthLimit(value: number): void; setSeparatorWidth(value: number): void; private padding; get positionShift(): number; private _leftThreeDotsPadding; render(g: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, gridCell: DG.GridCell, _cellStyle: DG.GridCellStyle): void; private shouldRenderShiftedThreeDots; onMouseMove(gridCell: DG.GridCell, e: MouseEvent): void; } export declare function getUpdatedWidth(grid: DG.Grid | null | undefined, g: CanvasRenderingContext2D, x: number, w: number, dpr: number): number; export {}; //# sourceMappingURL=cell-renderer-monomer-placer.d.ts.map