ng-virtual-list 16.4.2 → 16.4.3
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 +35 -2
- package/esm2020/lib/components/ng-virtual-list-item.component.mjs +131 -0
- package/esm2020/lib/const/index.mjs +44 -0
- package/esm2020/lib/enums/direction.mjs +2 -0
- package/esm2020/lib/enums/directions.mjs +18 -0
- package/esm2020/lib/enums/index.mjs +4 -0
- package/esm2020/lib/enums/snapping-method.mjs +2 -0
- package/esm2020/lib/enums/snapping-methods.mjs +18 -0
- package/esm2020/lib/models/base-virtual-list-item-component.mjs +9 -0
- package/esm2020/lib/models/collection.model.mjs +3 -0
- package/esm2020/lib/models/component.model.mjs +2 -0
- package/esm2020/lib/models/index.mjs +2 -0
- package/esm2020/lib/models/item.model.mjs +2 -0
- package/esm2020/lib/models/render-collection.model.mjs +3 -0
- package/esm2020/lib/models/render-item-config.model.mjs +2 -0
- package/esm2020/lib/models/render-item.model.mjs +3 -0
- package/esm2020/lib/models/scroll-direction.model.mjs +2 -0
- package/esm2020/lib/models/scroll-event.model.mjs +2 -0
- package/esm2020/lib/models/sticky-map.model.mjs +2 -0
- package/esm2020/lib/ng-virtual-list.component.mjs +675 -0
- package/esm2020/lib/ng-virtual-list.module.mjs +20 -0
- package/esm2020/lib/types/id.mjs +2 -0
- package/esm2020/lib/types/index.mjs +2 -0
- package/esm2020/lib/types/rect.mjs +2 -0
- package/esm2020/lib/types/size.mjs +2 -0
- package/esm2020/lib/utils/browser.mjs +3 -0
- package/esm2020/lib/utils/buffer-interpolation.mjs +27 -0
- package/esm2020/lib/utils/cacheMap.mjs +167 -0
- package/esm2020/lib/utils/debounce.mjs +31 -0
- package/esm2020/lib/utils/disposableComponent.mjs +29 -0
- package/esm2020/lib/utils/eventEmitter.mjs +106 -0
- package/esm2020/lib/utils/index.mjs +5 -0
- package/esm2020/lib/utils/isDirection.mjs +15 -0
- package/esm2020/lib/utils/scrollEvent.mjs +42 -0
- package/esm2020/lib/utils/snapping-method.mjs +9 -0
- package/esm2020/lib/utils/toggleClassName.mjs +15 -0
- package/esm2020/lib/utils/trackBox.mjs +756 -0
- package/esm2020/lib/utils/tracker.mjs +134 -0
- package/esm2020/ng-virtual-list.mjs +5 -0
- package/esm2020/public-api.mjs +10 -0
- package/fesm2015/ng-virtual-list.mjs +2224 -0
- package/fesm2015/ng-virtual-list.mjs.map +1 -0
- package/fesm2020/ng-virtual-list.mjs +2229 -0
- package/fesm2020/ng-virtual-list.mjs.map +1 -0
- package/lib/utils/disposableComponent.d.ts +15 -0
- package/package.json +1 -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
|
+
}
|
|
8
|
+
NgVirtualListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgVirtualListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
NgVirtualListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: NgVirtualListModule, declarations: [NgVirtualListComponent, NgVirtualListItemComponent], imports: [CommonModule], exports: [NgVirtualListComponent] });
|
|
10
|
+
NgVirtualListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgVirtualListModule, imports: [CommonModule] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdmlydHVhbC1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL25nLXZpcnR1YWwtbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBUXpGLE1BQU0sT0FBTyxtQkFBbUI7O2lIQUFuQixtQkFBbUI7a0hBQW5CLG1CQUFtQixpQkFMZixzQkFBc0IsRUFBRSwwQkFBMEIsYUFFdkQsWUFBWSxhQURaLHNCQUFzQjtrSEFJckIsbUJBQW1CLFlBSHBCLFlBQVk7NEZBR1gsbUJBQW1CO2tCQU4vQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO29CQUNsRSxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ1ZpcnR1YWxMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9uZy12aXJ0dWFsLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmctdmlydHVhbC1saXN0LWl0ZW0uY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTmdWaXJ0dWFsTGlzdENvbXBvbmVudCwgTmdWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtOZ1ZpcnR1YWxMaXN0Q29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1ZpcnR1YWxMaXN0TW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi90eXBlcy9pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIElkZW50aWZpZXIgdHlwZVxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xNS54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3R5cGVzL2lkLnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBHcmViZW5uaWtvdlxyXG4gKiBAZW1haWwgZGpvbm55eEBnbWFpbC5jb21cclxuICovXHJcbmV4cG9ydCB0eXBlIElkID0gc3RyaW5nIHwgbnVtYmVyOyJdfQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3R5cGVzL3JlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTaXplIH0gZnJvbSBcIi4vc2l6ZVwiO1xyXG5cclxuLyoqXHJcbiAqIFJlY3Rhbmd1bGFyIGFyZWEgaW50ZXJmYWNlXHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iLzE1LngvcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdHlwZXMvcmVjdC50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElSZWN0IGV4dGVuZHMgSVNpemUge1xyXG4gICAgLyoqXHJcbiAgICAgKiBYIGNvb3JkaW5hdGUuXHJcbiAgICAgKi9cclxuICAgIHg6IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogWSBjb29yZGluYXRlLlxyXG4gICAgICovXHJcbiAgICB5OiBudW1iZXI7XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3R5cGVzL3NpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBcmVhIGFyZWEgSW50ZXJmYWNlXHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iLzE1LngvcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdHlwZXMvc2l6ZS50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElTaXplIHtcclxuICAgIC8qKlxyXG4gICAgICogV2lkdGggdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHdpZHRoOiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqIEhlaWdodCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgaGVpZ2h0OiBudW1iZXI7XHJcbn0iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export const IS_FIREFOX = navigator.userAgent.toLowerCase().includes('firefox');
|
|
2
|
+
export const FIREFOX_SCROLLBAR_OVERLAP_SIZE = 12;
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBJU19GSVJFRk9YID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdmaXJlZm94Jyk7XHJcblxyXG5leHBvcnQgY29uc3QgRklSRUZPWF9TQ1JPTExCQVJfT1ZFUkxBUF9TSVpFID0gMTI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const DEFAULT_EXTRA = {
|
|
2
|
+
extremumThreshold: 2,
|
|
3
|
+
bufferSize: 10,
|
|
4
|
+
};
|
|
5
|
+
export const bufferInterpolation = (currentBufferValue, array, value, extra) => {
|
|
6
|
+
const { extremumThreshold = DEFAULT_EXTRA.extremumThreshold, bufferSize = DEFAULT_EXTRA.bufferSize, } = extra ?? DEFAULT_EXTRA;
|
|
7
|
+
if (currentBufferValue < value) {
|
|
8
|
+
let i = 0;
|
|
9
|
+
while (i < extremumThreshold) {
|
|
10
|
+
array.push(value);
|
|
11
|
+
i++;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
array.push(value);
|
|
16
|
+
}
|
|
17
|
+
while (array.length >= bufferSize) {
|
|
18
|
+
array.shift();
|
|
19
|
+
}
|
|
20
|
+
const l = array.length;
|
|
21
|
+
let buffer = 0;
|
|
22
|
+
for (let i = 0; i < l; i++) {
|
|
23
|
+
buffer += array[i];
|
|
24
|
+
}
|
|
25
|
+
return Math.ceil(buffer / l);
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyLWludGVycG9sYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9idWZmZXItaW50ZXJwb2xhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsR0FBRztJQUNsQixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLFVBQVUsRUFBRSxFQUFFO0NBQ2pCLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLGtCQUEwQixFQUFFLEtBQW9CLEVBQUUsS0FBYSxFQUFFLEtBQXFCLEVBQUUsRUFBRTtJQUMxSCxNQUFNLEVBQ0YsaUJBQWlCLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixFQUNuRCxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsR0FDeEMsR0FBRyxLQUFLLElBQUksYUFBYSxDQUFDO0lBRTNCLElBQUksa0JBQWtCLEdBQUcsS0FBSyxFQUFFO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sQ0FBQyxHQUFHLGlCQUFpQixFQUFFO1lBQzFCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxFQUFFLENBQUM7U0FDUDtLQUNKO1NBQU07UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3JCO0lBRUQsT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLFVBQVUsRUFBRTtRQUMvQixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDakI7SUFFRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0QjtJQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgREVGQVVMVF9FWFRSQSA9IHtcclxuICAgIGV4dHJlbXVtVGhyZXNob2xkOiAyLFxyXG4gICAgYnVmZmVyU2l6ZTogMTAsXHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElFeHRyYU9wdGlvbnMge1xyXG4gICAgZXh0cmVtdW1UaHJlc2hvbGQ/OiBudW1iZXI7XHJcbiAgICBidWZmZXJTaXplPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgYnVmZmVySW50ZXJwb2xhdGlvbiA9IChjdXJyZW50QnVmZmVyVmFsdWU6IG51bWJlciwgYXJyYXk6IEFycmF5PG51bWJlcj4sIHZhbHVlOiBudW1iZXIsIGV4dHJhPzogSUV4dHJhT3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICAgIGV4dHJlbXVtVGhyZXNob2xkID0gREVGQVVMVF9FWFRSQS5leHRyZW11bVRocmVzaG9sZCxcclxuICAgICAgICBidWZmZXJTaXplID0gREVGQVVMVF9FWFRSQS5idWZmZXJTaXplLFxyXG4gICAgfSA9IGV4dHJhID8/IERFRkFVTFRfRVhUUkE7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRCdWZmZXJWYWx1ZSA8IHZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGkgPSAwO1xyXG4gICAgICAgIHdoaWxlIChpIDwgZXh0cmVtdW1UaHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgYXJyYXkucHVzaCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGFycmF5LnB1c2godmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHdoaWxlIChhcnJheS5sZW5ndGggPj0gYnVmZmVyU2l6ZSkge1xyXG4gICAgICAgIGFycmF5LnNoaWZ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbCA9IGFycmF5Lmxlbmd0aDtcclxuICAgIGxldCBidWZmZXIgPSAwO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgYnVmZmVyICs9IGFycmF5W2ldO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBNYXRoLmNlaWwoYnVmZmVyIC8gbCk7XHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { debounce } from "./debounce";
|
|
2
|
+
import { EventEmitter } from "./eventEmitter";
|
|
3
|
+
export class CMap {
|
|
4
|
+
constructor(dict) {
|
|
5
|
+
this._dict = {};
|
|
6
|
+
if (dict) {
|
|
7
|
+
this._dict = { ...dict._dict };
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
get(key) {
|
|
11
|
+
const k = String(key);
|
|
12
|
+
return this._dict[k];
|
|
13
|
+
}
|
|
14
|
+
set(key, value) {
|
|
15
|
+
const k = String(key);
|
|
16
|
+
this._dict[k] = value;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
has(key) {
|
|
20
|
+
return this._dict.hasOwnProperty(String(key));
|
|
21
|
+
}
|
|
22
|
+
delete(key) {
|
|
23
|
+
const k = String(key);
|
|
24
|
+
delete this._dict[k];
|
|
25
|
+
}
|
|
26
|
+
clear() {
|
|
27
|
+
this._dict = {};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const CACHE_BOX_CHANGE_EVENT_NAME = 'change';
|
|
31
|
+
const MAX_SCROLL_DIRECTION_POOL = 50, CLEAR_SCROLL_DIRECTION_TO = 10, DIR_BACK = '-1', DIR_NONE = '0', DIR_FORWARD = '1';
|
|
32
|
+
/**
|
|
33
|
+
* Cache map.
|
|
34
|
+
* Emits a change event on each mutation.
|
|
35
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/cacheMap.ts
|
|
36
|
+
* @author Evgenii Grebennikov
|
|
37
|
+
* @email djonnyx@gmail.com
|
|
38
|
+
*/
|
|
39
|
+
export class CacheMap extends EventEmitter {
|
|
40
|
+
get delta() {
|
|
41
|
+
return this._delta;
|
|
42
|
+
}
|
|
43
|
+
set deltaDirection(v) {
|
|
44
|
+
this._deltaDirection = v;
|
|
45
|
+
this._scrollDirection = this.calcScrollDirection(v);
|
|
46
|
+
}
|
|
47
|
+
get deltaDirection() {
|
|
48
|
+
return this._deltaDirection;
|
|
49
|
+
}
|
|
50
|
+
get scrollDirection() {
|
|
51
|
+
return this._scrollDirection;
|
|
52
|
+
}
|
|
53
|
+
get version() {
|
|
54
|
+
return this._version;
|
|
55
|
+
}
|
|
56
|
+
constructor() {
|
|
57
|
+
super();
|
|
58
|
+
this._map = new CMap();
|
|
59
|
+
this._snapshot = new CMap();
|
|
60
|
+
this._version = 0;
|
|
61
|
+
this._previousVersion = this._version;
|
|
62
|
+
this._delta = 0;
|
|
63
|
+
this._deltaDirection = 0;
|
|
64
|
+
this._scrollDirectionCache = [];
|
|
65
|
+
this._scrollDirection = 0;
|
|
66
|
+
this._clearScrollDirectionDebounce = debounce(() => {
|
|
67
|
+
while (this._scrollDirectionCache.length > CLEAR_SCROLL_DIRECTION_TO) {
|
|
68
|
+
this._scrollDirectionCache.shift();
|
|
69
|
+
}
|
|
70
|
+
}, 10);
|
|
71
|
+
this.lifeCircle();
|
|
72
|
+
}
|
|
73
|
+
changesDetected() {
|
|
74
|
+
return this._version !== this._previousVersion;
|
|
75
|
+
}
|
|
76
|
+
stopLifeCircle() {
|
|
77
|
+
clearTimeout(this._lifeCircleTimeout);
|
|
78
|
+
}
|
|
79
|
+
nextTick(cb) {
|
|
80
|
+
if (this._disposed) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this._lifeCircleTimeout = setTimeout(() => {
|
|
84
|
+
cb();
|
|
85
|
+
});
|
|
86
|
+
return this._lifeCircleTimeout;
|
|
87
|
+
}
|
|
88
|
+
lifeCircle() {
|
|
89
|
+
this.fireChangeIfNeed();
|
|
90
|
+
this.lifeCircleDo();
|
|
91
|
+
}
|
|
92
|
+
lifeCircleDo() {
|
|
93
|
+
this._previousVersion = this._version;
|
|
94
|
+
this.nextTick(() => {
|
|
95
|
+
this.lifeCircle();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
clearScrollDirectionCache() {
|
|
99
|
+
this._clearScrollDirectionDebounce.execute();
|
|
100
|
+
}
|
|
101
|
+
calcScrollDirection(v) {
|
|
102
|
+
while (this._scrollDirectionCache.length >= MAX_SCROLL_DIRECTION_POOL) {
|
|
103
|
+
this._scrollDirectionCache.shift();
|
|
104
|
+
}
|
|
105
|
+
this._scrollDirectionCache.push(v);
|
|
106
|
+
const dict = { [DIR_BACK]: 0, [DIR_NONE]: 0, [DIR_FORWARD]: 0 };
|
|
107
|
+
for (let i = 0, l = this._scrollDirectionCache.length, li = l - 1; i < l; i++) {
|
|
108
|
+
const dir = String(this._scrollDirectionCache[i]);
|
|
109
|
+
dict[dir] += 1;
|
|
110
|
+
if (i === li) {
|
|
111
|
+
for (let d in dict) {
|
|
112
|
+
if (d === String(v)) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
dict[d] -= 1;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
if (dict[DIR_BACK] > dict[DIR_NONE] && dict[DIR_BACK] > dict[DIR_FORWARD]) {
|
|
120
|
+
return -1;
|
|
121
|
+
}
|
|
122
|
+
else if (dict[DIR_FORWARD] > dict[DIR_BACK] && dict[DIR_FORWARD] > dict[DIR_NONE]) {
|
|
123
|
+
return 1;
|
|
124
|
+
}
|
|
125
|
+
return 0;
|
|
126
|
+
}
|
|
127
|
+
bumpVersion() {
|
|
128
|
+
if (this.changesDetected()) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const v = this._version === Number.MAX_SAFE_INTEGER ? 0 : this._version + 1;
|
|
132
|
+
this._version = v;
|
|
133
|
+
}
|
|
134
|
+
fireChangeIfNeed() {
|
|
135
|
+
if (this.changesDetected()) {
|
|
136
|
+
this.dispatch(CACHE_BOX_CHANGE_EVENT_NAME, this.version);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
set(id, bounds) {
|
|
140
|
+
if (this._map.has(id)) {
|
|
141
|
+
const b = this._map.get(id), bb = bounds;
|
|
142
|
+
if (b.width === bb.width && b.height === bb.height) {
|
|
143
|
+
return this._map;
|
|
144
|
+
}
|
|
145
|
+
return this._map;
|
|
146
|
+
}
|
|
147
|
+
const v = this._map.set(id, bounds);
|
|
148
|
+
this.bumpVersion();
|
|
149
|
+
return v;
|
|
150
|
+
}
|
|
151
|
+
has(id) {
|
|
152
|
+
return this._map.has(id);
|
|
153
|
+
}
|
|
154
|
+
get(id) {
|
|
155
|
+
return this._map.get(id);
|
|
156
|
+
}
|
|
157
|
+
snapshot() {
|
|
158
|
+
this._snapshot = new CMap(this._map);
|
|
159
|
+
}
|
|
160
|
+
dispose() {
|
|
161
|
+
super.dispose();
|
|
162
|
+
this.stopLifeCircle();
|
|
163
|
+
this._snapshot.clear();
|
|
164
|
+
this._map.clear();
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9jYWNoZU1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0QsTUFBTSxPQUFPLElBQUk7SUFHYixZQUFZLElBQWlCO1FBRnJCLFVBQUssR0FBZ0MsRUFBRSxDQUFDO1FBRzVDLElBQUksSUFBSSxFQUFFO1lBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFNO1FBQ04sTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQU0sRUFBRSxLQUFRO1FBQ2hCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQU07UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxNQUFNLENBQUMsR0FBTTtRQUNULE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FB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QyxXQUFXLEVBQUUsQ0FBQztRQUVuQixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxHQUFHLENBQUMsRUFBSztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxFQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxPQUFPO1FBQ1osS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Nyb2xsRGlyZWN0aW9uIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gXCIuL2RlYm91bmNlXCI7XHJcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgVEV2ZW50SGFuZGxlciB9IGZyb20gXCIuL2V2ZW50RW1pdHRlclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENNYXA8SyA9IHN0cmluZywgViA9IGFueT4ge1xyXG4gICAgcHJpdmF0ZSBfZGljdDogeyBbazogc3RyaW5nIHwgbnVtYmVyXTogViB9ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IoZGljdD86IENNYXA8SywgVj4pIHtcclxuICAgICAgICBpZiAoZGljdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWN0ID0geyAuLi5kaWN0Ll9kaWN0IH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldChrZXk6IEspIHtcclxuICAgICAgICBjb25zdCBrID0gU3RyaW5nKGtleSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rba107XHJcbiAgICB9XHJcbiAgICBzZXQoa2V5OiBLLCB2YWx1ZTogVikge1xyXG4gICAgICAgIGNvbnN0IGsgPSBTdHJpbmcoa2V5KTtcclxuICAgICAgICB0aGlzLl9kaWN0W2tdID0gdmFsdWU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgICBoYXMoa2V5OiBLKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpY3QuaGFzT3duUHJvcGVydHkoU3RyaW5nKGtleSkpO1xyXG4gICAgfVxyXG4gICAgZGVsZXRlKGtleTogSykge1xyXG4gICAgICAgIGNvbnN0IGsgPSBTdHJpbmcoa2V5KTtcclxuICAgICAgICBkZWxldGUgdGhpcy5fZGljdFtrXTtcclxuICAgIH1cclxuICAgIGNsZWFyKCkge1xyXG4gICAgICAgIHRoaXMuX2RpY3QgPSB7fTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2FjaGVNYXA8SSA9IGFueSwgQiA9IGFueT4ge1xyXG4gICAgc2V0OiAoaWQ6IEksIGJvdW5kczogQikgPT4gQ01hcDxJLCBCPjtcclxuICAgIGhhczogKGlkOiBJKSA9PiBib29sZWFuO1xyXG4gICAgZ2V0OiAoaWQ6IEkpID0+IEIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDQUNIRV9CT1hfQ0hBTkdFX0VWRU5UX05BTUUgPSAnY2hhbmdlJztcclxuXHJcbnR5cGUgQ2FjaGVNYXBFdmVudHMgPSB0eXBlb2YgQ0FDSEVfQk9YX0NIQU5HRV9FVkVOVF9OQU1FO1xyXG5cclxudHlwZSBPbkNoYW5nZUV2ZW50TGlzdGVuZXIgPSAodmVyc2lvbjogbnVtYmVyKSA9PiB2b2lkO1xyXG5cclxudHlwZSBDYWNoZU1hcExpc3RlbmVycyA9IE9uQ2hhbmdlRXZlbnRMaXN0ZW5lcjtcclxuXHJcbmNvbnN0IE1BWF9TQ1JPTExfRElSRUNUSU9OX1BPT0wgPSA1MCwgQ0xFQVJfU0NST0xMX0RJUkVDVElPTl9UTyA9IDEwLFxyXG4gICAgRElSX0JBQ0sgPSAnLTEnLCBESVJfTk9ORSA9ICcwJywgRElSX0ZPUldBUkQgPSAnMSc7XHJcblxyXG4vKipcclxuICogQ2FjaGUgbWFwLlxyXG4gKiBFbWl0cyBhIGNoYW5nZSBldmVudCBvbiBlYWNoIG11dGF0aW9uLlxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xNS54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL2NhY2hlTWFwLnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBHcmViZW5uaWtvdlxyXG4gKiBAZW1haWwgZGpvbm55eEBnbWFpbC5jb21cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDYWNoZU1hcDxJID0gc3RyaW5nIHwgbnVtYmVyLCBCID0gYW55LCBFIGV4dGVuZHMgc3RyaW5nID0gQ2FjaGVNYXBFdmVudHMsIEwgZXh0ZW5kcyBURXZlbnRIYW5kbGVyID0gQ2FjaGVNYXBMaXN0ZW5lcnM+XHJcbiAgICBleHRlbmRzIEV2ZW50RW1pdHRlcjxFLCBMPiBpbXBsZW1lbnRzIElDYWNoZU1hcCB7XHJcbiAgICBwcm90ZWN0ZWQgX21hcCA9IG5ldyBDTWFwPEksIEI+KCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zbmFwc2hvdCA9IG5ldyBDTWFwPEksIEI+KCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF92ZXJzaW9uOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIHByb3RlY3RlZCBfcHJldmlvdXNWZXJzaW9uID0gdGhpcy5fdmVyc2lvbjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2xpZmVDaXJjbGVUaW1lb3V0OiBhbnk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF9kZWx0YTogbnVtYmVyID0gMDtcclxuXHJcbiAgICBnZXQgZGVsdGEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbHRhO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfZGVsdGFEaXJlY3Rpb246IFNjcm9sbERpcmVjdGlvbiA9IDA7XHJcbiAgICBzZXQgZGVsdGFEaXJlY3Rpb24odjogU2Nyb2xsRGlyZWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fZGVsdGFEaXJlY3Rpb24gPSB2O1xyXG5cclxuICAgICAgICB0aGlzLl9zY3JvbGxEaXJlY3Rpb24gPSB0aGlzLmNhbGNTY3JvbGxEaXJlY3Rpb24odik7XHJcbiAgICB9XHJcbiAgICBnZXQgZGVsdGFEaXJlY3Rpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbHRhRGlyZWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Njcm9sbERpcmVjdGlvbkNhY2hlOiBBcnJheTxTY3JvbGxEaXJlY3Rpb24+ID0gW107XHJcbiAgICBwcml2YXRlIF9zY3JvbGxEaXJlY3Rpb246IFNjcm9sbERpcmVjdGlvbiA9IDA7XHJcbiAgICBnZXQgc2Nyb2xsRGlyZWN0aW9uKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxEaXJlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHZlcnNpb24oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnNpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xlYXJTY3JvbGxEaXJlY3Rpb25EZWJvdW5jZSA9IGRlYm91bmNlKCgpID0+IHtcclxuICAgICAgICB3aGlsZSAodGhpcy5fc2Nyb2xsRGlyZWN0aW9uQ2FjaGUubGVuZ3RoID4gQ0xFQVJfU0NST0xMX0RJUkVDVElPTl9UTykge1xyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxEaXJlY3Rpb25DYWNoZS5zaGlmdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMubGlmZUNpcmNsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBjaGFuZ2VzRGV0ZWN0ZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnNpb24gIT09IHRoaXMuX3ByZXZpb3VzVmVyc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc3RvcExpZmVDaXJjbGUoKSB7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2xpZmVDaXJjbGVUaW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbmV4dFRpY2soY2I6ICgpID0+IHZvaWQpIHtcclxuICAgICAgICBpZiAodGhpcy5fZGlzcG9zZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fbGlmZUNpcmNsZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY2IoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbGlmZUNpcmNsZVRpbWVvdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGxpZmVDaXJjbGUoKSB7XHJcbiAgICAgICAgdGhpcy5maXJlQ2hhbmdlSWZOZWVkKCk7XHJcblxyXG4gICAgICAgIHRoaXMubGlmZUNpcmNsZURvKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGxpZmVDaXJjbGVEbygpIHtcclxuICAgICAgICB0aGlzLl9wcmV2aW91c1ZlcnNpb24gPSB0aGlzLl92ZXJzaW9uO1xyXG5cclxuICAgICAgICB0aGlzLm5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5saWZlQ2lyY2xlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJTY3JvbGxEaXJlY3Rpb25DYWNoZSgpIHtcclxuICAgICAgICB0aGlzLl9jbGVhclNjcm9sbERpcmVjdGlvbkRlYm91bmNlLmV4ZWN1dGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGNTY3JvbGxEaXJlY3Rpb24odjogU2Nyb2xsRGlyZWN0aW9uKTogU2Nyb2xsRGlyZWN0aW9uIHtcclxuICAgICAgICB3aGlsZSAodGhpcy5fc2Nyb2xsRGlyZWN0aW9uQ2FjaGUubGVuZ3RoID49IE1BWF9TQ1JPTExfRElSRUNUSU9OX1BPT0wpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsRGlyZWN0aW9uQ2FjaGUuc2hpZnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fc2Nyb2xsRGlyZWN0aW9uQ2FjaGUucHVzaCh2KTtcclxuICAgICAgICBjb25zdCBkaWN0OiB7IFt4OiBzdHJpbmddOiBudW1iZXIgfSA9IHsgW0RJUl9CQUNLXTogMCwgW0RJUl9OT05FXTogMCwgW0RJUl9GT1JXQVJEXTogMCB9O1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5fc2Nyb2xsRGlyZWN0aW9uQ2FjaGUubGVuZ3RoLCBsaSA9IGwgLSAxOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpciA9IFN0cmluZyh0aGlzLl9zY3JvbGxEaXJlY3Rpb25DYWNoZVtpXSk7XHJcbiAgICAgICAgICAgIGRpY3RbZGlyXSArPSAxO1xyXG4gICAgICAgICAgICBpZiAoaSA9PT0gbGkpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGQgaW4gZGljdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChkID09PSBTdHJpbmcodikpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGRpY3RbZF0gLT0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGRpY3RbRElSX0JBQ0tdID4gZGljdFtESVJfTk9ORV0gJiYgZGljdFtESVJfQkFDS10gPiBkaWN0W0RJUl9GT1JXQVJEXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgfSBlbHNlIGlmIChkaWN0W0RJUl9GT1JXQVJEXSA+IGRpY3RbRElSX0JBQ0tdICYmIGRpY3RbRElSX0ZPUldBUkRdID4gZGljdFtESVJfTk9ORV0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYnVtcFZlcnNpb24oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlc0RldGVjdGVkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB2ID0gdGhpcy5fdmVyc2lvbiA9PT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgPyAwIDogdGhpcy5fdmVyc2lvbiArIDE7XHJcbiAgICAgICAgdGhpcy5fdmVyc2lvbiA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGZpcmVDaGFuZ2VJZk5lZWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hhbmdlc0RldGVjdGVkKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaChDQUNIRV9CT1hfQ0hBTkdFX0VWRU5UX05BTUUgYXMgRSwgdGhpcy52ZXJzaW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2V0KGlkOiBJLCBib3VuZHM6IEIpOiBDTWFwPEksIEI+IHtcclxuICAgICAgICBpZiAodGhpcy5fbWFwLmhhcyhpZCkpIHtcclxuICAgICAgICAgICAgY29uc3QgYjogYW55ID0gdGhpcy5fbWFwLmdldChpZCksIGJiOiBhbnkgPSBib3VuZHM7XHJcbiAgICAgICAgICAgIGlmIChiLndpZHRoID09PSBiYi53aWR0aCAmJiBiLmhlaWdodCA9PT0gYmIuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbWFwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2ID0gdGhpcy5fbWFwLnNldChpZCwgYm91bmRzKTtcclxuXHJcbiAgICAgICAgdGhpcy5idW1wVmVyc2lvbigpO1xyXG5cclxuICAgICAgICByZXR1cm4gdjtcclxuICAgIH1cclxuXHJcbiAgICBoYXMoaWQ6IEkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWFwLmhhcyhpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KGlkOiBJKTogQiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5nZXQoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNuYXBzaG90KCkge1xyXG4gICAgICAgIHRoaXMuX3NuYXBzaG90ID0gbmV3IENNYXAodGhpcy5fbWFwKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBkaXNwb3NlKCkge1xyXG4gICAgICAgIHN1cGVyLmRpc3Bvc2UoKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdG9wTGlmZUNpcmNsZSgpO1xyXG5cclxuICAgICAgICB0aGlzLl9zbmFwc2hvdC5jbGVhcigpO1xyXG5cclxuICAgICAgICB0aGlzLl9tYXAuY2xlYXIoKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple debounce function.
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9kZWJvdW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQWlDLEVBQUUsZUFBdUIsQ0FBQyxFQUFFLEVBQUU7SUFDcEYsSUFBSSxPQUFZLENBQUM7SUFDakIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1FBQ2pCLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN2QixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDekI7SUFDTCxDQUFDLENBQUE7SUFDRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsSUFBZ0IsRUFBRSxFQUFFO1FBQ3BDLE9BQU8sRUFBRSxDQUFDO1FBRVYsT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUNGLE9BQU87UUFDSDs7V0FFRztRQUNILE9BQU87UUFDUDs7V0FFRztRQUNILE9BQU87S0FDVixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNpbXBsZSBkZWJvdW5jZSBmdW5jdGlvbi5cclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTUueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9kZWJvdW5jZS50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZGVib3VuY2UgPSAoY2I6ICguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiB2b2lkLCBkZWJvdW5jZVRpbWU6IG51bWJlciA9IDApID0+IHtcclxuICAgIGxldCB0aW1lb3V0OiBhbnk7XHJcbiAgICBjb25zdCBkaXNwb3NlID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aW1lb3V0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGV4ZWN1dGUgPSAoLi4uYXJnczogQXJyYXk8YW55PikgPT4ge1xyXG4gICAgICAgIGRpc3Bvc2UoKTtcclxuXHJcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjYiguLi5hcmdzKTtcclxuICAgICAgICB9LCBkZWJvdW5jZVRpbWUpO1xyXG4gICAgfTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogIENhbGwgaGFuZGxpbmcgbWV0aG9kXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgZXhlY3V0ZSxcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBNZXRob2Qgb2YgZGVzdHJveWluZyBoYW5kbGVyc1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGRpc3Bvc2UsXHJcbiAgICB9O1xyXG59O1xyXG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Base disposable component
|
|
6
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/disposableComponent.ts
|
|
7
|
+
* @author Evgenii Grebennikov
|
|
8
|
+
* @email djonnyx@gmail.com
|
|
9
|
+
*/
|
|
10
|
+
export class DisposableComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this._$unsubscribe = new Subject();
|
|
13
|
+
}
|
|
14
|
+
ngOnDestroy() {
|
|
15
|
+
if (this._$unsubscribe) {
|
|
16
|
+
this._$unsubscribe.next();
|
|
17
|
+
this._$unsubscribe.complete();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
DisposableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DisposableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
DisposableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DisposableComponent, selector: "ng-component", ngImport: i0, template: ``, isInline: true });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DisposableComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{
|
|
26
|
+
template: ``,
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZUNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL3V0aWxzL2Rpc3Bvc2FibGVDb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUUvQjs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFJYyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FRakQ7SUFORyxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQztJQUNMLENBQUM7O2lIQVJRLG1CQUFtQjtxR0FBbkIsbUJBQW1CLG9EQUZsQixFQUFFOzRGQUVILG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsRUFBRTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGRpc3Bvc2FibGUgY29tcG9uZW50XHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iLzE1LngvcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvZGlzcG9zYWJsZUNvbXBvbmVudC50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlOiBgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHJvdGVjdGVkIF8kdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl8kdW5zdWJzY3JpYmUpIHtcclxuICAgICAgICAgICAgdGhpcy5fJHVuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgICAgICAgICAgdGhpcy5fJHVuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple event emitter
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/eventEmitter.ts
|
|
4
|
+
* @author Evgenii Grebennikov
|
|
5
|
+
* @email djonnyx@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
export class EventEmitter {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._listeners = {};
|
|
10
|
+
this._disposed = false;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Emits the event
|
|
14
|
+
*/
|
|
15
|
+
dispatch(event, ...args) {
|
|
16
|
+
const ctx = this;
|
|
17
|
+
const listeners = this._listeners[event];
|
|
18
|
+
if (Array.isArray(listeners)) {
|
|
19
|
+
for (let i = 0, l = listeners.length; i < l; i++) {
|
|
20
|
+
const listener = listeners[i];
|
|
21
|
+
if (listener) {
|
|
22
|
+
listener.apply(ctx, args);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Emits the event async
|
|
29
|
+
*/
|
|
30
|
+
dispatchAsync(event, ...args) {
|
|
31
|
+
queueMicrotask(() => {
|
|
32
|
+
if (this._disposed) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.dispatch(event, ...args);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Returns true if the event listener is already subscribed.
|
|
40
|
+
*/
|
|
41
|
+
hasEventListener(eventName, handler) {
|
|
42
|
+
const event = eventName;
|
|
43
|
+
if (this._listeners.hasOwnProperty(event)) {
|
|
44
|
+
const listeners = this._listeners[event];
|
|
45
|
+
const index = listeners.findIndex(v => v === handler);
|
|
46
|
+
if (index > -1) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Add event listener
|
|
54
|
+
*/
|
|
55
|
+
addEventListener(eventName, handler) {
|
|
56
|
+
const event = eventName;
|
|
57
|
+
if (!this._listeners.hasOwnProperty(event)) {
|
|
58
|
+
this._listeners[event] = [];
|
|
59
|
+
}
|
|
60
|
+
this._listeners[event].push(handler);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Remove event listener
|
|
64
|
+
*/
|
|
65
|
+
removeEventListener(eventName, handler) {
|
|
66
|
+
const event = eventName;
|
|
67
|
+
if (!this._listeners.hasOwnProperty(event)) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const listeners = this._listeners[event], index = listeners.findIndex(v => v === handler);
|
|
71
|
+
if (index > -1) {
|
|
72
|
+
listeners.splice(index, 1);
|
|
73
|
+
if (listeners.length === 0) {
|
|
74
|
+
delete this._listeners[event];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Remove all listeners
|
|
80
|
+
*/
|
|
81
|
+
removeAllListeners() {
|
|
82
|
+
const events = Object.keys(this._listeners);
|
|
83
|
+
while (events.length > 0) {
|
|
84
|
+
const event = events.pop();
|
|
85
|
+
if (event) {
|
|
86
|
+
const listeners = this._listeners[event];
|
|
87
|
+
if (Array.isArray(listeners)) {
|
|
88
|
+
while (listeners.length > 0) {
|
|
89
|
+
const listener = listeners.pop();
|
|
90
|
+
if (listener) {
|
|
91
|
+
this.removeEventListener(event, listener);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Method of destroying handlers
|
|
100
|
+
*/
|
|
101
|
+
dispose() {
|
|
102
|
+
this._disposed = true;
|
|
103
|
+
this.removeAllListeners();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRFbWl0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvZXZlbnRFbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFPckI7UUFOUSxlQUFVLEdBRWQsRUFBRSxDQUFDO1FBRUcsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUVyQixDQUFDO0lBRWpCOztPQUVHO0lBQ0gsUUFBUSxDQUFDLEtBQVEsRUFBRSxHQUFHLElBQWdCO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQztRQUNqQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQWUsQ0FBQyxDQUFDO1FBQ25ELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMxQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUM5QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLElBQUksUUFBUSxFQUFFO29CQUNWLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUM3QjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsS0FBUSxFQUFFLEdBQUcsSUFBZ0I7UUFDdkMsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNoQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hCLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxTQUFZLEVBQUUsT0FBVTtRQUNyQyxNQUFNLEtBQUssR0FBRyxTQUFtQixDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ3RELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNaLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLFNBQVksRUFBRSxPQUFVO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLFNBQW1CLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBd0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQixDQUFDLFNBQVksRUFBRSxPQUFVO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLFNBQW1CLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hDLE9BQU87U0FDVjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDMUYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDWixTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUUzQixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakM7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNkLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNCLElBQUksS0FBSyxFQUFFO2dCQUNQLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtvQkFDMUIsT0FBTyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDekIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNqQyxJQUFJLFFBQVEsRUFBRTs0QkFDVixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBVSxFQUFFLFFBQWEsQ0FBQyxDQUFDO3lCQUN2RDtxQkFDSjtpQkFDSjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVEV2ZW50SGFuZGxlciA9ICguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiB2b2lkO1xyXG5cclxuLyoqXHJcbiAqIFNpbXBsZSBldmVudCBlbWl0dGVyXHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iLzE1LngvcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvZXZlbnRFbWl0dGVyLnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBHcmViZW5uaWtvdlxyXG4gKiBAZW1haWwgZGpvbm55eEBnbWFpbC5jb21cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFdmVudEVtaXR0ZXI8RSA9IHN0cmluZywgSCA9IFRFdmVudEhhbmRsZXI+IHtcclxuICAgIHByaXZhdGUgX2xpc3RlbmVyczoge1xyXG4gICAgICAgIFtldmVudE5hbWU6IHN0cmluZ106IEFycmF5PFRFdmVudEhhbmRsZXI+LFxyXG4gICAgfSA9IHt9O1xyXG5cclxuICAgIHByb3RlY3RlZCBfZGlzcG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgdGhlIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIGRpc3BhdGNoKGV2ZW50OiBFLCAuLi5hcmdzOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY3R4ID0gdGhpcztcclxuICAgICAgICBjb25zdCBsaXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnNbZXZlbnQgYXMgc3RyaW5nXTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShsaXN0ZW5lcnMpKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gbGlzdGVuZXJzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBsaXN0ZW5lcnNbaV07XHJcbiAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lci5hcHBseShjdHgsIGFyZ3MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgdGhlIGV2ZW50IGFzeW5jXHJcbiAgICAgKi9cclxuICAgIGRpc3BhdGNoQXN5bmMoZXZlbnQ6IEUsIC4uLmFyZ3M6IEFycmF5PGFueT4pOiB2b2lkIHtcclxuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9kaXNwb3NlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2goZXZlbnQsIC4uLmFyZ3MpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBldmVudCBsaXN0ZW5lciBpcyBhbHJlYWR5IHN1YnNjcmliZWQuXHJcbiAgICAgKi9cclxuICAgIGhhc0V2ZW50TGlzdGVuZXIoZXZlbnROYW1lOiBFLCBoYW5kbGVyOiBIKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBldmVudE5hbWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIGlmICh0aGlzLl9saXN0ZW5lcnMuaGFzT3duUHJvcGVydHkoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVycyA9IHRoaXMuX2xpc3RlbmVyc1tldmVudF07XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gbGlzdGVuZXJzLmZpbmRJbmRleCh2ID0+IHYgPT09IGhhbmRsZXIpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgZXZlbnQgbGlzdGVuZXJcclxuICAgICAqL1xyXG4gICAgYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWU6IEUsIGhhbmRsZXI6IEgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBldmVudCA9IGV2ZW50TmFtZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9saXN0ZW5lcnMuaGFzT3duUHJvcGVydHkoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlbmVyc1tldmVudF0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbGlzdGVuZXJzW2V2ZW50XS5wdXNoKGhhbmRsZXIgYXMgVEV2ZW50SGFuZGxlcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgZXZlbnQgbGlzdGVuZXJcclxuICAgICAqL1xyXG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWU6IEUsIGhhbmRsZXI6IEgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBldmVudCA9IGV2ZW50TmFtZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9saXN0ZW5lcnMuaGFzT3duUHJvcGVydHkoZXZlbnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzW2V2ZW50XSwgaW5kZXggPSBsaXN0ZW5lcnMuZmluZEluZGV4KHYgPT4gdiA9PT0gaGFuZGxlcik7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAgICAgbGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XHJcblxyXG4gICAgICAgICAgICBpZiAobGlzdGVuZXJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2xpc3RlbmVyc1tldmVudF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgYWxsIGxpc3RlbmVyc1xyXG4gICAgICovXHJcbiAgICByZW1vdmVBbGxMaXN0ZW5lcnMoKSB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRzID0gT2JqZWN0LmtleXModGhpcy5fbGlzdGVuZXJzKTtcclxuICAgICAgICB3aGlsZSAoZXZlbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBldmVudHMucG9wKCk7XHJcbiAgICAgICAgICAgIGlmIChldmVudCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzW2V2ZW50XTtcclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxpc3RlbmVycykpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAobGlzdGVuZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBsaXN0ZW5lcnMucG9wKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50IGFzIEUsIGxpc3RlbmVyIGFzIEgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIG9mIGRlc3Ryb3lpbmcgaGFuZGxlcnNcclxuICAgICAqL1xyXG4gICAgZGlzcG9zZSgpIHtcclxuICAgICAgICB0aGlzLl9kaXNwb3NlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { debounce } from "./debounce";
|
|
2
|
+
import { toggleClassName } from './toggleClassName';
|
|
3
|
+
import { ScrollEvent } from "./scrollEvent";
|
|
4
|
+
export { debounce, toggleClassName, ScrollEvent, };
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUlwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFDSCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFdBQVcsR0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tIFwiLi9kZWJvdW5jZVwiO1xyXG5pbXBvcnQgeyB0b2dnbGVDbGFzc05hbWUgfSBmcm9tICcuL3RvZ2dsZUNsYXNzTmFtZSc7XHJcbmltcG9ydCB7XHJcbiAgICBJTWV0cmljcyxcclxufSBmcm9tIFwiLi90cmFja0JveFwiO1xyXG5pbXBvcnQgeyBTY3JvbGxFdmVudCB9IGZyb20gXCIuL3Njcm9sbEV2ZW50XCI7XHJcblxyXG5leHBvcnQge1xyXG4gICAgZGVib3VuY2UsXHJcbiAgICB0b2dnbGVDbGFzc05hbWUsXHJcbiAgICBTY3JvbGxFdmVudCxcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIHtcclxuICAgIElNZXRyaWNzLFxyXG59O1xyXG5cclxuIl19
|
|
@@ -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/15.x/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNEaXJlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9pc0RpcmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWpELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUM1RCxnQkFBZ0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFekQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFjLEVBQUUsUUFBbUIsRUFBVyxFQUFFO0lBQ3hFLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQzNDO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uLCBEaXJlY3Rpb25zIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcblxyXG5jb25zdCBIT1JJWk9OVEFMX0FMSUFTRVMgPSBbRGlyZWN0aW9ucy5IT1JJWk9OVEFMLCAnaG9yaXpvbnRhbCddLFxyXG4gICAgVkVSVElDQUxfQUxJQVNFUyA9IFtEaXJlY3Rpb25zLlZFUlRJQ0FMLCAndmVydGljYWwnXTtcclxuXHJcbi8qKlxyXG4gKiBEZXRlcm1pbmVzIHRoZSBheGlzIG1lbWJlcnNoaXAgb2YgYSB2aXJ0dWFsIGxpc3RcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTUueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9pc0RpcmVjdGlvbi50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaXNEaXJlY3Rpb24gPSAoc3JjOiBEaXJlY3Rpb24sIGV4cGVjdGVkOiBEaXJlY3Rpb24pOiBib29sZWFuID0+IHtcclxuICAgIGlmIChIT1JJWk9OVEFMX0FMSUFTRVMuaW5jbHVkZXMoZXhwZWN0ZWQpKSB7XHJcbiAgICAgICAgcmV0dXJuIEhPUklaT05UQUxfQUxJQVNFUy5pbmNsdWRlcyhzcmMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFZFUlRJQ0FMX0FMSUFTRVMuaW5jbHVkZXMoc3JjKTtcclxufSJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scroll event.
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/projects/ng-virtual-list/src/lib/utils/scrollEvent.ts
|
|
4
|
+
* @author Evgenii Grebennikov
|
|
5
|
+
* @email djonnyx@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
export class ScrollEvent {
|
|
8
|
+
get direction() { return this._direction; }
|
|
9
|
+
get scrollSize() { return this._scrollSize; }
|
|
10
|
+
get scrollWeight() { return this._scrollWeight; }
|
|
11
|
+
get isVertical() { return this._isVertical; }
|
|
12
|
+
get listSize() { return this._listSize; }
|
|
13
|
+
get size() { return this._size; }
|
|
14
|
+
get isStart() { return this._isStart; }
|
|
15
|
+
get isEnd() { return this._isEnd; }
|
|
16
|
+
get delta() { return this._delta; }
|
|
17
|
+
get scrollDelta() { return this._scrollDelta; }
|
|
18
|
+
constructor(params) {
|
|
19
|
+
this._direction = 1;
|
|
20
|
+
this._scrollSize = 0;
|
|
21
|
+
this._scrollWeight = 0;
|
|
22
|
+
this._isVertical = true;
|
|
23
|
+
this._listSize = 0;
|
|
24
|
+
this._size = 0;
|
|
25
|
+
this._isStart = true;
|
|
26
|
+
this._isEnd = false;
|
|
27
|
+
this._delta = 0;
|
|
28
|
+
this._scrollDelta = 0;
|
|
29
|
+
const { direction, isVertical, container, list, delta, scrollDelta } = params;
|
|
30
|
+
this._direction = direction;
|
|
31
|
+
this._isVertical = isVertical;
|
|
32
|
+
this._scrollSize = isVertical ? container.scrollTop : container.scrollLeft;
|
|
33
|
+
this._scrollWeight = isVertical ? container.scrollHeight : container.scrollWidth;
|
|
34
|
+
this._listSize = isVertical ? list.offsetHeight : list.offsetWidth;
|
|
35
|
+
this._size = isVertical ? container.offsetHeight : container.offsetWidth;
|
|
36
|
+
this._isEnd = (this._scrollSize + this._size) === this._scrollWeight;
|
|
37
|
+
this._delta = delta;
|
|
38
|
+
this._scrollDelta = scrollDelta;
|
|
39
|
+
this._isStart = this._scrollSize === 0;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsRXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9zY3JvbGxFdmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBRXBCLElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFHM0MsSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUc3QyxJQUFJLFlBQVksS0FBSyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBR2pELElBQUksVUFBVSxLQUFLLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFHN0MsSUFBSSxRQUFRLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUd6QyxJQUFJLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBR2pDLElBQUksT0FBTyxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFHdkMsSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUduQyxJQUFJLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBR25DLElBQUksV0FBVyxLQUFLLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFFL0MsWUFBWSxNQUEwQjtRQTlCOUIsZUFBVSxHQUFvQixDQUFDLENBQUM7UUFHaEMsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFHeEIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFHMUIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFHNUIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUd0QixVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBR2xCLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFHekIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUd4QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBR25CLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBSTdCLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUM5RSxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUMzRSxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUNqRixJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNuRSxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUN6RSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTY3JvbGxFdmVudCwgU2Nyb2xsRGlyZWN0aW9uIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xyXG5cclxuaW50ZXJmYWNlIElTY3JvbGxFdmVudFBhcmFtcyB7XHJcbiAgICBkaXJlY3Rpb246IFNjcm9sbERpcmVjdGlvbjtcclxuICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XHJcbiAgICBsaXN0OiBIVE1MRWxlbWVudDtcclxuICAgIGRlbHRhOiBudW1iZXI7XHJcbiAgICBzY3JvbGxEZWx0YTogbnVtYmVyO1xyXG4gICAgaXNWZXJ0aWNhbDogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNjcm9sbCBldmVudC5cclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTUueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy9zY3JvbGxFdmVudC50c1xyXG4gKiBAYXV0aG9yIEV2Z2VuaWkgR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2Nyb2xsRXZlbnQgaW1wbGVtZW50cyBJU2Nyb2xsRXZlbnQge1xyXG4gICAgcHJpdmF0ZSBfZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24gPSAxO1xyXG4gICAgZ2V0IGRpcmVjdGlvbigpIHsgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbjsgfVxyXG5cclxuICAgIHByaXZhdGUgX3Njcm9sbFNpemU6IG51bWJlciA9IDA7XHJcbiAgICBnZXQgc2Nyb2xsU2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3Njcm9sbFNpemU7IH1cclxuXHJcbiAgICBwcml2YXRlIF9zY3JvbGxXZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgICBnZXQgc2Nyb2xsV2VpZ2h0KCkgeyByZXR1cm4gdGhpcy5fc2Nyb2xsV2VpZ2h0OyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaXNWZXJ0aWNhbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBnZXQgaXNWZXJ0aWNhbCgpIHsgcmV0dXJuIHRoaXMuX2lzVmVydGljYWw7IH1cclxuXHJcbiAgICBwcml2YXRlIF9saXN0U2l6ZTogbnVtYmVyID0gMDtcclxuICAgIGdldCBsaXN0U2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2xpc3RTaXplOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2l6ZTogbnVtYmVyID0gMDtcclxuICAgIGdldCBzaXplKCkgeyByZXR1cm4gdGhpcy5fc2l6ZTsgfVxyXG5cclxuICAgIHByaXZhdGUgX2lzU3RhcnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZ2V0IGlzU3RhcnQoKSB7IHJldHVybiB0aGlzLl9pc1N0YXJ0OyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaXNFbmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGdldCBpc0VuZCgpIHsgcmV0dXJuIHRoaXMuX2lzRW5kOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZGVsdGE6IG51bWJlciA9IDA7XHJcbiAgICBnZXQgZGVsdGEoKSB7IHJldHVybiB0aGlzLl9kZWx0YTsgfVxyXG5cclxuICAgIHByaXZhdGUgX3Njcm9sbERlbHRhOiBudW1iZXIgPSAwO1xyXG4gICAgZ2V0IHNjcm9sbERlbHRhKCkgeyByZXR1cm4gdGhpcy5fc2Nyb2xsRGVsdGE7IH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwYXJhbXM6IElTY3JvbGxFdmVudFBhcmFtcykge1xyXG4gICAgICAgIGNvbnN0IHsgZGlyZWN0aW9uLCBpc1ZlcnRpY2FsLCBjb250YWluZXIsIGxpc3QsIGRlbHRhLCBzY3JvbGxEZWx0YSB9ID0gcGFyYW1zO1xyXG4gICAgICAgIHRoaXMuX2RpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgICAgICB0aGlzLl9pc1ZlcnRpY2FsID0gaXNWZXJ0aWNhbDtcclxuICAgICAgICB0aGlzLl9zY3JvbGxTaXplID0gaXNWZXJ0aWNhbCA/IGNvbnRhaW5lci5zY3JvbGxUb3AgOiBjb250YWluZXIuc2Nyb2xsTGVmdDtcclxuICAgICAgICB0aGlzLl9zY3JvbGxXZWlnaHQgPSBpc1ZlcnRpY2FsID8gY29udGFpbmVyLnNjcm9sbEhlaWdodCA6IGNvbnRhaW5lci5zY3JvbGxXaWR0aDtcclxuICAgICAgICB0aGlzLl9saXN0U2l6ZSA9IGlzVmVydGljYWwgPyBsaXN0Lm9mZnNldEhlaWdodCA6IGxpc3Qub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgdGhpcy5fc2l6ZSA9IGlzVmVydGljYWwgPyBjb250YWluZXIub2Zmc2V0SGVpZ2h0IDogY29udGFpbmVyLm9mZnNldFdpZHRoO1xyXG4gICAgICAgIHRoaXMuX2lzRW5kID0gKHRoaXMuX3Njcm9sbFNpemUgKyB0aGlzLl9zaXplKSA9PT0gdGhpcy5fc2Nyb2xsV2VpZ2h0O1xyXG4gICAgICAgIHRoaXMuX2RlbHRhID0gZGVsdGE7XHJcbiAgICAgICAgdGhpcy5fc2Nyb2xsRGVsdGEgPSBzY3JvbGxEZWx0YTtcclxuICAgICAgICB0aGlzLl9pc1N0YXJ0ID0gdGhpcy5fc2Nyb2xsU2l6ZSA9PT0gMDtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SnappingMethods } from "../enums";
|
|
2
|
+
const ADVANCED_PATTERNS = [SnappingMethods.ADVANCED, 'advanced'], DEFAULT_PATTERN = [SnappingMethods.NORMAL, 'normal'];
|
|
3
|
+
export const isSnappingMethodAdvenced = (method) => {
|
|
4
|
+
return ADVANCED_PATTERNS.includes(method);
|
|
5
|
+
};
|
|
6
|
+
export const isSnappingMethodDefault = (method) => {
|
|
7
|
+
return DEFAULT_PATTERN.includes(method);
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHBpbmctbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvc25hcHBpbmctbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRTNELE1BQU0saUJBQWlCLEdBQTBCLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsRUFDbkYsZUFBZSxHQUEwQixDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFaEYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxNQUFzQixFQUFXLEVBQUU7SUFDeEUsT0FBTyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxNQUFzQixFQUFXLEVBQUU7SUFDdkUsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNuYXBwaW5nTWV0aG9kLCBTbmFwcGluZ01ldGhvZHMgfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuXHJcbmNvbnN0IEFEVkFOQ0VEX1BBVFRFUk5TOiBBcnJheTxTbmFwcGluZ01ldGhvZD4gPSBbU25hcHBpbmdNZXRob2RzLkFEVkFOQ0VELCAnYWR2YW5jZWQnXSxcclxuICAgIERFRkFVTFRfUEFUVEVSTjogQXJyYXk8U25hcHBpbmdNZXRob2Q+ID0gW1NuYXBwaW5nTWV0aG9kcy5OT1JNQUwsICdub3JtYWwnXTtcclxuXHJcbmV4cG9ydCBjb25zdCBpc1NuYXBwaW5nTWV0aG9kQWR2ZW5jZWQgPSAobWV0aG9kOiBTbmFwcGluZ01ldGhvZCk6IGJvb2xlYW4gPT4ge1xyXG4gICAgcmV0dXJuIEFEVkFOQ0VEX1BBVFRFUk5TLmluY2x1ZGVzKG1ldGhvZCk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBpc1NuYXBwaW5nTWV0aG9kRGVmYXVsdCA9IChtZXRob2Q6IFNuYXBwaW5nTWV0aG9kKTogYm9vbGVhbiA9PiB7XHJcbiAgICByZXR1cm4gREVGQVVMVF9QQVRURVJOLmluY2x1ZGVzKG1ldGhvZCk7XHJcbn0iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Switch css classes
|
|
3
|
+
* @link https://github.com/DjonnyX/ng-virtual-list/blob/15.x/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, removeClassName) => {
|
|
8
|
+
if (!el.classList.contains(className)) {
|
|
9
|
+
el.classList.add(className);
|
|
10
|
+
}
|
|
11
|
+
if (removeClassName) {
|
|
12
|
+
el.classList.remove(removeClassName);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlQ2xhc3NOYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvdXRpbHMvdG9nZ2xlQ2xhc3NOYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsRUFBZSxFQUFFLFNBQWlCLEVBQUUsZUFBd0IsRUFBRSxFQUFFO0lBQzVGLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNuQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMvQjtJQUNELElBQUksZUFBZSxFQUFFO1FBQ2pCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ3hDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiBTd2l0Y2ggY3NzIGNsYXNzZXNcclxuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL0Rqb25ueVgvbmctdmlydHVhbC1saXN0L2Jsb2IvMTUueC9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi91dGlscy90b2dnbGVDbGFzc05hbWUudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHRvZ2dsZUNsYXNzTmFtZSA9IChlbDogSFRNTEVsZW1lbnQsIGNsYXNzTmFtZTogc3RyaW5nLCByZW1vdmVDbGFzc05hbWU/OiBzdHJpbmcpID0+IHtcclxuICAgIGlmICghZWwuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcclxuICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XHJcbiAgICB9XHJcbiAgICBpZiAocmVtb3ZlQ2xhc3NOYW1lKSB7XHJcbiAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShyZW1vdmVDbGFzc05hbWUpO1xyXG4gICAgfVxyXG59O1xyXG4iXX0=
|