ngx-lazy-scroll
Version:
A simple lazy loading directive for large form elements. This will increase DOM rendering speed.
52 lines • 3.84 kB
JavaScript
/**
* @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=