tag2cloud
Version:
make the tags cloud
79 lines • 2.05 kB
TypeScript
export interface Options {
width: number;
height: number;
maskImage: string | false | null | undefined;
pixelRatio: number;
lightThreshold: number;
opacityThreshold: number;
minFontSize: number;
maxFontSize: number;
angleFrom: number;
angleTo: number;
angleCount: number;
family: string;
cut: boolean;
padding: number;
canvas: boolean;
shape: ((theta: number) => number) | null;
}
export interface Tag {
text: string;
weight: number;
angle?: number;
color?: string;
[prop: string]: any;
}
export interface Pixels {
width: number;
height: number;
data: number[][];
}
export interface TagData extends Required<Tag> {
angle: number;
fontSize: number;
x: number;
y: number;
rendered: boolean;
tag: Tag;
}
export declare class Tag2Cloud {
private readonly defaultOptions;
options: Options;
private $container;
private $wrapper;
private $canvas;
private $displayCanvas;
private ctx;
private displayCtx;
private listeners;
private pixels;
private maxTagWeight;
private minTagWeight;
private promised;
private points;
constructor($container: HTMLElement, options?: Partial<Options>);
draw(tags?: Tag[]): Promise<TagData[]>;
clear(): void;
destroy(): void;
shape(cb: (ctx: CanvasRenderingContext2D) => void): void;
onClick(listener: Function): () => void;
offClick(listener: Function): void;
getCtx(): CanvasRenderingContext2D;
private initPixels;
private initPoints;
private performDraw;
private layout;
private layoutByCanvas;
private layoutByDom;
private click;
private generatePixels;
private handleTag;
private placeTag;
private tryPlaceTag;
private getTagPixels;
private getPixelsFromImgData;
private loadMaskImage;
private printPixels;
private binaryStrIfy;
}
//# sourceMappingURL=tag2cloud.d.ts.map