ngx-infinite-scroll
Version:
[](https://travis-ci.org/orizens/ngx-infinite-scroll) [](#backers) [![Sponso
39 lines • 4.4 kB
JavaScript
export class ScrollState {
constructor(attrs) {
this.lastScrollPosition = 0;
this.lastTotalToScroll = 0;
this.totalToScroll = 0;
this.triggered = {
down: 0,
up: 0,
};
Object.assign(this, attrs);
}
updateScrollPosition(position) {
return (this.lastScrollPosition = position);
}
updateTotalToScroll(totalToScroll) {
if (this.lastTotalToScroll !== totalToScroll) {
this.lastTotalToScroll = this.totalToScroll;
this.totalToScroll = totalToScroll;
}
}
updateScroll(scrolledUntilNow, totalToScroll) {
this.updateScrollPosition(scrolledUntilNow);
this.updateTotalToScroll(totalToScroll);
}
updateTriggeredFlag(scroll, isScrollingDown) {
if (isScrollingDown) {
this.triggered.down = scroll;
}
else {
this.triggered.up = scroll;
}
}
isTriggeredScroll(totalToScroll, isScrollingDown) {
return isScrollingDown
? this.triggered.down === totalToScroll
: this.triggered.up === totalToScroll;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWluZmluaXRlLXNjcm9sbC9zcmMvbGliL3NlcnZpY2VzL3Njcm9sbC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sV0FBVztJQVN0QixZQUFZLEtBQTJCO1FBUnZDLHVCQUFrQixHQUFHLENBQUMsQ0FBQztRQUN2QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsY0FBUyxHQUFzQjtZQUM3QixJQUFJLEVBQUUsQ0FBQztZQUNQLEVBQUUsRUFBRSxDQUFDO1NBQ04sQ0FBQztRQUdBLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxRQUFnQjtRQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxhQUFxQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxhQUFhLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLGdCQUF3QixFQUFFLGFBQXFCO1FBQzFELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBYyxFQUFFLGVBQXdCO1FBQzFELElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLGFBQXFCLEVBQUUsZUFBd0I7UUFDL0QsT0FBTyxlQUFlO1lBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxhQUFhO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxhQUFhLENBQUM7SUFDMUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVNjcm9sbFN0YXRlLCBJU2Nyb2xsZXJEaXN0YW5jZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBTY3JvbGxTdGF0ZSBpbXBsZW1lbnRzIElTY3JvbGxTdGF0ZSB7XG4gIGxhc3RTY3JvbGxQb3NpdGlvbiA9IDA7XG4gIGxhc3RUb3RhbFRvU2Nyb2xsID0gMDtcbiAgdG90YWxUb1Njcm9sbCA9IDA7XG4gIHRyaWdnZXJlZDogSVNjcm9sbGVyRGlzdGFuY2UgPSB7XG4gICAgZG93bjogMCxcbiAgICB1cDogMCxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihhdHRyczogUGFydGlhbDxTY3JvbGxTdGF0ZT4pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGF0dHJzKTtcbiAgfVxuXG4gIHVwZGF0ZVNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICByZXR1cm4gKHRoaXMubGFzdFNjcm9sbFBvc2l0aW9uID0gcG9zaXRpb24pO1xuICB9XG5cbiAgdXBkYXRlVG90YWxUb1Njcm9sbCh0b3RhbFRvU2Nyb2xsOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5sYXN0VG90YWxUb1Njcm9sbCAhPT0gdG90YWxUb1Njcm9sbCkge1xuICAgICAgdGhpcy5sYXN0VG90YWxUb1Njcm9sbCA9IHRoaXMudG90YWxUb1Njcm9sbDtcbiAgICAgIHRoaXMudG90YWxUb1Njcm9sbCA9IHRvdGFsVG9TY3JvbGw7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU2Nyb2xsKHNjcm9sbGVkVW50aWxOb3c6IG51bWJlciwgdG90YWxUb1Njcm9sbDogbnVtYmVyKSB7XG4gICAgdGhpcy51cGRhdGVTY3JvbGxQb3NpdGlvbihzY3JvbGxlZFVudGlsTm93KTtcbiAgICB0aGlzLnVwZGF0ZVRvdGFsVG9TY3JvbGwodG90YWxUb1Njcm9sbCk7XG4gIH1cblxuICB1cGRhdGVUcmlnZ2VyZWRGbGFnKHNjcm9sbDogbnVtYmVyLCBpc1Njcm9sbGluZ0Rvd246IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNTY3JvbGxpbmdEb3duKSB7XG4gICAgICB0aGlzLnRyaWdnZXJlZC5kb3duID0gc2Nyb2xsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRyaWdnZXJlZC51cCA9IHNjcm9sbDtcbiAgICB9XG4gIH1cblxuICBpc1RyaWdnZXJlZFNjcm9sbCh0b3RhbFRvU2Nyb2xsOiBudW1iZXIsIGlzU2Nyb2xsaW5nRG93bjogYm9vbGVhbikge1xuICAgIHJldHVybiBpc1Njcm9sbGluZ0Rvd25cbiAgICAgID8gdGhpcy50cmlnZ2VyZWQuZG93biA9PT0gdG90YWxUb1Njcm9sbFxuICAgICAgOiB0aGlzLnRyaWdnZXJlZC51cCA9PT0gdG90YWxUb1Njcm9sbDtcbiAgfVxufVxuIl19