ng-virtual-list 18.7.12 → 18.7.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -8
- package/esm2022/lib/const/index.mjs +3 -2
- package/esm2022/lib/enums/collection-mode.mjs +2 -0
- package/esm2022/lib/enums/collection-modes.mjs +18 -0
- package/esm2022/lib/enums/index.mjs +3 -2
- package/esm2022/lib/ng-virtual-list.component.mjs +58 -17
- package/esm2022/lib/utils/isCollectionMode.mjs +15 -0
- package/esm2022/lib/utils/trackBox.mjs +45 -16
- package/fesm2022/ng-virtual-list.mjs +131 -29
- package/fesm2022/ng-virtual-list.mjs.map +1 -1
- package/lib/const/index.d.ts +2 -1
- package/lib/enums/collection-mode.d.ts +8 -0
- package/lib/enums/collection-modes.d.ts +16 -0
- package/lib/enums/index.d.ts +4 -2
- package/lib/ng-virtual-list.component.d.ts +11 -2
- package/lib/utils/isCollectionMode.d.ts +8 -0
- package/lib/utils/trackBox.d.ts +17 -9
- package/package.json +1 -1
package/lib/const/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MethodsForSelecting, SnappingMethods } from "../enums";
|
|
1
|
+
import { CollectionModes, MethodsForSelecting, SnappingMethods } from "../enums";
|
|
2
2
|
import { Directions } from "../enums/directions";
|
|
3
3
|
export declare const DEFAULT_ITEM_SIZE = 24;
|
|
4
4
|
export declare const DEFAULT_BUFFER_SIZE = 2;
|
|
@@ -11,6 +11,7 @@ export declare const DEFAULT_ENABLED_BUFFER_OPTIMIZATION = false;
|
|
|
11
11
|
export declare const DEFAULT_DYNAMIC_SIZE = false;
|
|
12
12
|
export declare const TRACK_BY_PROPERTY_NAME = "id";
|
|
13
13
|
export declare const DEFAULT_DIRECTION = Directions.VERTICAL;
|
|
14
|
+
export declare const DEFAULT_COLLECTION_MODE = CollectionModes.NORMAL;
|
|
14
15
|
export declare const DISPLAY_OBJECTS_LENGTH_MESUREMENT_ERROR = 1;
|
|
15
16
|
export declare const MAX_SCROLL_TO_ITERATIONS = 5;
|
|
16
17
|
export declare const DEFAULT_SNAPPING_METHOD = SnappingMethods.NORMAL;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CollectionModes } from "./collection-modes";
|
|
2
|
+
/**
|
|
3
|
+
* Action modes for collection elements.
|
|
4
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/enums/collection-mode.ts
|
|
5
|
+
* @author Evgenii Grebennikov
|
|
6
|
+
* @email djonnyx@gmail.com
|
|
7
|
+
*/
|
|
8
|
+
export type CollectionMode = CollectionModes | 'normal' | 'lazy';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action modes for collection elements.
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/enums/collection-modes.ts
|
|
4
|
+
* @author Evgenii Grebennikov
|
|
5
|
+
* @email djonnyx@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
export declare enum CollectionModes {
|
|
8
|
+
/**
|
|
9
|
+
* When adding elements to the beginning of the collection, the scroll remains at the current position.
|
|
10
|
+
*/
|
|
11
|
+
NORMAL = "normal",
|
|
12
|
+
/**
|
|
13
|
+
* When adding elements to the beginning of the collection, the scroll is shifted by the sum of the sizes of the new elements.
|
|
14
|
+
*/
|
|
15
|
+
LAZY = "lazy"
|
|
16
|
+
}
|
package/lib/enums/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { CollectionMode } from "./collection-mode";
|
|
2
|
+
import { CollectionModes } from "./collection-modes";
|
|
1
3
|
import { Directions } from "./directions";
|
|
2
4
|
import { Direction } from "./direction";
|
|
3
5
|
import { MethodsForSelecting } from "./methods-for-selecting";
|
|
4
6
|
import { MethodForSelecting } from "./method-for-selecting";
|
|
5
7
|
import { SnappingMethods } from "./snapping-methods";
|
|
6
8
|
import { SnappingMethod } from "./snapping-method";
|
|
7
|
-
export { Directions, MethodsForSelecting, SnappingMethods, };
|
|
8
|
-
export type { Direction, MethodForSelecting, SnappingMethod, };
|
|
9
|
+
export { CollectionModes, Directions, MethodsForSelecting, SnappingMethods, };
|
|
10
|
+
export type { CollectionMode, Direction, MethodForSelecting, SnappingMethod, };
|
|
@@ -2,7 +2,7 @@ import { AfterViewInit, OnDestroy, OnInit, TemplateRef, WritableSignal } from '@
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { IRenderVirtualListItem, IScrollEvent, IVirtualListCollection, IVirtualListItemConfigMap } from './models';
|
|
4
4
|
import { Id, ISize } from './types';
|
|
5
|
-
import { Direction, Directions, MethodForSelecting, SnappingMethod } from './enums';
|
|
5
|
+
import { CollectionMode, Direction, Directions, MethodForSelecting, SnappingMethod } from './enums';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
/**
|
|
8
8
|
* Virtual list component.
|
|
@@ -131,6 +131,11 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
|
|
|
131
131
|
* Determines the direction in which elements are placed. Default value is "vertical".
|
|
132
132
|
*/
|
|
133
133
|
direction: import("@angular/core").InputSignal<Direction>;
|
|
134
|
+
private _collectionModeOptions;
|
|
135
|
+
/**
|
|
136
|
+
* Determines the action modes for collection elements. Default value is "normal".
|
|
137
|
+
*/
|
|
138
|
+
collectionMode: import("@angular/core").InputSignal<CollectionMode>;
|
|
134
139
|
private _bufferSizeOptions;
|
|
135
140
|
/**
|
|
136
141
|
* Number of elements outside the scope of visibility. Default value is 2.
|
|
@@ -171,6 +176,7 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
|
|
|
171
176
|
get isMultiSelecting(): boolean;
|
|
172
177
|
private _isSnappingMethodAdvanced;
|
|
173
178
|
get isSnappingMethodAdvanced(): boolean;
|
|
179
|
+
private _isLazy;
|
|
174
180
|
private _isVertical;
|
|
175
181
|
get orientation(): Directions;
|
|
176
182
|
readonly focusedElement: WritableSignal<Id | undefined>;
|
|
@@ -206,6 +212,8 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
|
|
|
206
212
|
private _trackBox;
|
|
207
213
|
private _onTrackBoxChangeHandler;
|
|
208
214
|
private _cacheVersion;
|
|
215
|
+
private _isResetedReachStart;
|
|
216
|
+
private _onTrackBoxResetHandler;
|
|
209
217
|
constructor();
|
|
210
218
|
ngOnInit(): void;
|
|
211
219
|
private onInit;
|
|
@@ -215,6 +223,7 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
|
|
|
215
223
|
private getIsSingleSelecting;
|
|
216
224
|
private getIsMultiSelecting;
|
|
217
225
|
private getIsVertical;
|
|
226
|
+
private getIsLazy;
|
|
218
227
|
private createDisplayComponentsIfNeed;
|
|
219
228
|
private updateRegularRenderer;
|
|
220
229
|
private resetRenderers;
|
|
@@ -246,5 +255,5 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnInit, On
|
|
|
246
255
|
ngOnDestroy(): void;
|
|
247
256
|
private dispose;
|
|
248
257
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgVirtualListComponent, never>;
|
|
249
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": true; "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; }; "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; }; "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; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; "onViewportChange": "onViewportChange"; "onItemClick": "onItemClick"; "onSelect": "onSelect"; "onCollapse": "onCollapse"; "onScrollReachStart": "onScrollReachStart"; "onScrollReachEnd": "onScrollReachEnd"; }, never, never, false, never>;
|
|
258
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": true; "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; }; "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; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; "onViewportChange": "onViewportChange"; "onItemClick": "onItemClick"; "onSelect": "onSelect"; "onCollapse": "onCollapse"; "onScrollReachStart": "onScrollReachStart"; "onScrollReachEnd": "onScrollReachEnd"; }, never, never, false, never>;
|
|
250
259
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CollectionMode } from "../enums";
|
|
2
|
+
/**
|
|
3
|
+
* Determines the axis membership of a virtual list
|
|
4
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/utils/isCollectionMode.ts
|
|
5
|
+
* @author Evgenii Grebennikov
|
|
6
|
+
* @email djonnyx@gmail.com
|
|
7
|
+
*/
|
|
8
|
+
export declare const isCollectionMode: (src: CollectionMode, expected: CollectionMode) => boolean;
|
package/lib/utils/trackBox.d.ts
CHANGED
|
@@ -7,7 +7,10 @@ import { ISize } from "../types";
|
|
|
7
7
|
import { HEIGHT_PROP_NAME, WIDTH_PROP_NAME } from "../const";
|
|
8
8
|
import { IVirtualListItemConfigMap } from "../models";
|
|
9
9
|
import { BaseVirtualListItemComponent } from "../models/base-virtual-list-item-component";
|
|
10
|
-
export declare
|
|
10
|
+
export declare enum TrackBoxEvents {
|
|
11
|
+
CHANGE = "change",
|
|
12
|
+
RESET = "reset"
|
|
13
|
+
}
|
|
11
14
|
export interface IMetrics {
|
|
12
15
|
delta: number;
|
|
13
16
|
normalizedItemWidth: number;
|
|
@@ -68,9 +71,10 @@ export interface IUpdateCollectionOptions<I extends {
|
|
|
68
71
|
id: Id;
|
|
69
72
|
}, C extends Array<I>> extends Omit<IRecalculateMetricsOptions<I, C>, 'collection' | 'previousTotalSize' | 'crudDetected' | 'deletedItemsMap'> {
|
|
70
73
|
}
|
|
71
|
-
export type CacheMapEvents =
|
|
74
|
+
export type CacheMapEvents = TrackBoxEvents.CHANGE | TrackBoxEvents.RESET;
|
|
72
75
|
export type OnChangeEventListener = (version: number) => void;
|
|
73
|
-
export type
|
|
76
|
+
export type OnResetEventListener = (reseted: boolean) => void;
|
|
77
|
+
export type CacheMapListeners = OnChangeEventListener | OnResetEventListener;
|
|
74
78
|
export declare enum ItemDisplayMethods {
|
|
75
79
|
CREATE = 0,
|
|
76
80
|
UPDATE = 1,
|
|
@@ -83,17 +87,18 @@ export interface IUpdateCollectionReturns {
|
|
|
83
87
|
delta: number;
|
|
84
88
|
crudDetected: boolean;
|
|
85
89
|
}
|
|
90
|
+
type Cache = ISize & {
|
|
91
|
+
method?: ItemDisplayMethods;
|
|
92
|
+
} & {
|
|
93
|
+
[prop: string]: any;
|
|
94
|
+
};
|
|
86
95
|
/**
|
|
87
96
|
* An object that performs tracking, calculations and caching.
|
|
88
97
|
* @link https://github.com/DjonnyX/ng-virtual-list/blob/18.x/projects/ng-virtual-list/src/lib/utils/trackBox.ts
|
|
89
98
|
* @author Evgenii Grebennikov
|
|
90
99
|
* @email djonnyx@gmail.com
|
|
91
100
|
*/
|
|
92
|
-
export declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends CacheMap<Id,
|
|
93
|
-
method?: ItemDisplayMethods;
|
|
94
|
-
} & {
|
|
95
|
-
[prop: string]: any;
|
|
96
|
-
}, CacheMapEvents, CacheMapListeners> {
|
|
101
|
+
export declare class TrackBox<C extends BaseVirtualListItemComponent = any> extends CacheMap<Id, Cache, CacheMapEvents, CacheMapListeners> {
|
|
97
102
|
protected _tracker: Tracker<C>;
|
|
98
103
|
protected _items: IRenderVirtualListCollection | null | undefined;
|
|
99
104
|
set items(v: IRenderVirtualListCollection | null | undefined);
|
|
@@ -103,6 +108,8 @@ export declare class TrackBox<C extends BaseVirtualListItemComponent = any> exte
|
|
|
103
108
|
set snapedDisplayComponent(v: ComponentRef<C> | null | undefined);
|
|
104
109
|
protected _isSnappingMethodAdvanced: boolean;
|
|
105
110
|
set isSnappingMethodAdvanced(v: boolean);
|
|
111
|
+
protected _isLazy: boolean;
|
|
112
|
+
set isLazy(v: boolean);
|
|
106
113
|
/**
|
|
107
114
|
* Set the trackBy property
|
|
108
115
|
*/
|
|
@@ -133,7 +140,7 @@ export declare class TrackBox<C extends BaseVirtualListItemComponent = any> exte
|
|
|
133
140
|
protected _maxBufferSize: number;
|
|
134
141
|
protected _resetBufferSizeTimeout: number;
|
|
135
142
|
protected _resetBufferSizeTimer: number | undefined;
|
|
136
|
-
protected
|
|
143
|
+
protected isReseted: boolean;
|
|
137
144
|
protected lifeCircle(): void;
|
|
138
145
|
/**
|
|
139
146
|
* Scans the collection for deleted items and flushes the deleted item cache.
|
|
@@ -208,3 +215,4 @@ export declare class TrackBox<C extends BaseVirtualListItemComponent = any> exte
|
|
|
208
215
|
protected cacheElements(): void;
|
|
209
216
|
dispose(): void;
|
|
210
217
|
}
|
|
218
|
+
export {};
|