ng-virtual-list 21.11.2 → 21.12.0

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.
@@ -1,8 +1,8 @@
1
1
  import * as ng_virtual_list from 'ng-virtual-list';
2
2
  import * as rxjs from 'rxjs';
3
- import { Observable, Subject } from 'rxjs';
3
+ import { Observable, Subject, BehaviorSubject } from 'rxjs';
4
4
  import * as _angular_core from '@angular/core';
5
- import { TemplateRef, ComponentRef, Signal, ElementRef, DestroyRef, OnInit, Injector, OnDestroy } from '@angular/core';
5
+ import { ComponentRef, TemplateRef, Signal, ElementRef, DestroyRef, OnInit, Injector, OnDestroy } from '@angular/core';
6
6
  import * as i2 from '@angular/common';
7
7
  import * as i5 from '@angular/cdk/scrolling';
8
8
  import { CdkScrollable } from '@angular/cdk/scrolling';
@@ -47,266 +47,89 @@ type Id = string | number;
47
47
  * @email djonnyx@gmail.com
48
48
  */
49
49
  type IVirtualListItem<E = Object> = E & {
50
- [x: string]: any;
51
- };
52
-
53
- /**
54
- * Object with configuration parameters for IRenderVirtualListItem
55
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/render-item-config.model.ts
56
- * @author Evgenii Alexandrovich Grebennikov
57
- * @email djonnyx@gmail.com
58
- */
59
- interface IRenderVirtualListItemConfig {
60
- /**
61
- * Determines whether an element is new in the collection.
62
- */
63
- new: boolean;
64
- /**
65
- * Indicates that the element is odd.
66
- */
67
- odd: boolean;
68
- /**
69
- * Indicates that the element is even.
70
- */
71
- even: boolean;
72
- /**
73
- * Determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
74
- * Default value is `false`.
75
- */
76
- collapsable: boolean;
77
- /**
78
- * If greater than 0, the element will have a sticky position with the given zIndex.
79
- */
80
- sticky: 0 | 1 | 2;
81
- /**
82
- * Determines whether an element can be selected or not. Default value is `true`.
83
- */
84
- selectable: boolean;
85
- /**
86
- * Specifies whether the element will snap.
87
- */
88
- snap: boolean;
89
- /**
90
- * Indicates that the element is snapped.
91
- */
92
- snapped: boolean;
93
- /**
94
- * Indicates that the element is being shifted by another snap element.
95
- */
96
- snappedOut: boolean;
97
- /**
98
- * Indicates that the element is a vertical list item.
99
- */
100
- isVertical: boolean;
101
- /**
102
- * Specifies that the element adapts to the size of its content.
103
- */
104
- dynamic: boolean;
105
- /**
106
- * Returns true if the snapping method is advanced
107
- */
108
- isSnappingMethodAdvanced: boolean;
109
- /**
110
- * Tab index.
111
- */
112
- tabIndex: number;
113
50
  /**
114
- * z-index
51
+ * The type of the collection item. Items with different types are cached in separate pools.
115
52
  */
116
- zIndex: string;
53
+ type?: string | symbol;
117
54
  /**
118
- * Determines whether an element is a stub.
55
+ * Props.
119
56
  */
120
- isStub?: boolean;
121
- }
57
+ [x: string]: any;
58
+ };
122
59
 
123
60
  /**
124
- * IAnimationParams
125
- * Maximum performance for extremely large lists.
126
- * It is based on algorithms for virtualization of screen objects.
127
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/animation-params.ts
61
+ * Alignments
62
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/alignments.ts
128
63
  * @author Evgenii Alexandrovich Grebennikov
129
64
  * @email djonnyx@gmail.com
130
65
  */
131
- interface IAnimationParams {
132
- scrollToItem: number;
133
- navigateToItem: number;
134
- navigateByKeyboard: number;
66
+ declare enum Alignments {
67
+ NONE = "none",
68
+ CENTER = "center"
135
69
  }
136
70
 
137
71
  /**
138
- * Action modes for collection elements.
139
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/collection-modes.ts
72
+ * Alignment
73
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/alignment.ts
140
74
  * @author Evgenii Alexandrovich Grebennikov
141
75
  * @email djonnyx@gmail.com
142
76
  */
143
- declare enum CollectionModes {
144
- /**
145
- * When adding elements to the beginning of the collection, the scroll remains at the current position.
146
- */
147
- NORMAL = "normal",
148
- /**
149
- * When adding elements to the beginning of the collection, the scroll is shifted by the sum of the sizes of the new elements.
150
- */
151
- LAZY = "lazy"
152
- }
77
+ type Alignment = Alignments | 'none' | 'center';
153
78
 
154
79
  /**
155
- * Action modes for collection elements.
156
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/collection-mode.ts
80
+ * FloatOrPersentageValue
81
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/float-or-persentage-value.ts
157
82
  * @author Evgenii Alexandrovich Grebennikov
158
83
  * @email djonnyx@gmail.com
159
84
  */
160
- type CollectionMode = CollectionModes | 'normal' | 'lazy';
85
+ type FloatOrPersentageValue = number | `${number}%`;
161
86
 
87
+ type Operator = '+' | '-';
162
88
  /**
163
- * Axis of the arrangement of virtual list elements.
164
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/directions.ts
89
+ * ArithmeticExpression
90
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/arithmetic-expression.ts
165
91
  * @author Evgenii Alexandrovich Grebennikov
166
92
  * @email djonnyx@gmail.com
167
93
  */
168
- declare enum Directions {
169
- /**
170
- * Horizontal axis.
171
- */
172
- HORIZONTAL = "horizontal",
173
- /**
174
- * Vertical axis.
175
- */
176
- VERTICAL = "vertical"
177
- }
94
+ type ArithmeticExpression = FloatOrPersentageValue | `${FloatOrPersentageValue}${Operator}${FloatOrPersentageValue}` | `${FloatOrPersentageValue} ${Operator} ${FloatOrPersentageValue}`;
178
95
 
179
96
  /**
180
- * Axis of the arrangement of virtual list elements.
181
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/direction.ts
182
- * @author Evgenii Alexandrovich Grebennikov
183
- * @email djonnyx@gmail.com
97
+ * @license Copyright (c) 2026 Evgenii Alexandrovich Grebennikov (djonnyx@gmail.com tg: http://t.me/djonnyx).
184
98
  */
185
- type Direction = Directions | 'horizontal' | 'vertical';
99
+ type Color = `#${string}` | `rgb(${number},${number},${number})` | `rgba(${number},${number},${number},${number})` | `rgba(#${string},${number})`;
186
100
 
187
101
  /**
188
- * Methods for selecting list items.
189
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/methods-for-selecting.ts
102
+ * IAnimationParams
103
+ * Maximum performance for extremely large lists.
104
+ * It is based on algorithms for virtualization of screen objects.
105
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/animation-params.ts
190
106
  * @author Evgenii Alexandrovich Grebennikov
191
107
  * @email djonnyx@gmail.com
192
108
  */
193
- declare enum MethodsForSelecting {
194
- /**
195
- * List items are not selectable.
196
- */
197
- NONE = "none",
198
- /**
199
- * List items are selected one by one.
200
- */
201
- SELECT = "select",
202
- /**
203
- * Multiple selection of list items.
204
- */
205
- MULTI_SELECT = "multi-select"
109
+ interface IAnimationParams {
110
+ scrollToItem: number;
111
+ snapToItem: number;
112
+ navigateToItem: number;
113
+ navigateByKeyboard: number;
206
114
  }
207
115
 
208
116
  /**
209
- * Methods for selecting list items.
210
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/method-for-selecting.ts
211
- * @author Evgenii Alexandrovich Grebennikov
212
- * @email djonnyx@gmail.com
213
- */
214
- type MethodForSelecting = MethodsForSelecting | 'none' | 'select' | 'multi-select';
215
-
216
- /**
217
- * Snapping method.
218
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/snapping-method.ts
117
+ * IPoint
118
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/point.ts
219
119
  * @author Evgenii Alexandrovich Grebennikov
220
120
  * @email djonnyx@gmail.com
221
121
  */
222
- declare enum SnappingMethods {
122
+ interface IPoint {
223
123
  /**
224
- * The group is rendered on a background.
124
+ * X coordinate.
225
125
  */
226
- STANDART = "standart",
126
+ x: number;
227
127
  /**
228
- * A mask is applied to the viewport area so that the background is displayed underneath the attached group.
128
+ * Y coordinate.
229
129
  */
230
- ADVANCED = "advanced"
231
- }
232
-
233
- /**
234
- * Snapping method.
235
- * 'standart' - Classic group visualization.
236
- * 'advanced' - A mask is applied to the viewport area so that the background is displayed underneath the attached group.
237
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/snapping-method.ts
238
- * @author Evgenii Alexandrovich Grebennikov
239
- * @email djonnyx@gmail.com
240
- */
241
- type SnappingMethod = SnappingMethods | 'standart' | 'advanced';
242
-
243
- /**
244
- * Focus Alignments.
245
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/focus-alignments.ts
246
- * @author Evgenii Alexandrovich Grebennikov
247
- * @email djonnyx@gmail.com
248
- */
249
- declare enum FocusAlignments {
250
- NONE = "none",
251
- START = "start",
252
- CENTER = "center",
253
- END = "end"
254
- }
255
-
256
- /**
257
- * TextDirections.
258
- * RTL - right-to-left.
259
- * LTR - left-to-right.
260
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/text-directions.ts
261
- * @author Evgenii Alexandrovich Grebennikov
262
- * @email djonnyx@gmail.com
263
- */
264
- declare enum TextDirections {
265
- RTL = "rtl",
266
- LTR = "ltr"
130
+ y: number;
267
131
  }
268
132
 
269
- /**
270
- * TextDirection.
271
- * 'rtl' - right-to-left.
272
- * 'ltr' - left-to-right.
273
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/text-direction.ts
274
- * @author Evgenii Alexandrovich Grebennikov
275
- * @email djonnyx@gmail.com
276
- */
277
- type TextDirection = TextDirections | 'rtl' | 'ltr';
278
-
279
- /**
280
- * Focus Alignment
281
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/focus-alignment.ts
282
- * @author Evgenii Alexandrovich Grebennikov
283
- * @email djonnyx@gmail.com
284
- */
285
- type FocusAlignment = FocusAlignments | 'none' | 'start' | 'center' | 'end';
286
-
287
- /**
288
- * A value of -1 indicates the direction is up or left (if the list direction is horizontal).
289
- * A value of 1 indicates the direction is down or right (if the list direction is horizontal).
290
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/scroll-direction.ts
291
- */
292
- type ScrollDirection = -1 | 1 | 0;
293
-
294
- /**
295
- * GradientColorPosition
296
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/gradient-position.ts
297
- * @author Evgenii Alexandrovich Grebennikov
298
- * @email djonnyx@gmail.com
299
- */
300
- type GradientColorPosition = `${string}%` | `${number}` | number | string;
301
-
302
- /**
303
- * GradientColorPositions
304
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/gradient-positions.ts
305
- * @author Evgenii Alexandrovich Grebennikov
306
- * @email djonnyx@gmail.com
307
- */
308
- type GradientColorPositions = [GradientColorPosition, GradientColorPosition];
309
-
310
133
  /**
311
134
  * Area area Interface
312
135
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/size.ts
@@ -324,26 +147,6 @@ interface ISize {
324
147
  height: number;
325
148
  }
326
149
 
327
- /**
328
- * Virtual List Item Interface
329
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/base-virtual-list-item-component.ts
330
- * @author Evgenii Alexandrovich Grebennikov
331
- * @email djonnyx@gmail.com
332
- */
333
- declare abstract class BaseVirtualListItemComponent$1 {
334
- abstract get id(): number;
335
- abstract regular: boolean;
336
- abstract set regularLength(v: string);
337
- abstract set item(v: IRenderVirtualListItem | null | undefined);
338
- abstract get item(): IRenderVirtualListItem | null | undefined;
339
- abstract get itemId(): Id | undefined;
340
- abstract set renderer(v: TemplateRef<any> | undefined);
341
- abstract get element(): HTMLElement;
342
- abstract getBounds(): ISize;
343
- abstract show(): void;
344
- abstract hide(): void;
345
- }
346
-
347
150
  /**
348
151
  * Rectangular area interface
349
152
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/rect.ts
@@ -374,6 +177,15 @@ interface IRenderStabilizerOptions {
374
177
  prepareReupdateLength?: number;
375
178
  }
376
179
 
180
+ /**
181
+ * A value of -1 indicates the direction is up or left (if the list direction is horizontal).
182
+ * A value of 1 indicates the direction is down or right (if the list direction is horizontal).
183
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/scroll-direction.ts
184
+ * @author Evgenii Alexandrovich Grebennikov
185
+ * @email djonnyx@gmail.com
186
+ */
187
+ type ScrollDirection = -1 | 1 | 0;
188
+
377
189
  /**
378
190
  * Interface IScrollEvent.
379
191
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/scroll-event.ts
@@ -455,10 +267,14 @@ interface IScrollOptions {
455
267
  * Determines whether the element will have focus after scrolling is complete. Default value is true.
456
268
  */
457
269
  focused?: boolean;
270
+ /**
271
+ * Delay.
272
+ */
273
+ delay?: number;
458
274
  }
459
275
 
460
276
  /**
461
- * Interface IScrollParams.
277
+ * IScrollParams
462
278
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/scroll-options.ts
463
279
  * @author Evgenii Alexandrovich Grebennikov
464
280
  * @email djonnyx@gmail.com
@@ -470,6 +286,7 @@ interface IScrollParams {
470
286
  iteration?: number;
471
287
  isLastIteration?: boolean;
472
288
  scrollCalled?: boolean;
289
+ delay?: number;
473
290
  cb?: () => void;
474
291
  }
475
292
 
@@ -487,74 +304,661 @@ interface IScrollParams {
487
304
  */
488
305
  interface IScrollingSettings {
489
306
  /**
490
- * Frictional force. Default value is `0.035`.
307
+ * Frictional force. Default value is `0.035`.
308
+ */
309
+ frictionalForce?: number;
310
+ /**
311
+ * Maximum animation duration. Default value is `4000`.
312
+ */
313
+ maxDuration?: number;
314
+ /**
315
+ * Mass. Default value is `0.005`.
316
+ */
317
+ mass?: number;
318
+ /**
319
+ * Maximum scrolling distance. Default value is `12500`.
320
+ */
321
+ maxDistance?: number;
322
+ /**
323
+ * Speed scale. Default value is `15`.
324
+ */
325
+ speedScale?: number;
326
+ /**
327
+ * Enables scrolling performance optimization. Default value is `true`.
328
+ */
329
+ optimization?: boolean;
330
+ }
331
+
332
+ /**
333
+ * IItemTransformation
334
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/prerender-container/interfaces/item-transformation.ts
335
+ * @author Evgenii Alexandrovich Grebennikov
336
+ * @email djonnyx@gmail.com
337
+ */
338
+ interface IItemTransformation {
339
+ x: number;
340
+ y: number;
341
+ z: number;
342
+ rotationX: number;
343
+ rotationY: number;
344
+ rotationZ: number;
345
+ scaleX: number;
346
+ scaleY: number;
347
+ scaleZ: number;
348
+ opacity: number;
349
+ filter?: string;
350
+ blendColor?: Color | null;
351
+ zIndex: number | string;
352
+ }
353
+
354
+ /**
355
+ * Sets `sticky` position, `collapsable` and `selectable` for the list item element. If `sticky` position is greater than `0`, then `sticky` position is applied.
356
+ * If the `sticky` value is greater than `0`, then the `sticky` position mode is enabled for the element. `1` - position start, `2` - position end. Default value is `0`.
357
+ * `selectable` determines whether an element can be selected or not. Default value is `true`.
358
+ * `collapsable` determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
359
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/item-config-map.model.ts
360
+ * @author Evgenii Alexandrovich Grebennikov
361
+ * @email djonnyx@gmail.com
362
+ */
363
+ interface IVirtualListItemConfigMap {
364
+ [id: string | number]: IVirtualListItemConfig;
365
+ }
366
+ interface IVirtualListItemConfig {
367
+ /**
368
+ * Sets `sticky` position for the element. If sticky position is greater than `0`, then `sticky` position is applied.
369
+ * `1` - position start, `2` - position end.
370
+ * Default value is `0`.
371
+ */
372
+ sticky?: 0 | 1 | 2;
373
+ /**
374
+ * Determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
375
+ * Default value is `false`.
376
+ */
377
+ collapsable?: boolean;
378
+ /**
379
+ * Determines whether an element can be selected or not.
380
+ * Default value is `true`.
381
+ */
382
+ selectable?: boolean;
383
+ /**
384
+ * Determines the size of an element when rendering lists with cell divisions. If sticky is 1 or 2, fullSize automatically becomes true.
385
+ * The default value is false.
386
+ */
387
+ fullSize?: boolean;
388
+ }
389
+
390
+ /**
391
+ * Virtual list elements collection interface
392
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/collection.model.ts
393
+ * @author Evgenii Alexandrovich Grebennikov
394
+ * @email djonnyx@gmail.com
395
+ */
396
+ interface IVirtualListCollection<E = Object> extends Array<IVirtualListItem<E>> {
397
+ }
398
+
399
+ /**
400
+ * Display object configuration.
401
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/display-object-config.model.ts
402
+ * @author Evgenii Alexandrovich Grebennikov
403
+ * @email djonnyx@gmail.com
404
+ */
405
+ interface IDisplayObjectConfig extends IRenderVirtualListItemConfig {
406
+ /**
407
+ * Determines whether the element has focused or not.
408
+ */
409
+ focused: boolean;
410
+ /**
411
+ * Determines whether the element is selected or not.
412
+ */
413
+ selected: boolean;
414
+ /**
415
+ * Determines whether the element is collapsed or not.
416
+ */
417
+ collapsed: boolean;
418
+ }
419
+
420
+ /**
421
+ * Display object metrics.
422
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/display-object-measures.model.ts
423
+ * @author Evgenii Alexandrovich Grebennikov
424
+ * @email djonnyx@gmail.com
425
+ */
426
+ interface IDisplayObjectMeasures extends IRect {
427
+ /**
428
+ * Item position
429
+ */
430
+ position: number;
431
+ /**
432
+ * Scroll size
433
+ */
434
+ scrollSize: number;
435
+ /**
436
+ * Item size
437
+ */
438
+ size: number;
439
+ /**
440
+ * Bounds size
441
+ */
442
+ boundsSize: number;
443
+ /**
444
+ * Start position in viewport
445
+ */
446
+ absoluteStartPosition: number;
447
+ /**
448
+ * Start position in viewport (percent)
449
+ */
450
+ absoluteStartPositionPercent: number;
451
+ /**
452
+ * End position in viewport
453
+ */
454
+ absoluteEndPosition: number;
455
+ /**
456
+ * End position in viewport (percent)
457
+ */
458
+ absoluteEndPositionPercent: number;
459
+ /**
460
+ * Delta is calculated for Snapping Method.ADVANCED
461
+ */
462
+ delta: number;
463
+ }
464
+
465
+ /**
466
+ * Measures for IRenderVirtualListItem
467
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/render-item-measures.model.ts
468
+ * @author Evgenii Alexandrovich Grebennikov
469
+ * @email djonnyx@gmail.com
470
+ */
471
+ interface IRenderVirtualListItemMeasures extends IRect {
472
+ /**
473
+ * The X coordinate after transformation.
474
+ */
475
+ transformedX: number;
476
+ /**
477
+ * The Y coordinate after transformation.
478
+ */
479
+ transformedY: number;
480
+ /**
481
+ * The Z coordinate.
482
+ */
483
+ z: number;
484
+ /**
485
+ * Rotation X
486
+ */
487
+ rotationX: number;
488
+ /**
489
+ * Rotation Y
490
+ */
491
+ rotationY: number;
492
+ /**
493
+ * Rotation Z
494
+ */
495
+ rotationZ: number;
496
+ /**
497
+ * Scale X
498
+ */
499
+ scaleX: number;
500
+ /**
501
+ * Scale Y
502
+ */
503
+ scaleY: number;
504
+ /**
505
+ * Scale Z
506
+ */
507
+ scaleZ: number;
508
+ /**
509
+ * Minimal width.
510
+ */
511
+ minWidth: number;
512
+ /**
513
+ * Minimal height.
514
+ */
515
+ minHeight: number;
516
+ /**
517
+ * Maximum width.
518
+ */
519
+ maxWidth: number;
520
+ /**
521
+ * Maximum height.
522
+ */
523
+ maxHeight: number;
524
+ /**
525
+ * Item position
526
+ */
527
+ position: number;
528
+ /**
529
+ * Scroll size
530
+ */
531
+ scrollSize: number;
532
+ /**
533
+ * Item size
534
+ */
535
+ size: number;
536
+ /**
537
+ * Row
538
+ */
539
+ row: {
540
+ size: number;
541
+ /**
542
+ * Indicates that the element is odd.
543
+ */
544
+ odd: boolean;
545
+ /**
546
+ * Indicates that the element is even.
547
+ */
548
+ even: boolean;
549
+ };
550
+ /**
551
+ * Bounds size
552
+ */
553
+ boundsSize: number;
554
+ /**
555
+ * Start position in viewport
556
+ */
557
+ absoluteStartPosition: number;
558
+ /**
559
+ * Start position in viewport (percent)
560
+ */
561
+ absoluteStartPositionPercent: number;
562
+ /**
563
+ * End position in viewport
564
+ */
565
+ absoluteEndPosition: number;
566
+ /**
567
+ * End position in viewport (percent)
568
+ */
569
+ absoluteEndPositionPercent: number;
570
+ /**
571
+ * Scroll direction.
572
+ */
573
+ scrollDirection: ScrollDirection;
574
+ /**
575
+ * Delta is calculated for Snapping Method.ADVANCED
576
+ */
577
+ delta: number;
578
+ }
579
+
580
+ /**
581
+ * ItemTransform
582
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/item-transform.ts
583
+ * @author Evgenii Alexandrovich Grebennikov
584
+ * @email djonnyx@gmail.com
585
+ */
586
+ type ItemTransform = (index: number, measures: IRenderVirtualListItemMeasures, config: IRenderVirtualListItemConfig) => IItemTransformation;
587
+
588
+ /**
589
+ * Action modes for collection elements.
590
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/collection-modes.ts
591
+ * @author Evgenii Alexandrovich Grebennikov
592
+ * @email djonnyx@gmail.com
593
+ */
594
+ declare enum CollectionModes {
595
+ /**
596
+ * When adding elements to the beginning of the collection, the scroll remains at the current position.
597
+ */
598
+ NORMAL = "normal",
599
+ /**
600
+ * When adding elements to the beginning of the collection, the scroll is shifted by the sum of the sizes of the new elements.
601
+ */
602
+ LAZY = "lazy"
603
+ }
604
+
605
+ /**
606
+ * Axis of the arrangement of virtual list elements.
607
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/directions.ts
608
+ * @author Evgenii Alexandrovich Grebennikov
609
+ * @email djonnyx@gmail.com
610
+ */
611
+ declare enum Directions {
612
+ /**
613
+ * Horizontal axis.
614
+ */
615
+ HORIZONTAL = "horizontal",
616
+ /**
617
+ * Vertical axis.
618
+ */
619
+ VERTICAL = "vertical"
620
+ }
621
+
622
+ /**
623
+ * Focus Alignments.
624
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/focus-alignments.ts
625
+ * @author Evgenii Alexandrovich Grebennikov
626
+ * @email djonnyx@gmail.com
627
+ */
628
+ declare enum FocusAlignments {
629
+ NONE = "none",
630
+ START = "start",
631
+ CENTER = "center",
632
+ END = "end"
633
+ }
634
+
635
+ /**
636
+ * Modes for collapsing list items.
637
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/collapsing-modes.ts
638
+ * @author Evgenii Alexandrovich Grebennikov
639
+ * @email djonnyx@gmail.com
640
+ */
641
+ declare enum CollapsingModes {
642
+ /**
643
+ * List items are not selectable.
644
+ */
645
+ NONE = "none",
646
+ /**
647
+ * List items are collapsed one by one.
648
+ */
649
+ MULTI_COLLAPSE = "multi-collapse",
650
+ /**
651
+ * Accordion collapsible list items.
652
+ */
653
+ ACCORDION = "accordion"
654
+ }
655
+
656
+ /**
657
+ * Mods for selecting list items.
658
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/selecting-modes.ts
659
+ * @author Evgenii Alexandrovich Grebennikov
660
+ * @email djonnyx@gmail.com
661
+ */
662
+ declare enum SelectingModes {
663
+ /**
664
+ * List items are not selectable.
665
+ */
666
+ NONE = "none",
667
+ /**
668
+ * List items are selected one by one.
669
+ */
670
+ SELECT = "select",
671
+ /**
672
+ * Multiple selection of list items.
673
+ */
674
+ MULTI_SELECT = "multi-select"
675
+ }
676
+
677
+ /**
678
+ * SnapToAtemAligns.
679
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/snap-to-item-aligns.ts
680
+ * @author Evgenii Alexandrovich Grebennikov
681
+ * @email djonnyx@gmail.com
682
+ */
683
+ declare enum SnapToItemAligns {
684
+ /**
685
+ * An anchor indicates the beginning of an element.
686
+ */
687
+ START = "start",
688
+ /**
689
+ * The anchor points to the middle of the element.
690
+ */
691
+ CENTER = "center",
692
+ /**
693
+ * An anchor indicates the end of an element.
694
+ */
695
+ END = "end"
696
+ }
697
+
698
+ /**
699
+ * Snapping method.
700
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/snapping-method.ts
701
+ * @author Evgenii Alexandrovich Grebennikov
702
+ * @email djonnyx@gmail.com
703
+ */
704
+ declare enum SnappingMethods {
705
+ /**
706
+ * The group is rendered on a background.
707
+ */
708
+ STANDART = "standart",
709
+ /**
710
+ * A mask is applied to the viewport area so that the background is displayed underneath the attached group.
711
+ */
712
+ ADVANCED = "advanced"
713
+ }
714
+
715
+ /**
716
+ * SpreadingModes.
717
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/spreading-modes.ts
718
+ * @author Evgenii Alexandrovich Grebennikov
719
+ * @email djonnyx@gmail.com
720
+ */
721
+ declare enum SpreadingModes {
722
+ /**
723
+ * List elements are ordered according to the collection sequence.
724
+ */
725
+ NORMAL = "normal",
726
+ /**
727
+ * List elements are ordered cyclically, forming an infinite list.
728
+ */
729
+ INFINITY = "infinity"
730
+ }
731
+
732
+ /**
733
+ * TextDirections.
734
+ * RTL - right-to-left.
735
+ * LTR - left-to-right.
736
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/text-directions.ts
737
+ * @author Evgenii Alexandrovich Grebennikov
738
+ * @email djonnyx@gmail.com
739
+ */
740
+ declare enum TextDirections {
741
+ RTL = "rtl",
742
+ LTR = "ltr"
743
+ }
744
+
745
+ /**
746
+ * Focus Alignment
747
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/focus-alignment.ts
748
+ * @author Evgenii Alexandrovich Grebennikov
749
+ * @email djonnyx@gmail.com
750
+ */
751
+ type FocusAlignment = FocusAlignments | 'none' | 'start' | 'center' | 'end';
752
+
753
+ /**
754
+ * SnappingDistance
755
+ * Snapping activation distance. Can be specified as a percentage of the element size or in absolute values.
756
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/snapping-distance.ts
757
+ * @author Evgenii Alexandrovich Grebennikov
758
+ * @email djonnyx@gmail.com
759
+ */
760
+ type SnappingDistance = `${number}%` | number;
761
+
762
+ /**
763
+ * GradientColorPosition
764
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/gradient-position.ts
765
+ * @author Evgenii Alexandrovich Grebennikov
766
+ * @email djonnyx@gmail.com
767
+ */
768
+ type GradientColorPosition = `${number}%` | `${number}` | number | string;
769
+
770
+ /**
771
+ * GradientColorPositions
772
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/gradient-positions.ts
773
+ * @author Evgenii Alexandrovich Grebennikov
774
+ * @email djonnyx@gmail.com
775
+ */
776
+ type GradientColorPositions = [GradientColorPosition, GradientColorPosition];
777
+
778
+ /**
779
+ * Action modes for collection elements.
780
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/collection-mode.ts
781
+ * @author Evgenii Alexandrovich Grebennikov
782
+ * @email djonnyx@gmail.com
783
+ */
784
+ type CollectionMode = CollectionModes | 'normal' | 'lazy';
785
+
786
+ /**
787
+ * Axis of the arrangement of virtual list elements.
788
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/direction.ts
789
+ * @author Evgenii Alexandrovich Grebennikov
790
+ * @email djonnyx@gmail.com
791
+ */
792
+ type Direction = Directions | 'horizontal' | 'vertical';
793
+
794
+ /**
795
+ * Modes for collapsing list items.
796
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/collapsing-mode.ts
797
+ * @author Evgenii Alexandrovich Grebennikov
798
+ * @email djonnyx@gmail.com
799
+ */
800
+ type CollapsingMode = CollapsingModes | 'none' | 'multi-collapse' | 'accordion';
801
+
802
+ /**
803
+ * Modes for selecting list items.
804
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/selecting-mode.ts
805
+ * @author Evgenii Alexandrovich Grebennikov
806
+ * @email djonnyx@gmail.com
807
+ */
808
+ type SelectingMode = SelectingModes | 'none' | 'select' | 'multi-select';
809
+
810
+ /**
811
+ * SnapToItemAlign.
812
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/snap-to-item-align.ts
813
+ * @author Evgenii Alexandrovich Grebennikov
814
+ * @email djonnyx@gmail.com
815
+ */
816
+ type SnapToItemAlign = SnapToItemAligns | 'start' | 'center' | 'end';
817
+
818
+ /**
819
+ * Snapping method.
820
+ * 'standart' - Classic group visualization.
821
+ * 'advanced' - A mask is applied to the viewport area so that the background is displayed underneath the attached group.
822
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/snapping-method.ts
823
+ * @author Evgenii Alexandrovich Grebennikov
824
+ * @email djonnyx@gmail.com
825
+ */
826
+ type SnappingMethod = SnappingMethods | 'standart' | 'advanced';
827
+
828
+ /**
829
+ * SpreadingMode
830
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/spreading-mode.ts
831
+ * @author Evgenii Alexandrovich Grebennikov
832
+ * @email djonnyx@gmail.com
833
+ */
834
+ type SpreadingMode = SpreadingModes | 'normal' | 'infinity';
835
+
836
+ /**
837
+ * TextDirection.
838
+ * 'rtl' - right-to-left.
839
+ * 'ltr' - left-to-right.
840
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/text-direction.ts
841
+ * @author Evgenii Alexandrovich Grebennikov
842
+ * @email djonnyx@gmail.com
843
+ */
844
+ type TextDirection = TextDirections | 'rtl' | 'ltr';
845
+
846
+ /**
847
+ * Object with configuration parameters for IRenderVirtualListItem
848
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/render-item-config.model.ts
849
+ * @author Evgenii Alexandrovich Grebennikov
850
+ * @email djonnyx@gmail.com
851
+ */
852
+ interface IRenderVirtualListItemConfig {
853
+ /**
854
+ * Determines whether an element is new in the collection.
855
+ */
856
+ new: boolean;
857
+ /**
858
+ * Indicates that the element is odd.
859
+ */
860
+ odd: boolean;
861
+ /**
862
+ * Indicates that the element is even.
863
+ */
864
+ even: boolean;
865
+ /**
866
+ * Determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
867
+ * Default value is `false`.
868
+ */
869
+ collapsable: boolean;
870
+ /**
871
+ * If greater than 0, the element will have a sticky position with the given zIndex.
872
+ */
873
+ sticky: 0 | 1 | 2;
874
+ /**
875
+ * Determines whether an element can be selected or not. Default value is `true`.
876
+ */
877
+ selectable: boolean;
878
+ /**
879
+ * Specifies whether the element will snap.
491
880
  */
492
- frictionalForce?: number;
881
+ snap: boolean;
493
882
  /**
494
- * Maximum animation duration. Default value is `4000`.
883
+ * Indicates that the element is snapped.
495
884
  */
496
- maxDuration?: number;
885
+ snapped: boolean;
497
886
  /**
498
- * Mass. Default value is `0.005`.
887
+ * Indicates that the element is being shifted by another snap element.
499
888
  */
500
- mass?: number;
889
+ snappedOut: boolean;
501
890
  /**
502
- * Maximum scrolling distance. Default value is `12500`.
891
+ * Indicates that the element is a vertical list item.
503
892
  */
504
- maxDistance?: number;
893
+ isVertical: boolean;
505
894
  /**
506
- * Speed scale. Default value is `15`.
895
+ * Specifies that the element adapts to the size of its content.
507
896
  */
508
- speedScale?: number;
897
+ dynamic: boolean;
509
898
  /**
510
- * Enables scrolling performance optimization. Default value is `true`.
899
+ * Returns true if the snapping method is advanced
511
900
  */
512
- optimization?: boolean;
513
- }
514
-
515
- /**
516
- * Measures for IRenderVirtualListItem
517
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/render-item-measures.model.ts
518
- * @author Evgenii Alexandrovich Grebennikov
519
- * @email djonnyx@gmail.com
520
- */
521
- interface IRenderVirtualListItemMeasures extends IRect {
901
+ isSnappingMethodAdvanced: boolean;
522
902
  /**
523
- * Item position
903
+ * layout offset;
524
904
  */
525
- position: number;
905
+ layoutOffset: number;
526
906
  /**
527
- * Scroll size
907
+ * layout index offset;
528
908
  */
529
- scrollSize: number;
909
+ layoutIndexOffset: number;
530
910
  /**
531
- * Item size
911
+ * Tab index.
532
912
  */
533
- size: number;
913
+ tabIndex: number;
534
914
  /**
535
- * Bounds size
915
+ * z-index
536
916
  */
537
- boundsSize: number;
917
+ zIndex: string;
538
918
  /**
539
- * Start position in viewport
919
+ * Opacity.
540
920
  */
541
- absoluteStartPosition: number;
921
+ opacity: number;
542
922
  /**
543
- * Start position in viewport (percent)
923
+ * Filter.
544
924
  */
545
- absoluteStartPositionPercent: number;
925
+ filter?: string;
546
926
  /**
547
- * End position in viewport
927
+ * Blend color.
548
928
  */
549
- absoluteEndPosition: number;
929
+ blendColor?: Color | null;
550
930
  /**
551
- * End position in viewport (percent)
931
+ * Determines whether an element is a stub.
552
932
  */
553
- absoluteEndPositionPercent: number;
933
+ isStub?: boolean;
554
934
  /**
555
- * Delta is calculated for Snapping Method.ADVANCED
935
+ * Division number.
556
936
  */
557
- delta: number;
937
+ divides: number;
938
+ /**
939
+ * Snap to an item. The default value is `false`.
940
+ */
941
+ snapToItem: boolean;
942
+ /**
943
+ * Alignment for snapToItem. Available values ​​are `start`, `center`, and `end`. The default value is `center`.
944
+ */
945
+ snapToItemAlign: SnapToItemAlign;
946
+ /**
947
+ * Indicates whether the element is the first in the collection.
948
+ */
949
+ isFirst: boolean;
950
+ /**
951
+ * Indicates whether the element is the last one in the collection.
952
+ */
953
+ isLast: boolean;
954
+ /**
955
+ * Determines the size of an element when rendering lists with cell divisions. If sticky is 1 or 2, fullSize automatically becomes true.
956
+ */
957
+ fullSize: boolean;
958
+ /**
959
+ * Number of elements in the collection to be visualized.
960
+ */
961
+ totalItems: number;
558
962
  }
559
963
 
560
964
  /**
@@ -595,111 +999,11 @@ interface IRenderVirtualListItem<E = any> {
595
999
  }
596
1000
 
597
1001
  /**
598
- * Sets `sticky` position, `collapsable` and `selectable` for the list item element. If `sticky` position is greater than `0`, then `sticky` position is applied.
599
- * If the `sticky` value is greater than `0`, then the `sticky` position mode is enabled for the element. `1` - position start, `2` - position end. Default value is `0`.
600
- * `selectable` determines whether an element can be selected or not. Default value is `true`.
601
- * `collapsable` determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
602
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/item-config-map.model.ts
603
- * @author Evgenii Alexandrovich Grebennikov
604
- * @email djonnyx@gmail.com
605
- */
606
- interface IVirtualListItemConfigMap {
607
- [id: string | number]: IVirtualListItemConfig;
608
- }
609
- interface IVirtualListItemConfig {
610
- /**
611
- * Sets `sticky` position for the element. If sticky position is greater than `0`, then `sticky` position is applied.
612
- * `1` - position start, `2` - position end.
613
- * Default value is `0`.
614
- */
615
- sticky?: 0 | 1 | 2;
616
- /**
617
- * Determines whether an element with a `sticky` property greater than zero can collapse and collapse elements in front that do not have a `sticky` property.
618
- * Default value is `false`.
619
- */
620
- collapsable?: boolean;
621
- /**
622
- * Determines whether an element can be selected or not.
623
- * Default value is `true`.
624
- */
625
- selectable?: boolean;
626
- }
627
-
628
- /**
629
- * Virtual list elements collection interface
630
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/collection.model.ts
631
- * @author Evgenii Alexandrovich Grebennikov
632
- * @email djonnyx@gmail.com
633
- */
634
- interface IVirtualListCollection<E = Object> extends Array<IVirtualListItem<E>> {
635
- }
636
-
637
- /**
638
- * Display object configuration.
639
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/display-object-config.model.ts
640
- * @author Evgenii Alexandrovich Grebennikov
641
- * @email djonnyx@gmail.com
642
- */
643
- interface IDisplayObjectConfig extends IRenderVirtualListItemConfig {
644
- /**
645
- * Determines whether the element has focused or not.
646
- */
647
- focused: boolean;
648
- /**
649
- * Determines whether the element is selected or not.
650
- */
651
- selected: boolean;
652
- /**
653
- * Determines whether the element is collapsed or not.
654
- */
655
- collapsed: boolean;
656
- }
657
-
658
- /**
659
- * Display object metrics.
660
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/display-object-measures.model.ts
1002
+ * FocusItemParams
1003
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/types/focus-item-params.ts
661
1004
  * @author Evgenii Alexandrovich Grebennikov
662
1005
  * @email djonnyx@gmail.com
663
1006
  */
664
- interface IDisplayObjectMeasures extends IRect {
665
- /**
666
- * Item position
667
- */
668
- position: number;
669
- /**
670
- * Scroll size
671
- */
672
- scrollSize: number;
673
- /**
674
- * Item size
675
- */
676
- size: number;
677
- /**
678
- * Bounds size
679
- */
680
- boundsSize: number;
681
- /**
682
- * Start position in viewport
683
- */
684
- absoluteStartPosition: number;
685
- /**
686
- * Start position in viewport (percent)
687
- */
688
- absoluteStartPositionPercent: number;
689
- /**
690
- * End position in viewport
691
- */
692
- absoluteEndPosition: number;
693
- /**
694
- * End position in viewport (percent)
695
- */
696
- absoluteEndPositionPercent: number;
697
- /**
698
- * Delta is calculated for Snapping Method.ADVANCED
699
- */
700
- delta: number;
701
- }
702
-
703
1007
  type FocusItemParams = {
704
1008
  element: HTMLElement;
705
1009
  position: number;
@@ -724,7 +1028,7 @@ declare class NgVirtualListPublicService {
724
1028
  /**
725
1029
  * Informs about a click on a list item.
726
1030
  */
727
- get $itemClick(): Observable<IRenderVirtualListItem<any> | null>;
1031
+ get $virtualClick(): Observable<IRenderVirtualListItem<any> | null>;
728
1032
  /**
729
1033
  * Informs about the selection of a list item(s).
730
1034
  */
@@ -752,17 +1056,16 @@ declare class NgVirtualListPublicService {
752
1056
  /**
753
1057
  * Specifies a list of collapsed elements.
754
1058
  */
755
- set сollapsedIds(ids: Array<Id>);
1059
+ set collapsedIds(ids: Array<Id>);
756
1060
  /**
757
1061
  * Returns a list of collapsed elements.
758
1062
  */
759
- get сollapsedIds(): Array<Id>;
1063
+ get collapsedIds(): Array<Id>;
760
1064
  /**
761
1065
  * Updates the list
762
1066
  * @param immediately - Indicates that the list is updated instantly.
763
- * @param force - Forced update.
764
1067
  */
765
- update(immediately?: boolean, force?: boolean): void;
1068
+ update(immediately?: boolean): void;
766
1069
  /**
767
1070
  * Selects a list item
768
1071
  * @param id
@@ -931,22 +1234,13 @@ declare class CacheMap<I = string | number, B = any, E = CacheMapEvents$1, L = C
931
1234
  protected _lifeCircleId: any;
932
1235
  protected _delta: number;
933
1236
  get delta(): number;
934
- protected _deltaDirection: ScrollDirection;
935
- set deltaDirection(v: ScrollDirection);
936
- get deltaDirection(): ScrollDirection;
937
- private _scrollDirectionCache;
938
- private _scrollDirection;
939
- get scrollDirection(): ScrollDirection;
940
1237
  get version(): number;
941
- private _clearScrollDirectionDebounce;
942
1238
  constructor();
943
1239
  protected changesDetected(): boolean;
944
1240
  protected stopLifeCircle(): void;
945
1241
  protected nextTick(cb: () => void): any;
946
1242
  protected lifeCircle(): void;
947
1243
  protected lifeCircleDo(): void;
948
- clearScrollDirectionCache(async?: boolean): void;
949
- private calcScrollDirection;
950
1244
  protected bumpVersion(): void;
951
1245
  protected fireChangeIfNeed(): void;
952
1246
  set(id: I, bounds: B): CMap<I, B>;
@@ -992,15 +1286,12 @@ declare class Tracker<C extends BaseVirtualListItemComponent = any> {
992
1286
  /**
993
1287
  * tracking by propName
994
1288
  */
995
- track(items: IRenderVirtualListCollection, components: Array<ComponentRef<C>>, snappedComponents: Array<ComponentRef<C>> | null | undefined, direction: ScrollDirection): void;
1289
+ track(items: IRenderVirtualListCollection, components: Array<ComponentRef<C>>, snappedComponents: Array<ComponentRef<C>> | null | undefined, direction: ScrollDirection, trackBy: string): void;
996
1290
  untrackComponentByIdProperty(component?: C): void;
997
1291
  clearTrackMap(): void;
998
1292
  dispose(): void;
999
1293
  }
1000
1294
 
1001
- declare const WIDTH_PROP_NAME = "width";
1002
- declare const HEIGHT_PROP_NAME = "height";
1003
-
1004
1295
  /**
1005
1296
  * PrerenderCache
1006
1297
  * Maximum performance for extremely large lists.
@@ -1013,18 +1304,37 @@ type PrerenderCache = {
1013
1304
  [id: Id]: ISize;
1014
1305
  };
1015
1306
 
1016
- declare enum TrackBoxEvents {
1017
- CHANGE = "change",
1018
- TICK = "tick"
1307
+ declare const WIDTH_PROP_NAME = "width";
1308
+ declare const HEIGHT_PROP_NAME = "height";
1309
+
1310
+ /**
1311
+ * IItem
1312
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/interfaces/item.ts
1313
+ * @author Evgenii Alexandrovich Grebennikov
1314
+ * @email djonnyx@gmail.com
1315
+ */
1316
+ interface IItem<I = any> {
1317
+ [prop: string]: I;
1019
1318
  }
1020
- interface IMetrics {
1319
+
1320
+ /**
1321
+ * IMetrics
1322
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/interfaces/metrics.ts
1323
+ * @author Evgenii Alexandrovich Grebennikov
1324
+ * @email djonnyx@gmail.com
1325
+ */
1326
+ interface IMetrics<I extends IItem> {
1021
1327
  delta: number;
1022
1328
  normalizedItemWidth: number;
1023
1329
  normalizedItemHeight: number;
1024
1330
  width: number;
1025
1331
  height: number;
1026
1332
  dynamicSize: boolean;
1333
+ divides: number;
1027
1334
  itemSize: number;
1335
+ minItemSize: number;
1336
+ maxItemSize: number;
1337
+ items: Array<I>;
1028
1338
  itemsFromStartToScrollEnd: number;
1029
1339
  itemsFromStartToDisplayEnd: number;
1030
1340
  itemsOnDisplayWeight: number;
@@ -1033,14 +1343,16 @@ interface IMetrics {
1033
1343
  leftHiddenItemsWeight: number;
1034
1344
  leftItemLength: number;
1035
1345
  leftItemsWeight: number;
1346
+ leftLayoutOffset: number;
1347
+ leftLayoutIndexOffset: number;
1036
1348
  renderItems: number;
1037
1349
  rightItemLength: number;
1038
1350
  rightItemsWeight: number;
1039
1351
  scrollSize: number;
1040
1352
  leftSizeOfAddedItems: number;
1041
1353
  sizeProperty: typeof HEIGHT_PROP_NAME | typeof WIDTH_PROP_NAME;
1042
- snap: boolean;
1043
- snipedPos: number;
1354
+ stickyEnabled: boolean;
1355
+ stickyPos: number;
1044
1356
  startIndex: number;
1045
1357
  startPosition: number;
1046
1358
  totalItemsToDisplayEndWeight: number;
@@ -1049,17 +1361,29 @@ interface IMetrics {
1049
1361
  typicalItemSize: number;
1050
1362
  isFromItemIdFound: boolean;
1051
1363
  isUpdating: boolean;
1364
+ snapToItem: boolean;
1365
+ snapToItemAlign: SnapToItemAlign;
1366
+ itemTransform: ItemTransform | null;
1052
1367
  }
1368
+
1369
+ /**
1370
+ * IRecalculateMetricsOptions
1371
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/interfaces/recalculate-metrics-options.ts
1372
+ * @author Evgenii Alexandrovich Grebennikov
1373
+ * @email djonnyx@gmail.com
1374
+ */
1053
1375
  interface IRecalculateMetricsOptions<I extends IItem, C extends Array<I>> {
1054
1376
  bounds: ISize;
1055
1377
  collection: C;
1056
1378
  isVertical: boolean;
1057
1379
  itemSize: number;
1380
+ minItemSize: number;
1381
+ maxItemSize: number;
1058
1382
  bufferSize: number;
1059
1383
  maxBufferSize: number;
1060
1384
  dynamicSize: boolean;
1061
1385
  scrollSize: number;
1062
- snap: boolean;
1386
+ stickyEnabled: boolean;
1063
1387
  enabledBufferOptimization: boolean;
1064
1388
  fromItemId?: Id;
1065
1389
  previousTotalSize: number;
@@ -1067,38 +1391,121 @@ interface IRecalculateMetricsOptions<I extends IItem, C extends Array<I>> {
1067
1391
  deletedItemsMap: {
1068
1392
  [index: number]: ISize;
1069
1393
  };
1394
+ snapToItem: boolean;
1395
+ snapToItemAlign: SnapToItemAlign;
1396
+ itemTransform: ItemTransform | null;
1070
1397
  }
1398
+
1399
+ /**
1400
+ * IGetItemPositionOptions
1401
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/interfaces/get-item-position-options.ts
1402
+ * @author Evgenii Alexandrovich Grebennikov
1403
+ * @email djonnyx@gmail.com
1404
+ */
1071
1405
  interface IGetItemPositionOptions<I extends IItem, C extends Array<I>> extends Omit<IRecalculateMetricsOptions<I, C>, 'previousTotalSize' | 'crudDetected' | 'deletedItemsMap'> {
1072
1406
  }
1407
+
1408
+ /**
1409
+ * IUpdateCollectionOptions
1410
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/interfaces/update-collection-options.ts
1411
+ * @author Evgenii Alexandrovich Grebennikov
1412
+ * @email djonnyx@gmail.com
1413
+ */
1073
1414
  interface IUpdateCollectionOptions<I extends IItem, C extends Array<I>> extends Omit<IRecalculateMetricsOptions<I, C>, 'collection' | 'previousTotalSize' | 'crudDetected' | 'deletedItemsMap'> {
1074
1415
  }
1416
+
1417
+ /**
1418
+ * IGetMetricsReturns
1419
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/interfaces/get-metrics-returns.ts
1420
+ * @author Evgenii Alexandrovich Grebennikov
1421
+ * @email djonnyx@gmail.com
1422
+ */
1423
+ interface IGetMetricsReturns {
1424
+ totalSize: number;
1425
+ delta: number;
1426
+ crudDetected: boolean;
1427
+ }
1428
+
1429
+ /**
1430
+ * IUpdateCollectionReturns
1431
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/interfaces/update-collection-returns.ts
1432
+ * @author Evgenii Alexandrovich Grebennikov
1433
+ * @email djonnyx@gmail.com
1434
+ */
1435
+ interface IUpdateCollectionReturns {
1436
+ displayItems: IRenderVirtualListCollection;
1437
+ totalSize: number;
1438
+ leftLayoutOffset: number;
1439
+ delta: number;
1440
+ crudDetected: boolean;
1441
+ }
1442
+
1443
+ /**
1444
+ * ItemDisplayMethods
1445
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/enums/item-display-methods.ts
1446
+ * @author Evgenii Alexandrovich Grebennikov
1447
+ * @email djonnyx@gmail.com
1448
+ */
1449
+ declare enum ItemDisplayMethods {
1450
+ CREATE = 0,
1451
+ UPDATE = 1,
1452
+ DELETE = 2,
1453
+ NOT_CHANGED = 3
1454
+ }
1455
+
1456
+ /**
1457
+ * Cache
1458
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/types/cache.ts
1459
+ * @author Evgenii Alexandrovich Grebennikov
1460
+ * @email djonnyx@gmail.com
1461
+ */
1462
+ type Cache = ISize & {
1463
+ method?: ItemDisplayMethods;
1464
+ } & IItem;
1465
+
1466
+ /**
1467
+ * TrackBoxEvents
1468
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/events/track-box-events.ts
1469
+ * @author Evgenii Alexandrovich Grebennikov
1470
+ * @email djonnyx@gmail.com
1471
+ */
1472
+ declare enum TrackBoxEvents {
1473
+ CHANGE = "change",
1474
+ TICK = "tick"
1475
+ }
1476
+
1477
+ /**
1478
+ * CacheMapEvents
1479
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/types/cache-map-events.ts
1480
+ * @author Evgenii Alexandrovich Grebennikov
1481
+ * @email djonnyx@gmail.com
1482
+ */
1075
1483
  type CacheMapEvents = TrackBoxEvents;
1484
+
1485
+ /**
1486
+ * OnChangeEventListener
1487
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/types/on-change-event-listener.ts
1488
+ * @author Evgenii Alexandrovich Grebennikov
1489
+ * @email djonnyx@gmail.com
1490
+ */
1076
1491
  type OnChangeEventListener = (version: number) => void;
1492
+
1493
+ /**
1494
+ * OnTickEventListener
1495
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/types/on-tick-event-listener.ts
1496
+ * @author Evgenii Alexandrovich Grebennikov
1497
+ * @email djonnyx@gmail.com
1498
+ */
1077
1499
  type OnTickEventListener = () => void;
1500
+
1501
+ /**
1502
+ * CacheMapListeners
1503
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/types/cache-map-listeners.ts
1504
+ * @author Evgenii Alexandrovich Grebennikov
1505
+ * @email djonnyx@gmail.com
1506
+ */
1078
1507
  type CacheMapListeners = OnChangeEventListener | OnTickEventListener;
1079
- declare enum ItemDisplayMethods {
1080
- CREATE = 0,
1081
- UPDATE = 1,
1082
- DELETE = 2,
1083
- NOT_CHANGED = 3
1084
- }
1085
- interface IUpdateCollectionReturns {
1086
- displayItems: IRenderVirtualListCollection;
1087
- totalSize: number;
1088
- delta: number;
1089
- crudDetected: boolean;
1090
- }
1091
- interface IGetMetricsReturns {
1092
- totalSize: number;
1093
- delta: number;
1094
- crudDetected: boolean;
1095
- }
1096
- interface IItem<I = any> {
1097
- [prop: string]: I;
1098
- }
1099
- type Cache = ISize & {
1100
- method?: ItemDisplayMethods;
1101
- } & IItem;
1508
+
1102
1509
  /**
1103
1510
  * An object that performs tracking, calculations and caching.
1104
1511
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/core/track-box.ts
@@ -1113,6 +1520,16 @@ declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends Cac
1113
1520
  set displayComponents(v: Array<ComponentRef<C>> | null | undefined);
1114
1521
  protected _snappedDisplayComponents: Array<ComponentRef<C>> | null | undefined;
1115
1522
  set snappedDisplayComponents(v: Array<ComponentRef<C>> | null | undefined);
1523
+ protected _scrollDirection: ScrollDirection;
1524
+ set scrollDirection(v: ScrollDirection);
1525
+ get scrollDirection(): ScrollDirection;
1526
+ protected _trackBy: string;
1527
+ set trackBy(v: string);
1528
+ get trackBy(): string;
1529
+ protected _divides: number;
1530
+ set divides(v: number);
1531
+ protected _isInfinity: boolean;
1532
+ set isInfinity(v: boolean);
1116
1533
  protected _isSnappingMethodAdvanced: boolean;
1117
1534
  set isSnappingMethodAdvanced(v: boolean);
1118
1535
  protected _isLazy: boolean;
@@ -1122,10 +1539,10 @@ declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends Cac
1122
1539
  */
1123
1540
  set trackingPropertyName(v: string);
1124
1541
  protected _trackingPropertyName: string;
1125
- set isScrollStart(v: boolean);
1126
1542
  protected _isScrollStart: boolean;
1127
- set isScrollEnd(v: boolean);
1543
+ set isScrollStart(v: boolean);
1128
1544
  protected _isScrollEnd: boolean;
1545
+ set isScrollEnd(v: boolean);
1129
1546
  protected _isScrollSnapToStart: boolean;
1130
1547
  get isSnappedToStart(): boolean;
1131
1548
  protected _isScrollSnapToEnd: boolean;
@@ -1186,7 +1603,7 @@ declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends Cac
1186
1603
  */
1187
1604
  updateCollection<I extends IItem, C extends Array<I>>(items: C, itemConfigMap: IVirtualListItemConfigMap, options: IUpdateCollectionOptions<I, C>): IUpdateCollectionReturns;
1188
1605
  protected _previousScrollSize: number;
1189
- protected updateAdaptiveBufferParams(metrics: IMetrics, totalItemsLength: number): void;
1606
+ protected updateAdaptiveBufferParams<I extends IItem>(metrics: IMetrics<I>, totalItemsLength: number): void;
1190
1607
  protected startResetBufferSizeTimer(): void;
1191
1608
  protected disposeClearBufferSizeTimer(): void;
1192
1609
  /**
@@ -1199,15 +1616,15 @@ declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends Cac
1199
1616
  /**
1200
1617
  * Calculates list metrics
1201
1618
  */
1202
- protected recalculateMetrics<I extends IItem, C extends Array<I>>(options: IRecalculateMetricsOptions<I, C>): IMetrics;
1619
+ protected recalculateMetrics<I extends IItem, C extends Array<I>>(options: IRecalculateMetricsOptions<I, C>): IMetrics<I>;
1203
1620
  refreshCache(cache: PrerenderCache): void;
1204
- clearDelta(clearDirectionDetector?: boolean): void;
1621
+ clearDelta(): void;
1205
1622
  changes(immediately?: boolean, force?: boolean): void;
1206
1623
  /**
1207
1624
  * Returns true if the bounds of at least one screen object have changed.
1208
1625
  */
1209
1626
  checkBoundsOfElements(): boolean;
1210
- protected generateDisplayCollection<I extends IItem, C extends Array<I>>(items: C, itemConfigMap: IVirtualListItemConfigMap, metrics: IMetrics): IRenderVirtualListCollection;
1627
+ protected generateDisplayCollection<I extends IItem, C extends Array<I>>(items: C, actualItems: C, itemConfigMap: IVirtualListItemConfigMap, metrics: IMetrics<I>): IRenderVirtualListCollection;
1211
1628
  resetPositions(): void;
1212
1629
  /**
1213
1630
  * tracking by propName
@@ -1218,6 +1635,11 @@ declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends Cac
1218
1635
  }): void;
1219
1636
  untrackComponentByIdProperty(component?: C | undefined): void;
1220
1637
  getItemBounds(id: Id): ISize | null;
1638
+ getComponentBoundsByIntersectionPosition(position: number, maxPosition?: number | null): (IRect & {
1639
+ id: Id | null;
1640
+ isFirst: boolean;
1641
+ isLast: boolean;
1642
+ }) | null;
1221
1643
  private _debouncedIsScrollStartOff;
1222
1644
  protected cacheElements(isVertical: boolean, itemSize: number): void;
1223
1645
  resetCacheChunkInfo(): void;
@@ -1226,12 +1648,12 @@ declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends Cac
1226
1648
  }
1227
1649
 
1228
1650
  /**
1229
- * Methods for selecting list items.
1230
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/method-for-selecting-types.ts
1651
+ * Mods for selecting list items.
1652
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/enums/selecting-modes-types.ts
1231
1653
  * @author Evgenii Alexandrovich Grebennikov
1232
1654
  * @email djonnyx@gmail.com
1233
1655
  */
1234
- declare enum MethodsForSelectingTypes {
1656
+ declare enum SelectingModesTypes {
1235
1657
  /**
1236
1658
  * List items are not selectable.
1237
1659
  */
@@ -1264,17 +1686,18 @@ declare class NgVirtualListService {
1264
1686
  private _id;
1265
1687
  get id(): number;
1266
1688
  private _nextComponentId;
1267
- private _$itemClick;
1268
- $itemClick: rxjs.Observable<IRenderVirtualListItem<any> | null>;
1689
+ private _$virtualClick;
1690
+ $virtualClick: rxjs.Observable<IRenderVirtualListItem<any> | null>;
1269
1691
  private _$selectedIds;
1270
1692
  $selectedIds: rxjs.Observable<Id | Id[] | null>;
1271
1693
  private _$collapsedIds;
1272
1694
  $collapsedIds: rxjs.Observable<Id[]>;
1273
- private _$methodOfSelecting;
1274
- $methodOfSelecting: rxjs.Observable<MethodsForSelectingTypes>;
1275
- set methodOfSelecting(v: MethodsForSelectingTypes);
1695
+ private _$selectingMode;
1696
+ $selectingMode: rxjs.Observable<SelectingModesTypes>;
1697
+ set selectingMode(v: SelectingModesTypes);
1276
1698
  private _$focusedId;
1277
1699
  $focusedId: rxjs.Observable<Id | null>;
1700
+ set focusedId(v: Id | null);
1278
1701
  get focusedId(): Id | null;
1279
1702
  private _$focusItem;
1280
1703
  readonly $focusItem: rxjs.Observable<FocusItemParams>;
@@ -1292,16 +1715,25 @@ declare class NgVirtualListService {
1292
1715
  lastFocusedItemId: number;
1293
1716
  scrollStartOffset: number;
1294
1717
  scrollEndOffset: number;
1718
+ zIndexWhenSelecting: string | null;
1295
1719
  selectByClick: boolean;
1296
1720
  collapseByClick: boolean;
1297
1721
  defaultItemValue: IVirtualListItem | null;
1722
+ snapToItem: boolean;
1723
+ isInfinity: boolean;
1298
1724
  isVertical: boolean;
1299
1725
  dynamic: boolean;
1726
+ itemSize: number;
1300
1727
  snapScrollToStart: boolean;
1301
1728
  snapScrollToEnd: boolean;
1302
1729
  animationParams: IAnimationParams;
1730
+ isNoneCollapse: boolean;
1731
+ isMultipleCollapse: boolean;
1732
+ isAccordionCollapse: boolean;
1303
1733
  private _trackBox;
1304
1734
  listElement: HTMLDivElement | null;
1735
+ items: IVirtualListCollection;
1736
+ itemConfigMap: IVirtualListItemConfigMap;
1305
1737
  private _$displayItems;
1306
1738
  readonly $displayItems: rxjs.Observable<IRenderVirtualListCollection>;
1307
1739
  get displayItems(): IRenderVirtualListCollection;
@@ -1318,6 +1750,8 @@ declare class NgVirtualListService {
1318
1750
  set scrollBarSize(v: number);
1319
1751
  private _$scrollBarSize;
1320
1752
  readonly $scrollBarSize: rxjs.Observable<number>;
1753
+ private _$intersectionElementBySnapToItemAlign;
1754
+ readonly $intersectionElementBySnapToItemAlign: rxjs.Observable<Id | null>;
1321
1755
  private _$clickDistance;
1322
1756
  readonly $clickDistance: rxjs.Observable<number>;
1323
1757
  get clickDistance(): number;
@@ -1330,8 +1764,8 @@ declare class NgVirtualListService {
1330
1764
  set collapsedIds(ids: Array<Id>);
1331
1765
  get collapsedIds(): Array<Id>;
1332
1766
  constructor();
1333
- itemClick(data: IRenderVirtualListItem | null): void;
1334
- update(immediately?: boolean, force?: boolean): void;
1767
+ virtualClick(data: IRenderVirtualListItem | null): void;
1768
+ update(immediately?: boolean): void;
1335
1769
  private getItemConfig;
1336
1770
  /**
1337
1771
  * Selects a list item
@@ -1355,10 +1789,16 @@ declare class NgVirtualListService {
1355
1789
  */
1356
1790
  focusById(id: Id, align?: FocusAlignment, scrollBehavior?: ScrollBehavior): void;
1357
1791
  focus(element: HTMLElement, align?: FocusAlignment, behavior?: ScrollBehavior): boolean;
1792
+ focusList(): void;
1358
1793
  focusFirstElement(): void;
1359
- areaFocus(id: Id | null): void;
1360
1794
  initialize(id: number, trackBox: TrackBox): void;
1361
1795
  generateComponentId(): number;
1796
+ getComponentBoundsByIntersectionPosition(position: number, maxPosition?: number | null): (IRect & {
1797
+ id: Id | null;
1798
+ isFirst: boolean;
1799
+ isLast: boolean;
1800
+ }) | null;
1801
+ setIntersectionElementBySnapToItemAlign(id: Id | null): void;
1362
1802
  /**
1363
1803
  * The method scrolls the list to the element with the given `id` and returns the value of the scrolled area.
1364
1804
  */
@@ -1375,13 +1815,35 @@ declare class NgVirtualListService {
1375
1815
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NgVirtualListService>;
1376
1816
  }
1377
1817
 
1818
+ /**
1819
+ * IBaseVirtualListItemComponent
1820
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/interfaces/base-virtual-list-item-component.ts
1821
+ * @author Evgenii Alexandrovich Grebennikov
1822
+ * @email djonnyx@gmail.com
1823
+ */
1824
+ interface IBaseVirtualListItemComponent {
1825
+ get id(): number;
1826
+ regular: boolean;
1827
+ set regularLength(v: string);
1828
+ set item(v: IRenderVirtualListItem | null | undefined);
1829
+ get item(): IRenderVirtualListItem | null | undefined;
1830
+ get itemId(): Id | undefined;
1831
+ set renderer(v: TemplateRef<any> | undefined);
1832
+ get element(): HTMLElement;
1833
+ getBounds(): ISize;
1834
+ show(): void;
1835
+ hide(): void;
1836
+ }
1837
+
1378
1838
  /**
1379
1839
  * BaseVirtualListItemComponent
1380
1840
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/list-item/base/base-virtual-list-item-component.ts
1381
1841
  * @author Evgenii Alexandrovich Grebennikov
1382
1842
  * @email djonnyx@gmail.com
1383
1843
  */
1384
- declare class BaseVirtualListItemComponent {
1844
+ declare class BaseVirtualListItemComponent implements IBaseVirtualListItemComponent {
1845
+ protected _item: Signal<ElementRef<HTMLDivElement> | undefined>;
1846
+ protected _container: Signal<ElementRef<HTMLDivElement> | undefined>;
1385
1847
  private _apiService;
1386
1848
  protected readonly _service: NgVirtualListService;
1387
1849
  protected _id: number;
@@ -1391,11 +1853,14 @@ declare class BaseVirtualListItemComponent {
1391
1853
  protected _displayId: string;
1392
1854
  get displayId(): string;
1393
1855
  protected _isSelected: boolean;
1856
+ set isSelected(v: boolean);
1857
+ get isSelected(): boolean;
1394
1858
  protected _isCollapsed: boolean;
1395
1859
  protected readonly config: _angular_core.WritableSignal<IDisplayObjectConfig>;
1396
1860
  protected readonly measures: _angular_core.WritableSignal<IDisplayObjectMeasures | null>;
1397
1861
  protected readonly focused: _angular_core.WritableSignal<boolean>;
1398
1862
  protected readonly part: _angular_core.WritableSignal<string>;
1863
+ protected readonly fxPart: _angular_core.WritableSignal<string>;
1399
1864
  protected readonly data: _angular_core.WritableSignal<IRenderVirtualListItem<any> | null>;
1400
1865
  protected _data: IRenderVirtualListItem | null;
1401
1866
  set item(v: IRenderVirtualListItem | null);
@@ -1405,12 +1870,15 @@ declare class BaseVirtualListItemComponent {
1405
1870
  protected readonly index: Signal<number>;
1406
1871
  protected readonly templateContext: Signal<ITemplateContext>;
1407
1872
  regular: boolean;
1873
+ protected _blendColor: Color | null;
1408
1874
  protected _scrollBarSize: number;
1409
1875
  protected _langTextDir: TextDirection;
1410
1876
  protected _regularLength: string;
1411
1877
  set regularLength(v: string);
1412
1878
  get item(): IRenderVirtualListItem | null;
1413
1879
  get itemId(): ng_virtual_list.Id | undefined;
1880
+ get zIndex(): string;
1881
+ get visibility(): string;
1414
1882
  protected readonly itemRenderer: _angular_core.WritableSignal<TemplateRef<any> | undefined>;
1415
1883
  protected _renderer: TemplateRef<any> | undefined;
1416
1884
  set renderer(v: TemplateRef<any> | undefined);
@@ -1422,16 +1890,19 @@ declare class BaseVirtualListItemComponent {
1422
1890
  protected updateConfig(v: IRenderVirtualListItem<any> | null): void;
1423
1891
  protected update(): void;
1424
1892
  protected updatePartStr(v: IRenderVirtualListItem | null, isSelected: boolean, isCollapsed: boolean): void;
1893
+ protected hasFocus(): boolean;
1425
1894
  getBounds(): ISize;
1426
1895
  show(): void;
1427
1896
  hide(): void;
1897
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseVirtualListItemComponent, never>;
1898
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseVirtualListItemComponent, "ng-base-virtual-list-item", never, {}, {}, never, never, false, never>;
1428
1899
  }
1429
1900
 
1430
1901
  /**
1431
1902
  * Virtual list component.
1432
1903
  * Maximum performance for extremely large lists.
1433
1904
  * It is based on algorithms for virtualization of screen objects.
1434
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/list-item/ng-virtual-list-item.component.ts
1905
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/ng-list-item/ng-virtual-list-item.component.ts
1435
1906
  * @author Evgenii Alexandrovich Grebennikov
1436
1907
  * @email djonnyx@gmail.com
1437
1908
  */
@@ -1441,6 +1912,7 @@ declare class NgVirtualListItemComponent extends BaseVirtualListItemComponent im
1441
1912
  constructor();
1442
1913
  ngOnInit(): void;
1443
1914
  private keyKode;
1915
+ private getNavigationTimeout;
1444
1916
  private toNextItem;
1445
1917
  private toPrevItem;
1446
1918
  private focusNext;
@@ -1489,6 +1961,10 @@ declare class NgVirtualListComponent implements OnDestroy {
1489
1961
  * Fires when the viewport size is changed.
1490
1962
  */
1491
1963
  onViewportChange: _angular_core.OutputEmitterRef<ISize>;
1964
+ /**
1965
+ * Emit the component ID when an element crosses the alignment line specified by the snapToItemAlign property.
1966
+ */
1967
+ onSnapItem: _angular_core.OutputEmitterRef<Id>;
1492
1968
  /**
1493
1969
  * Fires when an element is clicked.
1494
1970
  */
@@ -1511,6 +1987,8 @@ declare class NgVirtualListComponent implements OnDestroy {
1511
1987
  onScrollReachEnd: _angular_core.OutputEmitterRef<void>;
1512
1988
  private _$show;
1513
1989
  readonly $show: rxjs.Observable<boolean>;
1990
+ private _$initialized;
1991
+ readonly $initialized: rxjs.Observable<boolean>;
1514
1992
  private _scrollbarThickness;
1515
1993
  /**
1516
1994
  * Scrollbar thickness.
@@ -1566,7 +2044,7 @@ declare class NgVirtualListComponent implements OnDestroy {
1566
2044
  collapsedIds: _angular_core.InputSignal<Id[]>;
1567
2045
  private _selectByClickOptions;
1568
2046
  /**
1569
- * If `false`, the element is selected using the config.select method passed to the template;
2047
+ * If `false`, the element is selected using the api.select method passed to the template;
1570
2048
  * if `true`, the element is selected by clicking on it. The default value is `true`.
1571
2049
  */
1572
2050
  selectByClick: _angular_core.InputSignal<boolean>;
@@ -1578,9 +2056,15 @@ declare class NgVirtualListComponent implements OnDestroy {
1578
2056
  collapseByClick: _angular_core.InputSignal<boolean>;
1579
2057
  private _snapOptions;
1580
2058
  /**
1581
- * Determines whether elements will snap. Default value is "true".
2059
+ * @deprecated
2060
+ * Use the `stickyEnabled` property instead.
1582
2061
  */
1583
2062
  snap: _angular_core.InputSignal<boolean>;
2063
+ private _stickyEnabledOptions;
2064
+ /**
2065
+ * Determines whether items with the given `sticky` in `itemConfigMap` will stick to the edges. Default value is "true".
2066
+ */
2067
+ stickyEnabled: _angular_core.InputSignal<boolean>;
1584
2068
  private _snapToEndTransitionInstantOffsetOptions;
1585
2069
  /**
1586
2070
  * Sets the offset value; if the scroll area value is exceeded, the scroll animation will be disabled. Default value is "0".
@@ -1588,14 +2072,16 @@ declare class NgVirtualListComponent implements OnDestroy {
1588
2072
  snapToEndTransitionInstantOffset: _angular_core.InputSignal<number>;
1589
2073
  private _scrollStartOffsetOptions;
1590
2074
  /**
1591
- * Sets the scroll start offset value; Default value is "0".
2075
+ * Sets the scroll start offset value. Can be specified in absolute or percentage values.
2076
+ * Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
1592
2077
  */
1593
- scrollStartOffset: _angular_core.InputSignal<number>;
2078
+ scrollStartOffset: _angular_core.InputSignal<ArithmeticExpression>;
1594
2079
  private _scrollEndOffsetOptions;
1595
2080
  /**
1596
- * Sets the scroll end offset value; Default value is "0".
2081
+ * Sets the scroll end offset value. Can be specified in absolute or percentage values.
2082
+ * Supports arithmetic expressions of addition `50% + 25` or subtraction `50% - 25`. Default value is "0".
1597
2083
  */
1598
- scrollEndOffset: _angular_core.InputSignal<number>;
2084
+ scrollEndOffset: _angular_core.InputSignal<ArithmeticExpression>;
1599
2085
  private _snapScrollToStartOptions;
1600
2086
  /**
1601
2087
  * Determines whether the scroll will be anchored to the start of the list. Default value is "true".
@@ -1605,6 +2091,7 @@ declare class NgVirtualListComponent implements OnDestroy {
1605
2091
  * If snapScrollToStart is disabled and snapScrollToEnd is enabled, the list will snap to the end;
1606
2092
  * if you move the scroll bar to the beginning, the list will snap to the beginning.
1607
2093
  * If both snapScrollToStart and snapScrollToEnd are disabled, the list will never snap to the beginning or end.
2094
+ * In the `spreadingMode=SpreadingModes.INFINITY` mode, the `snapScrollToStart` property is automatically disabled, since the list has no beginning or end.
1608
2095
  */
1609
2096
  snapScrollToStart: _angular_core.InputSignal<boolean>;
1610
2097
  private _snapScrollToEndOptions;
@@ -1615,6 +2102,7 @@ declare class NgVirtualListComponent implements OnDestroy {
1615
2102
  * If snapScrollToStart is disabled and snapScrollToEnd is enabled, the list will snap to the end;
1616
2103
  * if you move the scroll bar to the beginning, the list will snap to the beginning.
1617
2104
  * If both snapScrollToStart and snapScrollToEnd are disabled, the list will never snap to the beginning or end.
2105
+ * In the `spreadingMode=SpreadingModes.INFINITY` mode, the `snapScrollToEnd` property is automatically disabled, since the list has no beginning or end.
1618
2106
  */
1619
2107
  snapScrollToEnd: _angular_core.InputSignal<boolean>;
1620
2108
  private _snapScrollToBottomOptions;
@@ -1633,6 +2121,11 @@ declare class NgVirtualListComponent implements OnDestroy {
1633
2121
  * Determines whether scrolling using the scrollbar will be possible. The default value is "true".
1634
2122
  */
1635
2123
  scrollbarInteractive: _angular_core.InputSignal<boolean>;
2124
+ private _overlappingScrollbarOptions;
2125
+ /**
2126
+ * Determines whether the scroll bar will overlap the list. The default value is "false".
2127
+ */
2128
+ overlappingScrollbar: _angular_core.InputSignal<boolean>;
1636
2129
  private _scrollBehaviorOptions;
1637
2130
  /**
1638
2131
  * Defines the scrolling behavior for any element on the page. The default value is "smooth".
@@ -1643,15 +2136,81 @@ declare class NgVirtualListComponent implements OnDestroy {
1643
2136
  * Scrolling settings.
1644
2137
  * - frictionalForce - Frictional force. Default value is 0.035.
1645
2138
  * - mass - Mass. Default value is 0.005.
1646
- * - maxDistance - Maximum scrolling distance. Default value is 12500.
2139
+ * - maxDistance - Maximum scrolling distance. Default value is 100000.
1647
2140
  * - maxDuration - Maximum animation duration. Default value is 4000.
1648
- * - speedScale - Speed scale. Default value is 15.
2141
+ * - speedScale - Speed scale. Default value is 10.
1649
2142
  * - optimization - Enables scrolling performance optimization. Default value is `true`.
1650
2143
  */
1651
2144
  scrollingSettings: _angular_core.InputSignal<IScrollingSettings>;
2145
+ private _itemTransformOptions;
2146
+ /**
2147
+ * Custom transformation of element's position, rotation, scale, opacity and zIndex. The default value is `null`.
2148
+ */
2149
+ itemTransform: _angular_core.InputSignal<ItemTransform | null>;
2150
+ private _snapToItemOptions;
2151
+ /**
2152
+ * Snap to an item. The default value is `false`.
2153
+ */
2154
+ snapToItem: _angular_core.InputSignal<boolean>;
2155
+ private _snapToItemAlignOptions;
2156
+ /**
2157
+ * Alignment for snapToItem. Available values ​​are `start`, `center`, and `end`. The default value is `center`.
2158
+ */
2159
+ snapToItemAlign: _angular_core.InputSignal<SnapToItemAlign>;
2160
+ private _snappingDistanceOptions;
2161
+ /**
2162
+ * Snapping activation distance. Can be specified as a percentage of the element size or in absolute values.
2163
+ * The default value is `25%`.
2164
+ */
2165
+ snappingDistance: _angular_core.InputSignal<SnappingDistance>;
2166
+ private _scrollingOneByOneOptions;
2167
+ /**
2168
+ * Specifies whether to scroll one item at a time if true and the scrollToItem property is set. The default value is `false`.
2169
+ */
2170
+ scrollingOneByOne: _angular_core.InputSignal<boolean>;
2171
+ private _alignmentOptions;
2172
+ /**
2173
+ * Determines the alignment of the list. Two modes are available: `none` and `center`. The `center` mode aligns the list items to the center of the viewport, ideal for use with the `itemTransform` property.
2174
+ * The `none` mode means no alignment. The default value is `none`.
2175
+ */
2176
+ alignment: _angular_core.InputSignal<Alignment>;
2177
+ private _zIndexWhenSelectingOptions;
2178
+ /**
2179
+ * Defines the zIndex when a list item is selected. The default value is `null`.
2180
+ */
2181
+ zIndexWhenSelecting: _angular_core.InputSignal<string | null>;
2182
+ private _spreadingModeOptions;
2183
+ /**
2184
+ * The order of list elements. Available values ​​are `standard` and `infinity`.
2185
+ * `normal` — list elements are ordered according to the collection sequence.
2186
+ * `infinity` — list elements are ordered cyclically, forming an infinite list.
2187
+ * When set to `infinity`, the `alignment` property is forced to the value `Alignments.CENTER`, the `scrollbarEnabled` property is forced to the `false`
2188
+ * The default value is `standard`.
2189
+ */
2190
+ spreadingMode: _angular_core.InputSignal<SpreadingMode>;
2191
+ private _dividesOptions;
2192
+ /**
2193
+ * Column or row numbers. The default value is `1`.
2194
+ */
2195
+ divides: _angular_core.InputSignal<number>;
2196
+ private _motionBlurOptions;
2197
+ /**
2198
+ * Motion blur effect. The default value is `0.15`.
2199
+ */
2200
+ motionBlur: _angular_core.InputSignal<number>;
2201
+ private _maxMotionBlurOptions;
2202
+ /**
2203
+ * Maximum motion blur effect. The default value is `0.5`.
2204
+ */
2205
+ maxMotionBlur: _angular_core.InputSignal<number>;
2206
+ private _motionBlurEnabledOptions;
2207
+ /**
2208
+ * Determines whether to apply motion blur or not. The default value is `false`.
2209
+ */
2210
+ motionBlurEnabled: _angular_core.InputSignal<boolean>;
1652
2211
  private _animationParamsOptions;
1653
2212
  /**
1654
- * Animation parameters. The default value is "{ scrollToItem: 50, navigateToItem: 150 }".
2213
+ * Animation parameters. The default value is "{ scrollToItem: 50, snapToItem: 150, navigateToItem: 150, navigateByKeyboard: 50 }".
1655
2214
  */
1656
2215
  animationParams: _angular_core.InputSignal<IAnimationParams>;
1657
2216
  private _overscrollEnabledOptions;
@@ -1675,12 +2234,13 @@ declare class NgVirtualListComponent implements OnDestroy {
1675
2234
  private _itemRenderer;
1676
2235
  private _itemConfigMapOptions;
1677
2236
  /**
1678
- * Sets `sticky` position, `collapsable` and `selectable` for the list item element. If `sticky` position is greater than `0`, then `sticky` position is applied.
2237
+ * Sets `sticky` position, `fullSize`, `collapsable` and `selectable` for the list item element. If `sticky` position is greater than `0`, then `sticky` position is applied.
1679
2238
  * If the `sticky` value is greater than `0`, then the `sticky` position mode is enabled for the element. `1` - position start, `2` - position end.
1680
2239
  * Default value is `0`.
1681
2240
  * `selectable` determines whether an element can be selected or not. Default value is `true`.
1682
2241
  * `collapsable` determines whether an element with a `sticky` property greater than zero can collapse and
1683
2242
  * collapse elements in front that do not have a `sticky` property.
2243
+ * `fullSize` determines the size of an element when rendering lists with cell divisions. If sticky is 1 or 2, fullSize automatically becomes true. The default value is false.
1684
2244
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/models/item-config-map.model.ts
1685
2245
  * @author Evgenii Alexandrovich Grebennikov
1686
2246
  * @email djonnyx@gmail.com
@@ -1689,10 +2249,23 @@ declare class NgVirtualListComponent implements OnDestroy {
1689
2249
  private _itemSizeOptions;
1690
2250
  /**
1691
2251
  * If direction = 'vertical', then the height of a typical element. If direction = 'horizontal', then the width of a typical element.
1692
- * If the dynamicSize property is true, the items in the list can have different sizes, and you must specify the itemSize property
2252
+ * If the `dynamicSize` property is true, the items in the list can have different sizes, and you must specify the `itemSize` property
1693
2253
  * to adjust the sizes of the items in the unallocated area.
2254
+ * If the value is 'viewport', the sizes of elements are automatically resized to fit the viewport size.
1694
2255
  */
1695
- itemSize: _angular_core.InputSignal<number>;
2256
+ itemSize: _angular_core.InputSignal<number | "viewport">;
2257
+ private _minItemSizeOptions;
2258
+ /**
2259
+ * If the `dynamicSize` property is enabled, the minimum size of the element is set.
2260
+ * If the value is 'viewport', the sizes of elements are automatically resized to fit the viewport size.
2261
+ */
2262
+ minItemSize: _angular_core.InputSignal<number | "viewport">;
2263
+ private _maxItemSizeOptions;
2264
+ /**
2265
+ * If the `dynamicSize` property is enabled, the maximum size of the element is set.
2266
+ * If the value is 'viewport', the sizes of elements are automatically resized to fit the viewport size.
2267
+ */
2268
+ maxItemSize: _angular_core.InputSignal<number | "viewport">;
1696
2269
  private _dynamicSizeOptions;
1697
2270
  /**
1698
2271
  * If true, items in the list may have different sizes, and the itemSize property must be specified to adjust
@@ -1729,14 +2302,29 @@ declare class NgVirtualListComponent implements OnDestroy {
1729
2302
  * 'advanced' - A mask is applied to the viewport area so that the background is displayed underneath the attached group.
1730
2303
  */
1731
2304
  snappingMethod: _angular_core.InputSignal<SnappingMethod>;
2305
+ private _collapsingModeOptions;
2306
+ /**
2307
+ * Mode for collapsing list items.
2308
+ * `none` - List items are not selectable.
2309
+ * `multi-collapse` - List items are collapsed one by one.
2310
+ * 'accordion' - Accordion collapsible list items.
2311
+ * Default value is `multi-collapse
2312
+ */
2313
+ collapsingMode: _angular_core.InputSignal<CollapsingMode>;
1732
2314
  private _methodForSelectingOptions;
2315
+ /**
2316
+ * @deprecated
2317
+ * The "methodForSelecting" property is deprecated. Use the "selectMode" property.
2318
+ */
2319
+ methodForSelecting: _angular_core.InputSignal<SelectingMode>;
2320
+ private _selectingModeOptions;
1733
2321
  /**
1734
2322
  * Method for selecting list items. Default value is 'none'.
1735
2323
  * 'select' - List items are selected one by one.
1736
2324
  * 'multi-select' - Multiple selection of list items.
1737
2325
  * 'none' - List items are not selectable.
1738
2326
  */
1739
- methodForSelecting: _angular_core.InputSignal<MethodForSelecting>;
2327
+ selectingMode: _angular_core.InputSignal<SelectingMode>;
1740
2328
  private _trackByOptions;
1741
2329
  /**
1742
2330
  * The name of the property by which tracking is performed
@@ -1757,10 +2345,12 @@ declare class NgVirtualListComponent implements OnDestroy {
1757
2345
  * Can be either "ltr" (left-to-right) or "rtl" (right-to-left).
1758
2346
  */
1759
2347
  langTextDir: _angular_core.InputSignal<TextDirection>;
1760
- private _isNotSelecting;
1761
- private _isSingleSelecting;
1762
- private _isMultiSelecting;
2348
+ private _isSingleSelection;
2349
+ private _isMultiSelection;
2350
+ private _isMultipleCollapse;
2351
+ private _isAccordionCollapse;
1763
2352
  private _isSnappingMethodAdvanced;
2353
+ protected _isInfinity: Signal<boolean>;
1764
2354
  private _isVertical;
1765
2355
  protected get isVertical(): boolean;
1766
2356
  protected readonly focusedElement: _angular_core.WritableSignal<Id | null>;
@@ -1773,11 +2363,28 @@ declare class NgVirtualListComponent implements OnDestroy {
1773
2363
  private _snappedDisplayComponents;
1774
2364
  private _bounds;
1775
2365
  protected get bounds(): _angular_core.WritableSignal<ISize | null>;
2366
+ protected _actualScrollbarEnabled: Signal<boolean>;
2367
+ private _actualAlignment;
2368
+ protected get actualAlignment(): Signal<Alignment>;
2369
+ private _actualItemSize;
2370
+ protected get actualItemSize(): _angular_core.WritableSignal<number>;
2371
+ private _actualMinItemSize;
2372
+ protected get actualMinItemSize(): _angular_core.WritableSignal<number>;
2373
+ private _actualMaxItemSize;
2374
+ protected get actualMaxItemSize(): _angular_core.WritableSignal<number>;
1776
2375
  private _totalSize;
1777
2376
  private _listBounds;
1778
- private _scrollSize;
2377
+ private _$scrollSize;
1779
2378
  private _isScrollStart;
1780
2379
  private _isScrollEnd;
2380
+ protected _precalculatedScrollStartOffset: _angular_core.WritableSignal<number>;
2381
+ protected _precalculatedScrollEndOffset: _angular_core.WritableSignal<number>;
2382
+ protected _actualScrollStartOffset: _angular_core.WritableSignal<number>;
2383
+ protected _actualScrollEndOffset: _angular_core.WritableSignal<number>;
2384
+ protected _actualSnapScrollToStart: Signal<boolean>;
2385
+ protected _actualSnapScrollToEnd: Signal<boolean>;
2386
+ protected _alignmentScrollStartOffset: _angular_core.WritableSignal<number>;
2387
+ protected _alignmentScrollEndOffset: _angular_core.WritableSignal<number>;
1781
2388
  private _resizeSnappedComponentHandler;
1782
2389
  private _resizeSnappedObserver;
1783
2390
  private focusItem;
@@ -1814,7 +2421,6 @@ declare class NgVirtualListComponent implements OnDestroy {
1814
2421
  protected readonly $preventScrollSnapping: rxjs.Observable<boolean>;
1815
2422
  private _destroyRef;
1816
2423
  private _updateId;
1817
- private _scrollStateUpdateIndex;
1818
2424
  private _readyForShow;
1819
2425
  private _cached;
1820
2426
  private _isLoading;
@@ -1824,7 +2430,6 @@ declare class NgVirtualListComponent implements OnDestroy {
1824
2430
  private readonly $viewInit;
1825
2431
  private _$destroy;
1826
2432
  private readonly $destroy;
1827
- protected getScrollStateVersion(totalSize: number, scrollSize: number, cacheVersion: number): string;
1828
2433
  constructor();
1829
2434
  ngAfterViewInit(): void;
1830
2435
  private onAfterResize;
@@ -1832,9 +2437,12 @@ declare class NgVirtualListComponent implements OnDestroy {
1832
2437
  private snappingHandler;
1833
2438
  private emitScrollEvent;
1834
2439
  private getIsSnappingMethodAdvanced;
1835
- private getIsNotSelecting;
1836
- private getIsSingleSelecting;
1837
- private getIsMultiSelecting;
2440
+ private getIsNoneSelection;
2441
+ private getIsSingleSelection;
2442
+ private getIsMultiSelection;
2443
+ private getIsNoneCollapse;
2444
+ private getIsMultipleCollapse;
2445
+ private getIsAccordionCollapse;
1838
2446
  private getIsVertical;
1839
2447
  private getIsLazy;
1840
2448
  private createDisplayComponentsIfNeed;
@@ -1887,58 +2495,90 @@ declare class NgVirtualListComponent implements OnDestroy {
1887
2495
  ngOnDestroy(): void;
1888
2496
  private dispose;
1889
2497
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgVirtualListComponent, never>;
1890
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "waitForPreparation": { "alias": "waitForPreparation"; "required": false; "isSignal": true; }; "clickDistance": { "alias": "clickDistance"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "defaultItemValue": { "alias": "defaultItemValue"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "collapsedIds": { "alias": "collapsedIds"; "required": false; "isSignal": true; }; "selectByClick": { "alias": "selectByClick"; "required": false; "isSignal": true; }; "collapseByClick": { "alias": "collapseByClick"; "required": false; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; "snapToEndTransitionInstantOffset": { "alias": "snapToEndTransitionInstantOffset"; "required": false; "isSignal": true; }; "scrollStartOffset": { "alias": "scrollStartOffset"; "required": false; "isSignal": true; }; "scrollEndOffset": { "alias": "scrollEndOffset"; "required": false; "isSignal": true; }; "snapScrollToStart": { "alias": "snapScrollToStart"; "required": false; "isSignal": true; }; "snapScrollToEnd": { "alias": "snapScrollToEnd"; "required": false; "isSignal": true; }; "snapScrollToBottom": { "alias": "snapScrollToBottom"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; "animationParams": { "alias": "animationParams"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "enabledBufferOptimization": { "alias": "enabledBufferOptimization"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": true; "isSignal": true; }; "itemConfigMap": { "alias": "itemConfigMap"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "dynamicSize": { "alias": "dynamicSize"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "collectionMode": { "alias": "collectionMode"; "required": false; "isSignal": true; }; "bufferSize": { "alias": "bufferSize"; "required": false; "isSignal": true; }; "maxBufferSize": { "alias": "maxBufferSize"; "required": false; "isSignal": true; }; "snappingMethod": { "alias": "snappingMethod"; "required": false; "isSignal": true; }; "methodForSelecting": { "alias": "methodForSelecting"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "screenReaderMessage": { "alias": "screenReaderMessage"; "required": false; "isSignal": true; }; "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; "onViewportChange": "onViewportChange"; "onItemClick": "onItemClick"; "onSelect": "onSelect"; "onCollapse": "onCollapse"; "onScrollReachStart": "onScrollReachStart"; "onScrollReachEnd": "onScrollReachEnd"; }, never, never, false, never>;
2498
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "waitForPreparation": { "alias": "waitForPreparation"; "required": false; "isSignal": true; }; "clickDistance": { "alias": "clickDistance"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "defaultItemValue": { "alias": "defaultItemValue"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "collapsedIds": { "alias": "collapsedIds"; "required": false; "isSignal": true; }; "selectByClick": { "alias": "selectByClick"; "required": false; "isSignal": true; }; "collapseByClick": { "alias": "collapseByClick"; "required": false; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; "stickyEnabled": { "alias": "stickyEnabled"; "required": false; "isSignal": true; }; "snapToEndTransitionInstantOffset": { "alias": "snapToEndTransitionInstantOffset"; "required": false; "isSignal": true; }; "scrollStartOffset": { "alias": "scrollStartOffset"; "required": false; "isSignal": true; }; "scrollEndOffset": { "alias": "scrollEndOffset"; "required": false; "isSignal": true; }; "snapScrollToStart": { "alias": "snapScrollToStart"; "required": false; "isSignal": true; }; "snapScrollToEnd": { "alias": "snapScrollToEnd"; "required": false; "isSignal": true; }; "snapScrollToBottom": { "alias": "snapScrollToBottom"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "overlappingScrollbar": { "alias": "overlappingScrollbar"; "required": false; "isSignal": true; }; "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; "itemTransform": { "alias": "itemTransform"; "required": false; "isSignal": true; }; "snapToItem": { "alias": "snapToItem"; "required": false; "isSignal": true; }; "snapToItemAlign": { "alias": "snapToItemAlign"; "required": false; "isSignal": true; }; "snappingDistance": { "alias": "snappingDistance"; "required": false; "isSignal": true; }; "scrollingOneByOne": { "alias": "scrollingOneByOne"; "required": false; "isSignal": true; }; "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "zIndexWhenSelecting": { "alias": "zIndexWhenSelecting"; "required": false; "isSignal": true; }; "spreadingMode": { "alias": "spreadingMode"; "required": false; "isSignal": true; }; "divides": { "alias": "divides"; "required": false; "isSignal": true; }; "motionBlur": { "alias": "motionBlur"; "required": false; "isSignal": true; }; "maxMotionBlur": { "alias": "maxMotionBlur"; "required": false; "isSignal": true; }; "motionBlurEnabled": { "alias": "motionBlurEnabled"; "required": false; "isSignal": true; }; "animationParams": { "alias": "animationParams"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "enabledBufferOptimization": { "alias": "enabledBufferOptimization"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": true; "isSignal": true; }; "itemConfigMap": { "alias": "itemConfigMap"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "minItemSize": { "alias": "minItemSize"; "required": false; "isSignal": true; }; "maxItemSize": { "alias": "maxItemSize"; "required": false; "isSignal": true; }; "dynamicSize": { "alias": "dynamicSize"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "collectionMode": { "alias": "collectionMode"; "required": false; "isSignal": true; }; "bufferSize": { "alias": "bufferSize"; "required": false; "isSignal": true; }; "maxBufferSize": { "alias": "maxBufferSize"; "required": false; "isSignal": true; }; "snappingMethod": { "alias": "snappingMethod"; "required": false; "isSignal": true; }; "collapsingMode": { "alias": "collapsingMode"; "required": false; "isSignal": true; }; "methodForSelecting": { "alias": "methodForSelecting"; "required": false; "isSignal": true; }; "selectingMode": { "alias": "selectingMode"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "screenReaderMessage": { "alias": "screenReaderMessage"; "required": false; "isSignal": true; }; "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; "onViewportChange": "onViewportChange"; "onSnapItem": "onSnapItem"; "onItemClick": "onItemClick"; "onSelect": "onSelect"; "onCollapse": "onCollapse"; "onScrollReachStart": "onScrollReachStart"; "onScrollReachEnd": "onScrollReachEnd"; }, never, never, false, never>;
1891
2499
  }
1892
2500
 
1893
2501
  /**
1894
- * ItemClickDirective
2502
+ * VirtualClickDirective
1895
2503
  * Maximum performance for extremely large lists.
1896
2504
  * It is based on algorithms for virtualization of screen objects.
1897
2505
  * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/directives/item-click/item-click.directive.ts
1898
2506
  * @author Evgenii Alexandrovich Grebennikov
1899
2507
  * @email djonnyx@gmail.com
1900
2508
  */
1901
- declare class ItemClickDirective {
2509
+ declare class VirtualClickDirective {
1902
2510
  private _maxDistance;
1903
2511
  set maxDistance(v: number | string);
1904
- onClick: _angular_core.OutputEmitterRef<PointerEvent | TouchEvent>;
2512
+ onVirtualClick: _angular_core.OutputEmitterRef<PointerEvent | TouchEvent>;
1905
2513
  private _elementRef;
1906
2514
  private _destroyRef;
1907
2515
  constructor();
1908
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ItemClickDirective, never>;
1909
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ItemClickDirective, "[itemClick]", never, { "maxDistance": { "alias": "maxClickDistance"; "required": false; }; }, { "onClick": "onClick"; }, never, never, false, never>;
2516
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VirtualClickDirective, never>;
2517
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<VirtualClickDirective, "[virtualClick]", never, { "maxDistance": { "alias": "maxClickDistance"; "required": false; }; }, { "onVirtualClick": "onVirtualClick"; }, never, never, false, never>;
1910
2518
  }
1911
2519
 
1912
- declare class ItemClickModule {
1913
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ItemClickModule, never>;
1914
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<ItemClickModule, [typeof ItemClickDirective], [typeof i2.CommonModule], [typeof ItemClickDirective]>;
1915
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<ItemClickModule>;
2520
+ declare class VirtualClickModule {
2521
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<VirtualClickModule, never>;
2522
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<VirtualClickModule, [typeof VirtualClickDirective], [typeof i2.CommonModule], [typeof VirtualClickDirective]>;
2523
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<VirtualClickModule>;
1916
2524
  }
1917
2525
 
1918
2526
  declare class NgVirtualListItemModule {
1919
2527
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgVirtualListItemModule, never>;
1920
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NgVirtualListItemModule, [typeof NgVirtualListItemComponent], [typeof i2.CommonModule, typeof ItemClickModule], [typeof NgVirtualListItemComponent]>;
2528
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NgVirtualListItemModule, [typeof NgVirtualListItemComponent], [typeof i2.CommonModule, typeof VirtualClickModule], [typeof NgVirtualListItemComponent]>;
1921
2529
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<NgVirtualListItemModule>;
1922
2530
  }
1923
2531
 
2532
+ /**
2533
+ * Easing
2534
+ * @link https://github.com/DjonnyX/data-channel-router/blob/main/library/src/utils/animator/types/easing.ts
2535
+ * @author Evgenii Alexandrovich Grebennikov
2536
+ * @email djonnyx@gmail.com
2537
+ */
1924
2538
  type Easing = (v: number) => number;
1925
2539
 
2540
+ /**
2541
+ * IAnimatorUpdateData
2542
+ * @link https://github.com/DjonnyX/data-channel-router/blob/main/library/src/utils/animator/interfaces/animator-update-data.ts
2543
+ * @author Evgenii Alexandrovich Grebennikov
2544
+ * @email djonnyx@gmail.com
2545
+ */
2546
+ interface IAnimatorUpdateData {
2547
+ id: number;
2548
+ timestamp: number;
2549
+ elapsed: number;
2550
+ delta: number;
2551
+ value: number;
2552
+ }
2553
+
2554
+ /**
2555
+ * IAnimatorParams
2556
+ * @link https://github.com/DjonnyX/data-channel-router/blob/main/library/src/utils/animator/interfaces/animator-params.ts
2557
+ * @author Evgenii Alexandrovich Grebennikov
2558
+ * @email djonnyx@gmail.com
2559
+ */
1926
2560
  interface IAnimatorParams {
1927
2561
  startValue: number;
1928
2562
  endValue: number;
1929
2563
  duration?: number;
2564
+ withDelta?: boolean;
1930
2565
  getPropValue?: () => number;
1931
2566
  easingFunction?: Easing;
1932
2567
  onUpdate?: (data: IAnimatorUpdateData) => void;
1933
2568
  onComplete?: (data: IAnimatorUpdateData) => void;
1934
2569
  }
1935
- interface IAnimatorUpdateData {
1936
- timestamp: number;
1937
- delta: number;
1938
- value: number;
1939
- }
2570
+
2571
+ /**
2572
+ * Animator
2573
+ * @link https://github.com/DjonnyX/data-channel-router/blob/main/library/src/utils/animator/animator.ts
2574
+ * @author Evgenii Alexandrovich Grebennikov
2575
+ * @email djonnyx@gmail.com
2576
+ */
1940
2577
  declare class Animator {
2578
+ private static _nextId;
1941
2579
  private _animationId;
2580
+ private _currentId;
2581
+ private generateId;
1942
2582
  animate(params: IAnimatorParams): void;
1943
2583
  stop(): void;
1944
2584
  dispose(): void;
@@ -1955,6 +2595,9 @@ interface IScrollToParams {
1955
2595
  y?: number;
1956
2596
  left?: number;
1957
2597
  top?: number;
2598
+ snap?: boolean;
2599
+ normalize?: boolean;
2600
+ force?: boolean;
1958
2601
  blending?: boolean;
1959
2602
  behavior?: ScrollBehavior;
1960
2603
  ease?: Easing;
@@ -1996,8 +2639,13 @@ declare class BaseScrollView {
1996
2639
  readonly direction: _angular_core.InputSignal<ScrollerDirections$1>;
1997
2640
  readonly startOffset: _angular_core.InputSignal<number>;
1998
2641
  readonly endOffset: _angular_core.InputSignal<number>;
2642
+ readonly alignmentStartOffset: _angular_core.InputSignal<number>;
2643
+ readonly alignmentEndOffset: _angular_core.InputSignal<number>;
2644
+ readonly isInfinity: _angular_core.InputSignal<boolean>;
1999
2645
  readonly isVertical: Signal<boolean>;
2000
2646
  readonly grabbing: _angular_core.WritableSignal<boolean>;
2647
+ protected _inversion: boolean;
2648
+ protected _overscrollEnabled: boolean;
2001
2649
  protected _$updateScrollBar: Subject<void>;
2002
2650
  protected $updateScrollBar: rxjs.Observable<void>;
2003
2651
  get scrollable(): boolean;
@@ -2013,6 +2661,10 @@ declare class BaseScrollView {
2013
2661
  protected _actualTotalSize: number;
2014
2662
  protected _totalSize: number;
2015
2663
  set totalSize(v: number);
2664
+ get totalSize(): number;
2665
+ protected _startLayoutOffset: number;
2666
+ set startLayoutOffset(v: number);
2667
+ get startLayoutOffset(): number;
2016
2668
  get actualScrollHeight(): number;
2017
2669
  get actualScrollWidth(): number;
2018
2670
  protected _actualX: number;
@@ -2025,13 +2677,32 @@ declare class BaseScrollView {
2025
2677
  get scrollHeight(): number;
2026
2678
  readonly viewportBounds: _angular_core.WritableSignal<ISize>;
2027
2679
  readonly contentBounds: _angular_core.WritableSignal<ISize>;
2028
- protected _inversion: boolean;
2680
+ protected _isCoordinatesOverrided: boolean;
2029
2681
  constructor();
2030
2682
  tick(): void;
2683
+ protected overrideCoordinates(x: number, y: number): void;
2684
+ protected normalizeScrollSize(): boolean;
2031
2685
  protected onResizeViewport(): void;
2032
- protected onResizeContent(): void;
2686
+ protected onResizeContent(value?: number | null): void;
2033
2687
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseScrollView, never>;
2034
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseScrollView, "base-scroll-view", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2688
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseScrollView, "base-scroll-view", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "alignmentStartOffset": { "alias": "alignmentStartOffset"; "required": false; "isSignal": true; }; "alignmentEndOffset": { "alias": "alignmentEndOffset"; "required": false; "isSignal": true; }; "isInfinity": { "alias": "isInfinity"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2689
+ }
2690
+
2691
+ /**
2692
+ * ScrollingDirection
2693
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/utils/scrolling-direction.ts
2694
+ * @author Evgenii Alexandrovich Grebennikov
2695
+ * @email djonnyx@gmail.com
2696
+ */
2697
+ declare class ScrollingDirection {
2698
+ private _length;
2699
+ private _value;
2700
+ private _$direction;
2701
+ readonly $direction: rxjs.Observable<ScrollDirection>;
2702
+ constructor(_length?: number);
2703
+ add(v: ScrollDirection): void;
2704
+ get(): ScrollDirection;
2705
+ clear(): void;
2035
2706
  }
2036
2707
 
2037
2708
  /**
@@ -2044,44 +2715,84 @@ declare class BaseScrollView {
2044
2715
  */
2045
2716
  declare class NgScrollView extends BaseScrollView {
2046
2717
  readonly cdkScrollable: CdkScrollable | undefined;
2718
+ protected _service: NgVirtualListService;
2047
2719
  readonly scrollBehavior: _angular_core.InputSignal<ScrollBehavior>;
2048
2720
  readonly overscrollEnabled: _angular_core.InputSignal<boolean>;
2049
2721
  readonly scrollingSettings: _angular_core.InputSignal<IScrollingSettings>;
2722
+ readonly snapToItem: _angular_core.InputSignal<boolean>;
2723
+ readonly scrollingOneByOne: _angular_core.InputSignal<boolean>;
2724
+ readonly snapToItemAlign: _angular_core.InputSignal<SnapToItemAlign>;
2725
+ readonly snappingDistance: _angular_core.InputSignal<SnappingDistance>;
2726
+ readonly animationParams: _angular_core.InputSignal<IAnimationParams>;
2050
2727
  protected _normalizeValueFromZero: boolean;
2728
+ protected _isScrollsTo: boolean;
2729
+ protected _scrollDirection: ScrollingDirection;
2730
+ get scrollDirection(): ng_virtual_list.ScrollDirection;
2731
+ get $scrollDirection(): rxjs.Observable<ng_virtual_list.ScrollDirection>;
2732
+ protected _$wheel: Subject<number>;
2733
+ readonly $wheel: rxjs.Observable<number>;
2051
2734
  protected _$scroll: Subject<boolean>;
2052
2735
  readonly $scroll: rxjs.Observable<boolean>;
2053
2736
  protected _$scrollEnd: Subject<boolean>;
2054
2737
  readonly $scrollEnd: rxjs.Observable<boolean>;
2738
+ protected _velocities: Array<number>;
2739
+ protected _$velocity: BehaviorSubject<number>;
2740
+ protected $velocity: rxjs.Observable<number>;
2741
+ get velocity(): number;
2742
+ protected _$averageVelocity: BehaviorSubject<number>;
2743
+ protected $averageVelocity: rxjs.Observable<number>;
2744
+ get averageVelocity(): number;
2745
+ private _measureVelocityTimestamp;
2746
+ private _measureVelocityLastPosition;
2055
2747
  private _startPosition;
2056
2748
  protected _animator: Animator;
2057
2749
  protected _interactive: boolean;
2058
2750
  private _overscrollIteration;
2751
+ set x(v: number);
2752
+ get x(): number;
2753
+ protected setX(x: number, snap?: boolean, normalize?: boolean): void;
2754
+ set y(v: number);
2755
+ get y(): number;
2756
+ protected setY(y: number, snap?: boolean, normalize?: boolean): void;
2757
+ protected _delta: number;
2059
2758
  set delta(v: number);
2759
+ set startLayoutOffset(v: number);
2760
+ get startLayoutOffset(): number;
2761
+ protected _intersectionComponentId: Id | null;
2762
+ protected _isAlignmentAnimation: boolean;
2060
2763
  constructor();
2764
+ protected updateDirection(position: number, prePosition: number): void;
2765
+ protected overrideCoordinates(x: number, y: number): void;
2766
+ protected measureVelocity(): void;
2767
+ protected stopMoving(): void;
2768
+ private snapIfNecessary;
2769
+ protected snapWithInitialForceIfNecessary(v0?: number | null, animated?: boolean, force?: boolean): boolean;
2061
2770
  private calculatePosition;
2062
2771
  private cancelOverscroll;
2063
2772
  private checkOverscrollByAxis;
2064
2773
  private checkOverscroll;
2065
2774
  private calculateVelocity;
2066
2775
  private calculateAcceleration;
2067
- stopScrolling(): void;
2776
+ stopScrolling(force?: boolean): void;
2068
2777
  protected move(isVertical: boolean, position: number, blending?: boolean, userAction?: boolean, fireUpdate?: boolean): void;
2069
2778
  protected moveWithAcceleration(isVertical: boolean, position: number, v0: number, v: number, a0: number, timestamp: number): void;
2070
2779
  protected normalizeValue(value: number): number;
2071
- protected animate(startValue: number, endValue: number, duration?: number, easingFunction?: Easing, userAction?: boolean): void;
2780
+ protected animate(startValue: number, endValue: number, duration?: number, easingFunction?: Easing, userAction?: boolean, alignmentAtComplete?: boolean, skipOverridedCoordinates?: boolean): void;
2781
+ protected getSnappedComponentSize(): number | null;
2782
+ protected alignPosition(animated?: boolean, force?: boolean): boolean;
2783
+ protected checkIntersectionComponent(): void;
2072
2784
  protected onAnimationComplete(position: number): void;
2073
2785
  fireScroll(userAction?: boolean): void;
2074
- scrollLimits(value?: number | undefined): boolean;
2786
+ scrollLimits(value?: number | undefined, silent?: boolean): boolean;
2075
2787
  scroll(params: IScrollToParams): void;
2076
2788
  protected emitScrollableEvent(): void;
2077
- refreshX(value: number): void;
2078
- refreshY(value: number): void;
2789
+ refreshCoordinate(x: number, y: number): void;
2079
2790
  protected fireScrollEvent(userAction: boolean): void;
2080
2791
  protected onDragStart(): void;
2081
2792
  reset(offset?: number): void;
2082
2793
  ngOnDestroy(): void;
2083
2794
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgScrollView, never>;
2084
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgScrollView, "ng-scroll-view", never, { "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2795
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgScrollView, "ng-scroll-view", never, { "scrollBehavior": { "alias": "scrollBehavior"; "required": false; "isSignal": true; }; "overscrollEnabled": { "alias": "overscrollEnabled"; "required": false; "isSignal": true; }; "scrollingSettings": { "alias": "scrollingSettings"; "required": false; "isSignal": true; }; "snapToItem": { "alias": "snapToItem"; "required": false; "isSignal": true; }; "scrollingOneByOne": { "alias": "scrollingOneByOne"; "required": false; "isSignal": true; }; "snapToItemAlign": { "alias": "snapToItemAlign"; "required": false; "isSignal": true; }; "snappingDistance": { "alias": "snappingDistance"; "required": false; "isSignal": true; }; "animationParams": { "alias": "animationParams"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2085
2796
  }
2086
2797
 
2087
2798
  /**
@@ -2153,7 +2864,7 @@ declare class NgScrollBarService {
2153
2864
  */
2154
2865
  declare class NgScrollBarComponent extends NgScrollView {
2155
2866
  protected _defaultRenderer: Signal<TemplateRef<any> | undefined>;
2156
- protected _service: NgScrollBarService;
2867
+ protected _scrollBarService: NgScrollBarService;
2157
2868
  private _apiService;
2158
2869
  readonly loading: _angular_core.InputSignal<boolean>;
2159
2870
  readonly onDrag: _angular_core.OutputEmitterRef<IScrollBarDragEvent>;
@@ -2163,7 +2874,9 @@ declare class NgScrollBarComponent extends NgScrollView {
2163
2874
  readonly thickness: _angular_core.InputSignal<number>;
2164
2875
  readonly scrollbarMinSize: _angular_core.InputSignal<number>;
2165
2876
  readonly prepared: _angular_core.InputSignal<boolean>;
2877
+ readonly langTextDir: _angular_core.InputSignal<TextDirection>;
2166
2878
  readonly interactive: _angular_core.InputSignal<boolean>;
2879
+ readonly overlapping: _angular_core.InputSignal<boolean>;
2167
2880
  readonly show: _angular_core.InputSignal<boolean>;
2168
2881
  readonly params: _angular_core.InputSignal<{
2169
2882
  [propName: string]: any;
@@ -2186,7 +2899,7 @@ declare class NgScrollBarComponent extends NgScrollView {
2186
2899
  private thumbHit;
2187
2900
  click(event: PointerEvent | MouseEvent): void;
2188
2901
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgScrollBarComponent, never>;
2189
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgScrollBarComponent, "ng-scroll-bar", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "thumbGradientPositions": { "alias": "thumbGradientPositions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "prepared": { "alias": "prepared"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; "params": { "alias": "params"; "required": false; "isSignal": true; }; "renderer": { "alias": "renderer"; "required": false; "isSignal": true; }; }, { "onDrag": "onDrag"; "onDragEnd": "onDragEnd"; }, never, never, false, never>;
2902
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgScrollBarComponent, "ng-scroll-bar", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "thumbGradientPositions": { "alias": "thumbGradientPositions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "prepared": { "alias": "prepared"; "required": false; "isSignal": true; }; "langTextDir": { "alias": "langTextDir"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "overlapping": { "alias": "overlapping"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; "params": { "alias": "params"; "required": false; "isSignal": true; }; "renderer": { "alias": "renderer"; "required": false; "isSignal": true; }; }, { "onDrag": "onDrag"; "onDragEnd": "onDragEnd"; }, never, never, false, never>;
2190
2903
  }
2191
2904
 
2192
2905
  /**
@@ -2197,12 +2910,14 @@ declare class NgScrollBarComponent extends NgScrollView {
2197
2910
  * @author Evgenii Alexandrovich Grebennikov
2198
2911
  * @email djonnyx@gmail.com
2199
2912
  */
2200
- declare class NgScrollerComponent extends NgScrollView implements OnDestroy {
2913
+ declare class NgScrollerComponent extends NgScrollView {
2201
2914
  readonly scrollBar: NgScrollBarComponent | undefined;
2915
+ readonly filter: Signal<ElementRef<SVGFEGaussianBlurElement> | undefined>;
2202
2916
  readonly onScrollbarVisible: _angular_core.OutputEmitterRef<boolean>;
2203
2917
  readonly scrollbarEnabled: _angular_core.InputSignal<boolean>;
2204
2918
  readonly scrollbarInteractive: _angular_core.InputSignal<boolean>;
2205
2919
  readonly focusedElement: _angular_core.InputSignal<Id | null>;
2920
+ readonly overlappingScrollbar: _angular_core.InputSignal<boolean>;
2206
2921
  readonly content: _angular_core.InputSignal<HTMLElement | undefined>;
2207
2922
  readonly loading: _angular_core.InputSignal<boolean>;
2208
2923
  readonly classes: _angular_core.InputSignal<{
@@ -2214,6 +2929,9 @@ declare class NgScrollerComponent extends NgScrollView implements OnDestroy {
2214
2929
  readonly scrollbarThumbParams: _angular_core.InputSignal<{
2215
2930
  [propName: string]: any;
2216
2931
  } | null>;
2932
+ readonly motionBlur: _angular_core.InputSignal<number | "disabled">;
2933
+ readonly maxMotionBlur: _angular_core.InputSignal<number>;
2934
+ readonly motionBlurEnabled: _angular_core.InputSignal<boolean>;
2217
2935
  readonly actualClasses: Signal<{
2218
2936
  [cName: string]: boolean;
2219
2937
  }>;
@@ -2224,42 +2942,33 @@ declare class NgScrollerComponent extends NgScrollView implements OnDestroy {
2224
2942
  readonly thumbSize: _angular_core.WritableSignal<number>;
2225
2943
  readonly scrollbarShow: _angular_core.WritableSignal<boolean>;
2226
2944
  readonly preparedSignal: _angular_core.WritableSignal<boolean>;
2227
- private _service;
2228
2945
  readonly langTextDir: _angular_core.WritableSignal<TextDirection>;
2946
+ readonly listStyles: _angular_core.WritableSignal<{
2947
+ perspectiveOrigin: string;
2948
+ }>;
2229
2949
  private _scrollBox;
2230
2950
  get host(): HTMLDivElement | undefined;
2231
2951
  private _$scrollbarScroll;
2232
2952
  readonly $scrollbarScroll: rxjs.Observable<boolean>;
2233
2953
  private _prepared;
2234
2954
  set prepared(v: boolean);
2235
- set x(v: number);
2236
- get x(): number;
2237
- set y(v: number);
2238
- get y(): number;
2955
+ protected setX(x: number, snap?: boolean, normalize?: boolean): void;
2956
+ protected setY(y: number, snap?: boolean, normalize?: boolean): void;
2957
+ set startLayoutOffset(v: number);
2958
+ get startLayoutOffset(): number;
2239
2959
  readonly viewInitialized: _angular_core.WritableSignal<boolean>;
2240
2960
  private _isScrollbarUserAction;
2241
2961
  get isScrollbarUserAction(): boolean;
2242
- private _measureVelocityTimestamp;
2243
- private _measureVelocityLastPosition;
2244
- private _measureVelocityAnimationFrameId;
2245
- private _measureVelocityAnimationTimer;
2246
- private _velocities;
2247
- protected _velocity: number;
2248
- get velocity(): number;
2249
- protected _averageVelocity: number;
2250
- get averageVelocity(): number;
2251
- private _measureVelocityHandler;
2252
2962
  protected _$resizeViewport: Subject<ISize>;
2253
2963
  readonly $resizeViewport: rxjs.Observable<ISize>;
2254
2964
  protected _$resizeContent: Subject<ISize>;
2255
2965
  readonly $resizeContent: rxjs.Observable<ISize>;
2966
+ protected _filterId: string;
2967
+ protected _filter: string;
2256
2968
  constructor();
2969
+ private recalculatePerspective;
2257
2970
  protected onResizeViewport(): void;
2258
- protected onResizeContent(): void;
2259
- private measureVelocity;
2260
- private measureVelocityExecutor;
2261
- stopMeasureVelocity(): void;
2262
- private runMeasureVelocity;
2971
+ protected onResizeContent(value?: number | null): void;
2263
2972
  private updateScrollBarHandler;
2264
2973
  ngAfterViewInit(): void;
2265
2974
  tick(): void;
@@ -2268,15 +2977,19 @@ declare class NgScrollerComponent extends NgScrollView implements OnDestroy {
2268
2977
  protected onDragStart(): void;
2269
2978
  reset(): void;
2270
2979
  refresh(fireUpdate?: boolean, updateScrollbar?: boolean): void;
2980
+ snapIfNeed(animated?: boolean): void;
2981
+ startScrollTo(): void;
2982
+ finishedScrollTo(): void;
2271
2983
  scrollTo(params: IScrollToParams): void;
2272
2984
  stopScrollbar(): void;
2985
+ private dropVelocity;
2986
+ protected stopMoving(): void;
2273
2987
  protected onAnimationComplete(position: number): void;
2274
2988
  onScrollBarDragHandler(event: IScrollBarDragEvent): void;
2275
2989
  onScrollBarDragEndHandler(event: IScrollBarDragEvent): void;
2276
2990
  private fireUpdateIfEdgesDetected;
2277
- ngOnDestroy(): void;
2278
2991
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgScrollerComponent, never>;
2279
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgScrollerComponent, "ng-scroller", never, { "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "focusedElement": { "alias": "focusedElement"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; }, { "onScrollbarVisible": "onScrollbarVisible"; }, never, ["*"], false, never>;
2992
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgScrollerComponent, "ng-scroller", never, { "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "scrollbarInteractive": { "alias": "scrollbarInteractive"; "required": false; "isSignal": true; }; "focusedElement": { "alias": "focusedElement"; "required": false; "isSignal": true; }; "overlappingScrollbar": { "alias": "overlappingScrollbar"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "scrollbarMinSize": { "alias": "scrollbarMinSize"; "required": false; "isSignal": true; }; "scrollbarThickness": { "alias": "scrollbarThickness"; "required": false; "isSignal": true; }; "scrollbarThumbRenderer": { "alias": "scrollbarThumbRenderer"; "required": false; "isSignal": true; }; "scrollbarThumbParams": { "alias": "scrollbarThumbParams"; "required": false; "isSignal": true; }; "motionBlur": { "alias": "motionBlur"; "required": false; "isSignal": true; }; "maxMotionBlur": { "alias": "maxMotionBlur"; "required": false; "isSignal": true; }; "motionBlurEnabled": { "alias": "motionBlurEnabled"; "required": false; "isSignal": true; }; }, { "onScrollbarVisible": "onScrollbarVisible"; }, never, ["*"], false, never>;
2280
2993
  }
2281
2994
 
2282
2995
  declare class NgScrollBarModule {
@@ -2322,10 +3035,10 @@ declare class NgScrollerModule {
2322
3035
  }
2323
3036
 
2324
3037
  /**
2325
- * Prerender container.
3038
+ * NgPrerenderContainer
2326
3039
  * Maximum performance for extremely large lists.
2327
3040
  * It is based on algorithms for virtualization of screen objects.
2328
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/ng-prerender-container/ng-prerender-container.component.ts
3041
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/ng-prerender-container/ng-prerender-container.component.ts
2329
3042
  * @author Evgenii Alexandrovich Grebennikov
2330
3043
  * @email djonnyx@gmail.com
2331
3044
  */
@@ -2341,6 +3054,7 @@ declare class NgPrerenderContainer {
2341
3054
  dynamic: _angular_core.InputSignal<boolean>;
2342
3055
  itemSize: _angular_core.InputSignal<number>;
2343
3056
  trackBy: _angular_core.InputSignal<string>;
3057
+ divides: _angular_core.InputSignal<number>;
2344
3058
  itemRenderer: _angular_core.InputSignal<TemplateRef<any> | undefined>;
2345
3059
  readonly $render: Observable<PrerenderCache>;
2346
3060
  get active(): boolean;
@@ -2349,14 +3063,14 @@ declare class NgPrerenderContainer {
2349
3063
  on(items?: IVirtualListCollection | null): void;
2350
3064
  off(): void;
2351
3065
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgPrerenderContainer, never>;
2352
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgPrerenderContainer, "ng-prerender-container", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "isVertical": { "alias": "isVertical"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "bounds": { "alias": "bounds"; "required": true; "isSignal": true; }; "dynamic": { "alias": "dynamic"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
3066
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgPrerenderContainer, "ng-prerender-container", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "isVertical": { "alias": "isVertical"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "bounds": { "alias": "bounds"; "required": true; "isSignal": true; }; "dynamic": { "alias": "dynamic"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "divides": { "alias": "divides"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
2353
3067
  }
2354
3068
 
2355
3069
  /**
2356
- * PrerenderList.
3070
+ * NgPrerenderList
2357
3071
  * Maximum performance for extremely large lists.
2358
3072
  * It is based on algorithms for virtualization of screen objects.
2359
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/prerender-container/components/prerender-list/prerender-list.component.ts
3073
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/ng-prerender-container/components/ng-prerender-list/ng-prerender-list.component.ts
2360
3074
  * @author Evgenii Alexandrovich Grebennikov
2361
3075
  * @email djonnyx@gmail.com
2362
3076
  */
@@ -2372,6 +3086,7 @@ declare class NgPrerenderList implements OnDestroy {
2372
3086
  dynamic: _angular_core.InputSignal<boolean>;
2373
3087
  itemSize: _angular_core.InputSignal<number>;
2374
3088
  trackBy: _angular_core.InputSignal<string>;
3089
+ divides: _angular_core.InputSignal<number>;
2375
3090
  itemRenderer: _angular_core.InputSignal<TemplateRef<any> | undefined>;
2376
3091
  itemComponentClass: _angular_core.InputSignal<Component$1<BaseVirtualListItemComponent>>;
2377
3092
  protected _items: _angular_core.WritableSignal<IVirtualListCollection<Object> | null>;
@@ -2402,14 +3117,14 @@ declare class NgPrerenderList implements OnDestroy {
2402
3117
  ngOnDestroy(): void;
2403
3118
  dispose(): void;
2404
3119
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgPrerenderList, never>;
2405
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgPrerenderList, "ng-prerender-list", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "isVertical": { "alias": "isVertical"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "bounds": { "alias": "bounds"; "required": true; "isSignal": true; }; "dynamic": { "alias": "dynamic"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; "isSignal": true; }; "itemComponentClass": { "alias": "itemComponentClass"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
3120
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgPrerenderList, "ng-prerender-list", never, { "enabled": { "alias": "enabled"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "isVertical": { "alias": "isVertical"; "required": false; "isSignal": true; }; "scrollbarEnabled": { "alias": "scrollbarEnabled"; "required": false; "isSignal": true; }; "startOffset": { "alias": "startOffset"; "required": false; "isSignal": true; }; "endOffset": { "alias": "endOffset"; "required": false; "isSignal": true; }; "bounds": { "alias": "bounds"; "required": true; "isSignal": true; }; "dynamic": { "alias": "dynamic"; "required": false; "isSignal": true; }; "itemSize": { "alias": "itemSize"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "divides": { "alias": "divides"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; "isSignal": true; }; "itemComponentClass": { "alias": "itemComponentClass"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
2406
3121
  }
2407
3122
 
2408
3123
  /**
2409
- * Virtual list component.
3124
+ * NgPrerenderVirtualListItemComponent
2410
3125
  * Maximum performance for extremely large lists.
2411
3126
  * It is based on algorithms for virtualization of screen objects.
2412
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/ng-prerender-container/components/ng-prerender-list-item.component.ts
3127
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.component.ts
2413
3128
  * @author Evgenii Alexandrovich Grebennikov
2414
3129
  * @email djonnyx@gmail.com
2415
3130
  */
@@ -2423,15 +3138,15 @@ declare class NgPrerenderVirtualListItemComponent extends NgVirtualListItemCompo
2423
3138
 
2424
3139
  declare class NgPrerenderVirtualListItemModule {
2425
3140
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgPrerenderVirtualListItemModule, never>;
2426
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NgPrerenderVirtualListItemModule, [typeof NgPrerenderVirtualListItemComponent], [typeof i2.CommonModule, typeof ItemClickModule], [typeof NgPrerenderVirtualListItemComponent]>;
3141
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<NgPrerenderVirtualListItemModule, [typeof NgPrerenderVirtualListItemComponent], [typeof i2.CommonModule, typeof VirtualClickModule], [typeof NgPrerenderVirtualListItemComponent]>;
2427
3142
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<NgPrerenderVirtualListItemModule>;
2428
3143
  }
2429
3144
 
2430
3145
  /**
2431
- * PrerenderScrollerComponent.
3146
+ * NgPrerenderScrollerComponent
2432
3147
  * Maximum performance for extremely large lists.
2433
3148
  * It is based on algorithms for virtualization of screen objects.
2434
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/prerender-container/prerender-scroller/prerender-scroller.component.ts
3149
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/21.x/projects/ng-virtual-list/src/lib/components/ng-prerender-container/components/ng-prerender-scroller/ng-prerender-scroller.component.ts
2435
3150
  * @author Evgenii Alexandrovich Grebennikov
2436
3151
  * @email djonnyx@gmail.com
2437
3152
  */
@@ -2488,6 +3203,173 @@ declare class NgVirtualListModule {
2488
3203
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<NgVirtualListModule>;
2489
3204
  }
2490
3205
 
3206
+ interface ISwipe3DOptions {
3207
+ /**
3208
+ * Depth Of Field. Default value is `null`.
3209
+ */
3210
+ dof?: number;
3211
+ /**
3212
+ * Fog color. Default value is `null`.
3213
+ */
3214
+ fogColor?: Color;
3215
+ /**
3216
+ * Fog weight. Default value is `null`.
3217
+ */
3218
+ fogWeight?: number;
3219
+ /**
3220
+ * Spacing between items. Default value is `0.5`.
3221
+ */
3222
+ spacingBetweenItems?: number;
3223
+ /**
3224
+ * Angle of inclination. Default value is `1`.
3225
+ */
3226
+ angle?: number;
3227
+ /**
3228
+ * Depth. Default value is `1.5`.
3229
+ */
3230
+ depth?: number;
3231
+ /**
3232
+ * Depth exponent. Default value is `4`.
3233
+ */
3234
+ depthPow?: number;
3235
+ }
3236
+
3237
+ interface IDeckOfCards3DOptions {
3238
+ /**
3239
+ * Depth Of Field. Default value is `null`.
3240
+ */
3241
+ dof?: number;
3242
+ /**
3243
+ * Fog color. Default value is `null`.
3244
+ */
3245
+ fogColor?: Color;
3246
+ /**
3247
+ * Fog weight. Default value is `null`.
3248
+ */
3249
+ fogWeight?: number;
3250
+ /**
3251
+ * Spacing between items. Default value is `0.5`.
3252
+ */
3253
+ spacingBetweenItems?: number;
3254
+ /**
3255
+ * Angle of inclination. Default value is `1`.
3256
+ */
3257
+ angle?: number;
3258
+ /**
3259
+ * Depth. Default value is `0.15`.
3260
+ */
3261
+ depth?: number;
3262
+ /**
3263
+ * Scale. Default value is `0.15`.
3264
+ */
3265
+ scale?: number;
3266
+ /**
3267
+ * Scale X. Default value is `null`.
3268
+ */
3269
+ scaleX?: number | null;
3270
+ /**
3271
+ * Scale Y. Default value is `null`.
3272
+ */
3273
+ scaleY?: number | null;
3274
+ /**
3275
+ * Depth exponent. Default value is `4`.
3276
+ */
3277
+ depthPow?: number;
3278
+ /**
3279
+ * Sinusoidal distribution. Default value is `false`.
3280
+ */
3281
+ sineWave?: boolean;
3282
+ }
3283
+
3284
+ interface IDeckOfCardsOptions {
3285
+ /**
3286
+ * Depth Of Field. Default value is `null`.
3287
+ */
3288
+ dof?: number;
3289
+ /**
3290
+ * Fog color. Default value is `null`.
3291
+ */
3292
+ fogColor?: Color;
3293
+ /**
3294
+ * Fog weight. Default value is `null`.
3295
+ */
3296
+ fogWeight?: number;
3297
+ /**
3298
+ * Spacing between items. Default value is `0.5`.
3299
+ */
3300
+ spacingBetweenItems?: number;
3301
+ /**
3302
+ * Depth. Default value is `0.15`.
3303
+ */
3304
+ depth?: number;
3305
+ /**
3306
+ * Scale. Default value is `0.15`.
3307
+ */
3308
+ scale?: number;
3309
+ /**
3310
+ * Scale X. Default value is `null`.
3311
+ */
3312
+ scaleX?: number | null;
3313
+ /**
3314
+ * Scale Y. Default value is `null`.
3315
+ */
3316
+ scaleY?: number | null;
3317
+ /**
3318
+ * Depth exponent. Default value is `4`.
3319
+ */
3320
+ depthPow?: number;
3321
+ /**
3322
+ * Sinusoidal distribution. Default value is `false`.
3323
+ */
3324
+ sineWave?: boolean;
3325
+ }
3326
+
3327
+ interface ILintearOptions {
3328
+ /**
3329
+ * Depth Of Field. Default value is `null`.
3330
+ */
3331
+ dof?: number;
3332
+ /**
3333
+ * Fog color. Default value is `null`.
3334
+ */
3335
+ fogColor?: Color;
3336
+ /**
3337
+ * Fog weight. Default value is `null`.
3338
+ */
3339
+ fogWeight?: number;
3340
+ /**
3341
+ * Spacing between items. Default value is `0.5`.
3342
+ */
3343
+ spacingBetweenItems?: number;
3344
+ }
3345
+
3346
+ interface IEventHorizonOptions {
3347
+ /**
3348
+ * Depth Of Field. Default value is `null`.
3349
+ */
3350
+ dof?: number;
3351
+ /**
3352
+ * Fog color. Default value is `null`.
3353
+ */
3354
+ fogColor?: Color;
3355
+ /**
3356
+ * Fog weight. Default value is `null`.
3357
+ */
3358
+ fogWeight?: number;
3359
+ /**
3360
+ * Spacing between items. Default value is `0.5`.
3361
+ */
3362
+ spacingBetweenItems?: number;
3363
+ }
3364
+
3365
+ declare const ItemTransformations: {
3366
+ EVENT_HORIZON: (options?: IEventHorizonOptions) => ng_virtual_list.ItemTransform;
3367
+ LINEAR: (options?: ILintearOptions) => ng_virtual_list.ItemTransform;
3368
+ DECK_OF_CARDS: (options?: IDeckOfCardsOptions) => ng_virtual_list.ItemTransform;
3369
+ DECK_OF_CARDS_3D: (options?: IDeckOfCards3DOptions) => ng_virtual_list.ItemTransform;
3370
+ SWIPE_3D: (options?: ISwipe3DOptions) => ng_virtual_list.ItemTransform;
3371
+ };
3372
+
2491
3373
  interface IDebounce {
2492
3374
  /**
2493
3375
  * Call handling method
@@ -2568,5 +3450,5 @@ declare class ScrollEvent implements IScrollEvent {
2568
3450
  constructor(params: IScrollEventParams);
2569
3451
  }
2570
3452
 
2571
- export { BaseVirtualListItemComponent$1 as BaseVirtualListItemComponent, CollectionModes, Directions, FocusAlignments, MethodsForSelecting, NgScrollBarPublicService, NgVirtualListComponent, NgVirtualListItemComponent, NgVirtualListModule, NgVirtualListPublicService, NgVirtualListService, ScrollEvent, ScrollbarStates, SnappingMethods, TextDirections, debounce, toggleClassName };
2572
- export type { CollectionMode, Direction, FocusAlignment, GradientColorPosition, GradientColorPositions, IAnimationParams, IDebounce, IDisplayObjectConfig, IDisplayObjectMeasures, IRect, IRenderStabilizerOptions, IRenderVirtualListItem, IRenderVirtualListItemConfig, IRenderVirtualListItemMeasures, IScrollEvent, IScrollOptions, IScrollParams, IScrollingSettings, ISize, IVirtualListCollection, IVirtualListItem, IVirtualListItemConfig, IVirtualListItemConfigMap, Id, MethodForSelecting, ScrollDirection, ScrollbarState, SnappingMethod, TextDirection };
3453
+ export { Alignments, CollapsingModes, CollectionModes, Directions, FocusAlignments, ItemTransformations, NgScrollBarPublicService, NgVirtualListComponent, NgVirtualListItemComponent, NgVirtualListModule, NgVirtualListPublicService, NgVirtualListService, ScrollEvent, ScrollbarStates, SelectingModes, SnapToItemAligns, SnappingMethods, SpreadingModes, TextDirections, VirtualClickDirective, VirtualClickModule, debounce, toggleClassName };
3454
+ export type { Alignment, ArithmeticExpression, CollapsingMode, CollectionMode, Color, Direction, FloatOrPersentageValue, FocusAlignment, GradientColorPosition, GradientColorPositions, IAnimationParams, IDebounce, IDisplayObjectConfig, IDisplayObjectMeasures, IItemTransformation, IPoint, IRect, IRenderStabilizerOptions, IRenderVirtualListItem, IRenderVirtualListItemConfig, IRenderVirtualListItemMeasures, IScrollEvent, IScrollOptions, IScrollParams, IScrollingSettings, ISize, IVirtualListCollection, IVirtualListItem, IVirtualListItemConfig, IVirtualListItemConfigMap, Id, ItemTransform, ScrollDirection, ScrollbarState, SelectingMode, SnapToItemAlign, SnappingDistance, SnappingMethod, SpreadingMode, TextDirection };