UNPKG

hswidget

Version:
52 lines (51 loc) 1.3 kB
import m from "mithril"; import { Vnode } from './Widget'; import { Widget } from './Widget'; import { WidgetAttrs } from './Widget'; export interface PivotAttrs extends WidgetAttrs { pivotName?: string; pivotHeader?: PivotHeader; table: { header: string[]; data: any[][]; }; columns: ColumnSpec[]; by: string[]; } export interface ColumnSpec { [tableValueCol: string]: string | ColumnGenerator; } export interface ColumnGenerator { (aggregators: { [name: string]: Aggregator; }, value: number | string, col?: number, rowData?: Array<number | string>): void; } export declare type Aggregator = number | { [name: string]: number; }; export declare type PivotHeader = Array<string | { [oldkey: string]: string; }>; interface PivotStruct { name: string; values: Values; tree: PivotStruct[]; } declare type HeaderMap = string[]; interface Values { cols: { [colVal: string]: Aggregator; }; rows: { [rowName: string]: Values; }; } export declare class Pivot extends Widget { id: number; oldHeaders: HeaderMap; newHeaders: m.ChildArray; pivot: PivotStruct; oninit(node: Vnode<PivotAttrs, this>): void; view(node: Vnode<PivotAttrs, this>): m.Vnode<any, any>; } export {};