first pass

This commit is contained in:
David Hara
2016-02-26 02:41:38 -08:00
parent 10d1e20c6a
commit 2d231a94d7
5 changed files with 132 additions and 0 deletions

View File

@@ -1,3 +1,8 @@
*.iml
.idea
/target
/typings
# Logs
logs
*.log

View File

@@ -1,2 +1,9 @@
# griddle-react-typings
Type definition for http://griddlegriddle.github.io/
Depends upon the [ambient react type definitions](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/c2c22c3b953fe9730d4802022d5e0d18d083909e/react) (github:DefinitelyTyped/DefinitelyTyped/react/react.d.ts#f407264835650f5f38d4bb2c515a79e7a835916b)
which you can install with
```
typings install react --ambient
```

101
griddle-react/griddle-react.d.ts vendored Normal file
View File

@@ -0,0 +1,101 @@
declare module "griddle-react" {
import * as React from 'react';
//TODO: Find good way to export this, and set it as first type argument on ColumnMetaData.customComponent
export interface CustomColumnComponentProps<T> {
data: any,
rowData: T,
metaData: ColumnMetaData
}
interface ColumnMetaData {
columnName: string;
order?: number;
locked?: boolean;
cssClassName?: string;
displayName?: string;
customComponent?: any; //TODO: should be React.Component, but getting weird error.
}
interface BodyCssClassNameFunction<T> {
(rowData:T): string;
}
interface RowMetaData<T> {
bodyCssClassName?: BodyCssClassNameFunction<T> | string;
}
interface GriddleProps<T> {
columns?: string[];
columnMetadata?: ColumnMetaData[];
rowMetadata?: RowMetaData<T>;
results?: T;
resultsPerPage?: number;
initialSort?: string;
initialSortAscending?: boolean;
gridClassName?: string;
tableClassName?: string;
customFormatClassName?: string;
settingsText?: string;
filterPlaceholderText?: string;
nextText?: string;
previousText?: string;
maxRowsText?: string;
enableCustomFormatText?: string;
childrenColumnName?: string;
metadataColumns?: string[];
showFilter?: boolean;
showSettings?: boolean;
useCustomRowComponent?: boolean;
useCustomGridComponent?: boolean;
useCustomPagerComponent?: boolean;
useGriddleStyles?: boolean;
customRowComponent?: any; //TODO: should be React.Component, but getting weird error.
customGridComponent?: any; //TODO: should be React.Component, but getting weird error.
customPagerComponent?: any; //TODO: should be React.Component, but getting weird error.
enableToggleCustom?: boolean;
noDataMessage?: string;
noDataClassName?: string;
customNoDataComponent?: any; //TODO: should be React.Component, but getting weird error.
showTableHeading?: boolean;
showPager?: boolean;
useFixedHeader?: boolean;
useExternal?: boolean;
externalSetPage?(index: number): void;
externalChangeSort?(sort: string, sortAscending: boolean): void;
externalSetFilter?(filter: string): void;
externalSetPageSize?(size: number): void;
externalMaxPage?: number;
externalCurrentPage?: number;
externalSortColumn?: string;
externalSortAscending?: boolean;
externalLoadingComponent?: any; //TODO: should be React.Component, but getting weird error.
externalIsLoading?: boolean;
enableInfiniteScroll?: boolean;
bodyHeight?: number;
paddingHeight?: number;
rowHeight?: number;
infiniteScrollLoadTreshold?: number;
useFixedLayout?: boolean;
isSubGriddle?: boolean;
enableSort?: boolean;
sortAscendingClassName?: string;
sortDescendingClassName?: string;
parentRowCollapsedClassName?: string;
parentRowExpandedClassName?: string;
settingsToggleClassName?: string;
nextClassName?: string;
previousClassName?: string;
sortAscendingComponent?: string | React.ReactElement<any>;
sortDescendingComponent?: string | React.ReactElement<any>;
sortDefaultComponent?: string | React.ReactElement<any>;
parentRowCollapsedComponent?: string | React.ReactElement<any>;
parentRowExpandedComponent?: string | React.ReactElement<any>;
settingsIconComponent?: string | React.ReactElement<any>;
nextIconComponent?: string | React.ReactElement<any>;
previousIconComponent?: string | React.ReactElement<any>;
onRowClick?(): void;
}
export default class Griddle<T> extends React.Component<GriddleProps<T>, any> {}
}

View File

@@ -0,0 +1,11 @@
{
"compilerOptions": {
"module": "commonjs",
"outDir": "./target",
"jsx": "react",
"target": "es6"
},
"exclude": [
"node_modules"
]
}

View File

@@ -0,0 +1,8 @@
{
"name": "griddle-react",
"main": "griddle-react.d.ts",
"dependencies": {},
"ambientDependencies": {
"react": "github:DefinitelyTyped/DefinitelyTyped/react/react.d.ts#f407264835650f5f38d4bb2c515a79e7a835916b"
}
}