@@ -127,6 +127,26 @@ export interface VGridHandle {
127
127
* Get current offsetWidth.
128
128
*/
129
129
readonly viewportWidth : number ;
130
+ /**
131
+ * Find the start index of visible range of items.
132
+ */
133
+ findStartIndex : ( ) => [ x : number , y : number ] ;
134
+ /**
135
+ * Find the end index of visible range of items.
136
+ */
137
+ findEndIndex : ( ) => [ x : number , y : number ] ;
138
+ /**
139
+ * Get item offset from start.
140
+ * @param indexX horizontal index of item
141
+ * @param indexY vertical of item
142
+ */
143
+ getItemOffset ( indexX : number , indexY : number ) : [ x : number , y : number ] ;
144
+ /**
145
+ * Get item size.
146
+ * @param indexX horizontal index of item
147
+ * @param indexY vertical of item
148
+ */
149
+ getItemSize ( indexX : number , indexY : number ) : [ width : number , height : number ] ;
130
150
/**
131
151
* Scroll to the item specified by index.
132
152
* @param indexX horizontal index of item
@@ -347,6 +367,10 @@ export const VGrid = forwardRef<VGridHandle, VGridProps>(
347
367
get viewportWidth ( ) {
348
368
return hStore . $getViewportSize ( ) ;
349
369
} ,
370
+ findStartIndex : ( ) => [ hStore . $findStartIndex ( ) , vStore . $findStartIndex ( ) ] ,
371
+ findEndIndex : ( ) => [ hStore . $findEndIndex ( ) , vStore . $findEndIndex ( ) ] ,
372
+ getItemOffset : ( indexX , indexY ) => [ hStore . $getItemOffset ( indexX ) , vStore . $getItemOffset ( indexY ) ] ,
373
+ getItemSize : ( indexX , indexY ) => [ hStore . $getItemSize ( indexX ) , vStore . $getItemSize ( indexY ) ] ,
350
374
scrollToIndex : scroller . $scrollToIndex ,
351
375
scrollTo : scroller . $scrollTo ,
352
376
scrollBy : scroller . $scrollBy ,
0 commit comments