UNPKG

ngx-lazy-scroll

Version:

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

66 lines (60 loc) 2.14 kB
import { Directive, HostListener, Input, Output, EventEmitter, NgModule } from '@angular/core'; /** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NgxLazyScrollDirective { constructor() { this.limit = 1; this.heightAdjust = '0'; this.stepEvent = new EventEmitter(); } /** * @param {?} event * @return {?} */ scrollHandler(event) { /** @type {?} */ const tracker = event.target; /** @type {?} */ const 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'],] }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NgxLazyScrollModule { } NgxLazyScrollModule.decorators = [ { type: NgModule, args: [{ declarations: [NgxLazyScrollDirective], imports: [], exports: [NgxLazyScrollDirective] },] } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { NgxLazyScrollDirective, NgxLazyScrollModule }; //# sourceMappingURL=ngx-lazy-scroll.js.map