diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..829b963 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,75 @@ +declare module 'sigpro-grid' { + import type { + GridApi, + GridOptions, + GridReadyEvent, + FirstDataRenderedEvent, + RowDataUpdatedEvent, + SelectionChangedEvent, + CellClickedEvent, + CellDoubleClickedEvent, + CellValueChangedEvent, + CellEditingStartedEvent, + CellEditingStoppedEvent, + RowClickedEvent, + RowValueChangedEvent, + SortChangedEvent, + FilterChangedEvent, + ModelUpdatedEvent, + GridSizeChangedEvent, + ColumnResizedEvent, + ColumnMovedEvent, + PaginationChangedEvent, + BodyScrollEvent, + ContextMenuEvent, + ColDef, + ColGroupDef, + Theme, + } from 'ag-grid-community'; + + export { + GridApi, + GridOptions, + ColDef, + ColGroupDef, + createGrid, + themeQuartz, + iconSetQuartzLight, + ModuleRegistry, + }; + + export interface GridEvents { + onGridReady?: (params: GridReadyEvent) => void; + onFirstDataRendered?: (params: FirstDataRenderedEvent) => void; + onRowDataUpdated?: (params: RowDataUpdatedEvent) => void; + onSelectionChanged?: (params: SelectionChangedEvent) => void; + onCellClicked?: (params: CellClickedEvent) => void; + onCellDoubleClicked?: (params: CellDoubleClickedEvent) => void; + onCellValueChanged?: (params: CellValueChangedEvent) => void; + onCellEditingStarted?: (params: CellEditingStartedEvent) => void; + onCellEditingStopped?: (params: CellEditingStoppedEvent) => void; + onRowClicked?: (params: RowClickedEvent) => void; + onRowValueChanged?: (params: RowValueChangedEvent) => void; + onSortChanged?: (params: SortChangedEvent) => void; + onFilterChanged?: (params: FilterChangedEvent) => void; + onModelUpdated?: (params: ModelUpdatedEvent) => void; + onGridSizeChanged?: (params: GridSizeChangedEvent) => void; + onColumnResized?: (params: ColumnResizedEvent) => void; + onColumnMoved?: (params: ColumnMovedEvent) => void; + onPaginationChanged?: (params: PaginationChangedEvent) => void; + onBodyScroll?: (params: BodyScrollEvent) => void; + onContextMenu?: (params: ContextMenuEvent) => void; + } + + export interface GridProps { + data?: TData[] | (() => TData[]); + options?: GridOptions | (() => GridOptions); + api?: { current: GridApi | null }; + on?: GridEvents; + class?: string; + style?: string; + dark?: boolean | (() => boolean); + } + + export function Grid(props: GridProps): HTMLElement; +} \ No newline at end of file diff --git a/package.json b/package.json index 314e6fe..a5998f9 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,12 @@ "type": "module", "main": "./dist/sigpro-grid.esm.min.js", "module": "./dist/sigpro-grid.esm.min.js", + "types": "./index.d.ts", "unpkg": "./dist/sigpro-grid.min.js", "jsdelivr": "./dist/sigpro-grid.min.js", "files": [ - "dist" + "dist", + "index.d.ts" ], "scripts": { "clean": "rm -rf dist",