UNPKG

luna-data-grid

Version:

Grid for displaying datasets

99 lines (98 loc) 2.74 kB
import Component, { IComponentOptions } from '../share/Component'; import types from 'licia/types'; export interface IColumn { id: string; title: string; weight?: number; sortable?: boolean; comparator?: types.AnyFn; } export interface IOptions extends IComponentOptions { columns: IColumn[]; height?: number; maxHeight?: number; minHeight?: number; filter?: string | RegExp | types.AnyFn; selectable?: boolean; } type NodeData = types.PlainObj<string | HTMLElement>; export interface IDataGridNodeOptions { selectable?: boolean; } export default class DataGrid extends Component<IOptions> { private $headerRow; private $fillerRow; private fillerRow; private $tableBody; private $colgroup; private $dataContainer; private dataContainer; private $resizers; private resizeIdx; private resizeStartX; private resizeStartLeft; private resizeDeltaX; private resizeSensor; private onResize; private tableBody; private nodes; private displayNodes; private colWidthsInitialized; private colMap; private sortId?; private selectedNode; private isAscending; private sorted; private colWidths; private $space; private $data; private data; private space; private spaceHeight; private topSpaceHeight; private lastScrollTop; private lastTimestamp; private speedToleranceFactor; private maxSpeedTolerance; private minSpeedTolerance; private scrollTimer; constructor(container: HTMLElement, options: IOptions); destroy(): void; remove(node: DataGridNode): void; append(data: NodeData, options?: IDataGridNodeOptions): DataGridNode; setData(data: Array<NodeData | [NodeData, IDataGridNodeOptions]>, uniqueId?: string): void; clear(): void; fit(): void; private clearData; private updateHeight; private selectNode; private onResizeColStart; private onResizeColMove; private onResizeColEnd; private bindEvent; private sortNodes; private updateWeights; private applyColWeights; private positionResizers; private onScroll; private renderData; private updateTopSpace; private updateSpace; private filterNode; private renderHeader; private renderResizers; private initTpl; } export declare class DataGridNode { container: HTMLElement; data: types.PlainObj<string | HTMLElement>; selectable: boolean; private $container; private dataGrid; constructor(dataGrid: DataGrid, data: types.PlainObj<string | HTMLElement>, options: IDataGridNodeOptions); text(): string; select(): void; deselect(): void; render(): void; } export {};