ng-virtual-list 16.8.0 → 16.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +65 -11
- package/esm2022/lib/components/list-item/ng-virtual-list-item.component.mjs +414 -0
- package/esm2022/lib/components/list-item/ng-virtual-list-item.module.mjs +20 -0
- package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar.component.mjs +266 -0
- package/esm2022/lib/components/ng-scroll-bar/ng-scroll-bar.module.mjs +20 -0
- package/esm2022/lib/components/scroller/enums/index.mjs +3 -0
- package/esm2022/lib/components/scroller/enums/scroller-direction.mjs +6 -0
- package/esm2022/lib/components/scroller/enums/scroller-directions.mjs +2 -0
- package/esm2022/lib/components/scroller/ng-scroller.component.mjs +625 -0
- package/esm2022/lib/components/scroller/ng-scroller.module.mjs +21 -0
- package/esm2022/lib/components/scroller/types/easing.mjs +2 -0
- package/esm2022/lib/components/scroller/types/index.mjs +2 -0
- package/esm2022/lib/components/scroller/utils/ease.mjs +7 -0
- package/esm2022/lib/components/scroller/utils/index.mjs +4 -0
- package/esm2022/lib/components/scroller/utils/scroll-box.mjs +45 -0
- package/esm2022/lib/components/substrate/enums/index.mjs +4 -0
- package/esm2022/lib/components/substrate/enums/substrate-modes.mjs +16 -0
- package/esm2022/lib/components/substrate/enums/substrate-styles.mjs +15 -0
- package/esm2022/lib/components/substrate/index.mjs +5 -0
- package/esm2022/lib/components/substrate/substrate.component.mjs +381 -0
- package/esm2022/lib/components/substrate/substrate.module.mjs +19 -0
- package/esm2022/lib/components/substrate/types/index.mjs +2 -0
- package/esm2022/lib/components/substrate/types/substrate-mode.mjs +2 -0
- package/esm2022/lib/components/substrate/types/substrate-style.mjs +2 -0
- package/esm2022/lib/const/index.mjs +41 -3
- package/esm2022/lib/directives/index.mjs +4 -0
- package/esm2022/lib/directives/item-click/item-click.directive.mjs +66 -0
- package/esm2022/lib/directives/item-click/item-click.module.mjs +19 -0
- package/esm2022/lib/directives/locale-sensitive/locale-sensitive.directive.mjs +61 -0
- package/esm2022/lib/directives/locale-sensitive/locale-sensitive.module.mjs +19 -0
- package/esm2022/lib/enums/collection-mode.mjs +1 -1
- package/esm2022/lib/enums/collection-modes.mjs +2 -2
- package/esm2022/lib/enums/direction.mjs +1 -1
- package/esm2022/lib/enums/directions.mjs +2 -2
- package/esm2022/lib/enums/focus-alignments.mjs +2 -2
- package/esm2022/lib/enums/index.mjs +3 -2
- package/esm2022/lib/enums/method-for-selecting-types.mjs +2 -2
- package/esm2022/lib/enums/method-for-selecting.mjs +1 -1
- package/esm2022/lib/enums/methods-for-selecting.mjs +2 -2
- package/esm2022/lib/enums/snapping-method.mjs +1 -1
- package/esm2022/lib/enums/snapping-methods.mjs +6 -2
- package/esm2022/lib/enums/text-direction.mjs +2 -0
- package/esm2022/lib/enums/text-directions.mjs +14 -0
- package/esm2022/lib/models/base-virtual-list-item-component.mjs +2 -2
- package/esm2022/lib/models/collection.model.mjs +1 -1
- package/esm2022/lib/models/display-object-config.model.mjs +1 -1
- package/esm2022/lib/models/display-object-measures.model.mjs +1 -1
- package/esm2022/lib/models/index.mjs +1 -1
- package/esm2022/lib/models/item-config-map.model.mjs +1 -1
- package/esm2022/lib/models/item.model.mjs +1 -1
- package/esm2022/lib/models/render-collection.model.mjs +1 -1
- package/esm2022/lib/models/render-item-config.model.mjs +1 -1
- package/esm2022/lib/models/render-item-measures.model.mjs +3 -0
- package/esm2022/lib/models/render-item.model.mjs +1 -1
- package/esm2022/lib/models/scroll-event.model.mjs +1 -1
- package/esm2022/lib/models/scroll-options.model.mjs +1 -1
- package/esm2022/lib/ng-virtual-list.component.mjs +859 -233
- package/esm2022/lib/ng-virtual-list.module.mjs +8 -6
- package/esm2022/lib/ng-virtual-list.service.mjs +39 -9
- package/esm2022/lib/types/color.mjs +2 -0
- package/esm2022/lib/types/focus-alignment.mjs +1 -1
- package/esm2022/lib/types/gradient-color-position.mjs +2 -0
- package/esm2022/lib/types/gradient-color-positions.mjs +2 -0
- package/esm2022/lib/types/gradient-color.mjs +2 -0
- package/esm2022/lib/types/id.mjs +1 -1
- package/esm2022/lib/types/index.mjs +1 -1
- package/esm2022/lib/types/rect.mjs +1 -1
- package/esm2022/lib/types/rounded-corner.mjs +2 -0
- package/esm2022/lib/types/scrollbar-theme.mjs +2 -0
- package/esm2022/lib/types/size.mjs +1 -1
- package/esm2022/lib/utils/browser.mjs +9 -2
- package/esm2022/lib/utils/buffer-interpolation.mjs +6 -4
- package/esm2022/lib/utils/cache-map.mjs +16 -39
- package/esm2022/lib/utils/cmap.mjs +34 -0
- package/esm2022/lib/utils/debounce.mjs +2 -2
- package/esm2022/lib/utils/get-shape-min-size.mjs +13 -0
- package/esm2022/lib/utils/is-collection-mode.mjs +2 -2
- package/esm2022/lib/utils/is-direction.mjs +2 -2
- package/esm2022/lib/utils/is-method-for-selecting.mjs +2 -2
- package/esm2022/lib/utils/object.mjs +1 -1
- package/esm2022/lib/utils/scroll-event.mjs +7 -4
- package/esm2022/lib/utils/snapping-method.mjs +2 -2
- package/esm2022/lib/utils/toggle-class-name.mjs +2 -2
- package/esm2022/lib/utils/track-box.mjs +245 -76
- package/esm2022/lib/utils/tracker.mjs +37 -9
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/ng-virtual-list.mjs +2988 -467
- package/fesm2022/ng-virtual-list.mjs.map +1 -1
- package/lib/components/{ng-virtual-list-item.component.d.ts → list-item/ng-virtual-list-item.component.d.ts} +39 -13
- package/lib/components/list-item/ng-virtual-list-item.module.d.ts +9 -0
- package/lib/components/ng-scroll-bar/ng-scroll-bar.component.d.ts +101 -0
- package/lib/components/ng-scroll-bar/ng-scroll-bar.module.d.ts +9 -0
- package/lib/components/scroller/enums/index.d.ts +4 -0
- package/lib/components/scroller/enums/scroller-direction.d.ts +4 -0
- package/lib/components/scroller/enums/scroller-directions.d.ts +2 -0
- package/lib/components/scroller/ng-scroller.component.d.ts +159 -0
- package/lib/components/scroller/ng-scroller.module.d.ts +10 -0
- package/lib/components/scroller/types/easing.d.ts +1 -0
- package/lib/components/scroller/types/index.d.ts +2 -0
- package/lib/components/scroller/utils/ease.d.ts +2 -0
- package/lib/components/scroller/utils/index.d.ts +3 -0
- package/lib/components/scroller/utils/scroll-box.d.ts +39 -0
- package/lib/components/substrate/enums/index.d.ts +3 -0
- package/lib/components/substrate/enums/substrate-modes.d.ts +13 -0
- package/lib/components/substrate/enums/substrate-styles.d.ts +12 -0
- package/lib/components/substrate/index.d.ts +7 -0
- package/lib/components/substrate/substrate.component.d.ts +91 -0
- package/lib/components/substrate/substrate.module.d.ts +8 -0
- package/lib/components/substrate/types/index.d.ts +3 -0
- package/lib/components/substrate/types/substrate-mode.d.ts +10 -0
- package/lib/components/substrate/types/substrate-style.d.ts +10 -0
- package/lib/const/index.d.ts +32 -2
- package/lib/directives/index.d.ts +3 -0
- package/lib/directives/item-click/item-click.directive.d.ts +22 -0
- package/lib/directives/item-click/item-click.module.d.ts +8 -0
- package/lib/directives/locale-sensitive/locale-sensitive.directive.d.ts +26 -0
- package/lib/directives/locale-sensitive/locale-sensitive.module.d.ts +8 -0
- package/lib/enums/collection-mode.d.ts +1 -1
- package/lib/enums/collection-modes.d.ts +1 -1
- package/lib/enums/direction.d.ts +1 -1
- package/lib/enums/directions.d.ts +1 -1
- package/lib/enums/focus-alignments.d.ts +1 -1
- package/lib/enums/index.d.ts +4 -2
- package/lib/enums/method-for-selecting-types.d.ts +1 -1
- package/lib/enums/method-for-selecting.d.ts +1 -1
- package/lib/enums/methods-for-selecting.d.ts +1 -1
- package/lib/enums/snapping-method.d.ts +2 -2
- package/lib/enums/snapping-methods.d.ts +6 -2
- package/lib/enums/text-direction.d.ts +10 -0
- package/lib/enums/text-directions.d.ts +12 -0
- package/lib/models/base-virtual-list-item-component.d.ts +1 -2
- package/lib/models/collection.model.d.ts +1 -1
- package/lib/models/display-object-config.model.d.ts +1 -1
- package/lib/models/display-object-measures.model.d.ts +37 -1
- package/lib/models/index.d.ts +2 -2
- package/lib/models/item-config-map.model.d.ts +20 -19
- package/lib/models/item.model.d.ts +1 -1
- package/lib/models/render-collection.model.d.ts +1 -1
- package/lib/models/render-item-config.model.d.ts +1 -2
- package/lib/models/render-item-measures.model.d.ts +49 -0
- package/lib/models/render-item.model.d.ts +11 -8
- package/lib/models/scroll-event.model.d.ts +5 -1
- package/lib/models/scroll-options.model.d.ts +1 -1
- package/lib/ng-virtual-list.component.d.ts +128 -21
- package/lib/ng-virtual-list.module.d.ts +5 -3
- package/lib/ng-virtual-list.service.d.ts +22 -3
- package/lib/types/color.d.ts +7 -0
- package/lib/types/focus-alignment.d.ts +1 -1
- package/lib/types/gradient-color-position.d.ts +7 -0
- package/lib/types/gradient-color-positions.d.ts +8 -0
- package/lib/types/gradient-color.d.ts +8 -0
- package/lib/types/id.d.ts +1 -1
- package/lib/types/index.d.ts +4 -1
- package/lib/types/rect.d.ts +1 -1
- package/lib/types/rounded-corner.d.ts +7 -0
- package/lib/types/scrollbar-theme.d.ts +17 -0
- package/lib/types/size.d.ts +1 -1
- package/lib/utils/browser.d.ts +6 -0
- package/lib/utils/cache-map.d.ts +6 -20
- package/lib/utils/cmap.d.ts +16 -0
- package/lib/utils/debounce.d.ts +1 -1
- package/lib/utils/get-shape-min-size.d.ts +8 -0
- package/lib/utils/is-collection-mode.d.ts +1 -1
- package/lib/utils/is-direction.d.ts +1 -1
- package/lib/utils/is-method-for-selecting.d.ts +1 -1
- package/lib/utils/object.d.ts +1 -1
- package/lib/utils/scroll-event.d.ts +5 -1
- package/lib/utils/toggle-class-name.d.ts +1 -1
- package/lib/utils/track-box.d.ts +45 -6
- package/lib/utils/tracker.d.ts +5 -2
- package/package.json +4 -3
- package/public-api.d.ts +1 -1
- package/esm2022/lib/components/ng-virtual-list-item.component.mjs +0 -363
- package/esm2022/lib/utils/disposable-component.mjs +0 -27
- package/lib/utils/disposable-component.d.ts +0 -15
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2026 djonnyx (Evgenii Alexandrovich Grebennikov)
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
Flexible, and actively maintained Angular library that excels with high-performance, feature-rich virtualized lists—including grouping, sticky headers, snapping, animations, collapsing group elements, single and multiple selection of elements and both scroll directions. Whether you're rendering millions of items or building interactive list components, it delivers scalability and customization. Angular (14–20) compatibility.
|
|
6
6
|
|
|
7
|
+
The main advantage of this solution is the elimination of the "empty spaces" effect during fast scrolling, which occurs in the classic implementation of virtualized lists. Visualization is as close as possible to native lists.
|
|
8
|
+
|
|
9
|
+
Works correctly in all browsers and platforms.
|
|
10
|
+
|
|
7
11
|
<img width="1033" height="171" alt="logo" src="https://github.com/user-attachments/assets/b559cfde-405a-4361-b71b-6715478d997d" />
|
|
8
12
|
|
|
9
13
|
<b>Angular version 16.X.X</b>.
|
|
@@ -12,8 +16,8 @@ Flexible, and actively maintained Angular library that excels with high-performa
|
|
|
12
16
|

|
|
13
17
|

|
|
14
18
|
|
|
15
|
-
[Live Demo](https://
|
|
16
|
-
[(Code)](https://github.com/DjonnyX/ng-virtual-list-demo)
|
|
19
|
+
[Live Demo](https://chat-demo.eugene-grebennikov.pro/)
|
|
20
|
+
[(Code)](https://github.com/DjonnyX/ng-virtual-list-chat-demo)
|
|
17
21
|
|
|
18
22
|
[Live Examples (Storybook)](https://ng-virtual-list-examples.eugene-grebennikov.pro/)
|
|
19
23
|
|
|
@@ -83,6 +87,8 @@ Collapsing groups
|
|
|
83
87
|
|
|
84
88
|
Support for element animation
|
|
85
89
|
|
|
90
|
+
Implemented a virtual scroll handler, ensuring stable scrolling on all platforms
|
|
91
|
+
|
|
86
92
|
<br/>
|
|
87
93
|
|
|
88
94
|
## 📦 Installation
|
|
@@ -115,7 +121,7 @@ items = Array.from({ length: 100000 }, (_, i) => ({ id: i, name: `Item #${i}` })
|
|
|
115
121
|
|
|
116
122
|
Template:
|
|
117
123
|
```html
|
|
118
|
-
<ng-virtual-list class="list" direction="horizontal" [items]="horizontalItems" [bufferSize]="
|
|
124
|
+
<ng-virtual-list class="list" direction="horizontal" [items]="horizontalItems" [bufferSize]="1" [maxBufferSize]="5"
|
|
119
125
|
[itemRenderer]="horizontalItemRenderer" [itemSize]="64" methodForSelecting="select"
|
|
120
126
|
[selectedIds]="2" (onSelect)="onSelect($event)" (onItemClick)="onItemClick($event)"></ng-virtual-list>
|
|
121
127
|
|
|
@@ -164,7 +170,7 @@ export class AppComponent {
|
|
|
164
170
|
Template:
|
|
165
171
|
```html
|
|
166
172
|
<ng-virtual-list class="list" direction="horizontal" [items]="horizontalGroupItems" [itemRenderer]="horizontalGroupItemRenderer"
|
|
167
|
-
[bufferSize]="
|
|
173
|
+
[bufferSize]="1" [maxBufferSize]="5" [itemConfigMap]="horizontalGroupItemConfigMap" [itemSize]="54" [snap]="true"
|
|
168
174
|
methodForSelecting="multi-select" [selectedIds]="[3,2]" (onSelect)="onSelect($event)" (onItemClick)="onItemClick($event)"></ng-virtual-list>
|
|
169
175
|
|
|
170
176
|
<ng-template #horizontalGroupItemRenderer let-data="data" let-config="config">
|
|
@@ -231,7 +237,7 @@ export class AppComponent {
|
|
|
231
237
|
|
|
232
238
|
Template:
|
|
233
239
|
```html
|
|
234
|
-
<ng-virtual-list class="list simple" [items]="items" [bufferSize]="
|
|
240
|
+
<ng-virtual-list class="list simple" [items]="items" [bufferSize]="1" [maxBufferSize]="5" [itemRenderer]="itemRenderer"
|
|
235
241
|
[itemSize]="40"></ng-virtual-list>
|
|
236
242
|
|
|
237
243
|
<ng-template #itemRenderer let-data="data">
|
|
@@ -270,7 +276,7 @@ export class AppComponent {
|
|
|
270
276
|
|
|
271
277
|
Template:
|
|
272
278
|
```html
|
|
273
|
-
<ng-virtual-list class="list simple" [items]="groupItems" [bufferSize]="
|
|
279
|
+
<ng-virtual-list class="list simple" [items]="groupItems" [bufferSize]="1" [maxBufferSize]="5" [itemRenderer]="groupItemRenderer"
|
|
274
280
|
[itemConfigMap]="groupItemConfigMap" [itemSize]="40" [snap]="false"></ng-virtual-list>
|
|
275
281
|
|
|
276
282
|
<ng-template #groupItemRenderer let-data="data">
|
|
@@ -290,7 +296,7 @@ Template:
|
|
|
290
296
|
|
|
291
297
|
Template (with snapping):
|
|
292
298
|
```html
|
|
293
|
-
<ng-virtual-list class="list simple" [items]="groupItems" [bufferSize]="
|
|
299
|
+
<ng-virtual-list class="list simple" [items]="groupItems" [bufferSize]="1" [maxBufferSize]="5" [itemRenderer]="groupItemRenderer"
|
|
294
300
|
[itemConfigMap]="groupItemConfigMap" [itemSize]="40" [snap]="true"></ng-virtual-list>
|
|
295
301
|
|
|
296
302
|
<ng-template #groupItemRenderer let-data="data">
|
|
@@ -401,7 +407,7 @@ Virtual list with height-adjustable elements.
|
|
|
401
407
|
|
|
402
408
|
Template
|
|
403
409
|
```html
|
|
404
|
-
<ng-virtual-list #dynamicList class="list" [items]="groupDynamicItems" [itemRenderer]="groupItemRenderer" [bufferSize]="
|
|
410
|
+
<ng-virtual-list #dynamicList class="list" [items]="groupDynamicItems" [itemRenderer]="groupItemRenderer" [bufferSize]="1" [maxBufferSize]="5"
|
|
405
411
|
[itemConfigMap]="groupDynamicItemConfigMap" [dynamicSize]="true" [snap]="true"></ng-virtual-list>
|
|
406
412
|
|
|
407
413
|
<ng-template #groupItemRenderer let-data="data">
|
|
@@ -472,6 +478,45 @@ export class AppComponent {
|
|
|
472
478
|
|
|
473
479
|
## 🖼️ Stylization
|
|
474
480
|
|
|
481
|
+
- Scrollbar theme
|
|
482
|
+
```ts
|
|
483
|
+
import { NgVirtualListComponent, GradientColor, RoundedCorner, ScrollBarTheme } from 'ng-virtual-list';
|
|
484
|
+
|
|
485
|
+
const X_LITE_BLUE_PLASMA_GRADIENT: GradientColor = ["rgba(133, 142, 255, 0)", "rgb(0, 133, 160)"],
|
|
486
|
+
ROUND_CORNER: RoundedCorner = [3, 3, 3, 3],
|
|
487
|
+
SCROLLBAR_GRADIENT: ScrollBarTheme = {
|
|
488
|
+
fill: ["rgba(51, 0, 97, 1)", "rgba(73, 0, 97, 1)"],
|
|
489
|
+
strokeGradientColor: X_LITE_BLUE_PLASMA_GRADIENT,
|
|
490
|
+
strokeAnimationDuration: 1000,
|
|
491
|
+
thickness: 6,
|
|
492
|
+
roundCorner: ROUND_CORNER,
|
|
493
|
+
rippleColor: 'rgba(255,255,255,0.5)',
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
@Component({
|
|
497
|
+
selector: 'app-root',
|
|
498
|
+
imports: [FormsModule, NgVirtualListComponent],
|
|
499
|
+
templateUrl: './app.component.html',
|
|
500
|
+
styleUrl: './app.component.scss'
|
|
501
|
+
})
|
|
502
|
+
export class AppComponent {
|
|
503
|
+
scrollbarTheme = SCROLLBAR_GRADIENT;
|
|
504
|
+
|
|
505
|
+
items = Array.from({ length: 100000 }, (_, i) => ({ id: i, name: `Item #${i}` }));
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
```html
|
|
511
|
+
<ng-virtual-list [scrollbarTheme]="scrollbarTheme" [items]="items" [itemRenderer]="itemRenderer"></ng-virtual-list>
|
|
512
|
+
|
|
513
|
+
<ng-template #horizontalItemRenderer let-data="data" let-config="config">
|
|
514
|
+
<div *ngIf="data" [ngClass]="{'list__h-container': true, 'selected': config.selected}">
|
|
515
|
+
<span>{{data.name}}</span>
|
|
516
|
+
</div>
|
|
517
|
+
</ng-template>
|
|
518
|
+
```
|
|
519
|
+
|
|
475
520
|
List items are encapsulated in shadowDOM, so to override default styles you need to use ::part access
|
|
476
521
|
|
|
477
522
|
- Customize a scroll area of list
|
|
@@ -574,7 +619,7 @@ Inputs
|
|
|
574
619
|
| collectionMode | [CollectionMode? = 'normal'](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/enums/collection-mode.ts) | Determines the action modes for collection elements. Default value is `normal`. |
|
|
575
620
|
| selectByClick | boolean? = true | If `false`, the element is selected using the config.select method passed to the template; if `true`, the element is selected by clicking on it. The default value is `true`. |
|
|
576
621
|
| snap | boolean? = false | Determines whether elements will snap. Default value is "false". |
|
|
577
|
-
| snappingMethod | [SnappingMethod? = 'normal'](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/enums/snapping-method.ts) | Snapping method. 'normal' - Normal group rendering. 'advanced' - The group is rendered on a transparent background. List items below the group are not rendered. |
|
|
622
|
+
| snappingMethod | [SnappingMethod? = 'normal'](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/enums/snapping-method.ts) | Snapping method. 'normal' - Normal group rendering. 'advanced' - The group is rendered on a transparent background. 'chat' - The group is rendered on a background. List items below the group are not rendered. |
|
|
578
623
|
| direction | [Direction? = 'vertical'](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/enums/direction.ts) | Determines the direction in which elements are placed. Default value is "vertical". |
|
|
579
624
|
| dynamicSize | boolean? = false | If true then the items in the list can have different sizes and the itemSize property is ignored. If false then the items in the list have a fixed size specified by the itemSize property. The default value is false. |
|
|
580
625
|
| enabledBufferOptimization | boolean? = true | Experimental! Enables buffer optimization. Can only be used if items in the collection are not added or updated. |
|
|
@@ -582,6 +627,16 @@ Inputs
|
|
|
582
627
|
| selectedIds | Array<[Id](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/id.ts)> \| [Id](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/id.ts) \| undefined | Sets the selected items. |
|
|
583
628
|
| collapsedIds | Array<[Id](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/id.ts)> | Sets the collapsed items. |
|
|
584
629
|
| screenReaderMessage | string? = "Showing items $1 to $2" | Message for screen reader. The message format is: "some text `$1` some text `$2`", where `$1` is the number of the first element of the screen collection, `$2` is the number of the last element of the screen collection. |
|
|
630
|
+
| langTextDir | [TextDirection? = 'ltr'](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/enums/text-direction.ts) | A string indicating the direction of text for the locale. Can be either "ltr" (left-to-right) or "rtl" (right-to-left). |
|
|
631
|
+
| loading | boolean? = false | If `true`, the scrollBar goes into loading state. The default value is `false`. |
|
|
632
|
+
| scrollbarTheme | [ScrollBarTheme?](https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/types/scrollbar-theme.ts) | Scrollbar theme. |
|
|
633
|
+
| clickDistance | number? = 40 | The maximum scroll distance at which a click event is triggered. |
|
|
634
|
+
| waitForPreparation | boolean? = true | If true, it will wait until the list items are fully prepared before displaying them.. The default value is `true`. |
|
|
635
|
+
| scrollStartOffset | number? = 0 | Sets the scroll start offset value; Default value is "0". |
|
|
636
|
+
| scrollEndOffset | number? = 0 | Sets the scroll end offset value; Default value is "0". |
|
|
637
|
+
| snapScrollToBottom | boolean? = false | Determines whether the scroll will be anchored to the end of the list at startup.. Default value is "false". |
|
|
638
|
+
| snapToEndTransitionInstantOffset | number? = 0 | Sets the offset value; if the scroll area value is exceeded, the scroll animation will be disabled. Default value is "0". |
|
|
639
|
+
| scrollbarMinSize | number? = 80 | Minimum scrollbar size. |
|
|
585
640
|
|
|
586
641
|
<br/>
|
|
587
642
|
|
|
@@ -598,7 +653,6 @@ Outputs
|
|
|
598
653
|
| onScrollReachStart | void | Fires when the scroll reaches the start. |
|
|
599
654
|
| onScrollReachEnd | void | Fires when the scroll reaches the end. |
|
|
600
655
|
|
|
601
|
-
|
|
602
656
|
<br/>
|
|
603
657
|
|
|
604
658
|
Methods
|
|
@@ -642,7 +696,7 @@ Try it out, star ⭐ the repo, and let us know what you’re building.
|
|
|
642
696
|
|
|
643
697
|
MIT License
|
|
644
698
|
|
|
645
|
-
Copyright (c)
|
|
699
|
+
Copyright (c) 2026 djonnyx (Evgenii Alexandrovich Grebennikov)
|
|
646
700
|
|
|
647
701
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
648
702
|
of this software and associated documentation files (the "Software"), to deal
|