27 lines
657 B
TypeScript
27 lines
657 B
TypeScript
import {Directive, Input} from '@angular/core';
|
|
import {ScrollerContentOptions} from 'primeng/scroller';
|
|
|
|
interface CoolScrollerContentOptions<T extends object> extends ScrollerContentOptions {
|
|
items?: T[];
|
|
}
|
|
|
|
interface TableRowTemplateContext<T extends object> {
|
|
$implicit: T;
|
|
options: CoolScrollerContentOptions<T>;
|
|
}
|
|
|
|
@Directive({
|
|
selector: 'ng-template[appVirtualScroll]'
|
|
})
|
|
export class VirtualScrollDirective<T extends object>{
|
|
|
|
@Input('appVirtualScroll') items!: T[];
|
|
|
|
static ngTemplateContextGuard<E extends object>(
|
|
_dir: VirtualScrollDirective<E>,
|
|
_ctx: unknown
|
|
): _ctx is TableRowTemplateContext<E> {
|
|
return true;
|
|
}
|
|
}
|