ng-virtual-list 16.0.13 → 16.0.15

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.
@@ -4,7 +4,7 @@ import { IRect } from '../types';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Virtual list item component
7
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/components/ng-virtual-list-item.component.ts
7
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/components/ng-virtual-list-item.component.ts
8
8
  * @author Evgenii Grebennikov
9
9
  * @email djonnyx@gmail.com
10
10
  */
@@ -16,9 +16,11 @@ export declare class NgVirtualListItemComponent {
16
16
  get id(): number;
17
17
  data: IRenderVirtualListItem | undefined;
18
18
  set item(v: IRenderVirtualListItem | undefined);
19
+ get item(): IRenderVirtualListItem | undefined;
19
20
  get itemId(): import("../types").Id | undefined;
20
21
  itemRenderer: TemplateRef<any> | undefined;
21
22
  set renderer(v: TemplateRef<any> | undefined);
23
+ get element(): HTMLElement;
22
24
  constructor(_cdr: ChangeDetectorRef, _elementRef: ElementRef<HTMLElement>);
23
25
  getBounds(): IRect;
24
26
  showIfNeed(): void;
@@ -110,6 +110,13 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnDestroy
110
110
  */
111
111
  set itemsOffset(v: number);
112
112
  get itemsOffset(): number;
113
+ private _$trackBy;
114
+ readonly $trackBy: Observable<string>;
115
+ /**
116
+ * The name of the property by which tracking is performed
117
+ */
118
+ set trackBy(v: string);
119
+ get trackBy(): string;
113
120
  private _isVertical;
114
121
  protected _displayComponents: Array<ComponentRef<NgVirtualListItemComponent>>;
115
122
  protected _$bounds: BehaviorSubject<DOMRect | null>;
@@ -119,10 +126,9 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnDestroy
119
126
  get isScrolling(): boolean;
120
127
  private _resizeObserver;
121
128
  private _onResizeHandler;
129
+ private _scrolls;
122
130
  private _onScrollHandler;
123
131
  private scrollImmediately;
124
- private _scrollImmediatelyHandler;
125
- private clearScrollImmediately;
126
132
  private _onScrollEndHandler;
127
133
  private _$initialized;
128
134
  readonly $initialized: Observable<boolean>;
@@ -137,6 +143,7 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnDestroy
137
143
  ngOnInit(): void;
138
144
  private listenCacheChangesIfNeed;
139
145
  private getIsVertical;
146
+ private _componentsResizeObserver;
140
147
  private createDisplayComponentsIfNeed;
141
148
  private resetRenderers;
142
149
  /**
@@ -160,7 +167,8 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnDestroy
160
167
  private _onContainerScrollHandler;
161
168
  private _onContainerScrollEndHandler;
162
169
  ngAfterViewInit(): void;
170
+ private clearScrollImmediately;
163
171
  ngOnDestroy(): void;
164
172
  static ɵfac: i0.ɵɵFactoryDeclaration<NgVirtualListComponent, never>;
165
- static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": false; }; "snap": { "alias": "snap"; "required": false; }; "snapToItem": { "alias": "snapToItem"; "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; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; }, never, never, false, never>;
173
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgVirtualListComponent, "ng-virtual-list", never, { "items": { "alias": "items"; "required": false; }; "snap": { "alias": "snap"; "required": false; }; "snapToItem": { "alias": "snapToItem"; "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; }; }, { "onScroll": "onScroll"; "onScrollEnd": "onScrollEnd"; }, never, never, false, never>;
166
174
  }
@@ -12,7 +12,7 @@ type CacheMapListeners = OnChangeEventListener;
12
12
  /**
13
13
  * Cache map.
14
14
  * Emits a change event on each mutation.
15
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/utils/cacheMap.ts
15
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/cacheMap.ts
16
16
  * @author Evgenii Grebennikov
17
17
  * @email djonnyx@gmail.com
18
18
  */
@@ -67,7 +67,7 @@ declare enum ItemDisplayMethods {
67
67
  }
68
68
  /**
69
69
  * An object that performs tracking, calculations and caching.
70
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/utils/trackBox.ts
70
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/trackBox.ts
71
71
  * @author Evgenii Grebennikov
72
72
  * @email djonnyx@gmail.com
73
73
  */
@@ -79,6 +79,10 @@ export declare class TrackBox extends CacheMap<Id, IRect & {
79
79
  set items(v: IRenderVirtualListCollection | null | undefined);
80
80
  protected _displayComponents: Array<ComponentRef<NgVirtualListItemComponent>> | null | undefined;
81
81
  set displayComponents(v: Array<ComponentRef<NgVirtualListItemComponent>> | null | undefined);
82
+ /**
83
+ * Set the trackBy property
84
+ */
85
+ set trackingPropertyName(v: string);
82
86
  constructor(trackingPropertyName: string);
83
87
  set(id: Id, bounds: IRect): Map<Id, IRect>;
84
88
  private _fireChanges;
@@ -92,11 +96,11 @@ export declare class TrackBox extends CacheMap<Id, IRect & {
92
96
  id: Id;
93
97
  }, C extends Array<I>>(currentCollection: C | null | undefined, itemSize: number): void;
94
98
  /**
95
- * Clears the cache of items from the list
99
+ * Update the cache of items from the list
96
100
  */
97
- protected clearCache<I extends {
101
+ protected updateCache<I extends {
98
102
  id: Id;
99
- }, C extends Array<I>>(deleted: C | null | undefined, updated: C | null | undefined, added: C | null | undefined, itemSize: number): void;
103
+ }, C extends Array<I>>(previousCollection: C | null | undefined, currentCollection: C | null | undefined, itemSize: number): void;
100
104
  /**
101
105
  * Finds the position of a collection element by the given Id
102
106
  */
@@ -137,6 +141,7 @@ export declare class TrackBox extends CacheMap<Id, IRect & {
137
141
  get scrollDelta(): number;
138
142
  clearDeltaDirection(): void;
139
143
  clearDelta(clearDirectionDetector?: boolean): void;
144
+ changes(): void;
140
145
  protected generateDisplayCollection<I extends {
141
146
  id: Id;
142
147
  }, C extends Array<I>>(items: C, stickyMap: IVirtualListStickyMap, metrics: IMetrics): IRenderVirtualListCollection;
@@ -1,7 +1,7 @@
1
1
  import { ComponentRef } from "@angular/core";
2
2
  /**
3
3
  * Tracks display items by property
4
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/utils/tracker.ts
4
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/tracker.ts
5
5
  * @author Evgenii Grebennikov
6
6
  * @email djonnyx@gmail.com
7
7
  */
@@ -27,12 +27,12 @@ export declare class Tracker<I = any, C = {
27
27
  [id: number]: number;
28
28
  } | null;
29
29
  private _trackingPropertyName;
30
+ set trackingPropertyName(v: string);
30
31
  constructor(trackingPropertyName: string);
31
32
  /**
32
33
  * tracking by propName
33
34
  */
34
35
  track(items: Array<any>, components: Array<ComponentRef<any>>, afterComponentSetup?: (component: C, item: I) => void): void;
35
36
  untrackComponentByIdProperty(component?: C): void;
36
- private _checkComponentProperty;
37
37
  dispose(): void;
38
38
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-virtual-list",
3
- "version": "16.0.13",
3
+ "version": "16.0.15",
4
4
  "author": {
5
5
  "name": "Evgenii Grebennikov",
6
6
  "email": "djonnyx@gmail.com"
@@ -1,50 +0,0 @@
1
- /**
2
- * Returns the removed or updated elements of a collection.
3
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/utils/collection.ts
4
- * @author Evgenii Grebennikov
5
- * @email djonnyx@gmail.com
6
- */
7
- export const getCollectionRemovedOrUpdatedItems = (previousCollection, currentCollection) => {
8
- const result = { deleted: new Array(), updated: new Array(), added: new Array(), notChanged: new Array() };
9
- if (!currentCollection || currentCollection.length === 0) {
10
- return { deleted: (previousCollection ? [...previousCollection] : []), updated: [], added: [], notChanged: [] };
11
- }
12
- if (!previousCollection || previousCollection.length === 0) {
13
- return { deleted: [], updated: [], added: (currentCollection ? [...currentCollection] : []), notChanged: [] };
14
- }
15
- const collectionDict = {};
16
- for (let i = 0, l = currentCollection.length; i < l; i++) {
17
- const item = currentCollection[i];
18
- if (item) {
19
- collectionDict[item.id] = item;
20
- }
21
- }
22
- const notChangedMap = {}, deletedMap = {}, updatedMap = {};
23
- for (let i = 0, l = previousCollection.length; i < l; i++) {
24
- const item = previousCollection[i], id = item.id;
25
- if (item) {
26
- if (collectionDict.hasOwnProperty(id)) {
27
- if (item === collectionDict[id]) {
28
- result.notChanged.push(item);
29
- notChangedMap[item.id] = item;
30
- continue;
31
- }
32
- else {
33
- result.updated.push(item);
34
- updatedMap[item.id] = item;
35
- continue;
36
- }
37
- }
38
- result.deleted.push(item);
39
- deletedMap[item.id] = item;
40
- }
41
- }
42
- for (let i = 0, l = currentCollection.length; i < l; i++) {
43
- const item = currentCollection[i], id = item.id;
44
- if (item && !deletedMap.hasOwnProperty(id) && !updatedMap.hasOwnProperty(id) && !notChangedMap.hasOwnProperty(id)) {
45
- result.added.push(item);
46
- }
47
- }
48
- return result;
49
- };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0E7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxDQUEyQyxrQkFBd0MsRUFBRSxpQkFBdUMsRUFDbkosRUFBRTtJQUN6QixNQUFNLE1BQU0sR0FBMkIsRUFBRSxPQUFPLEVBQUUsSUFBSSxLQUFLLEVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxLQUFLLEVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBSSxLQUFLLEVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxLQUFLLEVBQVUsRUFBRSxDQUFDO0lBQ25LLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBTSxFQUFFLE9BQU8sRUFBRSxFQUFrQixFQUFFLEtBQUssRUFBRSxFQUFrQixFQUFFLFVBQVUsRUFBRSxFQUFrQixFQUFFLENBQUM7S0FDeEs7SUFDRCxJQUFJLENBQUMsa0JBQWtCLElBQUksa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQU0sRUFBRSxVQUFVLEVBQUUsRUFBa0IsRUFBRSxDQUFDO0tBQ3RLO0lBQ0QsTUFBTSxjQUFjLEdBQW9CLEVBQUUsQ0FBQztJQUMzQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdEQsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLEVBQUU7WUFDTixjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNsQztLQUNKO0lBQ0QsTUFBTSxhQUFhLEdBQW9CLEVBQUUsRUFBRSxVQUFVLEdBQW9CLEVBQUUsRUFBRSxVQUFVLEdBQW9CLEVBQUUsQ0FBQztJQUM5RyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdkQsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ25DLElBQUksSUFBSSxLQUFLLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBRTtvQkFDN0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzdCLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUM5QixTQUFTO2lCQUNaO3FCQUFNO29CQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDM0IsU0FBUztpQkFDWjthQUNKO1lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDOUI7S0FDSjtJQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0RCxNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMvRyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtLQUNKO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWQgfSBmcm9tIFwiLi4vdHlwZXNcIlxyXG5cclxuaW50ZXJmYWNlIElDb2xsZWN0aW9uRGVsdGE8SSBleHRlbmRzIHsgaWQ6IElkIH0sIEMgZXh0ZW5kcyBBcnJheTxJPj4ge1xyXG4gICAgZGVsZXRlZDogQztcclxuICAgIHVwZGF0ZWQ6IEM7XHJcbiAgICBub3RDaGFuZ2VkOiBDO1xyXG4gICAgYWRkZWQ6IEM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSByZW1vdmVkIG9yIHVwZGF0ZWQgZWxlbWVudHMgb2YgYSBjb2xsZWN0aW9uLlxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xNi54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL2NvbGxlY3Rpb24udHNcclxuICogQGF1dGhvciBFdmdlbmlpIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldENvbGxlY3Rpb25SZW1vdmVkT3JVcGRhdGVkSXRlbXMgPSA8SSBleHRlbmRzIHsgaWQ6IElkIH0sIEMgZXh0ZW5kcyBBcnJheTxJPj4ocHJldmlvdXNDb2xsZWN0aW9uOiBDIHwgbnVsbCB8IHVuZGVmaW5lZCwgY3VycmVudENvbGxlY3Rpb246IEMgfCBudWxsIHwgdW5kZWZpbmVkKTpcclxuICAgIElDb2xsZWN0aW9uRGVsdGE8SSwgQz4gPT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBJQ29sbGVjdGlvbkRlbHRhPEksIEM+ID0geyBkZWxldGVkOiBuZXcgQXJyYXk8ST4oKSBhcyBDLCB1cGRhdGVkOiBuZXcgQXJyYXk8ST4oKSBhcyBDLCBhZGRlZDogbmV3IEFycmF5PEk+KCkgYXMgQywgbm90Q2hhbmdlZDogbmV3IEFycmF5PEk+KCkgYXMgQyB9O1xyXG4gICAgaWYgKCFjdXJyZW50Q29sbGVjdGlvbiB8fCBjdXJyZW50Q29sbGVjdGlvbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4geyBkZWxldGVkOiAocHJldmlvdXNDb2xsZWN0aW9uID8gWy4uLnByZXZpb3VzQ29sbGVjdGlvbl0gOiBbXSkgYXMgQywgdXBkYXRlZDogW10gYXMgdW5rbm93biBhcyBDLCBhZGRlZDogW10gYXMgdW5rbm93biBhcyBDLCBub3RDaGFuZ2VkOiBbXSBhcyB1bmtub3duIGFzIEMgfTtcclxuICAgIH1cclxuICAgIGlmICghcHJldmlvdXNDb2xsZWN0aW9uIHx8IHByZXZpb3VzQ29sbGVjdGlvbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4geyBkZWxldGVkOiBbXSBhcyB1bmtub3duIGFzIEMsIHVwZGF0ZWQ6IFtdIGFzIHVua25vd24gYXMgQywgYWRkZWQ6IChjdXJyZW50Q29sbGVjdGlvbiA/IFsuLi5jdXJyZW50Q29sbGVjdGlvbl0gOiBbXSkgYXMgQywgbm90Q2hhbmdlZDogW10gYXMgdW5rbm93biBhcyBDIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2xsZWN0aW9uRGljdDogeyBbaWQ6IElkXTogSSB9ID0ge307XHJcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IGN1cnJlbnRDb2xsZWN0aW9uLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBjdXJyZW50Q29sbGVjdGlvbltpXTtcclxuICAgICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uRGljdFtpdGVtLmlkXSA9IGl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgbm90Q2hhbmdlZE1hcDogeyBbaWQ6IElkXTogSSB9ID0ge30sIGRlbGV0ZWRNYXA6IHsgW2lkOiBJZF06IEkgfSA9IHt9LCB1cGRhdGVkTWFwOiB7IFtpZDogSWRdOiBJIH0gPSB7fTtcclxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gcHJldmlvdXNDb2xsZWN0aW9uLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBwcmV2aW91c0NvbGxlY3Rpb25baV0sIGlkID0gaXRlbS5pZDtcclxuICAgICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgICAgICBpZiAoY29sbGVjdGlvbkRpY3QuaGFzT3duUHJvcGVydHkoaWQpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PT0gY29sbGVjdGlvbkRpY3RbaWRdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm5vdENoYW5nZWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICBub3RDaGFuZ2VkTWFwW2l0ZW0uaWRdID0gaXRlbTtcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnVwZGF0ZWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVkTWFwW2l0ZW0uaWRdID0gaXRlbTtcclxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzdWx0LmRlbGV0ZWQucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgZGVsZXRlZE1hcFtpdGVtLmlkXSA9IGl0ZW07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gY3VycmVudENvbGxlY3Rpb24ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IGN1cnJlbnRDb2xsZWN0aW9uW2ldLCBpZCA9IGl0ZW0uaWQ7XHJcbiAgICAgICAgaWYgKGl0ZW0gJiYgIWRlbGV0ZWRNYXAuaGFzT3duUHJvcGVydHkoaWQpICYmICF1cGRhdGVkTWFwLmhhc093blByb3BlcnR5KGlkKSAmJiAhbm90Q2hhbmdlZE1hcC5oYXNPd25Qcm9wZXJ0eShpZCkpIHtcclxuICAgICAgICAgICAgcmVzdWx0LmFkZGVkLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuIl19
@@ -1,19 +0,0 @@
1
- import { Id } from "../types";
2
- interface ICollectionDelta<I extends {
3
- id: Id;
4
- }, C extends Array<I>> {
5
- deleted: C;
6
- updated: C;
7
- notChanged: C;
8
- added: C;
9
- }
10
- /**
11
- * Returns the removed or updated elements of a collection.
12
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/utils/collection.ts
13
- * @author Evgenii Grebennikov
14
- * @email djonnyx@gmail.com
15
- */
16
- export declare const getCollectionRemovedOrUpdatedItems: <I extends {
17
- id: Id;
18
- }, C extends I[]>(previousCollection: C | null | undefined, currentCollection: C | null | undefined) => ICollectionDelta<I, C>;
19
- export {};