51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import type { ElementSize } from '../../../models/elementSize';
|
|
export interface GridDimensions {
|
|
/**
|
|
* The viewport size including scrollbars.
|
|
*/
|
|
viewportOuterSize: ElementSize;
|
|
/**
|
|
* The viewport size not including scrollbars.
|
|
*/
|
|
viewportInnerSize: ElementSize;
|
|
/**
|
|
* Indicates if a scroll is currently needed to go from the beginning of the first column to the end of the last column.
|
|
*/
|
|
hasScrollX: boolean;
|
|
/**
|
|
* Indicates if a scroll is currently needed to go from the beginning of the first row to the end of the last row.
|
|
*/
|
|
hasScrollY: boolean;
|
|
/**
|
|
* Size of the scrollbar used to scroll the rows in pixel.
|
|
* It is defined even when the scrollbar is currently not needed.
|
|
*/
|
|
scrollBarSize: number;
|
|
}
|
|
export interface GridDimensionsApi {
|
|
/**
|
|
* Triggers a resize of the component and recalculation of width and height.
|
|
*/
|
|
resize: () => void;
|
|
/**
|
|
* Returns the dimensions of the grid
|
|
* @returns {GridDimensions | null} The dimension information of the grid. If `null`, the grid is not ready yet.
|
|
*/
|
|
getRootDimensions: () => GridDimensions | null;
|
|
}
|
|
export interface GridDimensionsPrivateApi {
|
|
/**
|
|
* Returns the amount of rows that are currently visible in the viewport
|
|
* @returns {number} The amount of rows visible in the viewport
|
|
*/
|
|
getViewportPageSize: () => number;
|
|
/**
|
|
* Forces a recalculation of all dimensions.
|
|
*/
|
|
updateGridDimensionsRef: () => void;
|
|
/**
|
|
* Computes the size and publishes a `resize` event with the new value.
|
|
*/
|
|
computeSizeAndPublishResizeEvent: () => void;
|
|
}
|