UNPKG

ngx-lazy-scroll

Version:

A simple lazy loading directive for large form elements. This will increase DOM rendering speed.

52 lines 3.84 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, HostListener, Input, Output, EventEmitter } from '@angular/core'; var NgxLazyScrollDirective = /** @class */ (function () { function NgxLazyScrollDirective() { this.limit = 1; this.heightAdjust = '0'; this.stepEvent = new EventEmitter(); } /** * @param {?} event * @return {?} */ NgxLazyScrollDirective.prototype.scrollHandler = /** * @param {?} event * @return {?} */ function (event) { /** @type {?} */ var tracker = event.target; /** @type {?} */ var limit = tracker.scrollHeight + Number(this.heightAdjust); if (Number(tracker.offsetHeight) + Number(tracker.scrollTop) > limit) { this.limit++; this.stepEvent.emit(this.limit); } }; NgxLazyScrollDirective.decorators = [ { type: Directive, args: [{ selector: '[lazyScroll]' },] } ]; NgxLazyScrollDirective.propDecorators = { limit: [{ type: Input }], heightAdjust: [{ type: Input }], stepEvent: [{ type: Output }], scrollHandler: [{ type: HostListener, args: ['scroll', ['$event'],] }] }; return NgxLazyScrollDirective; }()); export { NgxLazyScrollDirective }; if (false) { /** @type {?} */ NgxLazyScrollDirective.prototype.limit; /** @type {?} */ NgxLazyScrollDirective.prototype.heightAdjust; /** @type {?} */ NgxLazyScrollDirective.prototype.stepEvent; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxhenktc2Nyb2xsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1sYXp5LXNjcm9sbC8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtbGF6eS1zY3JvbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QjtJQUFBO1FBSVcsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUMxQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVkzQyxDQUFDOzs7OztJQVhxQyw4Q0FBYTs7OztJQUFqRCxVQUFrRCxLQUFLOztZQUMvQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU07O1lBQ3RCLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzlELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssRUFBRTtZQUNwRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDOztnQkFkRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzs7d0JBRUUsS0FBSzsrQkFDTCxLQUFLOzRCQUNMLE1BQU07Z0NBQ04sWUFBWSxTQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7SUFXcEMsNkJBQUM7Q0FBQSxBQWxCRCxJQWtCQztTQWZZLHNCQUFzQjs7O0lBQ2pDLHVDQUEyQjs7SUFDM0IsOENBQW9DOztJQUNwQywyQ0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2xhenlTY3JvbGxdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hMYXp5U2Nyb2xsRGlyZWN0aXZlIHtcbiAgQElucHV0KCkgbGltaXQ6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIGhlaWdodEFkanVzdDogc3RyaW5nID0gJzAnO1xuICBAT3V0cHV0KCkgc3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASG9zdExpc3RlbmVyKCdzY3JvbGwnLCBbJyRldmVudCddKSBzY3JvbGxIYW5kbGVyKGV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdHJhY2tlciA9IGV2ZW50LnRhcmdldDtcbiAgICBjb25zdCBsaW1pdCA9IHRyYWNrZXIuc2Nyb2xsSGVpZ2h0ICsgTnVtYmVyKHRoaXMuaGVpZ2h0QWRqdXN0KTtcbiAgICBpZiAoTnVtYmVyKHRyYWNrZXIub2Zmc2V0SGVpZ2h0KSArIE51bWJlcih0cmFja2VyLnNjcm9sbFRvcCkgPiBsaW1pdCkge1xuICAgICAgdGhpcy5saW1pdCsrO1xuICAgICAgdGhpcy5zdGVwRXZlbnQuZW1pdCh0aGlzLmxpbWl0KTtcbiAgICB9XG4gIH1cblxuXG5cbn0iXX0=