ng-virtual-list 20.2.0 → 20.3.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.
Files changed (38) hide show
  1. package/README.md +10 -10
  2. package/fesm2022/ng-virtual-list.mjs +54 -19
  3. package/fesm2022/ng-virtual-list.mjs.map +1 -1
  4. package/index.d.ts +802 -3
  5. package/package.json +1 -1
  6. package/lib/components/ng-virtual-list-item.component.d.ts +0 -34
  7. package/lib/const/index.d.ts +0 -41
  8. package/lib/enums/direction.d.ts +0 -8
  9. package/lib/enums/directions.d.ts +0 -16
  10. package/lib/enums/index.d.ts +0 -7
  11. package/lib/enums/snapping-method.d.ts +0 -10
  12. package/lib/enums/snapping-methods.d.ts +0 -16
  13. package/lib/models/collection.model.d.ts +0 -9
  14. package/lib/models/index.d.ts +0 -6
  15. package/lib/models/item.model.d.ts +0 -14
  16. package/lib/models/render-collection.model.d.ts +0 -9
  17. package/lib/models/render-item-config.model.d.ts +0 -41
  18. package/lib/models/render-item.model.d.ts +0 -33
  19. package/lib/models/scroll-direction.model.d.ts +0 -5
  20. package/lib/models/scroll-event.model.d.ts +0 -50
  21. package/lib/models/sticky-map.model.d.ts +0 -14
  22. package/lib/ng-virtual-list.component.d.ts +0 -144
  23. package/lib/types/id.d.ts +0 -7
  24. package/lib/types/index.d.ts +0 -4
  25. package/lib/types/rect.d.ts +0 -17
  26. package/lib/types/size.d.ts +0 -16
  27. package/lib/utils/browser.d.ts +0 -2
  28. package/lib/utils/cacheMap.d.ts +0 -60
  29. package/lib/utils/debounce.d.ts +0 -16
  30. package/lib/utils/eventEmitter.d.ts +0 -40
  31. package/lib/utils/index.d.ts +0 -7
  32. package/lib/utils/isDirection.d.ts +0 -8
  33. package/lib/utils/scrollEvent.d.ts +0 -39
  34. package/lib/utils/snapping-method.d.ts +0 -3
  35. package/lib/utils/toggleClassName.d.ts +0 -7
  36. package/lib/utils/trackBox.d.ts +0 -180
  37. package/lib/utils/tracker.d.ts +0 -44
  38. package/public-api.d.ts +0 -4
@@ -1,7 +0,0 @@
1
- import { isDirection } from "./isDirection";
2
- import { debounce } from "./debounce";
3
- import { toggleClassName } from './toggleClassName';
4
- import { Tracker } from "./tracker";
5
- import { TrackBox } from "./trackBox";
6
- import { ScrollEvent } from "./scrollEvent";
7
- export { isDirection, debounce, toggleClassName, ScrollEvent, TrackBox, Tracker, };
@@ -1,8 +0,0 @@
1
- import { Direction } from "../enums";
2
- /**
3
- * Determines the axis membership of a virtual list
4
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/20.x/projects/ng-virtual-list/src/lib/utils/isDirection.ts
5
- * @author Evgenii Grebennikov
6
- * @email djonnyx@gmail.com
7
- */
8
- export declare const isDirection: (src: Direction, expected: Direction) => boolean;
@@ -1,39 +0,0 @@
1
- import { IScrollEvent, ScrollDirection } from "../models";
2
- interface IScrollEventParams {
3
- direction: ScrollDirection;
4
- container: HTMLElement;
5
- list: HTMLElement;
6
- delta: number;
7
- scrollDelta: number;
8
- isVertical: boolean;
9
- }
10
- /**
11
- * Scroll event.
12
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/20.x/projects/ng-virtual-list/src/lib/utils/scrollEvent.ts
13
- * @author Evgenii Grebennikov
14
- * @email djonnyx@gmail.com
15
- */
16
- export declare class ScrollEvent implements IScrollEvent {
17
- private _direction;
18
- get direction(): ScrollDirection;
19
- private _scrollSize;
20
- get scrollSize(): number;
21
- private _scrollWeight;
22
- get scrollWeight(): number;
23
- private _isVertical;
24
- get isVertical(): boolean;
25
- private _listSize;
26
- get listSize(): number;
27
- private _size;
28
- get size(): number;
29
- private _isStart;
30
- get isStart(): boolean;
31
- private _isEnd;
32
- get isEnd(): boolean;
33
- private _delta;
34
- get delta(): number;
35
- private _scrollDelta;
36
- get scrollDelta(): number;
37
- constructor(params: IScrollEventParams);
38
- }
39
- export {};
@@ -1,3 +0,0 @@
1
- import { SnappingMethod } from "../enums";
2
- export declare const isSnappingMethodAdvenced: (method: SnappingMethod) => boolean;
3
- export declare const isSnappingMethodDefault: (method: SnappingMethod) => boolean;
@@ -1,7 +0,0 @@
1
- /**
2
- * Switch css classes
3
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/20.x/projects/ng-virtual-list/src/lib/utils/toggleClassName.ts
4
- * @author Evgenii Grebennikov
5
- * @email djonnyx@gmail.com
6
- */
7
- export declare const toggleClassName: (el: HTMLElement, className: string, removeClassName?: string) => void;
@@ -1,180 +0,0 @@
1
- import { ComponentRef } from "@angular/core";
2
- import { NgVirtualListItemComponent } from "../components/ng-virtual-list-item.component";
3
- import { IRenderVirtualListCollection } from "../models/render-collection.model";
4
- import { IRenderVirtualListItem } from "../models/render-item.model";
5
- import { Id } from "../types/id";
6
- import { CacheMap, CMap } from "./cacheMap";
7
- import { Tracker } from "./tracker";
8
- import { ISize } from "../types";
9
- import { HEIGHT_PROP_NAME, WIDTH_PROP_NAME } from "../const";
10
- import { IVirtualListStickyMap } from "../models";
11
- export declare const TRACK_BOX_CHANGE_EVENT_NAME = "change";
12
- export interface IMetrics {
13
- delta: number;
14
- normalizedItemWidth: number;
15
- normalizedItemHeight: number;
16
- width: number;
17
- height: number;
18
- dynamicSize: boolean;
19
- itemSize: number;
20
- itemsFromStartToScrollEnd: number;
21
- itemsFromStartToDisplayEnd: number;
22
- itemsOnDisplayWeight: number;
23
- itemsOnDisplayLength: number;
24
- isVertical: boolean;
25
- leftHiddenItemsWeight: number;
26
- leftItemLength: number;
27
- leftItemsWeight: number;
28
- renderItems: number;
29
- rightItemLength: number;
30
- rightItemsWeight: number;
31
- scrollSize: number;
32
- leftSizeOfAddedItems: number;
33
- sizeProperty: typeof HEIGHT_PROP_NAME | typeof WIDTH_PROP_NAME;
34
- snap: boolean;
35
- snippedPos: number;
36
- startIndex: number;
37
- startPosition: number;
38
- totalItemsToDisplayEndWeight: number;
39
- totalLength: number;
40
- totalSize: number;
41
- typicalItemSize: number;
42
- }
43
- export interface IRecalculateMetricsOptions<I extends {
44
- id: Id;
45
- }, C extends Array<I>> {
46
- bounds: ISize;
47
- collection: C;
48
- isVertical: boolean;
49
- itemSize: number;
50
- itemsOffset: number;
51
- dynamicSize: boolean;
52
- scrollSize: number;
53
- snap: boolean;
54
- enabledBufferOptimization: boolean;
55
- fromItemId?: Id;
56
- previousTotalSize: number;
57
- crudDetected: boolean;
58
- deletedItemsMap: {
59
- [index: number]: ISize;
60
- };
61
- }
62
- export interface IGetItemPositionOptions<I extends {
63
- id: Id;
64
- }, C extends Array<I>> extends Omit<IRecalculateMetricsOptions<I, C>, 'previousTotalSize' | 'crudDetected' | 'deletedItemsMap'> {
65
- }
66
- export interface IUpdateCollectionOptions<I extends {
67
- id: Id;
68
- }, C extends Array<I>> extends Omit<IRecalculateMetricsOptions<I, C>, 'collection' | 'previousTotalSize' | 'crudDetected' | 'deletedItemsMap'> {
69
- }
70
- type CacheMapEvents = typeof TRACK_BOX_CHANGE_EVENT_NAME;
71
- type OnChangeEventListener = (version: number) => void;
72
- type CacheMapListeners = OnChangeEventListener;
73
- declare enum ItemDisplayMethods {
74
- CREATE = 0,
75
- UPDATE = 1,
76
- DELETE = 2,
77
- NOT_CHANGED = 3
78
- }
79
- interface IUpdateCollectionReturns {
80
- displayItems: IRenderVirtualListCollection;
81
- totalSize: number;
82
- delta: number;
83
- crudDetected: boolean;
84
- }
85
- /**
86
- * An object that performs tracking, calculations and caching.
87
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/20.x/projects/ng-virtual-list/src/lib/utils/trackBox.ts
88
- * @author Evgenii Grebennikov
89
- * @email djonnyx@gmail.com
90
- */
91
- export declare class TrackBox extends CacheMap<Id, ISize & {
92
- method?: ItemDisplayMethods;
93
- }, CacheMapEvents, CacheMapListeners> {
94
- protected _tracker: Tracker<IRenderVirtualListItem, NgVirtualListItemComponent>;
95
- protected _items: IRenderVirtualListCollection | null | undefined;
96
- set items(v: IRenderVirtualListCollection | null | undefined);
97
- protected _displayComponents: Array<ComponentRef<NgVirtualListItemComponent>> | null | undefined;
98
- set displayComponents(v: Array<ComponentRef<NgVirtualListItemComponent>> | null | undefined);
99
- protected _snapedDisplayComponent: ComponentRef<NgVirtualListItemComponent> | null | undefined;
100
- set snapedDisplayComponent(v: ComponentRef<NgVirtualListItemComponent> | null | undefined);
101
- protected _isSnappingMethodAdvanced: boolean;
102
- set isSnappingMethodAdvanced(v: boolean);
103
- /**
104
- * Set the trackBy property
105
- */
106
- set trackingPropertyName(v: string);
107
- constructor(trackingPropertyName: string);
108
- set(id: Id, bounds: ISize): CMap<Id, ISize>;
109
- private _previousCollection;
110
- private _deletedItemsMap;
111
- private _crudDetected;
112
- get crudDetected(): boolean;
113
- protected fireChangeIfNeed(): void;
114
- private _previousTotalSize;
115
- protected _scrollDelta: number;
116
- get scrollDelta(): number;
117
- protected lifeCircle(): void;
118
- /**
119
- * Scans the collection for deleted items and flushes the deleted item cache.
120
- */
121
- resetCollection<I extends {
122
- id: Id;
123
- }, C extends Array<I>>(currentCollection: C | null | undefined, itemSize: number): void;
124
- /**
125
- * Update the cache of items from the list
126
- */
127
- protected updateCache<I extends {
128
- id: Id;
129
- }, C extends Array<I>>(previousCollection: C | null | undefined, currentCollection: C | null | undefined, itemSize: number): void;
130
- /**
131
- * Finds the position of a collection element by the given Id
132
- */
133
- getItemPosition<I extends {
134
- id: Id;
135
- }, C extends Array<I>>(id: Id, stickyMap: IVirtualListStickyMap, options: IGetItemPositionOptions<I, C>): number;
136
- /**
137
- * Updates the collection of display objects
138
- */
139
- updateCollection<I extends {
140
- id: Id;
141
- }, C extends Array<I>>(items: C, stickyMap: IVirtualListStickyMap, options: IUpdateCollectionOptions<I, C>): IUpdateCollectionReturns;
142
- /**
143
- * Finds the closest element in the collection by scrollSize
144
- */
145
- getNearestItem<I extends {
146
- id: Id;
147
- }, C extends Array<I>>(scrollSize: number, items: C, itemSize: number, isVertical: boolean): I | undefined;
148
- /**
149
- * Calculates the position of an element based on the given scrollSize
150
- */
151
- private getElementFromStart;
152
- /**
153
- * Calculates the entry into the overscroll area and returns the number of overscroll elements
154
- */
155
- private getElementNumToEnd;
156
- /**
157
- * Calculates list metrics
158
- */
159
- protected recalculateMetrics<I extends {
160
- id: Id;
161
- }, C extends Array<I>>(options: IRecalculateMetricsOptions<I, C>): IMetrics;
162
- clearDeltaDirection(): void;
163
- clearDelta(clearDirectionDetector?: boolean): void;
164
- changes(): void;
165
- protected generateDisplayCollection<I extends {
166
- id: Id;
167
- }, C extends Array<I>>(items: C, stickyMap: IVirtualListStickyMap, metrics: IMetrics): IRenderVirtualListCollection;
168
- /**
169
- * tracking by propName
170
- */
171
- track(): void;
172
- setDisplayObjectIndexMapById(v: {
173
- [id: number]: number;
174
- }): void;
175
- untrackComponentByIdProperty(component?: NgVirtualListItemComponent | undefined): void;
176
- getItemBounds(id: Id): ISize | undefined;
177
- protected cacheElements(): void;
178
- dispose(): void;
179
- }
180
- export {};
@@ -1,44 +0,0 @@
1
- import { ComponentRef } from "@angular/core";
2
- import { ScrollDirection } from "../models";
3
- interface IVirtualListItemComponent<I = any> {
4
- id: number;
5
- item: I;
6
- show: () => void;
7
- hide: () => void;
8
- }
9
- /**
10
- * Tracks display items by property
11
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/20.x/projects/ng-virtual-list/src/lib/utils/tracker.ts
12
- * @author Evgenii Grebennikov
13
- * @email djonnyx@gmail.com
14
- */
15
- export declare class Tracker<I = any, C extends IVirtualListItemComponent = any> {
16
- /**
17
- * display objects dictionary of indexes by id
18
- */
19
- private _displayObjectIndexMapById;
20
- set displayObjectIndexMapById(v: {
21
- [id: number]: number;
22
- });
23
- get displayObjectIndexMapById(): {
24
- [id: number]: number;
25
- };
26
- /**
27
- * Dictionary displayItems propertyNameId by items propertyNameId
28
- */
29
- private _trackMap;
30
- get trackMap(): {
31
- [id: string]: number;
32
- [id: number]: number;
33
- } | null;
34
- private _trackingPropertyName;
35
- set trackingPropertyName(v: string);
36
- constructor(trackingPropertyName: string);
37
- /**
38
- * tracking by propName
39
- */
40
- track(items: Array<any>, components: Array<ComponentRef<C>>, snapedComponent: ComponentRef<C> | null | undefined, direction: ScrollDirection): void;
41
- untrackComponentByIdProperty(component?: C): void;
42
- dispose(): void;
43
- }
44
- export {};
package/public-api.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './lib/ng-virtual-list.component';
2
- export * from './lib/enums';
3
- export * from './lib/models';
4
- export * from './lib/types';