luna-dom-highlighter
Version:
Highlighter for html elements
89 lines (88 loc) • 2.73 kB
TypeScript
export declare type PathCommands = Array<string | number>;
export interface Quad {
p1: Position;
p2: Position;
p3: Position;
p4: Position;
}
export interface Position {
x: number;
y: number;
}
export interface Bounds {
minX: number;
maxX: number;
minY: number;
maxY: number;
width?: number;
height?: number;
allPoints: Position[];
}
export interface AreaBounds {
name: string;
bounds: {
allPoints: Position[];
};
}
interface ViewportSize {
width: number;
height: number;
}
export interface ResetData {
viewportSize: ViewportSize;
visualViewportSize?: ViewportSize;
deviceScaleFactor: number;
pageScaleFactor: number;
pageZoomFactor: number;
emulationScaleFactor: number;
scrollX: number;
scrollY: number;
}
export declare class Overlay {
protected viewportSize: {
width: number;
height: number;
};
protected visualViewportSize?: ViewportSize;
protected deviceScaleFactor: number;
protected emulationScaleFactor: number;
protected pageScaleFactor: number;
protected pageZoomFactor: number;
protected scrollX: number;
protected scrollY: number;
protected style: CSSStyleSheet[];
protected canvas?: HTMLCanvasElement;
protected canvasWidth: number;
protected canvasHeight: number;
protected platform?: string;
private _window?;
private _document?;
private _context?;
private _installed;
constructor(window: Window, style?: CSSStyleSheet[]);
setCanvas(canvas: HTMLCanvasElement): void;
install(): void;
uninstall(): void;
reset(resetData?: ResetData): void;
resetCanvas(): void;
setPlatform(platform: string): void;
dispatch(message: unknown[]): void;
eventHasCtrlOrMeta(event: KeyboardEvent): boolean;
get context(): CanvasRenderingContext2D;
get document(): Document;
get window(): Window;
get installed(): boolean;
}
export declare function log(text: string): void;
export declare function createChild(parent: HTMLElement, tagName: string, className?: string): HTMLElement;
export declare function createTextChild(parent: HTMLElement, text: string): Text;
export declare function createElement(tagName: string, className?: string): HTMLElement;
export declare function ellipsify(str: string, maxLength: number): string;
export declare function constrainNumber(num: number, min: number, max: number): number;
declare global {
interface Document {
adoptedStyleSheets: CSSStyleSheet[];
}
}
export declare function adoptStyleSheet(styleSheet: CSSStyleSheet): void;
export {};