ng-virtual-list 16.0.13 → 16.0.14

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;
@@ -9,7 +9,7 @@ import * as i0 from "@angular/core";
9
9
  * Virtual list component.
10
10
  * Maximum performance for extremely large lists.
11
11
  * It is based on algorithms for virtualization of screen objects.
12
- * @link https://github.com/DjonnyX/ng-virtual-list/blob/16.x/projects/ng-virtual-list/src/lib/ng-virtual-list.component.ts
12
+ * @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/ng-virtual-list.component.ts
13
13
  * @author Evgenii Grebennikov
14
14
  * @email djonnyx@gmail.com
15
15
  */
@@ -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>;
@@ -137,6 +144,7 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnDestroy
137
144
  ngOnInit(): void;
138
145
  private listenCacheChangesIfNeed;
139
146
  private getIsVertical;
147
+ private _componentsResizeObserver;
140
148
  private createDisplayComponentsIfNeed;
141
149
  private resetRenderers;
142
150
  /**
@@ -162,5 +170,5 @@ export declare class NgVirtualListComponent implements AfterViewInit, OnDestroy
162
170
  ngAfterViewInit(): void;
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.14",
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 {};