// Type definitions for Gijgo v0.6.2 // Project: http://gijgo.com // Definitions by: Atanas Atanasov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare module Gijgo { //Grid interface GridPager { limit?: number; sizes?: Array; leftControls?: any; rightControls?: any; } interface GridColumn { align?: string; cssClass?: string; decimalDigits?: number; editor?: any; events?: any; field?: string; format?: string; headerCssClass?: string; hidden?: boolean; icon?: string; minWidth?: number; priority?: number; sortable?: boolean; stopPropagation?: boolean; title?: string; tmpl?: string; tooltip?: string; type?: string; width?: number; } interface GridDefaultParams { direction?: string; limit?: string; page?: string; sortBy?: string; } interface GridMapping { dataField?: string; totalRecordsField?: string; } interface GridSettings { //Configuration options autoGenerateColumns?: boolean; autoLoad?: boolean; columns?: Array; dataSource?: any; defaultColumnSettings?: GridColumn; defaultParams?: GridDefaultParams; detailTemplate?: string; fontSize?: string; mapping?: string; minWidth?: number; notFoundText?: string; pager?: GridPager; primaryKey?: string; resizableColumns?: boolean; resizeCheckInterval?: number; responsive?: boolean; selectionMethod?: string; selectionType?: string; showHiddenColumnsAsDetails?: boolean; title?: string; toolbarTemplate?: string; uiLibrary?: string; width?: number; params?: any; //Events beforeEmptyRowInsert?: (e: any, $row: JQuery) => any; cellDataBound?: (e: any, $wrapper: JQuery, id: string, column: GridColumn, record: Entity) => any; cellDataChanged?: (e: any, $cell: JQuery, column: GridColumn, record: Entity, oldValue: any, newValue: any) => any; columnHide?: (e: any, column: GridColumn) => any; columnShow?: (e: any, column: GridColumn) => any; dataBinding?: (e: any, records: Array) => any; dataBound?: (e: any, records: Array, totalRecords: number) => any; destroying?: (e: any) => any; detailCollapse?: (e: any, detailWrapper: JQuery, record: Entity) => any; detailExpand?: (e: any, detailWrapper: JQuery, record: Entity) => any; initialized?: (e: any) => any; pageChanging?: (e: any, newPage: number) => any; pageSizeChange?: (e: any, newPage: number) => any; resize?: (e: any, newWidth: number, oldWidth: number) => any; rowDataBound?: (e: any, $row: JQuery, id: string, record: Entity) => any; rowRemoving?: (e: any, $row: JQuery, id: string, record: Entity) => any; rowSelect?: (e: any, $row: JQuery, id: string, record: Entity) => any; rowUnselect?: (e: any, $row: JQuery, id: string, record: Entity) => any; } interface Grid extends JQuery { addRow(record: Entity): Grid; clear(showNotFoundText?: boolean): Grid; count(): number; destroy(keepTableTag?: boolean, keepWrapperTag?: boolean): void; //get(position: number): Entity; //TODO: rename to getByPosition to avoid conflicts with jquery.get getAll(): Array; getById(id: string): Entity; getChanges(): Array; getSelected(): string; getSelections(): Array; hideColumn(field: string): Grid; makeResponsive(): void; reload(params?: Params): Grid; removeRow(id: string): Grid; render(response: any): Grid; selectAll(): Grid; setSelected(id: string | number): Grid; showColumn(field: string): Grid; title(text: any): any; unSelectAll(): Grid; updateRow(id: string, record: Entity): Grid; } //Dialog interface DialogSettings { //Configuration options autoOpen?: boolean; closeOnEscape?: boolean; draggable?: boolean; height?: number | string; maxHeight?: number; maxWidth?: number; minHeight?: number; minWidth?: number; modal?: boolean; resizable?: boolean; title?: string; uiLibrary?: string; width?: number; //Events closed?: (e: any) => any; closing?: (e: any) => any; drag?: (e: any) => any; dragStart?: (e: any) => any; dragStop?: (e: any) => any; initialized?: (e: any) => any; opened?: (e: any) => any; opening?: (e: any) => any; resize?: (e: any) => any; resizeStart?: (e: any) => any; resizeStop?: (e: any) => any; } interface Dialog extends JQuery { close(): Dialog; isOpen(): boolean; open(): Dialog; } } interface JQuery { grid(settings: Gijgo.GridSettings): Gijgo.Grid; grid(settings: Gijgo.GridSettings): Gijgo.Grid; grid(settings: Gijgo.GridSettings): Gijgo.Grid; dialog(settings: Gijgo.DialogSettings): Gijgo.Dialog; }