From ae60c84b9225eeb5278ebdc4e1df4aec8f8602f9 Mon Sep 17 00:00:00 2001 From: Frank Laub Date: Thu, 4 Feb 2016 07:58:49 -0800 Subject: [PATCH] Add definitions for react-bootstrap-table --- .../react-bootstrap-table-tests.tsx | 30 +++++ .../react-bootstrap-table.d.ts | 115 ++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 react-bootstrap-table/react-bootstrap-table-tests.tsx create mode 100644 react-bootstrap-table/react-bootstrap-table.d.ts diff --git a/react-bootstrap-table/react-bootstrap-table-tests.tsx b/react-bootstrap-table/react-bootstrap-table-tests.tsx new file mode 100644 index 0000000000..9a22bf9df4 --- /dev/null +++ b/react-bootstrap-table/react-bootstrap-table-tests.tsx @@ -0,0 +1,30 @@ +/// +/// + +import * as React from 'react'; +import { render } from 'react-dom'; +import { BootstrapTable, TableHeaderColumn } from 'react-bootstrap-table'; + +var products = [{ + id: 1, + name: "Item name 1", + price: 100 +}, { + id: 2, + name: "Item name 2", + price: 100 +}]; + +// It's a data format example. +function priceFormatter(cell: any, row: any) { + return ' ' + cell; +} + +render( + + Product ID + Product Name + Product Price + , + document.getElementById("app") +); diff --git a/react-bootstrap-table/react-bootstrap-table.d.ts b/react-bootstrap-table/react-bootstrap-table.d.ts new file mode 100644 index 0000000000..a93b716fbb --- /dev/null +++ b/react-bootstrap-table/react-bootstrap-table.d.ts @@ -0,0 +1,115 @@ +// Type definitions for react-bootstrap-table v1.4.6 +// Project: https://github.com/AllenFang/react-bootstrap-table +// Definitions by: Frank Laub +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// + +declare module "react-bootstrap-table" { + import { ComponentClass, Props, ReactElement } from 'react'; + import { EventEmitter } from 'events'; + + interface SelectRow { + mode?: string; + bgColor?: string; + selected?: any[]; + onSelect?: Function; + onSelectAll?: Function; + clickToSelect?: boolean; + hideSelectColumn?: boolean; + clickToSelectAndEditCell?: boolean; + showOnlySelected?: boolean; + } + + interface CellEdit { + mode?: string; + blurToSave?: boolean; + afterSaveCell?: Function; + } + + interface Options { + sortName?: string; + sortOrder?: string; + afterTableComplete?: Function; + afterDeleteRow?: Function; + afterInsertRow?: Function; + afterSearch?: Function; + afterColumnFilter?: Function; + onRowClick?: Function; + page?: number; + sizePerPageList?: number[]; + sizePerPage?: number; + paginationSize?: number; + onSortChange?: Function; + onPageChange?: Function; + onSizePerPageList?: Function; + noDataText?: string; + handleConfirmDeleteRow?: Function; + } + + interface FetchInfo { + dataTotalSize?: number; + } + + interface BootstrapTableProps extends Props { + keyField?: string; + height?: string; + maxHeight?: string; + data?: any; + remote?: boolean; + striped?: boolean; + bordered?: boolean; + hover?: boolean; + condensed?: boolean; + pagination?: boolean; + searchPlaceholder?: string; + selectRow?: SelectRow; + cellEdit?: CellEdit; + insertRow?: boolean; + deleteRow?: boolean; + search?: boolean; + columnFilter?: boolean; + trClassName?: any; + options?: Options; + fetchInfo?: FetchInfo; + exportCSV?: boolean; + csvFileName?: string; + } + + interface BootstrapTable extends ComponentClass { } + const BootstrapTable: BootstrapTable; + + interface TableHeaderColumnProps extends Props { + dataField?: string; + dataAlign?: string; + dataSort?: boolean; + onSort?: Function; + dataFormat?: Function; + isKey?: boolean; + editable?: any; + hidden?: boolean; + className?: string; + width?: string; + sortFunc?: Function; + columnClassName?: any; + filterFormatted?: boolean; + sort?: string; + } + + interface TableHeaderColumn extends ComponentClass { } + const TableHeaderColumn: TableHeaderColumn; + + class TableDataSet extends EventEmitter { + constructor(data: any); + setData(data: any): void; + clear(): void; + getData(): any; + } + + export { + BootstrapTable, + TableHeaderColumn, + TableDataSet + } +}