ng-virtual-list 16.0.1 → 16.0.2
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/esm2022/lib/components/ng-virtual-list-item.component.mjs +85 -0
- package/esm2022/lib/const/index.mjs +34 -0
- package/esm2022/lib/enums/direction.mjs +2 -0
- package/esm2022/lib/enums/directions.mjs +18 -0
- package/esm2022/lib/enums/index.mjs +3 -0
- package/esm2022/lib/models/collection.model.mjs +3 -0
- package/esm2022/lib/models/index.mjs +2 -0
- package/esm2022/lib/models/item.model.mjs +3 -0
- package/esm2022/lib/models/render-collection.model.mjs +3 -0
- package/esm2022/lib/models/render-item-config.model.mjs +2 -0
- package/esm2022/lib/models/render-item.model.mjs +3 -0
- package/esm2022/lib/models/sticky-map.model.mjs +2 -0
- package/esm2022/lib/ng-virtual-list.component.mjs +516 -0
- package/esm2022/lib/ng-virtual-list.module.mjs +20 -0
- package/esm2022/lib/types/id.mjs +2 -0
- package/esm2022/lib/types/index.mjs +2 -0
- package/esm2022/lib/types/rect.mjs +2 -0
- package/esm2022/lib/types/size.mjs +2 -0
- package/esm2022/lib/utils/cacheMap.mjs +52 -0
- package/esm2022/lib/utils/debounce.mjs +31 -0
- package/esm2022/lib/utils/eventEmitter.mjs +105 -0
- package/esm2022/lib/utils/index.mjs +7 -0
- package/esm2022/lib/utils/isDirection.mjs +15 -0
- package/esm2022/lib/utils/toggleClassName.mjs +15 -0
- package/esm2022/lib/utils/trackBox.mjs +355 -0
- package/esm2022/lib/utils/tracker.mjs +109 -0
- package/esm2022/ng-virtual-list.mjs +5 -0
- package/esm2022/public-api.mjs +8 -0
- package/fesm2022/ng-virtual-list.mjs +17 -16
- package/fesm2022/ng-virtual-list.mjs.map +1 -1
- package/lib/components/ng-virtual-list-item.component.d.ts +4 -4
- package/lib/const/index.d.ts +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { NgVirtualListComponent } from './ng-virtual-list.component';
|
|
4
|
+
import { NgVirtualListItemComponent } from './components/ng-virtual-list-item.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class NgVirtualListModule {
|
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgVirtualListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: NgVirtualListModule, declarations: [NgVirtualListComponent, NgVirtualListItemComponent], imports: [CommonModule], exports: [NgVirtualListComponent] });
|
|
9
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgVirtualListModule, imports: [CommonModule] });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgVirtualListModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [NgVirtualListComponent, NgVirtualListItemComponent],
|
|
15
|
+
exports: [NgVirtualListComponent],
|
|
16
|
+
imports: [CommonModule],
|
|
17
|
+
schemas: [NO_ERRORS_SCHEMA],
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmlydHVhbC1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL25nLXZpcnR1YWwtbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBUXpGLE1BQU0sT0FBTyxtQkFBbUI7d0dBQW5CLG1CQUFtQjt5R0FBbkIsbUJBQW1CLGlCQUxmLHNCQUFzQixFQUFFLDBCQUEwQixhQUV2RCxZQUFZLGFBRFosc0JBQXNCO3lHQUlyQixtQkFBbUIsWUFIcEIsWUFBWTs7NEZBR1gsbUJBQW1CO2tCQU4vQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ1ZpcnR1YWxMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9uZy12aXJ0dWFsLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmctdmlydHVhbC1saXN0LWl0ZW0uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTmdWaXJ0dWFsTGlzdENvbXBvbmVudCwgTmdWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtOZ1ZpcnR1YWxMaXN0Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1ZpcnR1YWxMaXN0TW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi90eXBlcy9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIElkZW50aWZpZXIgdHlwZVxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi9tYWluL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3R5cGVzL2lkLnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBHcmViZW5uaWtvdlxyXG4gKiBAZW1haWwgZGpvbm55eEBnbWFpbC5jb21cclxuICovXHJcbmV4cG9ydCB0eXBlIElkID0gc3RyaW5nIHwgbnVtYmVyOyJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWQgfSBmcm9tICcuL2lkJztcclxuaW1wb3J0IHsgSVNpemUgfSBmcm9tICcuL3NpemUnO1xyXG5pbXBvcnQgeyBJUmVjdCB9IGZyb20gJy4vcmVjdCc7XHJcblxyXG5leHBvcnQgdHlwZSB7XHJcbiAgICBJZCxcclxuICAgIElTaXplLFxyXG4gICAgSVJlY3QsXHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3R5cGVzL3JlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTaXplIH0gZnJvbSBcIi4vc2l6ZVwiO1xyXG5cclxuLyoqXHJcbiAqIFJlY3Rhbmd1bGFyIGFyZWEgaW50ZXJmYWNlXHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iL21haW4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdHlwZXMvcmVjdC50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElSZWN0IGV4dGVuZHMgSVNpemUge1xyXG4gICAgLyoqXHJcbiAgICAgKiBYIGNvb3JkaW5hdGUuXHJcbiAgICAgKi9cclxuICAgIHg6IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogWSBjb29yZGluYXRlLlxyXG4gICAgICovXHJcbiAgICB5OiBudW1iZXI7XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3R5cGVzL3NpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBcmVhIGFyZWEgSW50ZXJmYWNlXHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iL21haW4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdHlwZXMvc2l6ZS50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElTaXplIHtcclxuICAgIC8qKlxyXG4gICAgICogV2lkdGggdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqIEhlaWdodCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgaGVpZ2h0OiBudW1iZXI7XHJcbn0iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { EventEmitter } from "./eventEmitter";
|
|
2
|
+
/**
|
|
3
|
+
* Cache map.
|
|
4
|
+
* Emits a change event on each mutation.
|
|
5
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/main/projects/ng-virtual-list/src/lib/utils/cacheMap.ts
|
|
6
|
+
* @author Evgenii Grebennikov
|
|
7
|
+
* @email djonnyx@gmail.com
|
|
8
|
+
*/
|
|
9
|
+
export class CacheMap extends EventEmitter {
|
|
10
|
+
_map = new Map();
|
|
11
|
+
_version = 0;
|
|
12
|
+
_previouseFullHeigh = 0;
|
|
13
|
+
_delta = 0;
|
|
14
|
+
get delta() {
|
|
15
|
+
return this._delta;
|
|
16
|
+
}
|
|
17
|
+
get version() {
|
|
18
|
+
return this._version;
|
|
19
|
+
}
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
}
|
|
23
|
+
bumpVersion() {
|
|
24
|
+
this._version = this._version === Number.MAX_SAFE_INTEGER ? 0 : this._version + 1;
|
|
25
|
+
}
|
|
26
|
+
fireChange() {
|
|
27
|
+
this.dispatch('change', this.version);
|
|
28
|
+
}
|
|
29
|
+
set(id, bounds) {
|
|
30
|
+
if (this._map.has(id) && JSON.stringify(this._map.get(id)) === JSON.stringify(bounds)) {
|
|
31
|
+
return this._map;
|
|
32
|
+
}
|
|
33
|
+
const v = this._map.set(id, bounds);
|
|
34
|
+
this.bumpVersion();
|
|
35
|
+
this.fireChange();
|
|
36
|
+
return v;
|
|
37
|
+
}
|
|
38
|
+
has(id) {
|
|
39
|
+
return this._map.has(id);
|
|
40
|
+
}
|
|
41
|
+
get(id) {
|
|
42
|
+
return this._map.get(id);
|
|
43
|
+
}
|
|
44
|
+
forEach(callbackfn, thisArg) {
|
|
45
|
+
return this._map.forEach(callbackfn, thisArg);
|
|
46
|
+
}
|
|
47
|
+
dispose() {
|
|
48
|
+
super.dispose();
|
|
49
|
+
this._map.clear();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9jYWNoZU1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFlOUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLFFBQWtGLFNBQVEsWUFBa0I7SUFDM0csSUFBSSxHQUFHLElBQUksR0FBRyxFQUFRLENBQUM7SUFFdkIsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUVyQixtQkFBbUIsR0FBVyxDQUFDLENBQUM7SUFFaEMsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUU3QixJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFUyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVTLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxHQUFHLENBQUMsRUFBSyxFQUFFLE1BQVM7UUFDaEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDcEI7UUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxHQUFHLENBQUMsRUFBSztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxDQUFDLFVBQXNELEVBQUUsT0FBYTtRQUN6RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVEsT0FBTztRQUNaLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCIuL2V2ZW50RW1pdHRlclwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2FjaGVNYXA8SSA9IGFueSwgQiA9IGFueT4ge1xyXG4gICAgc2V0OiAoaWQ6IEksIGJvdW5kczogQikgPT4gTWFwPEksIEI+O1xyXG4gICAgaGFzOiAoaWQ6IEkpID0+IGJvb2xlYW47XHJcbiAgICBnZXQ6IChpZDogSSkgPT4gQiB8IHVuZGVmaW5lZDtcclxuICAgIGZvckVhY2g6IChjYWxsYmFja2ZuOiAodmFsdWU6IEIsIGtleTogSSwgbWFwOiBNYXA8SSwgQj4pID0+IHZvaWQsIHRoaXNBcmc/OiBhbnkpID0+IHZvaWQ7XHJcbn1cclxuXHJcbnR5cGUgQ2FjaGVNYXBFdmVudHMgPSAnY2hhbmdlJztcclxuXHJcbnR5cGUgT25DaGFuZ2VFdmVudExpc3RlbmVyID0gKHZlcnNpb246IG51bWJlcikgPT4gdm9pZDtcclxuXHJcbnR5cGUgQ2FjaGVNYXBMaXN0ZW5lcnMgPSBPbkNoYW5nZUV2ZW50TGlzdGVuZXI7XHJcblxyXG4vKipcclxuICogQ2FjaGUgbWFwLlxyXG4gKiBFbWl0cyBhIGNoYW5nZSBldmVudCBvbiBlYWNoIG11dGF0aW9uLlxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi9tYWluL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL2NhY2hlTWFwLnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBHcmViZW5uaWtvdlxyXG4gKiBAZW1haWwgZGpvbm55eEBnbWFpbC5jb21cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDYWNoZU1hcDxJID0gc3RyaW5nIHwgbnVtYmVyLCBCID0gYW55LCBFID0gQ2FjaGVNYXBFdmVudHMsIEwgPSBDYWNoZU1hcExpc3RlbmVycz4gZXh0ZW5kcyBFdmVudEVtaXR0ZXI8RSwgTD4gaW1wbGVtZW50cyBJQ2FjaGVNYXAge1xyXG4gICAgcHJvdGVjdGVkIF9tYXAgPSBuZXcgTWFwPEksIEI+KCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF92ZXJzaW9uOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIHByb3RlY3RlZCBfcHJldmlvdXNlRnVsbEhlaWdoOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIHByb3RlY3RlZCBfZGVsdGE6IG51bWJlciA9IDA7XHJcblxyXG4gICAgZ2V0IGRlbHRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZWx0YTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmVyc2lvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmVyc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBidW1wVmVyc2lvbigpIHtcclxuICAgICAgICB0aGlzLl92ZXJzaW9uID0gdGhpcy5fdmVyc2lvbiA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgPyAwIDogdGhpcy5fdmVyc2lvbiArIDE7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGZpcmVDaGFuZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwYXRjaCgnY2hhbmdlJyBhcyBFLCB0aGlzLnZlcnNpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldChpZDogSSwgYm91bmRzOiBCKTogTWFwPEksIEI+IHtcclxuICAgICAgICBpZiAodGhpcy5fbWFwLmhhcyhpZCkgJiYgSlNPTi5zdHJpbmdpZnkodGhpcy5fbWFwLmdldChpZCkpID09PSBKU09OLnN0cmluZ2lmeShib3VuZHMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2ID0gdGhpcy5fbWFwLnNldChpZCwgYm91bmRzKTtcclxuXHJcbiAgICAgICAgdGhpcy5idW1wVmVyc2lvbigpO1xyXG5cclxuICAgICAgICB0aGlzLmZpcmVDaGFuZ2UoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICB9XHJcblxyXG4gICAgaGFzKGlkOiBJKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5oYXMoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldChpZDogSSk6IEIgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXAuZ2V0KGlkKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3JFYWNoKGNhbGxiYWNrZm46ICh2YWx1ZTogQiwga2V5OiBJLCBtYXA6IE1hcDxJLCBCPikgPT4gdm9pZCwgdGhpc0FyZz86IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tYXAuZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBkaXNwb3NlKCkge1xyXG4gICAgICAgIHN1cGVyLmRpc3Bvc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWFwLmNsZWFyKCk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple debounce function.
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/main/projects/ng-virtual-list/src/lib/utils/debounce.ts
|
|
4
|
+
* @author Evgenii Grebennikov
|
|
5
|
+
* @email djonnyx@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
export const debounce = (cb, debounceTime = 0) => {
|
|
8
|
+
let timeout;
|
|
9
|
+
const dispose = () => {
|
|
10
|
+
if (timeout !== undefined) {
|
|
11
|
+
clearTimeout(timeout);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const execute = (...args) => {
|
|
15
|
+
dispose();
|
|
16
|
+
timeout = setTimeout(() => {
|
|
17
|
+
cb(...args);
|
|
18
|
+
}, debounceTime);
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
/**
|
|
22
|
+
* Call handling method
|
|
23
|
+
*/
|
|
24
|
+
execute,
|
|
25
|
+
/**
|
|
26
|
+
* Method of destroying handlers
|
|
27
|
+
*/
|
|
28
|
+
dispose,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9kZWJvdW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQWlDLEVBQUUsZUFBdUIsQ0FBQyxFQUFFLEVBQUU7SUFDcEYsSUFBSSxPQUFZLENBQUM7SUFDakIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN2QixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDLENBQUE7SUFDRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBZ0IsRUFBRSxFQUFFO1FBQ3BDLE9BQU8sRUFBRSxDQUFDO1FBRVYsT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUNGLE9BQU87UUFDSDs7V0FFRztRQUNILE9BQU87UUFDUDs7V0FFRztRQUNILE9BQU87S0FDVixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNpbXBsZSBkZWJvdW5jZSBmdW5jdGlvbi5cclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvbWFpbi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9kZWJvdW5jZS50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZGVib3VuY2UgPSAoY2I6ICguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiB2b2lkLCBkZWJvdW5jZVRpbWU6IG51bWJlciA9IDApID0+IHtcclxuICAgIGxldCB0aW1lb3V0OiBhbnk7XHJcbiAgICBjb25zdCBkaXNwb3NlID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aW1lb3V0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGV4ZWN1dGUgPSAoLi4uYXJnczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgICAgIGRpc3Bvc2UoKTtcclxuXHJcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYiguLi5hcmdzKTtcclxuICAgICAgICB9LCBkZWJvdW5jZVRpbWUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogIENhbGwgaGFuZGxpbmcgbWV0aG9kXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZXhlY3V0ZSxcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBNZXRob2Qgb2YgZGVzdHJveWluZyBoYW5kbGVyc1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGRpc3Bvc2UsXHJcbiAgICB9O1xyXG59O1xyXG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple event emitter
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/main/projects/ng-virtual-list/src/lib/utils/eventEmitter.ts
|
|
4
|
+
* @author Evgenii Grebennikov
|
|
5
|
+
* @email djonnyx@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
export class EventEmitter {
|
|
8
|
+
_listeners = {};
|
|
9
|
+
_disposed = false;
|
|
10
|
+
constructor() { }
|
|
11
|
+
/**
|
|
12
|
+
* Emits the event
|
|
13
|
+
*/
|
|
14
|
+
dispatch(event, ...args) {
|
|
15
|
+
const ctx = this;
|
|
16
|
+
const listeners = this._listeners[event];
|
|
17
|
+
if (Array.isArray(listeners)) {
|
|
18
|
+
for (let i = 0, l = listeners.length; i < l; i++) {
|
|
19
|
+
const listener = listeners[i];
|
|
20
|
+
if (listener) {
|
|
21
|
+
listener.apply(ctx, args);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Emits the event async
|
|
28
|
+
*/
|
|
29
|
+
dispatchAsync(event, ...args) {
|
|
30
|
+
queueMicrotask(() => {
|
|
31
|
+
if (this._disposed) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.dispatch(event, ...args);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if the event listener is already subscribed.
|
|
39
|
+
*/
|
|
40
|
+
hasEventListener(eventName, handler) {
|
|
41
|
+
const event = eventName;
|
|
42
|
+
if (this._listeners.hasOwnProperty(event)) {
|
|
43
|
+
const listeners = this._listeners[event];
|
|
44
|
+
const index = listeners.findIndex(v => v === handler);
|
|
45
|
+
if (index > -1) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Add event listener
|
|
53
|
+
*/
|
|
54
|
+
addEventListener(eventName, handler) {
|
|
55
|
+
const event = eventName;
|
|
56
|
+
if (!this._listeners.hasOwnProperty(event)) {
|
|
57
|
+
this._listeners[event] = [];
|
|
58
|
+
}
|
|
59
|
+
this._listeners[event].push(handler);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Remove event listener
|
|
63
|
+
*/
|
|
64
|
+
removeEventListener(eventName, handler) {
|
|
65
|
+
const event = eventName;
|
|
66
|
+
if (!this._listeners.hasOwnProperty(event)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const listeners = this._listeners[event], index = listeners.findIndex(v => v === handler);
|
|
70
|
+
if (index > -1) {
|
|
71
|
+
listeners.splice(index, 1);
|
|
72
|
+
if (listeners.length === 0) {
|
|
73
|
+
delete this._listeners[event];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Remove all listeners
|
|
79
|
+
*/
|
|
80
|
+
removeAllListeners() {
|
|
81
|
+
const events = Object.keys(this._listeners);
|
|
82
|
+
while (events.length > 0) {
|
|
83
|
+
const event = events.pop();
|
|
84
|
+
if (event) {
|
|
85
|
+
const listeners = this._listeners[event];
|
|
86
|
+
if (Array.isArray(listeners)) {
|
|
87
|
+
while (listeners.length > 0) {
|
|
88
|
+
const listener = listeners.pop();
|
|
89
|
+
if (listener) {
|
|
90
|
+
this.removeEventListener(event, listener);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Method of destroying handlers
|
|
99
|
+
*/
|
|
100
|
+
dispose() {
|
|
101
|
+
this._disposed = true;
|
|
102
|
+
this.removeAllListeners();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRFbWl0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvZXZlbnRFbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFDYixVQUFVLEdBRWQsRUFBRSxDQUFDO0lBRUcsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUVyQyxnQkFBZ0IsQ0FBQztJQUVqQjs7T0FFRztJQUNILFFBQVEsQ0FBQyxLQUFRLEVBQUUsR0FBRyxJQUFnQjtRQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFlLENBQUMsQ0FBQztRQUNuRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDMUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDOUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLFFBQVEsRUFBRTtvQkFDVixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDN0I7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYSxDQUFDLEtBQVEsRUFBRSxHQUFHLElBQWdCO1FBQ3ZDLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoQixPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsU0FBWSxFQUFFLE9BQVU7UUFDckMsTUFBTSxLQUFLLEdBQUcsU0FBbUIsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQztZQUN0RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDWixPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxTQUFZLEVBQUUsT0FBVTtRQUNyQyxNQUFNLEtBQUssR0FBRyxTQUFtQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQXdCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxTQUFZLEVBQUUsT0FBVTtRQUN4QyxNQUFNLEtBQUssR0FBRyxTQUFtQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QyxPQUFPO1NBQ1Y7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQzFGLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ1osU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFM0IsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDZCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMzQixJQUFJLEtBQUssRUFBRTtnQkFDUCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3pCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDakMsSUFBSSxRQUFRLEVBQUU7NEJBQ1YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQVUsRUFBRSxRQUFhLENBQUMsQ0FBQzt5QkFDdkQ7cUJBQ0o7aUJBQ0o7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRFdmVudEhhbmRsZXIgPSAoLi4uYXJnczogQXJyYXk8YW55PikgPT4gdm9pZDtcclxuXHJcbi8qKlxyXG4gKiBTaW1wbGUgZXZlbnQgZW1pdHRlclxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi9tYWluL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL2V2ZW50RW1pdHRlci50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXZlbnRFbWl0dGVyPEUgPSBzdHJpbmcsIEggPSBURXZlbnRIYW5kbGVyPiB7XHJcbiAgICBwcml2YXRlIF9saXN0ZW5lcnM6IHtcclxuICAgICAgICBbZXZlbnROYW1lOiBzdHJpbmddOiBBcnJheTxURXZlbnRIYW5kbGVyPixcclxuICAgIH0gPSB7fTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2Rpc3Bvc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXRzIHRoZSBldmVudFxyXG4gICAgICovXHJcbiAgICBkaXNwYXRjaChldmVudDogRSwgLi4uYXJnczogQXJyYXk8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGN0eCA9IHRoaXM7XHJcbiAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzW2V2ZW50IGFzIHN0cmluZ107XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobGlzdGVuZXJzKSkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IGxpc3RlbmVycy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gbGlzdGVuZXJzW2ldO1xyXG4gICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGlzdGVuZXIuYXBwbHkoY3R4LCBhcmdzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtaXRzIHRoZSBldmVudCBhc3luY1xyXG4gICAgICovXHJcbiAgICBkaXNwYXRjaEFzeW5jKGV2ZW50OiBFLCAuLi5hcmdzOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZGlzcG9zZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRpc3BhdGNoKGV2ZW50LCAuLi5hcmdzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYWxyZWFkeSBzdWJzY3JpYmVkLlxyXG4gICAgICovXHJcbiAgICBoYXNFdmVudExpc3RlbmVyKGV2ZW50TmFtZTogRSwgaGFuZGxlcjogSCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50ID0gZXZlbnROYW1lIGFzIHN0cmluZztcclxuICAgICAgICBpZiAodGhpcy5fbGlzdGVuZXJzLmhhc093blByb3BlcnR5KGV2ZW50KSkge1xyXG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnNbZXZlbnRdO1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IGxpc3RlbmVycy5maW5kSW5kZXgodiA9PiB2ID09PSBoYW5kbGVyKTtcclxuICAgICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGV2ZW50IGxpc3RlbmVyXHJcbiAgICAgKi9cclxuICAgIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lOiBFLCBoYW5kbGVyOiBIKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBldmVudE5hbWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIGlmICghdGhpcy5fbGlzdGVuZXJzLmhhc093blByb3BlcnR5KGV2ZW50KSkge1xyXG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5lcnNbZXZlbnRdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2xpc3RlbmVyc1tldmVudF0ucHVzaChoYW5kbGVyIGFzIFRFdmVudEhhbmRsZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIGV2ZW50IGxpc3RlbmVyXHJcbiAgICAgKi9cclxuICAgIHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lOiBFLCBoYW5kbGVyOiBIKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBldmVudE5hbWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIGlmICghdGhpcy5fbGlzdGVuZXJzLmhhc093blByb3BlcnR5KGV2ZW50KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2xpc3RlbmVyc1tldmVudF0sIGluZGV4ID0gbGlzdGVuZXJzLmZpbmRJbmRleCh2ID0+IHYgPT09IGhhbmRsZXIpO1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGxpc3RlbmVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbZXZlbnRdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIGFsbCBsaXN0ZW5lcnNcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlQWxsTGlzdGVuZXJzKCkge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IE9iamVjdC5rZXlzKHRoaXMuX2xpc3RlbmVycyk7XHJcbiAgICAgICAgd2hpbGUgKGV2ZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gZXZlbnRzLnBvcCgpO1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2xpc3RlbmVyc1tldmVudF07XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0ZW5lcnMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGxpc3RlbmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyID0gbGlzdGVuZXJzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCBhcyBFLCBsaXN0ZW5lciBhcyBIKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCBvZiBkZXN0cm95aW5nIGhhbmRsZXJzXHJcbiAgICAgKi9cclxuICAgIGRpc3Bvc2UoKSB7XHJcbiAgICAgICAgdGhpcy5fZGlzcG9zZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
export { isDirection, debounce, toggleClassName, TrackBox, Tracker, };
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0QyxPQUFPLEVBQ0gsV0FBVyxFQUNYLFFBQVEsRUFDUixlQUFlLEVBQ2YsUUFBUSxFQUNSLE9BQU8sR0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEaXJlY3Rpb24gfSBmcm9tIFwiLi9pc0RpcmVjdGlvblwiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gXCIuL2RlYm91bmNlXCI7XHJcbmltcG9ydCB7IHRvZ2dsZUNsYXNzTmFtZSB9IGZyb20gJy4vdG9nZ2xlQ2xhc3NOYW1lJztcclxuaW1wb3J0IHsgVHJhY2tlciB9IGZyb20gXCIuL3RyYWNrZXJcIjtcclxuaW1wb3J0IHsgVHJhY2tCb3ggfSBmcm9tIFwiLi90cmFja0JveFwiO1xyXG5cclxuZXhwb3J0IHtcclxuICAgIGlzRGlyZWN0aW9uLFxyXG4gICAgZGVib3VuY2UsXHJcbiAgICB0b2dnbGVDbGFzc05hbWUsXHJcbiAgICBUcmFja0JveCxcclxuICAgIFRyYWNrZXIsXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Directions } from "../enums";
|
|
2
|
+
const HORIZONTAL_ALIASES = [Directions.HORIZONTAL, 'horizontal'], VERTICAL_ALIASES = [Directions.VERTICAL, 'vertical'];
|
|
3
|
+
/**
|
|
4
|
+
* Determines the axis membership of a virtual list
|
|
5
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/main/projects/ng-virtual-list/src/lib/utils/isDirection.ts
|
|
6
|
+
* @author Evgenii Grebennikov
|
|
7
|
+
* @email djonnyx@gmail.com
|
|
8
|
+
*/
|
|
9
|
+
export const isDirection = (src, expected) => {
|
|
10
|
+
if (HORIZONTAL_ALIASES.includes(expected)) {
|
|
11
|
+
return HORIZONTAL_ALIASES.includes(src);
|
|
12
|
+
}
|
|
13
|
+
return VERTICAL_ALIASES.includes(src);
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNEaXJlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9pc0RpcmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUM1RCxnQkFBZ0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFekQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFjLEVBQUUsUUFBbUIsRUFBVyxFQUFFO0lBQ3hFLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzNDO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25zIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcblxyXG5jb25zdCBIT1JJWk9OVEFMX0FMSUFTRVMgPSBbRGlyZWN0aW9ucy5IT1JJWk9OVEFMLCAnaG9yaXpvbnRhbCddLFxyXG4gICAgVkVSVElDQUxfQUxJQVNFUyA9IFtEaXJlY3Rpb25zLlZFUlRJQ0FMLCAndmVydGljYWwnXTtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHRoZSBheGlzIG1lbWJlcnNoaXAgb2YgYSB2aXJ0dWFsIGxpc3RcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvbWFpbi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9pc0RpcmVjdGlvbi50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNEaXJlY3Rpb24gPSAoc3JjOiBEaXJlY3Rpb24sIGV4cGVjdGVkOiBEaXJlY3Rpb24pOiBib29sZWFuID0+IHtcclxuICAgIGlmIChIT1JJWk9OVEFMX0FMSUFTRVMuaW5jbHVkZXMoZXhwZWN0ZWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIEhPUklaT05UQUxfQUxJQVNFUy5pbmNsdWRlcyhzcmMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFZFUlRJQ0FMX0FMSUFTRVMuaW5jbHVkZXMoc3JjKTtcclxufSJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Switch css classes
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/main/projects/ng-virtual-list/src/lib/utils/toggleClassName.ts
|
|
4
|
+
* @author Evgenii Grebennikov
|
|
5
|
+
* @email djonnyx@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
export const toggleClassName = (el, className, remove = false) => {
|
|
8
|
+
if (!el.classList.contains(className)) {
|
|
9
|
+
el.classList.add(className);
|
|
10
|
+
}
|
|
11
|
+
else if (remove) {
|
|
12
|
+
el.classList.remove(className);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlQ2xhc3NOYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvdG9nZ2xlQ2xhc3NOYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsRUFBZSxFQUFFLFNBQWlCLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxFQUFFO0lBQ2xGLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNuQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMvQjtTQUFNLElBQUksTUFBTSxFQUFFO1FBQ2YsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDbEM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLyoqXHJcbiAqIFN3aXRjaCBjc3MgY2xhc3Nlc1xyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi9tYWluL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL3RvZ2dsZUNsYXNzTmFtZS50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdG9nZ2xlQ2xhc3NOYW1lID0gKGVsOiBIVE1MRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcsIHJlbW92ZSA9IGZhbHNlKSA9PiB7XHJcbiAgICBpZiAoIWVsLmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XHJcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChyZW1vdmUpIHtcclxuICAgICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSk7XHJcbiAgICB9XHJcbn07XHJcbiJdfQ==
|