ngx-infinite-scroller
Version:
Infinite bidirectional scroll directive for Angular 11
54 lines • 6.53 kB
JavaScript
import { Injectable } from '@angular/core';
export class DirectiveStateService {
get scrollTop() {
return this._el.nativeElement.scrollTop;
}
get scrollHeight() {
return this._el.nativeElement.scrollHeight;
}
get clientHeight() {
return this._el.nativeElement.clientHeight;
}
get initMode() {
return this._initMode;
}
set initMode(initMode) {
this._initMode = initMode;
}
get scrollStreamActive() {
return this._scrollStreamActive;
}
set scrollStreamActive(active) {
this._scrollStreamActive = active;
}
get previousScrollPositionpUpdated() {
return this._previousScrollPositionpUpdated;
}
set previousScrollPositionpUpdated(previousScrollPositionpUpdated) {
this._previousScrollPositionpUpdated = previousScrollPositionpUpdated;
}
get previousScrollTop() {
return this._previousScrollTop;
}
get previousScrollHeight() {
return this._previousScrollHeight;
}
setup(params) {
this._el = params.el;
this._initMode = params.initMode;
this._scrollStreamActive = params.scrollStreamActive;
this._previousScrollPositionpUpdated = params.previousScrollPositionpUpdated;
this.updatePreviousScrollTop();
this.updatePreviousScrollHeight();
}
updatePreviousScrollTop() {
this._previousScrollTop = this._el.nativeElement.scrollTop;
}
updatePreviousScrollHeight() {
this._previousScrollHeight = this._el.nativeElement.scrollHeight;
}
}
DirectiveStateService.decorators = [
{ type: Injectable }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vIiwic291cmNlcyI6WyJzcmMvYXBwL2RpcmVjdGl2ZS1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkQsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLFFBQVEsQ0FBQyxRQUFpQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsa0JBQWtCLENBQUMsTUFBZTtRQUMzQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLDhCQUE4QjtRQUN2QyxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyw4QkFBOEIsQ0FBQyw4QkFBdUM7UUFDL0UsSUFBSSxDQUFDLCtCQUErQixHQUFHLDhCQUE4QixDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQWNNLEtBQUssQ0FBQyxNQUtaO1FBQ0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1FBQ3JELElBQUksQ0FBQywrQkFBK0IsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUM7UUFDN0UsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLHVCQUF1QjtRQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQzdELENBQUM7SUFFTSwwQkFBMEI7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUNuRSxDQUFDOzs7WUEvRUYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERpcmVjdGl2ZVN0YXRlU2VydmljZSB7XG5cbiAgcHVibGljIGdldCBzY3JvbGxUb3AoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNjcm9sbEhlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xpZW50SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICB9XG5cbiAgcHVibGljIGdldCBpbml0TW9kZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faW5pdE1vZGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGluaXRNb2RlKGluaXRNb2RlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faW5pdE1vZGUgPSBpbml0TW9kZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2Nyb2xsU3RyZWFtQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxTdHJlYW1BY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNjcm9sbFN0cmVhbUFjdGl2ZShhY3RpdmU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zY3JvbGxTdHJlYW1BY3RpdmUgPSBhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByZXZpb3VzU2Nyb2xsUG9zaXRpb25wVXBkYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbnBVcGRhdGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBwcmV2aW91c1Njcm9sbFBvc2l0aW9ucFVwZGF0ZWQocHJldmlvdXNTY3JvbGxQb3NpdGlvbnBVcGRhdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcHJldmlvdXNTY3JvbGxQb3NpdGlvbnBVcGRhdGVkID0gcHJldmlvdXNTY3JvbGxQb3NpdGlvbnBVcGRhdGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBwcmV2aW91c1Njcm9sbFRvcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wcmV2aW91c1Njcm9sbFRvcDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcHJldmlvdXNTY3JvbGxIZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlvdXNTY3JvbGxIZWlnaHQ7XG4gIH1cblxuICBwcml2YXRlIF9lbDogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9pbml0TW9kZTogYm9vbGVhbjtcblxuICBwcml2YXRlIF9zY3JvbGxTdHJlYW1BY3RpdmU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNTY3JvbGxQb3NpdGlvbnBVcGRhdGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX3ByZXZpb3VzU2Nyb2xsVG9wOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNTY3JvbGxIZWlnaHQ6IG51bWJlcjtcblxuICBwdWJsaWMgc2V0dXAocGFyYW1zOiB7XG4gICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgaW5pdE1vZGU6IGJvb2xlYW4sXG4gICAgc2Nyb2xsU3RyZWFtQWN0aXZlOiBib29sZWFuLFxuICAgIHByZXZpb3VzU2Nyb2xsUG9zaXRpb25wVXBkYXRlZDogYm9vbGVhblxuICB9KTogdm9pZCB7XG4gICAgdGhpcy5fZWwgPSBwYXJhbXMuZWw7XG4gICAgdGhpcy5faW5pdE1vZGUgPSBwYXJhbXMuaW5pdE1vZGU7XG4gICAgdGhpcy5fc2Nyb2xsU3RyZWFtQWN0aXZlID0gcGFyYW1zLnNjcm9sbFN0cmVhbUFjdGl2ZTtcbiAgICB0aGlzLl9wcmV2aW91c1Njcm9sbFBvc2l0aW9ucFVwZGF0ZWQgPSBwYXJhbXMucHJldmlvdXNTY3JvbGxQb3NpdGlvbnBVcGRhdGVkO1xuICAgIHRoaXMudXBkYXRlUHJldmlvdXNTY3JvbGxUb3AoKTtcbiAgICB0aGlzLnVwZGF0ZVByZXZpb3VzU2Nyb2xsSGVpZ2h0KCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlvdXNTY3JvbGxUb3AoKTogdm9pZCB7XG4gICAgdGhpcy5fcHJldmlvdXNTY3JvbGxUb3AgPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQcmV2aW91c1Njcm9sbEhlaWdodCgpOiB2b2lkIHtcbiAgICB0aGlzLl9wcmV2aW91c1Njcm9sbEhlaWdodCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICB9XG59XG4iXX0=