61 lines
2.2 KiB
TypeScript
61 lines
2.2 KiB
TypeScript
import { Grid, GridItem, GridSourceItem } from "./grid";
|
|
import { DropdownOptions } from "../dropdown";
|
|
|
|
interface GridColumnType {
|
|
0: "Common";
|
|
1: "Input";
|
|
2: "Dropdown";
|
|
3: "Checkbox";
|
|
4: "Icon";
|
|
5: "Text";
|
|
}
|
|
|
|
export interface GridColumnDefinition {
|
|
key?: string;
|
|
type?: keyof GridColumnType | typeof GridColumn;
|
|
caption?: string;
|
|
width?: Number;
|
|
align?: "left" | "center" | "right";
|
|
enabled?: boolean | string | ((item: GridItem | any) => boolean);
|
|
css?: { [key: string]: string };
|
|
styleFilter?: (item: GridItem | any) => { [key: string]: string };
|
|
textStyle?: { [key: string]: string };
|
|
visible?: boolean;
|
|
resizable?: boolean;
|
|
sortable?: boolean;
|
|
orderable?: boolean;
|
|
allcheck?: boolean;
|
|
events?: { [event: string]: any };
|
|
attrs?: { [key: string]: string } | ((item: GridItem | any) => { [key: string]: string });
|
|
allowFilter?: boolean;
|
|
filter?: (item: GridItem | any) => any;
|
|
sortFilter?: (a: GridItem | any, b: GridItem | any) => -1 | 0 | 1;
|
|
bgFilter?: (item: GridItem | any) => string;
|
|
dropOptions?: DropdownOptions;
|
|
source?: Array<any> | ((item: GridItem | any) => Array<any> | Promise<Array<GridSourceItem>>);
|
|
iconType?: string;
|
|
className?: string | ((item: GridItem | any) => string);
|
|
text?: string;
|
|
tooltip?: string;
|
|
onallchecked?: (this: Grid, col: GridColumnDefinition, flag: boolean) => void;
|
|
onchanged?: (this: Grid, item: GridItem | any, value: boolean | any) => void;
|
|
}
|
|
|
|
export class GridColumn {
|
|
create(): HTMLElement;
|
|
createEdit(trigger: (e: any) => void, col: GridColumnDefinition, body: HTMLElement): HTMLElement;
|
|
setValue(element: HTMLElement, val: any, item: GridItem | any, col: GridColumnDefinition): void;
|
|
getValue(e: any): any;
|
|
setStyle(element: HTMLElement, style: { [key: string]: string }): void;
|
|
setEnabled(element: HTMLElement, enabled?: boolean): void;
|
|
}
|
|
|
|
export class GridInputColumn extends GridColumn { }
|
|
|
|
export class GridTextColumn extends GridInputColumn { }
|
|
|
|
export class GridDropdownColumn extends GridColumn { }
|
|
|
|
export class GridCheckboxColumn extends GridColumn { }
|
|
|
|
export class GridIconColumn extends GridColumn { } |