@visactor/vgrammar-wordcloud
Version:
WordCloud layout transform for VGrammar
77 lines (76 loc) • 2.35 kB
TypeScript
import type { IProgressiveTransformResult } from '@visactor/vgrammar-core';
import type { Bounds, IBaseLayoutOptions, TagItemAttribute, TagItemFunction, TagOutputItem } from './interface';
import { BaseLayout } from './base';
export interface TagItem {
text: number | string;
fontFamily?: string;
fontStyle?: string;
fontWeight?: string;
angle?: number;
fontSize?: number;
padding?: number;
xoff?: number;
yoff?: number;
x?: number;
y?: number;
x1?: number;
y1?: number;
x0?: number;
y0?: number;
hasText?: boolean;
sprite?: number[];
datum: any;
width: number;
height: number;
}
interface ICloudLayoutOptions extends IBaseLayoutOptions {
spiral?: 'archimedean' | 'rectangular' | ((size: [number, number]) => (t: number) => [number, number]);
padding?: TagItemAttribute<number>;
enlarge?: boolean;
customInsertZerosToArray?: (array: any[], index: number, length: number) => void;
}
export declare class CloudLayout extends BaseLayout<ICloudLayoutOptions> implements IProgressiveTransformResult {
getTextPadding: TagItemFunction<number>;
spiral: (size: [number, number]) => (t: any) => [number, number];
random: () => number;
cw: number;
ch: number;
_size: [number, number];
_originSize: [number, number];
_isBoardExpandCompleted: boolean;
_placeStatus: number;
_tTemp?: number;
_dtTemp?: number;
_dy: number;
contextAndRatio?: {
context: CanvasRenderingContext2D;
ratio: number;
canvas: HTMLCanvasElement;
};
_board: Uint32Array;
_bounds: Bounds;
cacheMap: Map<any, any>;
static defaultOptions: Partial<ICloudLayoutOptions>;
constructor(options: ICloudLayoutOptions);
zoomRatio(): number;
dy(): number;
layoutWord(index: number): boolean;
layout(words: any[], config: {
width: number;
height: number;
}): TagOutputItem[];
formatTagItem(words: TagOutputItem[]): any[];
output(): any[];
progressiveOutput(): any[];
private updateBoardExpandStatus;
private shouldShrinkContinue;
private shrinkBoard;
private expandBoard;
private insertZerosToArray;
private getContext;
private place;
private clearCache;
private setCache;
private isSizeLargerThanMax;
}
export {};