UNPKG

lzy-load

Version:

LzyLoad is an Angular Lib for loading content on demand

36 lines 3.9 kB
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core'; export const LL_PRO_NAME = 'lzyLoadItemPos'; export class LzyLoadItemDirective { constructor(hostElement, renderer) { this.hostElement = hostElement; this.renderer = renderer; // Field that represent the current state of the observed element this.isVisible = false; // Field to know if the content should be loaded this.loadContent = false; } set pos(value) { if (value !== null && value !== undefined) { this._pos = value; // Marking the html element with the position that it is on the array so is easier to access it in the elements array this.renderer.setProperty(this.hostElement.nativeElement, LL_PRO_NAME, this._pos); } } get pos() { return this._pos; } } LzyLoadItemDirective.decorators = [ { type: Directive, args: [{ selector: '[lzyLoadItem]', exportAs: 'lzyLoadItem' },] } ]; LzyLoadItemDirective.ctorParameters = () => [ { type: ElementRef }, { type: Renderer2 } ]; LzyLoadItemDirective.propDecorators = { pos: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHp5LWxvYWQtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9senktbG9hZC9zcmMvbGliL2RpcmVjdGl2ZXMvbHp5LWxvYWQtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7QUFNNUMsTUFBTSxPQUFPLG9CQUFvQjtJQXFCL0IsWUFDUyxXQUF1QixFQUN0QixRQUFtQjtRQURwQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBckI3QixpRUFBaUU7UUFDakUsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnREFBZ0Q7UUFDaEQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFvQnBCLENBQUM7SUFoQkQsSUFBYSxHQUFHLENBQUMsS0FBYTtRQUM1QixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNsQixxSEFBcUg7WUFDckgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuRjtJQUNILENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQzs7O1lBdkJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFLGFBQWE7YUFDeEI7OztZQVBtQixVQUFVO1lBQVMsU0FBUzs7O2tCQWlCN0MsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExMX1BST19OQU1FID0gJ2x6eUxvYWRJdGVtUG9zJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2x6eUxvYWRJdGVtXScsXHJcbiAgZXhwb3J0QXM6ICdsenlMb2FkSXRlbSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEx6eUxvYWRJdGVtRGlyZWN0aXZlIHtcclxuXHJcbiAgLy8gRmllbGQgdGhhdCByZXByZXNlbnQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIG9ic2VydmVkIGVsZW1lbnRcclxuICBpc1Zpc2libGUgPSBmYWxzZTtcclxuICAvLyBGaWVsZCB0byBrbm93IGlmIHRoZSBjb250ZW50IHNob3VsZCBiZSBsb2FkZWRcclxuICBsb2FkQ29udGVudCA9IGZhbHNlO1xyXG4gIC8vIGl0ZW0gcG9zaXRpb24gaW4gdGhlIHJlc3VsdHNcclxuICBwcml2YXRlIF9wb3M6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KCkgc2V0IHBvcyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLl9wb3MgPSB2YWx1ZTtcclxuICAgICAgLy8gTWFya2luZyB0aGUgaHRtbCBlbGVtZW50IHdpdGggdGhlIHBvc2l0aW9uIHRoYXQgaXQgaXMgb24gdGhlIGFycmF5IHNvIGlzIGVhc2llciB0byBhY2Nlc3MgaXQgaW4gdGhlIGVsZW1lbnRzIGFycmF5XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBMTF9QUk9fTkFNRSwgdGhpcy5fcG9zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBwb3MoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9wb3M7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBob3N0RWxlbWVudDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG5cclxuICB9XHJcblxyXG59XHJcbiJdfQ==