@@ -302,6 +302,53 @@ export type CreateTableContextOptions<
302302 headerComponents ?: THeaderComponents
303303}
304304
305+ export type CreateTableHookResult <
306+ TFeatures extends TableFeatures ,
307+ TTableComponents extends Record < string , RenderableComponent > ,
308+ TCellComponents extends Record < string , RenderableComponent > ,
309+ THeaderComponents extends Record < string , RenderableComponent > ,
310+ > = {
311+ createAppColumnHelper : < TData extends RowData > ( ) => AppColumnHelper <
312+ TFeatures ,
313+ TData ,
314+ TCellComponents ,
315+ THeaderComponents
316+ >
317+ injectTableContext : < TData extends RowData = RowData > ( ) => Signal <
318+ AngularTable < TFeatures , TData >
319+ >
320+ injectTableHeaderContext : <
321+ TValue extends CellData = CellData ,
322+ TRowData extends RowData = RowData ,
323+ > ( ) => Signal < Header < TFeatures , TRowData , TValue > >
324+ injectTableCellContext : <
325+ TValue extends CellData = CellData ,
326+ TRowData extends RowData = RowData ,
327+ > ( ) => Signal < Cell < TFeatures , TRowData , TValue > >
328+ injectFlexRenderHeaderContext : <
329+ TData extends RowData ,
330+ TValue extends CellData ,
331+ > ( ) => HeaderContext < TFeatures , TData , TValue >
332+ injectFlexRenderCellContext : <
333+ TData extends RowData ,
334+ TValue extends CellData ,
335+ > ( ) => CellContext < TFeatures , TData , TValue >
336+ injectAppTable : < TData extends RowData , TSelected = { } > (
337+ tableOptions : ( ) => Omit <
338+ TableOptions < TFeatures , TData > ,
339+ '_features' | '_rowModels'
340+ > ,
341+ selector ?: ( state : TableState < TFeatures > ) => TSelected ,
342+ ) => AppAngularTable <
343+ TFeatures ,
344+ TData ,
345+ TSelected ,
346+ TTableComponents ,
347+ TCellComponents ,
348+ THeaderComponents
349+ >
350+ }
351+
305352export function createTableHook <
306353 TFeatures extends TableFeatures ,
307354 const TTableComponents extends Record < string , RenderableComponent > ,
@@ -317,32 +364,43 @@ export function createTableHook<
317364 TTableComponents ,
318365 TCellComponents ,
319366 THeaderComponents
320- > ) {
367+ > ) : CreateTableHookResult <
368+ TFeatures ,
369+ TTableComponents ,
370+ TCellComponents ,
371+ THeaderComponents
372+ > {
321373 function injectTableContext < TData extends RowData = RowData > ( ) : Signal <
322374 AngularTable < TFeatures , TData >
323375 > {
324376 return _injectTableContext < TFeatures , TData > ( )
325377 }
326378
327- function injectTableHeaderContext < TValue extends CellData = CellData > ( ) {
328- return _injectTableHeaderContext < TFeatures , any , TValue > ( )
379+ function injectTableHeaderContext <
380+ TValue extends CellData = CellData ,
381+ TRowData extends RowData = RowData ,
382+ > ( ) : Signal < Header < TFeatures , TRowData , TValue > > {
383+ return _injectTableHeaderContext < TFeatures , TRowData , TValue > ( )
329384 }
330385
331- function injectTableCellContext < TValue extends CellData = CellData > ( ) {
332- return _injectTableCellContext < TFeatures , any , TValue > ( )
386+ function injectTableCellContext <
387+ TValue extends CellData = CellData ,
388+ TRowData extends RowData = RowData ,
389+ > ( ) : Signal < Cell < TFeatures , TRowData , TValue > > {
390+ return _injectTableCellContext < TFeatures , TRowData , TValue > ( )
333391 }
334392
335393 function injectFlexRenderHeaderContext <
336394 TData extends RowData ,
337395 TValue extends CellData ,
338- > ( ) {
396+ > ( ) : HeaderContext < TFeatures , TData , TValue > {
339397 return injectFlexRenderContext < HeaderContext < TFeatures , TData , TValue > > ( )
340398 }
341399
342400 function injectFlexRenderCellContext <
343401 TData extends RowData ,
344402 TValue extends CellData ,
345- > ( ) {
403+ > ( ) : CellContext < TFeatures , TData , TValue > {
346404 return injectFlexRenderContext < CellContext < TFeatures , TData , TValue > > ( )
347405 }
348406
@@ -364,12 +422,12 @@ export function createTableHook<
364422 return cell as Cell < TFeatures , TData , any > & TCellComponents
365423 }
366424
367- function appHeader ( header : Cell < TFeatures , TData , any > ) {
368- return header as Cell < TFeatures , TData , any > & TCellComponents
425+ function appHeader ( header : Header < TFeatures , TData , any > ) {
426+ return header as Header < TFeatures , TData , any > & THeaderComponents
369427 }
370428
371- function appFooter ( footer : Cell < TFeatures , TData , any > ) {
372- return footer as Cell < TFeatures , TData , any > & TCellComponents
429+ function appFooter ( footer : Header < TFeatures , TData , any > ) {
430+ return footer as Header < TFeatures , TData , any > & THeaderComponents
373431 }
374432
375433 const appTableFeatures : TableFeature < { } > = {
0 commit comments