1 | (function (global, factory) {
|
2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) :
|
3 | typeof define === 'function' && define.amd ? define('primeng/defer', ['exports', '@angular/core', '@angular/common'], factory) :
|
4 | (global = global || self, factory((global.primeng = global.primeng || {}, global.primeng.defer = {}), global.ng.core, global.ng.common));
|
5 | }(this, (function (exports, core, common) { 'use strict';
|
6 |
|
7 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
8 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
9 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
10 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
11 | return c > 3 && r && Object.defineProperty(target, key, r), r;
|
12 | };
|
13 | var DeferredLoader = (function () {
|
14 | function DeferredLoader(el, renderer, viewContainer) {
|
15 | this.el = el;
|
16 | this.renderer = renderer;
|
17 | this.viewContainer = viewContainer;
|
18 | this.onLoad = new core.EventEmitter();
|
19 | }
|
20 | DeferredLoader.prototype.ngAfterViewInit = function () {
|
21 | var _this = this;
|
22 | if (this.shouldLoad()) {
|
23 | this.load();
|
24 | }
|
25 | if (!this.isLoaded()) {
|
26 | this.documentScrollListener = this.renderer.listen('window', 'scroll', function () {
|
27 | if (_this.shouldLoad()) {
|
28 | _this.load();
|
29 | _this.documentScrollListener();
|
30 | _this.documentScrollListener = null;
|
31 | }
|
32 | });
|
33 | }
|
34 | };
|
35 | DeferredLoader.prototype.shouldLoad = function () {
|
36 | if (this.isLoaded()) {
|
37 | return false;
|
38 | }
|
39 | else {
|
40 | var rect = this.el.nativeElement.getBoundingClientRect();
|
41 | var docElement = document.documentElement;
|
42 | var winHeight = docElement.clientHeight;
|
43 | return (winHeight >= rect.top);
|
44 | }
|
45 | };
|
46 | DeferredLoader.prototype.load = function () {
|
47 | this.view = this.viewContainer.createEmbeddedView(this.template);
|
48 | this.onLoad.emit();
|
49 | };
|
50 | DeferredLoader.prototype.isLoaded = function () {
|
51 | return this.view != null;
|
52 | };
|
53 | DeferredLoader.prototype.ngOnDestroy = function () {
|
54 | this.view = null;
|
55 | if (this.documentScrollListener) {
|
56 | this.documentScrollListener();
|
57 | }
|
58 | };
|
59 | DeferredLoader.ctorParameters = function () { return [
|
60 | { type: core.ElementRef },
|
61 | { type: core.Renderer2 },
|
62 | { type: core.ViewContainerRef }
|
63 | ]; };
|
64 | __decorate([
|
65 | core.Output()
|
66 | ], DeferredLoader.prototype, "onLoad", void 0);
|
67 | __decorate([
|
68 | core.ContentChild(core.TemplateRef)
|
69 | ], DeferredLoader.prototype, "template", void 0);
|
70 | DeferredLoader = __decorate([
|
71 | core.Directive({
|
72 | selector: '[pDefer]'
|
73 | })
|
74 | ], DeferredLoader);
|
75 | return DeferredLoader;
|
76 | }());
|
77 | var DeferModule = (function () {
|
78 | function DeferModule() {
|
79 | }
|
80 | DeferModule = __decorate([
|
81 | core.NgModule({
|
82 | imports: [common.CommonModule],
|
83 | exports: [DeferredLoader],
|
84 | declarations: [DeferredLoader]
|
85 | })
|
86 | ], DeferModule);
|
87 | return DeferModule;
|
88 | }());
|
89 |
|
90 | exports.DeferModule = DeferModule;
|
91 | exports.DeferredLoader = DeferredLoader;
|
92 |
|
93 | Object.defineProperty(exports, '__esModule', { value: true });
|
94 |
|
95 | })));
|
96 |
|