ng-virtual-list 18.3.2 → 18.4.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,7 +1,8 @@
1
1
  import { SnappingMethods } from "../enums";
2
2
  import { Directions } from "../enums/directions";
3
3
  export declare const DEFAULT_ITEM_SIZE = 24;
4
- export declare const DEFAULT_ITEMS_OFFSET = 2;
4
+ export declare const DEFAULT_BUFFER_SIZE = 2;
5
+ export declare const DEFAULT_MAX_BUFFER_SIZE = 100;
5
6
  export declare const DEFAULT_LIST_SIZE = 400;
6
7
  export declare const DEFAULT_SNAP = false;
7
8
  export declare const DEFAULT_ENABLED_BUFFER_OPTIMIZATION = false;
@@ -75,10 +75,23 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
75
75
  * Determines the direction in which elements are placed. Default value is "vertical".
76
76
  */
77
77
  direction: import("@angular/core").InputSignal<Direction>;
78
+ private _itemOffsetTransform;
78
79
  /**
79
80
  * Number of elements outside the scope of visibility. Default value is 2.
81
+ * @deprecated "itemOffset" parameter is deprecated. Use "bufferSize" and "maxBufferSize".
80
82
  */
81
83
  itemsOffset: import("@angular/core").InputSignal<number>;
84
+ /**
85
+ * Number of elements outside the scope of visibility. Default value is 2.
86
+ */
87
+ bufferSize: import("@angular/core").InputSignal<number>;
88
+ private _maxBufferSizeTransform;
89
+ /**
90
+ * Maximum number of elements outside the scope of visibility. Default value is 100.
91
+ * If maxBufferSize is set to be greater than bufferSize, then adaptive buffer mode is enabled.
92
+ * The greater the scroll size, the more elements are allocated for rendering.
93
+ */
94
+ maxBufferSize: import("@angular/core").InputSignal<number>;
82
95
  /**
83
96
  * Snapping method.
84
97
  * 'default' - Normal group rendering.
@@ -154,5 +167,5 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
154
167
  protected afterViewInit(): void;
155
168
  protected dispose(): void;
156
169
  static ɵfac: i0.ɵɵFactoryDeclaration<NgVirtualListComponent, never>;
157
- static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; "enabledBufferOptimization": { "alias": "enabledBufferOptimization"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": true; "isSignal": true; }; "stickyMap": { "alias": "stickyMap"; "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; }; "itemsOffset": { "alias": "itemsOffset"; "required": false; "isSignal": true; }; "snappingMethod": { "alias": "snappingMethod"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; }, never, never, false, never>;
170
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "snap": { "alias": "snap"; "required": false; "isSignal": true; }; "enabledBufferOptimization": { "alias": "enabledBufferOptimization"; "required": false; "isSignal": true; }; "itemRenderer": { "alias": "itemRenderer"; "required": true; "isSignal": true; }; "stickyMap": { "alias": "stickyMap"; "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; }; "itemsOffset": { "alias": "itemsOffset"; "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; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; }, never, never, false, never>;
158
171
  }
@@ -0,0 +1,5 @@
1
+ export interface IExtraOptions {
2
+ extremumThreshold?: number;
3
+ bufferSize?: number;
4
+ }
5
+ export declare const bufferInterpolation: (currentBufferValue: number, array: Array<number>, value: number, extra?: IExtraOptions) => number;
@@ -46,7 +46,8 @@ export interface IRecalculateMetricsOptions<I extends {
46
46
  collection: C;
47
47
  isVertical: boolean;
48
48
  itemSize: number;
49
- itemsOffset: number;
49
+ bufferSize: number;
50
+ maxBufferSize: number;
50
51
  dynamicSize: boolean;
51
52
  scrollSize: number;
52
53
  snap: boolean;
@@ -117,6 +118,16 @@ export declare class TrackBox<C extends BaseVirtualListItemComponent = any> exte
117
118
  protected _previousTotalSize: number;
118
119
  protected _scrollDelta: number;
119
120
  get scrollDelta(): number;
121
+ isAdaptiveBuffer: boolean;
122
+ protected _bufferSequenceExtraThreshold: number;
123
+ protected _maxBufferSequenceLength: number;
124
+ protected _bufferSizeSequence: Array<number>;
125
+ protected _bufferSize: number;
126
+ get bufferSize(): number;
127
+ protected _defaultBufferSize: number;
128
+ protected _maxBufferSize: number;
129
+ protected _resetBufferSizeTimeout: number;
130
+ protected _resetBufferSizeTimer: number | undefined;
120
131
  protected lifeCircle(): void;
121
132
  /**
122
133
  * Scans the collection for deleted items and flushes the deleted item cache.
@@ -148,6 +159,10 @@ export declare class TrackBox<C extends BaseVirtualListItemComponent = any> exte
148
159
  getNearestItem<I extends {
149
160
  id: Id;
150
161
  }, C extends Array<I>>(scrollSize: number, items: C, itemSize: number, isVertical: boolean): I | undefined;
162
+ protected _previousScrollSize: number;
163
+ protected updateAdaptiveBufferParams(metrics: IMetrics, totalItemsLength: number): void;
164
+ protected startResetBufferSizeTimer(): void;
165
+ protected disposeClearBufferSizeTimer(): void;
151
166
  /**
152
167
  * Calculates the position of an element based on the given scrollSize
153
168
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-virtual-list",
3
- "version": "18.3.2",
3
+ "version": "18.4.0",
4
4
  "author": {
5
5
  "name": "Evgenii Grebennikov",
6
6
  "email": "djonnyx@gmail.com"