UNPKG

5.33 kBJavaScriptView Raw
1"use strict";
2var core_1 = require('@angular/core');
3var ScrollResolver = (function () {
4 function ScrollResolver() {
5 this.lastScrollPosition = 0;
6 }
7 ScrollResolver.prototype.shouldScroll = function (container, config, scrollingDown) {
8 var distance = config.distance;
9 var remaining;
10 var containerBreakpoint;
11 if (scrollingDown) {
12 remaining = container.totalToScroll - container.scrolledUntilNow;
13 containerBreakpoint = container.height * distance.down + 1;
14 }
15 else {
16 remaining = container.scrolledUntilNow;
17 containerBreakpoint = container.height * distance.up + 1;
18 }
19 var shouldScroll = remaining <= containerBreakpoint;
20 this.lastScrollPosition = container.scrolledUntilNow;
21 return shouldScroll;
22 };
23 ScrollResolver.prototype.isScrollingDown = function (container) {
24 return this.lastScrollPosition < container.scrolledUntilNow;
25 };
26 ScrollResolver.prototype.getScrollStats = function (container, config) {
27 var isScrollingDown = this.isScrollingDown(container);
28 var shouldScroll = this.shouldScroll(container, config, isScrollingDown);
29 return { isScrollingDown: isScrollingDown, shouldScroll: shouldScroll };
30 };
31 ScrollResolver.decorators = [
32 { type: core_1.Injectable },
33 ];
34 /** @nocollapse */
35 ScrollResolver.ctorParameters = function () { return []; };
36 return ScrollResolver;
37}());
38exports.ScrollResolver = ScrollResolver;
39//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2Nyb2xsLXJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxxQkFBMkIsZUFBZSxDQUFDLENBQUE7QUFHM0M7SUFBQTtRQUNTLHVCQUFrQixHQUFXLENBQUMsQ0FBQztJQWlDeEMsQ0FBQztJQS9CQyxxQ0FBWSxHQUFaLFVBQWMsU0FBd0IsRUFBRSxNQUFzQixFQUFFLGFBQXNCO1FBQ3BGLElBQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksbUJBQTJCLENBQUM7UUFDaEMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNsQixTQUFTLEdBQUcsU0FBUyxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7WUFDakUsbUJBQW1CLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixTQUFTLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1lBQ3ZDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQU0sWUFBWSxHQUFZLFNBQVMsSUFBSSxtQkFBbUIsQ0FBQztRQUMvRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1FBQ3JELE1BQU0sQ0FBQyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELHdDQUFlLEdBQWYsVUFBaUIsU0FBd0I7UUFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7SUFDOUQsQ0FBQztJQUVELHVDQUFjLEdBQWQsVUFBZ0IsU0FBd0IsRUFBRSxNQUFzQjtRQUM5RCxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMzRSxNQUFNLENBQUMsRUFBRSxnQ0FBZSxFQUFFLDBCQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBQ0kseUJBQVUsR0FBMEI7UUFDM0MsRUFBRSxJQUFJLEVBQUUsaUJBQVUsRUFBRTtLQUNuQixDQUFDO0lBQ0Ysa0JBQWtCO0lBQ1gsNkJBQWMsR0FBbUUsY0FBTSxPQUFBLEVBQzdGLEVBRDZGLENBQzdGLENBQUM7SUFDRixxQkFBQztBQUFELENBQUMsQUFsQ0QsSUFrQ0M7QUFsQ1ksc0JBQWMsaUJBa0MxQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9zaXRpb25TdGF0cywgU2Nyb2xsZXJDb25maWcgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuZXhwb3J0IGNsYXNzIFNjcm9sbFJlc29sdmVyIHtcbiAgcHVibGljIGxhc3RTY3JvbGxQb3NpdGlvbjogbnVtYmVyID0gMDtcblxuICBzaG91bGRTY3JvbGwgKGNvbnRhaW5lcjogUG9zaXRpb25TdGF0cywgY29uZmlnOiBTY3JvbGxlckNvbmZpZywgc2Nyb2xsaW5nRG93bjogYm9vbGVhbikge1xuICAgIGNvbnN0IGRpc3RhbmNlID0gY29uZmlnLmRpc3RhbmNlO1xuICAgIGxldCByZW1haW5pbmc6IG51bWJlcjtcbiAgICBsZXQgY29udGFpbmVyQnJlYWtwb2ludDogbnVtYmVyO1xuICAgIGlmIChzY3JvbGxpbmdEb3duKSB7XG4gICAgICByZW1haW5pbmcgPSBjb250YWluZXIudG90YWxUb1Njcm9sbCAtIGNvbnRhaW5lci5zY3JvbGxlZFVudGlsTm93O1xuICAgICAgY29udGFpbmVyQnJlYWtwb2ludCA9IGNvbnRhaW5lci5oZWlnaHQgKiBkaXN0YW5jZS5kb3duICsgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVtYWluaW5nID0gY29udGFpbmVyLnNjcm9sbGVkVW50aWxOb3c7XG4gICAgICBjb250YWluZXJCcmVha3BvaW50ID0gY29udGFpbmVyLmhlaWdodCAqIGRpc3RhbmNlLnVwICsgMTtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkU2Nyb2xsOiBib29sZWFuID0gcmVtYWluaW5nIDw9IGNvbnRhaW5lckJyZWFrcG9pbnQ7XG4gICAgdGhpcy5sYXN0U2Nyb2xsUG9zaXRpb24gPSBjb250YWluZXIuc2Nyb2xsZWRVbnRpbE5vdztcbiAgICByZXR1cm4gc2hvdWxkU2Nyb2xsO1xuICB9XG5cbiAgaXNTY3JvbGxpbmdEb3duIChjb250YWluZXI6IFBvc2l0aW9uU3RhdHMpIHtcbiAgICByZXR1cm4gdGhpcy5sYXN0U2Nyb2xsUG9zaXRpb24gPCBjb250YWluZXIuc2Nyb2xsZWRVbnRpbE5vdztcbiAgfVxuXG4gIGdldFNjcm9sbFN0YXRzIChjb250YWluZXI6IFBvc2l0aW9uU3RhdHMsIGNvbmZpZzogU2Nyb2xsZXJDb25maWcpIHtcbiAgICBjb25zdCBpc1Njcm9sbGluZ0Rvd24gPSB0aGlzLmlzU2Nyb2xsaW5nRG93bihjb250YWluZXIpO1xuICAgIGNvbnN0IHNob3VsZFNjcm9sbCA9IHRoaXMuc2hvdWxkU2Nyb2xsKGNvbnRhaW5lciwgY29uZmlnLCBpc1Njcm9sbGluZ0Rvd24pO1xuICAgIHJldHVybiB7IGlzU2Nyb2xsaW5nRG93biwgc2hvdWxkU2Nyb2xsIH07XG4gIH1cbnN0YXRpYyBkZWNvcmF0b3JzOiBEZWNvcmF0b3JJbnZvY2F0aW9uW10gPSBbXG57IHR5cGU6IEluamVjdGFibGUgfSxcbl07XG4vKiogQG5vY29sbGFwc2UgKi9cbnN0YXRpYyBjdG9yUGFyYW1ldGVyczogKCkgPT4gKHt0eXBlOiBhbnksIGRlY29yYXRvcnM/OiBEZWNvcmF0b3JJbnZvY2F0aW9uW119fG51bGwpW10gPSAoKSA9PiBbXG5dO1xufVxuXG5pbnRlcmZhY2UgRGVjb3JhdG9ySW52b2NhdGlvbiB7XG4gIHR5cGU6IEZ1bmN0aW9uO1xuICBhcmdzPzogYW55W107XG59XG4iXX0=
\No newline at end of file