ng-virtual-list 16.3.2 → 16.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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;
@@ -101,13 +101,27 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
101
101
  */
102
102
  set direction(v: Direction);
103
103
  get direction(): Direction;
104
- protected _$itemsOffset: BehaviorSubject<number>;
105
- readonly $itemsOffset: Observable<number>;
106
104
  /**
107
- * Number of elements outside the scope of visibility. Default value is 2.
105
+ * @deprecated "itemOffset" parameter is deprecated. Use "bufferSize" and "maxBufferSize".
108
106
  */
109
107
  set itemsOffset(v: number);
110
- get itemsOffset(): number;
108
+ protected _$bufferSize: BehaviorSubject<number>;
109
+ readonly $bufferSize: Observable<number>;
110
+ /**
111
+ * Number of elements outside the scope of visibility. Default value is 2.
112
+ */
113
+ set bufferSize(v: number);
114
+ get bufferSize(): number;
115
+ private _maxBufferSizeTransform;
116
+ protected _$maxBufferSize: BehaviorSubject<number>;
117
+ readonly $maxBufferSize: Observable<number>;
118
+ /**
119
+ * Maximum number of elements outside the scope of visibility. Default value is 100.
120
+ * If maxBufferSize is set to be greater than bufferSize, then adaptive buffer mode is enabled.
121
+ * The greater the scroll size, the more elements are allocated for rendering.
122
+ */
123
+ set maxBufferSize(v: number);
124
+ get maxBufferSize(): number;
111
125
  protected _$trackBy: BehaviorSubject<string>;
112
126
  readonly $trackBy: Observable<string>;
113
127
  /**
@@ -195,5 +209,5 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
195
209
  ngOnDestroy(): void;
196
210
  protected dispose(): void;
197
211
  static ɵfac: i0.ɵɵFactoryDeclaration<NgVirtualListComponent, never>;
198
- static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": false; }; "snap": { "alias": "snap"; "required": false; }; "enabledBufferOptimization": { "alias": "enabledBufferOptimization"; "required": false; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; }; "stickyMap": { "alias": "stickyMap"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "dynamicSize": { "alias": "dynamicSize"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "itemsOffset": { "alias": "itemsOffset"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "snappingMethod": { "alias": "snappingMethod"; "required": false; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; }, never, never, false, never>;
212
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": false; }; "snap": { "alias": "snap"; "required": false; }; "enabledBufferOptimization": { "alias": "enabledBufferOptimization"; "required": false; }; "itemRenderer": { "alias": "itemRenderer"; "required": false; }; "stickyMap": { "alias": "stickyMap"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "dynamicSize": { "alias": "dynamicSize"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "itemsOffset": { "alias": "itemsOffset"; "required": false; }; "bufferSize": { "alias": "bufferSize"; "required": false; }; "maxBufferSize": { "alias": "maxBufferSize"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "snappingMethod": { "alias": "snappingMethod"; "required": false; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; }, never, never, false, never>;
199
213
  }
@@ -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": "16.3.2",
3
+ "version": "16.4.1",
4
4
  "author": {
5
5
  "name": "Evgenii Grebennikov",
6
6
  "email": "djonnyx@gmail.com"