Types
TypeScript types exported by the package.
Importing Types
import type {
SvelteVirtualListProps,
SvelteVirtualListMode,
SvelteVirtualListScrollOptions,
SvelteVirtualListScrollAlign,
SvelteVirtualListDebugInfo
} from '@humanspeak/svelte-virtual-list'import type {
SvelteVirtualListProps,
SvelteVirtualListMode,
SvelteVirtualListScrollOptions,
SvelteVirtualListScrollAlign,
SvelteVirtualListDebugInfo
} from '@humanspeak/svelte-virtual-list'SvelteVirtualListProps
Configuration props for the component.
type SvelteVirtualListProps<TItem = any> = {
items: TItem[]
renderItem: Snippet<[item: TItem, index: number]>
mode?: SvelteVirtualListMode
bufferSize?: number
defaultEstimatedItemHeight?: number
debug?: boolean
debugFunction?: (info: SvelteVirtualListDebugInfo) => void
containerClass?: string
viewportClass?: string
contentClass?: string
itemsClass?: string
testId?: string
onLoadMore?: () => void | Promise<void>
loadMoreThreshold?: number
hasMore?: boolean
}type SvelteVirtualListProps<TItem = any> = {
items: TItem[]
renderItem: Snippet<[item: TItem, index: number]>
mode?: SvelteVirtualListMode
bufferSize?: number
defaultEstimatedItemHeight?: number
debug?: boolean
debugFunction?: (info: SvelteVirtualListDebugInfo) => void
containerClass?: string
viewportClass?: string
contentClass?: string
itemsClass?: string
testId?: string
onLoadMore?: () => void | Promise<void>
loadMoreThreshold?: number
hasMore?: boolean
}SvelteVirtualListMode
Scroll direction mode.
type SvelteVirtualListMode = 'topToBottom' | 'bottomToTop'type SvelteVirtualListMode = 'topToBottom' | 'bottomToTop'SvelteVirtualListScrollOptions
Options for the scroll() method.
interface SvelteVirtualListScrollOptions {
index: number
smoothScroll?: boolean
shouldThrowOnBounds?: boolean
align?: SvelteVirtualListScrollAlign
}interface SvelteVirtualListScrollOptions {
index: number
smoothScroll?: boolean
shouldThrowOnBounds?: boolean
align?: SvelteVirtualListScrollAlign
}SvelteVirtualListScrollAlign
Alignment options for programmatic scrolling.
type SvelteVirtualListScrollAlign = 'auto' | 'top' | 'bottom' | 'nearest'type SvelteVirtualListScrollAlign = 'auto' | 'top' | 'bottom' | 'nearest'SvelteVirtualListDebugInfo
Debug information provided by the component.
type SvelteVirtualListDebugInfo = {
startIndex: number
endIndex: number
totalItems: number
visibleItemsCount: number
processedItems: number
averageItemHeight: number
atTop: boolean
atBottom: boolean
totalHeight: number
}type SvelteVirtualListDebugInfo = {
startIndex: number
endIndex: number
totalItems: number
visibleItemsCount: number
processedItems: number
averageItemHeight: number
atTop: boolean
atBottom: boolean
totalHeight: number
}Generic Type Parameter
The component accepts a generic type for items:
<script lang="ts">
import VirtualList from '@humanspeak/svelte-virtual-list'
type User = {
id: number
name: string
email: string
}
const users: User[] = [] // populate with user data
</script>
<VirtualList items={users}>
{#snippet renderItem(user: User, index: number)}
<div>
<strong>{user.name}</strong>
<span>{user.email}</span>
</div>
{/snippet}
</VirtualList><script lang="ts">
import VirtualList from '@humanspeak/svelte-virtual-list'
type User = {
id: number
name: string
email: string
}
const users: User[] = [] // populate with user data
</script>
<VirtualList items={users}>
{#snippet renderItem(user: User, index: number)}
<div>
<strong>{user.name}</strong>
<span>{user.email}</span>
</div>
{/snippet}
</VirtualList>