@gridkitjs/react 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import { RowSelectEvent, RowsSelectEvent, RowSelectionChangeEvent, CellSelectEvent as CellSelectEvent$1, CellSelectionChangeEvent as CellSelectionChangeEvent$1, ColumnDefinition as ColumnDefinition$1, ColumnSelectEvent as ColumnSelectEvent$1, ColumnSelectionChangeEvent as ColumnSelectionChangeEvent$1, ColumnsSelectEvent as ColumnsSelectEvent$1, SelectableConfig, SelectionState, CellSelectionState, ColumnSizingState, ColumnOrderState, ColumnSizeDefaults, ColumnResizeEvent, ColumnOrderEvent, ResolvedColumn as ResolvedColumn$1, SelectedCell as SelectedCell$1, SelectedColumn as SelectedColumn$1 } from '@gridkitjs/core';
2
+ import { ReactNode, Ref } from 'react';
3
+ import { RowSelectEvent, RowsSelectEvent, RowSelectionChangeEvent, CellSelectEvent as CellSelectEvent$1, CellSelectionChangeEvent as CellSelectionChangeEvent$1, ColumnDefinition as ColumnDefinition$1, ColumnSelectEvent as ColumnSelectEvent$1, ColumnSelectionChangeEvent as ColumnSelectionChangeEvent$1, ColumnsSelectEvent as ColumnsSelectEvent$1, ResolvedRow, ResolvedColumn as ResolvedColumn$1, ColumnSizingState, ColumnOrderState, ColumnSortState, SelectionState, CellSelectionState, SelectableConfig, ColumnSizeDefaults, ColumnResizeEvent, ColumnOrderEvent, ColumnSortEvent, FilterState, SelectedCell as SelectedCell$1, SelectedColumn as SelectedColumn$1 } from '@gridkitjs/core';
4
4
  export { CellSelectionMode, CellSelectionState, CellTemplateContext, ColumnResizeEvent, ColumnSizeDefaults, ColumnSizingState, ResolvedRow, RowSelectEvent, RowSelectionChangeEvent, RowsSelectEvent, SelectableConfig, SelectedCellRef, SelectionMode, SelectionState } from '@gridkitjs/core';
5
5
 
6
6
  /**
@@ -53,6 +53,42 @@ type ColumnsSelectEvent<Row> = ColumnsSelectEvent$1<Row, ReactNode>;
53
53
  type ColumnSelectionChangeEvent<Row> = ColumnSelectionChangeEvent$1<Row, ReactNode>;
54
54
  type CellSelectEvent<Row> = CellSelectEvent$1<Row, ReactNode>;
55
55
  type CellSelectionChangeEvent<Row> = CellSelectionChangeEvent$1<Row, ReactNode>;
56
+ /**
57
+ * Imperative handle for a mounted `DataGridComponent`, reached via its `ref`
58
+ * prop. Read-plus-standard-actions: getters mirror the grid's live state,
59
+ * and the actions are the ones every grid ref carries (focus, clear/select
60
+ * all, scroll-to). Sizing, order, sort, and selection stay uncontrolled via
61
+ * their existing `default*` props — this is not a second, imperative-only
62
+ * way to drive that same state.
63
+ */
64
+ interface DataGridApi<Row> {
65
+ /** The grid's scrollable viewport element. */
66
+ readonly element: HTMLDivElement | null;
67
+ /** The grid's `<table>` element. */
68
+ readonly table: HTMLTableElement | null;
69
+ /** Rows as currently filtered and sorted — what's rendered. */
70
+ getRows(): readonly ResolvedRow<Row>[];
71
+ /** Columns as currently sized and ordered — what's rendered. */
72
+ getColumns(): readonly ResolvedColumn<Row>[];
73
+ getColumnSizing(): ColumnSizingState;
74
+ getColumnOrder(): ColumnOrderState;
75
+ getColumnSort(): ColumnSortState;
76
+ getRowSelection(): SelectionState;
77
+ getColumnSelection(): SelectionState;
78
+ getCellSelection(): CellSelectionState;
79
+ /** The cell currently holding the grid's single tab stop. */
80
+ getFocusedCell(): {
81
+ rowIndex: number;
82
+ columnIndex: number;
83
+ };
84
+ focusCell(rowIndex: number, columnIndex: number): void;
85
+ clearSelection(): void;
86
+ selectAllRows(): void;
87
+ /** Scrolls the row with the given id into view, if it is currently shown. */
88
+ scrollToRow(rowId: string, options?: ScrollIntoViewOptions): void;
89
+ /** Scrolls the column with the given id into view. */
90
+ scrollToColumn(columnId: string, options?: ScrollIntoViewOptions): void;
91
+ }
56
92
  type Borders = "horizontal" | "vertical" | "all" | "none";
57
93
  /**
58
94
  * How a column's width relates to the grid's.
@@ -138,6 +174,21 @@ interface DataGridProps<Row> extends SelectionCallbacks<Row> {
138
174
  * the order as it was does not call it.
139
175
  */
140
176
  onColumnOrderChange?: ((event: ColumnOrderEvent) => void) | undefined;
177
+ /**
178
+ * Whether columns can be sorted by clicking their header toggle, unless a
179
+ * column says otherwise. Shift-click stacks a column into the sort instead
180
+ * of replacing it.
181
+ */
182
+ sortableColumns?: boolean | undefined;
183
+ /** The sort to start with, in priority order. Uncontrolled. */
184
+ defaultColumnSort?: ColumnSortState | undefined;
185
+ /**
186
+ * Called once when the user changes the sort — a toggle, a stack, or a
187
+ * clear back to "none".
188
+ */
189
+ onColumnSortChange?: ((event: ColumnSortEvent) => void) | undefined;
190
+ /** The filter to start with — every applied entry, ANDed together. Uncontrolled. */
191
+ defaultFilter?: FilterState<Row> | undefined;
141
192
  /**
142
193
  * The grid's accessible name, announced when it takes focus. A grid without
143
194
  * one is read only as "grid", which says nothing about which grid.
@@ -148,7 +199,9 @@ interface DataGridProps<Row> extends SelectionCallbacks<Row> {
148
199
  * Takes precedence over `label`, as `aria-labelledby` does.
149
200
  */
150
201
  labelledBy?: string | undefined;
202
+ /** Imperative handle for reading live grid state and triggering actions. */
203
+ ref?: Ref<DataGridApi<Row>> | undefined;
151
204
  }
152
- declare function DataGridComponent<Row>({ dataSource, columns, getRowId, borders, hoverable, selectable, defaultRowSelection, defaultColumnSelection, defaultCellSelection, resizableColumns, reorderableColumns, resizeMode, defaultColumnSizing, defaultColumnOrder, columnSizeDefaults, onColumnResize, onColumnOrderChange, label, labelledBy, ...callbacks }: DataGridProps<Row>): react.JSX.Element;
205
+ declare function DataGridComponent<Row>({ dataSource, columns, getRowId, borders, hoverable, selectable, defaultRowSelection, defaultColumnSelection, defaultCellSelection, resizableColumns, reorderableColumns, resizeMode, defaultColumnSizing, defaultColumnOrder, columnSizeDefaults, onColumnResize, onColumnOrderChange, sortableColumns, defaultColumnSort, onColumnSortChange, defaultFilter, label, labelledBy, ref, ...callbacks }: DataGridProps<Row>): react.JSX.Element;
153
206
 
154
- export { type CellSelectEvent, type CellSelectionChangeEvent, type ColumnDefinition, type ColumnSelectEvent, type ColumnSelectionChangeEvent, type ColumnsSelectEvent, DataGridComponent, type DataGridProps, type ResizeMode, type ResolvedColumn, type SelectedCell, type SelectedColumn };
207
+ export { type Borders, type CellSelectEvent, type CellSelectionChangeEvent, type ColumnDefinition, type ColumnSelectEvent, type ColumnSelectionChangeEvent, type ColumnsSelectEvent, type DataGridApi, DataGridComponent, type DataGridProps, type HoverableConfig, type ResizeMode, type ResolvedColumn, type SelectedCell, type SelectedColumn };