UNPKG

@happy-table/vue3

Version:

A high-performance Vue 3 table component for B2B systems with TypeScript support

59 lines (58 loc) 2.55 kB
import { CellContext, AnyRenderer, RenderResult, RenderConfig, RendererRegistry, RenderEventListener, RenderEvents } from '../types/slots'; import { TableColumn, TableRow } from '../types/table'; export declare class SuperRenderEngine implements RendererRegistry { private static instance; private renderers; private cache; private events; private middlewares; static getInstance(): SuperRenderEngine; register(name: string, renderer: AnyRenderer, config?: RenderConfig): void; registerBatch(renderers: Record<string, AnyRenderer>): void; unregister(name: string): void; get(name: string): AnyRenderer | undefined; has(name: string): boolean; clear(): void; on<K extends keyof RenderEvents>(event: K, listener: RenderEventListener<K>): void; off<K extends keyof RenderEvents>(event: K, listener: RenderEventListener<K>): void; use(middleware: (context: CellContext, next: () => any) => any): void; renderCell(column: TableColumn, row: TableRow, value: unknown, rowIndex: number, columnIndex: number, tableInstance?: any): Promise<RenderResult>; private executeRender; private selectRenderer; private resolveConditionalRenderer; private executeRenderer; private executeWithMiddleware; private generateCacheKey; private getRendererKey; private handleRenderError; renderBatch(items: Array<{ column: TableColumn; row: TableRow; value: unknown; rowIndex: number; columnIndex: number; }>): Promise<RenderResult[]>; getStats(): { registeredCount: number; cacheStats: { size: number; totalHits: number; }; middlewareCount: number; }; preload(rendererNames: string[]): void; } export declare const renderEngine: SuperRenderEngine; export declare function registerRenderer(name: string, renderer: AnyRenderer, config?: RenderConfig): void; export declare function registerRenderers(renderers: Record<string, AnyRenderer>): void; export declare function renderCell(column: TableColumn, row: TableRow, value: unknown, rowIndex: number, columnIndex: number): Promise<RenderResult>; export declare function getRenderStats(): { registeredCount: number; cacheStats: { size: number; totalHits: number; }; middlewareCount: number; }; export declare const performanceMiddleware: (context: CellContext, next: () => any) => any; export declare const errorBoundaryMiddleware: (context: CellContext, next: () => any) => any;