textchecker-element
Version:
Overlay text checker web compoentns.
50 lines (49 loc) • 1.42 kB
TypeScript
export type AnnotationItem = {
id: string;
start: number;
end: number;
onMouseEnter: ({ rectItem }: {
rectItem: TextCheckerElementRectItem;
}) => void;
onMouseLeave: ({ rectItem }: {
rectItem: TextCheckerElementRectItem;
}) => void;
};
/**
* RectItem is pixel based
*/
export type TextCheckerElementRectItem = {
id: AnnotationItem["id"];
left: number;
top: number;
height: number;
width: number;
boxPaddingTop: number;
boxPaddingBottom: number;
boxMarginTop: number;
boxMarginBottom: number;
boxBorderWidth: number;
boxAbsoluteX: number;
boxAbsoluteY: number;
boxWidth: number;
boxHeight: number;
};
export type TextCheckerState = {
visibleTop: number;
visibleLeft: number;
visibleWidth: number;
visibleHeight: number;
rectItems: TextCheckerElementRectItem[];
annotationItems: AnnotationItem[];
mouseHoverRectIdMap: Map<TextCheckerElementRectItem["id"], boolean>;
highlightRectIdSet: Set<TextCheckerElementRectItem["id"]>;
};
export declare const createTextCheckerStore: (initialState?: Partial<TextCheckerState>) => {
get(): TextCheckerState;
onChange(handler: () => void): void;
dispose(): void;
highlightRectIndexes(idList: TextCheckerElementRectItem["id"][]): void;
update(state: Partial<TextCheckerState>): void;
clear(): void;
clearHoverState(): void;
};