Commit 17282a9f by Emile TAVERNE

Modification composant in viewport

parent 6d92b3e8
......@@ -13,11 +13,22 @@
function InViewportComponent() {
}
/**
* @param {?} event
* @return {?}
*/
InViewportComponent.prototype.onViewportChange = /**
* @param {?} event
* @return {?}
*/
function (event) {
console.log(event);
};
InViewportComponent.decorators = [
{
type: core.Component, args: [{
selector: 'aiut-in-viewport',
template: "<div (inViewport)=\"showMyElement = $event.isIntersecting\" aiutInViewport>\r\n <ng-content *ngIf=\"showMyElement\"></ng-content>\r\n</div>\r\n"
template: "<div (inViewport)=\"onViewportChange($event)\" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n"
}]
}
];
......
......@@ -9,7 +9,7 @@
"ng://aitp-utils/lib/aitp-utils.module.ts"
],
"sourcesContent": [
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n showMyElement: false;\r\n}\r\n",
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n\r\n onViewportChange(event) {\r\n console.log(event);\r\n }\r\n}\r\n",
"import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\nimport {filter, finalize} from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ViewportService {\r\n private readonly options: IntersectionObserverInit = {\r\n rootMargin: '0px 0px 0px 0px',\r\n threshold: [0.5],\r\n };\r\n private observer: IntersectionObserver;\r\n private callback$: Subject<IntersectionObserverEntry> = new Subject();\r\n\r\n constructor() {\r\n this.observer = new IntersectionObserver(this.handler.bind(this), this.options);\r\n }\r\n\r\n observe(element: Element): Observable<IntersectionObserverEntry> {\r\n this.observer.observe(element);\r\n\r\n return this.callback$.asObservable().pipe(\r\n filter((entry: IntersectionObserverEntry) => entry.target === element),\r\n finalize(() => this.observer.unobserve(element)),\r\n );\r\n }\r\n\r\n private handler(entries: Array<IntersectionObserverEntry>): void {\r\n entries.forEach(entry => this.callback$.next(entry));\r\n }\r\n}\r\n",
"import {MonoTypeOperatorFunction, Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n// create a symbol identify the observable I add to\r\n// the component so it doesn't conflict with anything.\r\n// I need this so I'm able to add the desired behaviour to the component.\r\nexport const destroy$ = Symbol('destroy$');\r\n\r\n/**\r\n * An operator that takes until destroy it takes a components this a parameter\r\n * returns a pipeable RxJS operator.\r\n */\r\nexport const untilDestroy = <T>(component: any): MonoTypeOperatorFunction<T> => {\r\n if (component[destroy$] === undefined) {\r\n // only hookup each component once.\r\n addDestroyObservableToComponent(component);\r\n }\r\n\r\n // pipe in the takeUntil destroy$ and return the source unaltered\r\n return takeUntil<T>(component[destroy$]);\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function addDestroyObservableToComponent(component: any) {\r\n component[destroy$] = new Observable<void>(observer => {\r\n // keep track of the original destroy function,\r\n // the user might do something in there\r\n const orignalDestroy = component.ngOnDestroy;\r\n if (orignalDestroy == null) {\r\n // Angular does not support dynamic added destroy methods\r\n // so make sure there is one.\r\n throw new Error('untilDestroy operator needs the component to have an ngOnDestroy method');\r\n }\r\n // replace the ngOndestroy\r\n component.ngOnDestroy = () => {\r\n // fire off the destroy observable\r\n observer.next();\r\n // complete the observable\r\n observer.complete();\r\n // and at last, call the original destroy\r\n orignalDestroy.call(component);\r\n };\r\n // return cleanup function.\r\n return (_: any) => (component[destroy$] = undefined);\r\n });\r\n}\r\n",
"import {Directive, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, PLATFORM_ID,} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\nimport {filter, take} from 'rxjs/operators';\r\nimport {ViewportService} from '../services';\r\nimport {untilDestroy} from '../operators';\r\n\r\n@Directive({\r\n selector: '[aiutInViewport]',\r\n})\r\nexport class InViewportDirective implements OnInit, OnDestroy {\r\n @Input() public preRender = true;\r\n @Input() public oneTime = false;\r\n @Output() readonly inViewport = new EventEmitter<Partial<IntersectionObserverEntry>>();\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private viewportService: ViewportService,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n ) {\r\n }\r\n\r\n public ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (this.oneTime) {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(\r\n untilDestroy(this),\r\n filter(entry => entry.intersectionRatio >= 0.5),\r\n take(1),\r\n )\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n } else {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(untilDestroy(this))\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n }\r\n } else {\r\n if (this.preRender) {\r\n this.inViewport.emit({isIntersecting: true, intersectionRatio: 1});\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n",
......@@ -38,5 +38,5 @@
"Components.InViewportComponent",
"Services.ViewportService"
],
"mappings": "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"
"mappings": ";;;;;;;;;;AAAA;QAEA;SASC;;;;;QAHC,8CAAgB;;;;YAAhB,UAAiB,KAAK;gBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACpB;;oBARFA,cAAS,SAAC;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,uHAA2C;qBAC5C;;QAMD,0BAAC;KATD;;;;;;;;;;;ACFA;QAaE;YAPiB,YAAO,GAA6B;gBACnD,UAAU,EAAE,iBAAiB;gBAC7B,SAAS,EAAE,CAAC,GAAG,CAAC;aACjB,CAAC;YAEM,cAAS,GAAuC,IAAIC,YAAO,EAAE,CAAC;YAGpE,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACjF;;;;;QAED,iCAAO;;;;YAAP,UAAQ,OAAgB;gBAAxB,iBAOC;gBANC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAE/B,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,IAAI,CACvCC,gBAAM;;;mBAAC,UAAC,KAAgC,IAAK,OAAA,KAAK,CAAC,MAAM,KAAK,OAAO,GAAA,EAAC,EACtEC,kBAAQ;;mBAAC,cAAM,OAAA,KAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAA,EAAC,CACjD,CAAC;aACH;;;;;;QAEO,iCAAO;;;;;YAAf,UAAgB,OAAyC;gBAAzD,iBAEC;gBADC,OAAO,CAAC,OAAO;;;mBAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAA,EAAC,CAAC;aACtD;;oBAxBFC,eAAU;;;;QAyBX,sBAAC;KAzBD;;;;;;;;;;;ACJA;;;;AAMA,QAAa,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;;;;;;AAM1C,QAAa,YAAY;;;;OAAG,UAAI,SAAc;QAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;;YAErC,+BAA+B,CAAC,SAAS,CAAC,CAAC;SAC5C;;QAGD,OAAOC,mBAAS,CAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAA;;;;;;AAKD,aAAgB,+BAA+B,CAAC,SAAc;QAC5D,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAIC,eAAU;;;WAAO,UAAA,QAAQ;;;;gBAG3C,cAAc,GAAG,SAAS,CAAC,WAAW;YAC5C,IAAI,cAAc,IAAI,IAAI,EAAE;;;gBAG1B,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;aAC5F;;YAED,SAAS,CAAC,WAAW;;eAAG;;gBAEtB,QAAQ,CAAC,IAAI,EAAE,CAAC;;gBAEhB,QAAQ,CAAC,QAAQ,EAAE,CAAC;;gBAEpB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAChC,CAAA,CAAC;;YAEF;;;eAAO,UAAC,CAAM,IAAK,QAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,IAAC,EAAC;SACtD,EAAC,CAAC;IACL,CAAC;;;;;;;;;;;AC/CD;QAcE,6BACmB,UAAsB,EAC/B,eAAgC,EACX,UAAkB;YAF9B,eAAU,GAAV,UAAU,CAAY;YAC/B,oBAAe,GAAf,eAAe,CAAiB;YACX,eAAU,GAAV,UAAU,CAAQ;YAPjC,cAAS,GAAG,IAAI,CAAC;YACjB,YAAO,GAAG,KAAK,CAAC;YACb,eAAU,GAAG,IAAIC,iBAAY,EAAsC,CAAC;SAOtF;;;;QAEM,sCAAQ;;;YAAf;gBAAA,iBA0BC;gBAzBC,IAAIC,wBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACtC,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,IAAI,CAAC,eAAe;6BACjB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;6BACtC,IAAI,CACH,YAAY,CAAC,IAAI,CAAC,EAClBN,gBAAM;;;uBAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,iBAAiB,IAAI,GAAG,GAAA,EAAC,EAC/CO,cAAI,CAAC,CAAC,CAAC,CACR;6BACA,SAAS;;;uBAAC,UAAC,KAAgC;4BAC1C,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAC7B,EAAC,CAAC;qBACN;yBAAM;wBACL,IAAI,CAAC,eAAe;6BACjB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;6BACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;6BACxB,SAAS;;;uBAAC,UAAC,KAAgC;4BAC1C,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBAC7B,EAAC,CAAC;qBACN;iBACF;qBAAM;oBACL,IAAI,IAAI,CAAC,SAAS,EAAE;wBAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAC,CAAC,CAAC;qBACpE;iBACF;aACF;;;;QAED,yCAAW;;;YAAX;aACC;;oBA5CFC,cAAS,SAAC;wBACT,QAAQ,EAAE,kBAAkB;qBAC7B;;;;;wBARkBC,eAAU;wBAGrB,eAAe;wBAcsB,MAAM,uBAA9CC,WAAM,SAACC,gBAAW;;;;gCAPpBC,UAAK;8BACLA,UAAK;iCACLC,WAAM;;QAuCT,0BAAC;KA7CD;;;;;;;;;;;ACNA;QAOA;SAMgC;;oBAN/BC,aAAQ,SAAC;wBACR,OAAO,EAAE,CAACC,mBAAY,CAAC;wBACvB,YAAY,EAAE,CAACC,mBAA8B,EAAEC,mBAA8B,CAAC;wBAC9E,SAAS,EAAE,CAACC,eAAwB,CAAC;wBACrC,OAAO,EAAE,CAACF,mBAA8B,EAAEC,mBAA8B,CAAC;qBAC1E;;QAC8B,sBAAC;KANhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
}
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("aitp-utils",["exports","@angular/common","@angular/core","rxjs","rxjs/operators"],t):t(e["aitp-utils"]={},e.ng.common,e.ng.core,e.rxjs,e.rxjs.operators)}(this,function(e,n,r,t,o){"use strict";var i=function(){function e(){}return e.decorators=[{type:r.Component,args:[{selector:"aiut-in-viewport",template:'<div (inViewport)="showMyElement = $event.isIntersecting" aiutInViewport>\r\n <ng-content *ngIf="showMyElement"></ng-content>\r\n</div>\r\n'}]}],e}(),s=function(){function e(){this.options={rootMargin:"0px 0px 0px 0px",threshold:[.5]},this.callback$=new t.Subject,this.observer=new IntersectionObserver(this.handler.bind(this),this.options)}return e.prototype.observe=function(t){var e=this;return this.observer.observe(t),this.callback$.asObservable().pipe(o.filter(function(e){return e.target===t}),o.finalize(function(){return e.observer.unobserve(t)}))},e.prototype.handler=function(e){var t=this;e.forEach(function(e){return t.callback$.next(e)})},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[]},e}(),p=Symbol("destroy$"),c=function(e){return e[p]===undefined&&u(e),o.takeUntil(e[p])};function u(n){n[p]=new t.Observable(function(e){var t=n.ngOnDestroy;if(null==t)throw new Error("untilDestroy operator needs the component to have an ngOnDestroy method");return n.ngOnDestroy=function(){e.next(),e.complete(),t.call(n)},function(e){return n[p]=undefined}})}var a=function(){function e(e,t,n){this.elementRef=e,this.viewportService=t,this.platformId=n,this.preRender=!0,this.oneTime=!1,this.inViewport=new r.EventEmitter}return e.prototype.ngOnInit=function(){var t=this;n.isPlatformBrowser(this.platformId)?this.oneTime?this.viewportService.observe(this.elementRef.nativeElement).pipe(c(this),o.filter(function(e){return.5<=e.intersectionRatio}),o.take(1)).subscribe(function(e){t.inViewport.emit(e)}):this.viewportService.observe(this.elementRef.nativeElement).pipe(c(this)).subscribe(function(e){t.inViewport.emit(e)}):this.preRender&&this.inViewport.emit({isIntersecting:!0,intersectionRatio:1})},e.prototype.ngOnDestroy=function(){},e.decorators=[{type:r.Directive,args:[{selector:"[aiutInViewport]"}]}],e.ctorParameters=function(){return[{type:r.ElementRef},{type:s},{type:Object,decorators:[{type:r.Inject,args:[r.PLATFORM_ID]}]}]},e.propDecorators={preRender:[{type:r.Input}],oneTime:[{type:r.Input}],inViewport:[{type:r.Output}]},e}(),l=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{imports:[n.CommonModule],declarations:[a,i],providers:[s],exports:[a,i]}]}],e}();e.AitpUtilsModule=l,e.InViewportComponent=i,e.InViewportDirective=a,e.addDestroyObservableToComponent=u,e.destroy$=p,e.untilDestroy=c,e.ViewportService=s,e.ɵb=i,e.ɵa=a,e.ɵc=s,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/common"),require("@angular/core"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("aitp-utils",["exports","@angular/common","@angular/core","rxjs","rxjs/operators"],t):t(e["aitp-utils"]={},e.ng.common,e.ng.core,e.rxjs,e.rxjs.operators)}(this,function(e,n,r,t,o){"use strict";var i=function(){function e(){}return e.prototype.onViewportChange=function(e){console.log(e)},e.decorators=[{type:r.Component,args:[{selector:"aiut-in-viewport",template:'<div (inViewport)="onViewportChange($event)" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n'}]}],e}(),s=function(){function e(){this.options={rootMargin:"0px 0px 0px 0px",threshold:[.5]},this.callback$=new t.Subject,this.observer=new IntersectionObserver(this.handler.bind(this),this.options)}return e.prototype.observe=function(t){var e=this;return this.observer.observe(t),this.callback$.asObservable().pipe(o.filter(function(e){return e.target===t}),o.finalize(function(){return e.observer.unobserve(t)}))},e.prototype.handler=function(e){var t=this;e.forEach(function(e){return t.callback$.next(e)})},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[]},e}(),p=Symbol("destroy$"),c=function(e){return e[p]===undefined&&u(e),o.takeUntil(e[p])};function u(n){n[p]=new t.Observable(function(e){var t=n.ngOnDestroy;if(null==t)throw new Error("untilDestroy operator needs the component to have an ngOnDestroy method");return n.ngOnDestroy=function(){e.next(),e.complete(),t.call(n)},function(e){return n[p]=undefined}})}var a=function(){function e(e,t,n){this.elementRef=e,this.viewportService=t,this.platformId=n,this.preRender=!0,this.oneTime=!1,this.inViewport=new r.EventEmitter}return e.prototype.ngOnInit=function(){var t=this;n.isPlatformBrowser(this.platformId)?this.oneTime?this.viewportService.observe(this.elementRef.nativeElement).pipe(c(this),o.filter(function(e){return.5<=e.intersectionRatio}),o.take(1)).subscribe(function(e){t.inViewport.emit(e)}):this.viewportService.observe(this.elementRef.nativeElement).pipe(c(this)).subscribe(function(e){t.inViewport.emit(e)}):this.preRender&&this.inViewport.emit({isIntersecting:!0,intersectionRatio:1})},e.prototype.ngOnDestroy=function(){},e.decorators=[{type:r.Directive,args:[{selector:"[aiutInViewport]"}]}],e.ctorParameters=function(){return[{type:r.ElementRef},{type:s},{type:Object,decorators:[{type:r.Inject,args:[r.PLATFORM_ID]}]}]},e.propDecorators={preRender:[{type:r.Input}],oneTime:[{type:r.Input}],inViewport:[{type:r.Output}]},e}(),l=function(){function e(){}return e.decorators=[{type:r.NgModule,args:[{imports:[n.CommonModule],declarations:[a,i],providers:[s],exports:[a,i]}]}],e}();e.AitpUtilsModule=l,e.InViewportComponent=i,e.InViewportDirective=a,e.addDestroyObservableToComponent=u,e.destroy$=p,e.untilDestroy=c,e.ViewportService=s,e.ɵb=i,e.ɵa=a,e.ɵc=s,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=aitp-utils.umd.min.js.map
\ No newline at end of file
......@@ -9,6 +9,11 @@
],
"names": [
"InViewportComponent",
"prototype",
"onViewportChange",
"event",
"console",
"log",
"Component",
"args",
"selector",
......@@ -24,7 +29,6 @@
"IntersectionObserver",
"handler",
"bind",
"prototype",
"observe",
"element",
"_this",
......@@ -89,9 +93,9 @@
"Services.ViewportService",
"exports"
],
"mappings": "2ZAAA,IAAAA,EAAA,WAEA,SAAAA,KAMA,2BANCC,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,mBACVC,SAAA,mJAIFJ,EARA,GCAAK,EAAA,WAaE,SAAAA,IAPiBC,KAAAC,QAAoC,CACnDC,WAAY,kBACZC,UAAW,CAAC,KAGNH,KAAAI,UAAgD,IAAIC,EAAAA,QAG1DL,KAAKM,SAAW,IAAIC,qBAAqBP,KAAKQ,QAAQC,KAAKT,MAAOA,KAAKC,SAe3E,OAZEF,EAAAW,UAAAC,QAAA,SAAQC,GAAR,IAAAC,EAAAb,KAGE,OAFAA,KAAKM,SAASK,QAAQC,GAEfZ,KAAKI,UAAUU,eAAeC,KACnCC,EAAAA,OAAM,SAAEC,GAAqC,OAAAA,EAAMC,SAAWN,IAC9DO,EAAAA,SAAQ,WAAO,OAAAN,EAAKP,SAASc,UAAUR,OAInCb,EAAAW,UAAAF,QAAR,SAAgBa,GAAhB,IAAAR,EAAAb,KACEqB,EAAQC,QAAO,SAACL,GAAS,OAAAJ,EAAKT,UAAUmB,KAAKN,0BAvBhDO,EAAAA,mDAyBDzB,EA7BA,GCMa0B,EAAWC,OAAO,YAMlBC,EAAY,SAAOC,GAO9B,OANIA,EAAUH,KAAcI,WAE1BC,EAAgCF,GAI3BG,EAAAA,UAAaH,EAAUH,KAMhC,SAAgBK,EAAgCF,GAC9CA,EAAUH,GAAY,IAAIO,EAAAA,WAAU,SAAO1B,OAGnC2B,EAAiBL,EAAUM,YACjC,GAAsB,MAAlBD,EAGF,MAAM,IAAIE,MAAM,2EAYlB,OATAP,EAAUM,YAAW,WAEnB5B,EAASiB,OAETjB,EAAS8B,WAETH,EAAeI,KAAKT,IAGtB,SAAQU,GAAW,OAACV,EAAUH,GAAYI,aC7C9C,IAAAU,EAAA,WAcE,SAAAA,EACmBC,EACTC,EACqBC,GAFZ1C,KAAAwC,WAAAA,EACTxC,KAAAyC,gBAAAA,EACqBzC,KAAA0C,WAAAA,EAPf1C,KAAA2C,WAAY,EACZ3C,KAAA4C,SAAU,EACP5C,KAAA6C,WAAa,IAAIC,EAAAA,aAuCtC,OA9BSP,EAAA7B,UAAAqC,SAAP,WAAA,IAAAlC,EAAAb,KACMgD,EAAAA,kBAAkBhD,KAAK0C,YACrB1C,KAAK4C,QACP5C,KAAKyC,gBACF9B,QAAQX,KAAKwC,WAAWS,eACxBlC,KACCY,EAAa3B,MACbgB,EAAAA,OAAM,SAACC,GAAS,MAA2B,IAA3BA,EAAMiC,oBACtBC,EAAAA,KAAK,IAENC,UAAS,SAAEnC,GACVJ,EAAKgC,WAAWQ,KAAKpC,KAGzBjB,KAAKyC,gBACF9B,QAAQX,KAAKwC,WAAWS,eACxBlC,KAAKY,EAAa3B,OAClBoD,UAAS,SAAEnC,GACVJ,EAAKgC,WAAWQ,KAAKpC,KAIvBjB,KAAK2C,WACP3C,KAAK6C,WAAWQ,KAAK,CAACC,gBAAgB,EAAMJ,kBAAmB,KAKrEX,EAAA7B,UAAAwB,YAAA,iCA3CDqB,EAAAA,UAAS3D,KAAA,CAAC,CACTC,SAAU,gEAPO2D,EAAAA,kBAGXzD,SAcqC0D,OAAMC,WAAA,CAAA,CAAAC,KAA9CC,EAAAA,OAAMhE,KAAA,CAACiE,EAAAA,qDAPTC,EAAAA,uBACAA,EAAAA,0BACAC,EAAAA,UAuCHxB,EAnDA,GCAAyB,EAAA,WAOA,SAAAA,KAM+B,2BAN9BC,EAAAA,SAAQrE,KAAA,CAAC,CACRsE,QAAS,CAACC,EAAAA,cACVC,aAAc,CAACC,EAAgCC,GAC/CC,UAAW,CAACC,GACZC,QAAS,CAACJ,EAAgCC,OAEbN,EAb/B",
"mappings": "2ZAAA,IAAAA,EAAA,WAEA,SAAAA,KASA,OAHEA,EAAAC,UAAAC,iBAAA,SAAiBC,GACfC,QAAQC,IAAIF,wBAPfG,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,mBACVC,SAAA,gHAOFT,EAXA,GCAAU,EAAA,WAaE,SAAAA,IAPiBC,KAAAC,QAAoC,CACnDC,WAAY,kBACZC,UAAW,CAAC,KAGNH,KAAAI,UAAgD,IAAIC,EAAAA,QAG1DL,KAAKM,SAAW,IAAIC,qBAAqBP,KAAKQ,QAAQC,KAAKT,MAAOA,KAAKC,SAe3E,OAZEF,EAAAT,UAAAoB,QAAA,SAAQC,GAAR,IAAAC,EAAAZ,KAGE,OAFAA,KAAKM,SAASI,QAAQC,GAEfX,KAAKI,UAAUS,eAAeC,KACnCC,EAAAA,OAAM,SAAEC,GAAqC,OAAAA,EAAMC,SAAWN,IAC9DO,EAAAA,SAAQ,WAAO,OAAAN,EAAKN,SAASa,UAAUR,OAInCZ,EAAAT,UAAAkB,QAAR,SAAgBY,GAAhB,IAAAR,EAAAZ,KACEoB,EAAQC,QAAO,SAACL,GAAS,OAAAJ,EAAKR,UAAUkB,KAAKN,0BAvBhDO,EAAAA,mDAyBDxB,EA7BA,GCMayB,EAAWC,OAAO,YAMlBC,EAAY,SAAOC,GAO9B,OANIA,EAAUH,KAAcI,WAE1BC,EAAgCF,GAI3BG,EAAAA,UAAaH,EAAUH,KAMhC,SAAgBK,EAAgCF,GAC9CA,EAAUH,GAAY,IAAIO,EAAAA,WAAU,SAAOzB,OAGnC0B,EAAiBL,EAAUM,YACjC,GAAsB,MAAlBD,EAGF,MAAM,IAAIE,MAAM,2EAYlB,OATAP,EAAUM,YAAW,WAEnB3B,EAASgB,OAEThB,EAAS6B,WAETH,EAAeI,KAAKT,IAGtB,SAAQU,GAAW,OAACV,EAAUH,GAAYI,aC7C9C,IAAAU,EAAA,WAcE,SAAAA,EACmBC,EACTC,EACqBC,GAFZzC,KAAAuC,WAAAA,EACTvC,KAAAwC,gBAAAA,EACqBxC,KAAAyC,WAAAA,EAPfzC,KAAA0C,WAAY,EACZ1C,KAAA2C,SAAU,EACP3C,KAAA4C,WAAa,IAAIC,EAAAA,aAuCtC,OA9BSP,EAAAhD,UAAAwD,SAAP,WAAA,IAAAlC,EAAAZ,KACM+C,EAAAA,kBAAkB/C,KAAKyC,YACrBzC,KAAK2C,QACP3C,KAAKwC,gBACF9B,QAAQV,KAAKuC,WAAWS,eACxBlC,KACCY,EAAa1B,MACbe,EAAAA,OAAM,SAACC,GAAS,MAA2B,IAA3BA,EAAMiC,oBACtBC,EAAAA,KAAK,IAENC,UAAS,SAAEnC,GACVJ,EAAKgC,WAAWQ,KAAKpC,KAGzBhB,KAAKwC,gBACF9B,QAAQV,KAAKuC,WAAWS,eACxBlC,KAAKY,EAAa1B,OAClBmD,UAAS,SAAEnC,GACVJ,EAAKgC,WAAWQ,KAAKpC,KAIvBhB,KAAK0C,WACP1C,KAAK4C,WAAWQ,KAAK,CAACC,gBAAgB,EAAMJ,kBAAmB,KAKrEX,EAAAhD,UAAA2C,YAAA,iCA3CDqB,EAAAA,UAAS1D,KAAA,CAAC,CACTC,SAAU,gEAPO0D,EAAAA,kBAGXxD,SAcqCyD,OAAMC,WAAA,CAAA,CAAAC,KAA9CC,EAAAA,OAAM/D,KAAA,CAACgE,EAAAA,qDAPTC,EAAAA,uBACAA,EAAAA,0BACAC,EAAAA,UAuCHxB,EAnDA,GCAAyB,EAAA,WAOA,SAAAA,KAM+B,2BAN9BC,EAAAA,SAAQpE,KAAA,CAAC,CACRqE,QAAS,CAACC,EAAAA,cACVC,aAAc,CAACC,EAAgCC,GAC/CC,UAAW,CAACC,GACZC,QAAS,CAACJ,EAAgCC,OAEbN,EAb/B",
"sourcesContent": [
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n showMyElement: false;\r\n}\r\n",
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n\r\n onViewportChange(event) {\r\n console.log(event);\r\n }\r\n}\r\n",
"import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\nimport {filter, finalize} from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ViewportService {\r\n private readonly options: IntersectionObserverInit = {\r\n rootMargin: '0px 0px 0px 0px',\r\n threshold: [0.5],\r\n };\r\n private observer: IntersectionObserver;\r\n private callback$: Subject<IntersectionObserverEntry> = new Subject();\r\n\r\n constructor() {\r\n this.observer = new IntersectionObserver(this.handler.bind(this), this.options);\r\n }\r\n\r\n observe(element: Element): Observable<IntersectionObserverEntry> {\r\n this.observer.observe(element);\r\n\r\n return this.callback$.asObservable().pipe(\r\n filter((entry: IntersectionObserverEntry) => entry.target === element),\r\n finalize(() => this.observer.unobserve(element)),\r\n );\r\n }\r\n\r\n private handler(entries: Array<IntersectionObserverEntry>): void {\r\n entries.forEach(entry => this.callback$.next(entry));\r\n }\r\n}\r\n",
"import {MonoTypeOperatorFunction, Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n// create a symbol identify the observable I add to\r\n// the component so it doesn't conflict with anything.\r\n// I need this so I'm able to add the desired behaviour to the component.\r\nexport const destroy$ = Symbol('destroy$');\r\n\r\n/**\r\n * An operator that takes until destroy it takes a components this a parameter\r\n * returns a pipeable RxJS operator.\r\n */\r\nexport const untilDestroy = <T>(component: any): MonoTypeOperatorFunction<T> => {\r\n if (component[destroy$] === undefined) {\r\n // only hookup each component once.\r\n addDestroyObservableToComponent(component);\r\n }\r\n\r\n // pipe in the takeUntil destroy$ and return the source unaltered\r\n return takeUntil<T>(component[destroy$]);\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function addDestroyObservableToComponent(component: any) {\r\n component[destroy$] = new Observable<void>(observer => {\r\n // keep track of the original destroy function,\r\n // the user might do something in there\r\n const orignalDestroy = component.ngOnDestroy;\r\n if (orignalDestroy == null) {\r\n // Angular does not support dynamic added destroy methods\r\n // so make sure there is one.\r\n throw new Error('untilDestroy operator needs the component to have an ngOnDestroy method');\r\n }\r\n // replace the ngOndestroy\r\n component.ngOnDestroy = () => {\r\n // fire off the destroy observable\r\n observer.next();\r\n // complete the observable\r\n observer.complete();\r\n // and at last, call the original destroy\r\n orignalDestroy.call(component);\r\n };\r\n // return cleanup function.\r\n return (_: any) => (component[destroy$] = undefined);\r\n });\r\n}\r\n",
"import {Directive, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, PLATFORM_ID,} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\nimport {filter, take} from 'rxjs/operators';\r\nimport {ViewportService} from '../services';\r\nimport {untilDestroy} from '../operators';\r\n\r\n@Directive({\r\n selector: '[aiutInViewport]',\r\n})\r\nexport class InViewportDirective implements OnInit, OnDestroy {\r\n @Input() public preRender = true;\r\n @Input() public oneTime = false;\r\n @Output() readonly inViewport = new EventEmitter<Partial<IntersectionObserverEntry>>();\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private viewportService: ViewportService,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n ) {\r\n }\r\n\r\n public ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (this.oneTime) {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(\r\n untilDestroy(this),\r\n filter(entry => entry.intersectionRatio >= 0.5),\r\n take(1),\r\n )\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n } else {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(untilDestroy(this))\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n }\r\n } else {\r\n if (this.preRender) {\r\n this.inViewport.emit({isIntersecting: true, intersectionRatio: 1});\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n",
......
......@@ -10,7 +10,6 @@ import * as Services from './services';
export class AitpUtilsModule {
}
AitpUtilsModule.decorators = [
{
type: NgModule, args: [{
......
......@@ -5,18 +5,20 @@
import {Component} from '@angular/core';
export class InViewportComponent {
/**
* @param {?} event
* @return {?}
*/
onViewportChange(event) {
console.log(event);
}
}
InViewportComponent.decorators = [
{
type: Component, args: [{
selector: 'aiut-in-viewport',
template: "<div (inViewport)=\"showMyElement = $event.isIntersecting\" aiutInViewport>\r\n <ng-content *ngIf=\"showMyElement\"></ng-content>\r\n</div>\r\n"
template: "<div (inViewport)=\"onViewportChange($event)\" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n"
}]
}
];
if (false) {
/** @type {?} */
InViewportComponent.prototype.showMyElement;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luLXZpZXdwb3J0L2luLXZpZXdwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU14QyxNQUFNLE9BQU8sbUJBQW1COzs7WUFKL0IsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLDRKQUEyQzthQUM1Qzs7OztJQUVDLDRDQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWl1dC1pbi12aWV3cG9ydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2luLXZpZXdwb3J0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5WaWV3cG9ydENvbXBvbmVudCB7XHJcbiAgc2hvd015RWxlbWVudDogZmFsc2U7XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luLXZpZXdwb3J0L2luLXZpZXdwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU14QyxNQUFNLE9BQU8sbUJBQW1COzs7OztJQUU5QixnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQzs7O1lBUkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLHVIQUEyQzthQUM1QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWl1dC1pbi12aWV3cG9ydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2luLXZpZXdwb3J0LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5WaWV3cG9ydENvbXBvbmVudCB7XHJcblxyXG4gIG9uVmlld3BvcnRDaGFuZ2UoZXZlbnQpIHtcclxuICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcclxuICB9XHJcbn1cclxuIl19
......@@ -68,7 +68,6 @@ export class InViewportDirective {
ngOnDestroy() {
}
}
InViewportDirective.decorators = [
{
type: Directive, args: [{
......
......@@ -27,7 +27,6 @@ export const untilDestroy = (/**
// pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]);
});
/**
* \@internal
* @param {?} component
......@@ -68,5 +67,4 @@ export function addDestroyObservableToComponent(component) {
(_) => (component[destroy$] = undefined));
}));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJsaWIvb3BlcmF0b3JzL3VudGlsLWRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBMkIsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLekMsTUFBTSxPQUFPLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDOzs7Ozs7QUFNMUMsTUFBTSxPQUFPLFlBQVk7Ozs7O0FBQUcsQ0FBSSxTQUFjLEVBQStCLEVBQUU7SUFDN0UsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1FBQ3JDLG1DQUFtQztRQUNuQywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUM1QztJQUVELGlFQUFpRTtJQUNqRSxPQUFPLFNBQVMsQ0FBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUE7Ozs7OztBQUtELE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxTQUFjO0lBQzVELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLFVBQVU7Ozs7SUFBTyxRQUFRLENBQUMsRUFBRTs7OztjQUc5QyxjQUFjLEdBQUcsU0FBUyxDQUFDLFdBQVc7UUFDNUMsSUFBSSxjQUFjLElBQUksSUFBSSxFQUFFO1lBQzFCLHlEQUF5RDtZQUN6RCw2QkFBNkI7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1NBQzVGO1FBQ0QsMEJBQTBCO1FBQzFCLFNBQVMsQ0FBQyxXQUFXOzs7UUFBRyxHQUFHLEVBQUU7WUFDM0Isa0NBQWtDO1lBQ2xDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQiwwQkFBMEI7WUFDMUIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLHlDQUF5QztZQUN6QyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQSxDQUFDO1FBQ0YsMkJBQTJCO1FBQzNCOzs7O1FBQU8sQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFDO0lBQ3ZELENBQUMsRUFBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbi8vIGNyZWF0ZSBhIHN5bWJvbCBpZGVudGlmeSB0aGUgb2JzZXJ2YWJsZSBJIGFkZCB0b1xyXG4vLyB0aGUgY29tcG9uZW50IHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCBhbnl0aGluZy5cclxuLy8gSSBuZWVkIHRoaXMgc28gSSdtIGFibGUgdG8gYWRkIHRoZSBkZXNpcmVkIGJlaGF2aW91ciB0byB0aGUgY29tcG9uZW50LlxyXG5leHBvcnQgY29uc3QgZGVzdHJveSQgPSBTeW1ib2woJ2Rlc3Ryb3kkJyk7XHJcblxyXG4vKipcclxuICogQW4gb3BlcmF0b3IgdGhhdCB0YWtlcyB1bnRpbCBkZXN0cm95IGl0IHRha2VzIGEgY29tcG9uZW50cyB0aGlzIGEgcGFyYW1ldGVyXHJcbiAqIHJldHVybnMgYSBwaXBlYWJsZSBSeEpTIG9wZXJhdG9yLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHVudGlsRGVzdHJveSA9IDxUPihjb21wb25lbnQ6IGFueSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiA9PiB7XHJcbiAgaWYgKGNvbXBvbmVudFtkZXN0cm95JF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgLy8gb25seSBob29rdXAgZWFjaCBjb21wb25lbnQgb25jZS5cclxuICAgIGFkZERlc3Ryb3lPYnNlcnZhYmxlVG9Db21wb25lbnQoY29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIC8vIHBpcGUgaW4gdGhlIHRha2VVbnRpbCBkZXN0cm95JCBhbmQgcmV0dXJuIHRoZSBzb3VyY2UgdW5hbHRlcmVkXHJcbiAgcmV0dXJuIHRha2VVbnRpbDxUPihjb21wb25lbnRbZGVzdHJveSRdKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREZXN0cm95T2JzZXJ2YWJsZVRvQ29tcG9uZW50KGNvbXBvbmVudDogYW55KSB7XHJcbiAgY29tcG9uZW50W2Rlc3Ryb3kkXSA9IG5ldyBPYnNlcnZhYmxlPHZvaWQ+KG9ic2VydmVyID0+IHtcclxuICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIG9yaWdpbmFsIGRlc3Ryb3kgZnVuY3Rpb24sXHJcbiAgICAvLyB0aGUgdXNlciBtaWdodCBkbyBzb21ldGhpbmcgaW4gdGhlcmVcclxuICAgIGNvbnN0IG9yaWduYWxEZXN0cm95ID0gY29tcG9uZW50Lm5nT25EZXN0cm95O1xyXG4gICAgaWYgKG9yaWduYWxEZXN0cm95ID09IG51bGwpIHtcclxuICAgICAgLy8gQW5ndWxhciBkb2VzIG5vdCBzdXBwb3J0IGR5bmFtaWMgYWRkZWQgZGVzdHJveSBtZXRob2RzXHJcbiAgICAgIC8vIHNvIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmUuXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW50aWxEZXN0cm95IG9wZXJhdG9yIG5lZWRzIHRoZSBjb21wb25lbnQgdG8gaGF2ZSBhbiBuZ09uRGVzdHJveSBtZXRob2QnKTtcclxuICAgIH1cclxuICAgIC8vIHJlcGxhY2UgdGhlIG5nT25kZXN0cm95XHJcbiAgICBjb21wb25lbnQubmdPbkRlc3Ryb3kgPSAoKSA9PiB7XHJcbiAgICAgIC8vIGZpcmUgb2ZmIHRoZSBkZXN0cm95IG9ic2VydmFibGVcclxuICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xyXG4gICAgICAvLyBjb21wbGV0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAvLyBhbmQgYXQgbGFzdCwgY2FsbCB0aGUgb3JpZ2luYWwgZGVzdHJveVxyXG4gICAgICBvcmlnbmFsRGVzdHJveS5jYWxsKGNvbXBvbmVudCk7XHJcbiAgICB9O1xyXG4gICAgLy8gcmV0dXJuIGNsZWFudXAgZnVuY3Rpb24uXHJcbiAgICByZXR1cm4gKF86IGFueSkgPT4gKGNvbXBvbmVudFtkZXN0cm95JF0gPSB1bmRlZmluZWQpO1xyXG4gIH0pO1xyXG59XHJcbiJdfQ==
......@@ -45,7 +45,6 @@ export class ViewportService {
entry => this.callback$.next(entry)));
}
}
ViewportService.decorators = [
{type: Injectable}
];
......
......@@ -8,19 +8,26 @@ var InViewportComponent = /** @class */ (function () {
function InViewportComponent() {
}
/**
* @param {?} event
* @return {?}
*/
InViewportComponent.prototype.onViewportChange = /**
* @param {?} event
* @return {?}
*/
function (event) {
console.log(event);
};
InViewportComponent.decorators = [
{
type: Component, args: [{
selector: 'aiut-in-viewport',
template: "<div (inViewport)=\"showMyElement = $event.isIntersecting\" aiutInViewport>\r\n <ng-content *ngIf=\"showMyElement\"></ng-content>\r\n</div>\r\n"
template: "<div (inViewport)=\"onViewportChange($event)\" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n"
}]
}
];
return InViewportComponent;
}());
export {InViewportComponent};
if (false) {
/** @type {?} */
InViewportComponent.prototype.showMyElement;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luLXZpZXdwb3J0L2luLXZpZXdwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4QztJQUFBO0lBTUEsQ0FBQzs7Z0JBTkEsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLDRKQUEyQztpQkFDNUM7O0lBR0QsMEJBQUM7Q0FBQSxBQU5ELElBTUM7U0FGWSxtQkFBbUI7OztJQUM5Qiw0Q0FBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FpdXQtaW4tdmlld3BvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbi12aWV3cG9ydC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEluVmlld3BvcnRDb21wb25lbnQge1xyXG4gIHNob3dNeUVsZW1lbnQ6IGZhbHNlO1xyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2luLXZpZXdwb3J0L2luLXZpZXdwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4QztJQUFBO0lBU0EsQ0FBQzs7Ozs7SUFIQyw4Q0FBZ0I7Ozs7SUFBaEIsVUFBaUIsS0FBSztRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7O2dCQVJGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1Qix1SEFBMkM7aUJBQzVDOztJQU1ELDBCQUFDO0NBQUEsQUFURCxJQVNDO1NBTFksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhaXV0LWluLXZpZXdwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW4tdmlld3BvcnQuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJblZpZXdwb3J0Q29tcG9uZW50IHtcclxuXHJcbiAgb25WaWV3cG9ydENoYW5nZShldmVudCkge1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
......@@ -27,7 +27,6 @@ function (component) {
// pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]);
});
/**
* \@internal
* @param {?} component
......@@ -70,5 +69,4 @@ export function addDestroyObservableToComponent(component) {
});
}));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJsaWIvb3BlcmF0b3JzL3VudGlsLWRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBMkIsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLekMsTUFBTSxLQUFPLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDOzs7Ozs7QUFNMUMsTUFBTSxLQUFPLFlBQVk7Ozs7O0FBQUcsVUFBSSxTQUFjO0lBQzVDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsRUFBRTtRQUNyQyxtQ0FBbUM7UUFDbkMsK0JBQStCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDNUM7SUFFRCxpRUFBaUU7SUFDakUsT0FBTyxTQUFTLENBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFBOzs7Ozs7QUFLRCxNQUFNLFVBQVUsK0JBQStCLENBQUMsU0FBYztJQUM1RCxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxVQUFVOzs7O0lBQU8sVUFBQSxRQUFROzs7O1lBRzNDLGNBQWMsR0FBRyxTQUFTLENBQUMsV0FBVztRQUM1QyxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDMUIseURBQXlEO1lBQ3pELDZCQUE2QjtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7U0FDNUY7UUFDRCwwQkFBMEI7UUFDMUIsU0FBUyxDQUFDLFdBQVc7OztRQUFHO1lBQ3RCLGtDQUFrQztZQUNsQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsMEJBQTBCO1lBQzFCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQix5Q0FBeUM7WUFDekMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUEsQ0FBQztRQUNGLDJCQUEyQjtRQUMzQjs7OztRQUFPLFVBQUMsQ0FBTSxJQUFLLE9BQUEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQWpDLENBQWlDLEVBQUM7SUFDdkQsQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLy8gY3JlYXRlIGEgc3ltYm9sIGlkZW50aWZ5IHRoZSBvYnNlcnZhYmxlIEkgYWRkIHRvXHJcbi8vIHRoZSBjb21wb25lbnQgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIGFueXRoaW5nLlxyXG4vLyBJIG5lZWQgdGhpcyBzbyBJJ20gYWJsZSB0byBhZGQgdGhlIGRlc2lyZWQgYmVoYXZpb3VyIHRvIHRoZSBjb21wb25lbnQuXHJcbmV4cG9ydCBjb25zdCBkZXN0cm95JCA9IFN5bWJvbCgnZGVzdHJveSQnKTtcclxuXHJcbi8qKlxyXG4gKiBBbiBvcGVyYXRvciB0aGF0IHRha2VzIHVudGlsIGRlc3Ryb3kgaXQgdGFrZXMgYSBjb21wb25lbnRzIHRoaXMgYSBwYXJhbWV0ZXJcclxuICogcmV0dXJucyBhIHBpcGVhYmxlIFJ4SlMgb3BlcmF0b3IuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdW50aWxEZXN0cm95ID0gPFQ+KGNvbXBvbmVudDogYW55KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+ID0+IHtcclxuICBpZiAoY29tcG9uZW50W2Rlc3Ryb3kkXSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAvLyBvbmx5IGhvb2t1cCBlYWNoIGNvbXBvbmVudCBvbmNlLlxyXG4gICAgYWRkRGVzdHJveU9ic2VydmFibGVUb0NvbXBvbmVudChjb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgLy8gcGlwZSBpbiB0aGUgdGFrZVVudGlsIGRlc3Ryb3kkIGFuZCByZXR1cm4gdGhlIHNvdXJjZSB1bmFsdGVyZWRcclxuICByZXR1cm4gdGFrZVVudGlsPFQ+KGNvbXBvbmVudFtkZXN0cm95JF0pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEBpbnRlcm5hbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZERlc3Ryb3lPYnNlcnZhYmxlVG9Db21wb25lbnQoY29tcG9uZW50OiBhbnkpIHtcclxuICBjb21wb25lbnRbZGVzdHJveSRdID0gbmV3IE9ic2VydmFibGU8dm9pZD4ob2JzZXJ2ZXIgPT4ge1xyXG4gICAgLy8ga2VlcCB0cmFjayBvZiB0aGUgb3JpZ2luYWwgZGVzdHJveSBmdW5jdGlvbixcclxuICAgIC8vIHRoZSB1c2VyIG1pZ2h0IGRvIHNvbWV0aGluZyBpbiB0aGVyZVxyXG4gICAgY29uc3Qgb3JpZ25hbERlc3Ryb3kgPSBjb21wb25lbnQubmdPbkRlc3Ryb3k7XHJcbiAgICBpZiAob3JpZ25hbERlc3Ryb3kgPT0gbnVsbCkge1xyXG4gICAgICAvLyBBbmd1bGFyIGRvZXMgbm90IHN1cHBvcnQgZHluYW1pYyBhZGRlZCBkZXN0cm95IG1ldGhvZHNcclxuICAgICAgLy8gc28gbWFrZSBzdXJlIHRoZXJlIGlzIG9uZS5cclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnRpbERlc3Ryb3kgb3BlcmF0b3IgbmVlZHMgdGhlIGNvbXBvbmVudCB0byBoYXZlIGFuIG5nT25EZXN0cm95IG1ldGhvZCcpO1xyXG4gICAgfVxyXG4gICAgLy8gcmVwbGFjZSB0aGUgbmdPbmRlc3Ryb3lcclxuICAgIGNvbXBvbmVudC5uZ09uRGVzdHJveSA9ICgpID0+IHtcclxuICAgICAgLy8gZmlyZSBvZmYgdGhlIGRlc3Ryb3kgb2JzZXJ2YWJsZVxyXG4gICAgICBvYnNlcnZlci5uZXh0KCk7XHJcbiAgICAgIC8vIGNvbXBsZXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIC8vIGFuZCBhdCBsYXN0LCBjYWxsIHRoZSBvcmlnaW5hbCBkZXN0cm95XHJcbiAgICAgIG9yaWduYWxEZXN0cm95LmNhbGwoY29tcG9uZW50KTtcclxuICAgIH07XHJcbiAgICAvLyByZXR1cm4gY2xlYW51cCBmdW5jdGlvbi5cclxuICAgIHJldHVybiAoXzogYW55KSA9PiAoY29tcG9uZW50W2Rlc3Ryb3kkXSA9IHVuZGVmaW5lZCk7XHJcbiAgfSk7XHJcbn1cclxuIl19
......@@ -19,13 +19,19 @@ import {filter, finalize, take, takeUntil} from 'rxjs/operators';
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
class InViewportComponent {
/**
* @param {?} event
* @return {?}
*/
onViewportChange(event) {
console.log(event);
}
}
InViewportComponent.decorators = [
{
type: Component, args: [{
selector: 'aiut-in-viewport',
template: "<div (inViewport)=\"showMyElement = $event.isIntersecting\" aiutInViewport>\r\n <ng-content *ngIf=\"showMyElement\"></ng-content>\r\n</div>\r\n"
template: "<div (inViewport)=\"onViewportChange($event)\" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n"
}]
}
];
......@@ -78,7 +84,6 @@ class ViewportService {
entry => this.callback$.next(entry)));
}
}
ViewportService.decorators = [
{type: Injectable}
];
......@@ -117,7 +122,6 @@ const untilDestroy = (/**
// pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]);
});
/**
* \@internal
* @param {?} component
......@@ -228,7 +232,6 @@ class InViewportDirective {
ngOnDestroy() {
}
}
InViewportDirective.decorators = [
{
type: Directive, args: [{
......@@ -259,7 +262,6 @@ InViewportDirective.propDecorators = {
*/
class AitpUtilsModule {
}
AitpUtilsModule.decorators = [
{
type: NgModule, args: [{
......
......@@ -9,7 +9,7 @@
"ng://aitp-utils/lib/aitp-utils.module.ts"
],
"sourcesContent": [
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n showMyElement: false;\r\n}\r\n",
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n\r\n onViewportChange(event) {\r\n console.log(event);\r\n }\r\n}\r\n",
"import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\nimport {filter, finalize} from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ViewportService {\r\n private readonly options: IntersectionObserverInit = {\r\n rootMargin: '0px 0px 0px 0px',\r\n threshold: [0.5],\r\n };\r\n private observer: IntersectionObserver;\r\n private callback$: Subject<IntersectionObserverEntry> = new Subject();\r\n\r\n constructor() {\r\n this.observer = new IntersectionObserver(this.handler.bind(this), this.options);\r\n }\r\n\r\n observe(element: Element): Observable<IntersectionObserverEntry> {\r\n this.observer.observe(element);\r\n\r\n return this.callback$.asObservable().pipe(\r\n filter((entry: IntersectionObserverEntry) => entry.target === element),\r\n finalize(() => this.observer.unobserve(element)),\r\n );\r\n }\r\n\r\n private handler(entries: Array<IntersectionObserverEntry>): void {\r\n entries.forEach(entry => this.callback$.next(entry));\r\n }\r\n}\r\n",
"import {MonoTypeOperatorFunction, Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n// create a symbol identify the observable I add to\r\n// the component so it doesn't conflict with anything.\r\n// I need this so I'm able to add the desired behaviour to the component.\r\nexport const destroy$ = Symbol('destroy$');\r\n\r\n/**\r\n * An operator that takes until destroy it takes a components this a parameter\r\n * returns a pipeable RxJS operator.\r\n */\r\nexport const untilDestroy = <T>(component: any): MonoTypeOperatorFunction<T> => {\r\n if (component[destroy$] === undefined) {\r\n // only hookup each component once.\r\n addDestroyObservableToComponent(component);\r\n }\r\n\r\n // pipe in the takeUntil destroy$ and return the source unaltered\r\n return takeUntil<T>(component[destroy$]);\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function addDestroyObservableToComponent(component: any) {\r\n component[destroy$] = new Observable<void>(observer => {\r\n // keep track of the original destroy function,\r\n // the user might do something in there\r\n const orignalDestroy = component.ngOnDestroy;\r\n if (orignalDestroy == null) {\r\n // Angular does not support dynamic added destroy methods\r\n // so make sure there is one.\r\n throw new Error('untilDestroy operator needs the component to have an ngOnDestroy method');\r\n }\r\n // replace the ngOndestroy\r\n component.ngOnDestroy = () => {\r\n // fire off the destroy observable\r\n observer.next();\r\n // complete the observable\r\n observer.complete();\r\n // and at last, call the original destroy\r\n orignalDestroy.call(component);\r\n };\r\n // return cleanup function.\r\n return (_: any) => (component[destroy$] = undefined);\r\n });\r\n}\r\n",
"import {Directive, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, PLATFORM_ID,} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\nimport {filter, take} from 'rxjs/operators';\r\nimport {ViewportService} from '../services';\r\nimport {untilDestroy} from '../operators';\r\n\r\n@Directive({\r\n selector: '[aiutInViewport]',\r\n})\r\nexport class InViewportDirective implements OnInit, OnDestroy {\r\n @Input() public preRender = true;\r\n @Input() public oneTime = false;\r\n @Output() readonly inViewport = new EventEmitter<Partial<IntersectionObserverEntry>>();\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private viewportService: ViewportService,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n ) {\r\n }\r\n\r\n public ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (this.oneTime) {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(\r\n untilDestroy(this),\r\n filter(entry => entry.intersectionRatio >= 0.5),\r\n take(1),\r\n )\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n } else {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(untilDestroy(this))\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n }\r\n } else {\r\n if (this.preRender) {\r\n this.inViewport.emit({isIntersecting: true, intersectionRatio: 1});\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n",
......@@ -20,5 +20,5 @@
"Components.InViewportComponent",
"Services.ViewportService"
],
"mappings": "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"
"mappings": "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"
}
......@@ -22,11 +22,22 @@ var InViewportComponent = /** @class */ (function () {
function InViewportComponent() {
}
/**
* @param {?} event
* @return {?}
*/
InViewportComponent.prototype.onViewportChange = /**
* @param {?} event
* @return {?}
*/
function (event) {
console.log(event);
};
InViewportComponent.decorators = [
{
type: Component, args: [{
selector: 'aiut-in-viewport',
template: "<div (inViewport)=\"showMyElement = $event.isIntersecting\" aiutInViewport>\r\n <ng-content *ngIf=\"showMyElement\"></ng-content>\r\n</div>\r\n"
template: "<div (inViewport)=\"onViewportChange($event)\" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n"
}]
}
];
......@@ -138,7 +149,6 @@ function (component) {
// pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]);
});
/**
* \@internal
* @param {?} component
......
......@@ -9,7 +9,7 @@
"ng://aitp-utils/lib/aitp-utils.module.ts"
],
"sourcesContent": [
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n showMyElement: false;\r\n}\r\n",
"import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'aiut-in-viewport',\r\n templateUrl: './in-viewport.component.html'\r\n})\r\nexport class InViewportComponent {\r\n\r\n onViewportChange(event) {\r\n console.log(event);\r\n }\r\n}\r\n",
"import {Injectable} from '@angular/core';\r\nimport {Observable, Subject} from 'rxjs';\r\nimport {filter, finalize} from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class ViewportService {\r\n private readonly options: IntersectionObserverInit = {\r\n rootMargin: '0px 0px 0px 0px',\r\n threshold: [0.5],\r\n };\r\n private observer: IntersectionObserver;\r\n private callback$: Subject<IntersectionObserverEntry> = new Subject();\r\n\r\n constructor() {\r\n this.observer = new IntersectionObserver(this.handler.bind(this), this.options);\r\n }\r\n\r\n observe(element: Element): Observable<IntersectionObserverEntry> {\r\n this.observer.observe(element);\r\n\r\n return this.callback$.asObservable().pipe(\r\n filter((entry: IntersectionObserverEntry) => entry.target === element),\r\n finalize(() => this.observer.unobserve(element)),\r\n );\r\n }\r\n\r\n private handler(entries: Array<IntersectionObserverEntry>): void {\r\n entries.forEach(entry => this.callback$.next(entry));\r\n }\r\n}\r\n",
"import {MonoTypeOperatorFunction, Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n// create a symbol identify the observable I add to\r\n// the component so it doesn't conflict with anything.\r\n// I need this so I'm able to add the desired behaviour to the component.\r\nexport const destroy$ = Symbol('destroy$');\r\n\r\n/**\r\n * An operator that takes until destroy it takes a components this a parameter\r\n * returns a pipeable RxJS operator.\r\n */\r\nexport const untilDestroy = <T>(component: any): MonoTypeOperatorFunction<T> => {\r\n if (component[destroy$] === undefined) {\r\n // only hookup each component once.\r\n addDestroyObservableToComponent(component);\r\n }\r\n\r\n // pipe in the takeUntil destroy$ and return the source unaltered\r\n return takeUntil<T>(component[destroy$]);\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport function addDestroyObservableToComponent(component: any) {\r\n component[destroy$] = new Observable<void>(observer => {\r\n // keep track of the original destroy function,\r\n // the user might do something in there\r\n const orignalDestroy = component.ngOnDestroy;\r\n if (orignalDestroy == null) {\r\n // Angular does not support dynamic added destroy methods\r\n // so make sure there is one.\r\n throw new Error('untilDestroy operator needs the component to have an ngOnDestroy method');\r\n }\r\n // replace the ngOndestroy\r\n component.ngOnDestroy = () => {\r\n // fire off the destroy observable\r\n observer.next();\r\n // complete the observable\r\n observer.complete();\r\n // and at last, call the original destroy\r\n orignalDestroy.call(component);\r\n };\r\n // return cleanup function.\r\n return (_: any) => (component[destroy$] = undefined);\r\n });\r\n}\r\n",
"import {Directive, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, PLATFORM_ID,} from '@angular/core';\r\nimport {isPlatformBrowser} from '@angular/common';\r\nimport {filter, take} from 'rxjs/operators';\r\nimport {ViewportService} from '../services';\r\nimport {untilDestroy} from '../operators';\r\n\r\n@Directive({\r\n selector: '[aiutInViewport]',\r\n})\r\nexport class InViewportDirective implements OnInit, OnDestroy {\r\n @Input() public preRender = true;\r\n @Input() public oneTime = false;\r\n @Output() readonly inViewport = new EventEmitter<Partial<IntersectionObserverEntry>>();\r\n\r\n constructor(\r\n private readonly elementRef: ElementRef,\r\n private viewportService: ViewportService,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n ) {\r\n }\r\n\r\n public ngOnInit() {\r\n if (isPlatformBrowser(this.platformId)) {\r\n if (this.oneTime) {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(\r\n untilDestroy(this),\r\n filter(entry => entry.intersectionRatio >= 0.5),\r\n take(1),\r\n )\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n } else {\r\n this.viewportService\r\n .observe(this.elementRef.nativeElement)\r\n .pipe(untilDestroy(this))\r\n .subscribe((entry: IntersectionObserverEntry) => {\r\n this.inViewport.emit(entry);\r\n });\r\n }\r\n } else {\r\n if (this.preRender) {\r\n this.inViewport.emit({isIntersecting: true, intersectionRatio: 1});\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n}\r\n",
......@@ -20,5 +20,5 @@
"Components.InViewportComponent",
"Services.ViewportService"
],
"mappings": "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"
"mappings": "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"
}
export declare class InViewportComponent {
showMyElement: false;
onViewportChange(event: any): void;
}
......@@ -6,7 +6,6 @@ export declare const destroy$: unique symbol;
* returns a pipeable RxJS operator.
*/
export declare const untilDestroy: <T>(component: any) => MonoTypeOperatorFunction<T>;
/**
* @internal
*/
......
......@@ -7,6 +7,7 @@
"rxjs": "^5.0.0"
},
"main": "bundles/aitp-utils.umd.js",
"metadata": "aitp-utils.metadata.json",
"module": "fesm5/aitp-utils.js",
"es2015": "fesm2015/aitp-utils.js",
"esm5": "esm5/aitp-utils.js",
......@@ -14,7 +15,6 @@
"fesm5": "fesm5/aitp-utils.js",
"fesm2015": "fesm2015/aitp-utils.js",
"typings": "aitp-utils.d.ts",
"metadata": "aitp-utils.metadata.json",
"sideEffects": false,
"dependencies": {
"tslib": "^1.9.0"
......
......@@ -5,5 +5,8 @@
"@angular/common": "^4.0.0",
"@angular/core": "^4.0.0",
"rxjs": "^5.0.0"
}
},
"main": "dist/bundles/aitp-utils.umd.js",
"metadata": "dist/aitp-utils.metadata.json",
"module": "dist/esm5/aitp-utils.js"
}
<div (inViewport)="showMyElement = $event.isIntersecting" aiutInViewport>
<ng-content *ngIf="showMyElement"></ng-content>
<div (inViewport)="onViewportChange($event)" aiutInViewport>
<ng-content></ng-content>
</div>
......@@ -5,5 +5,8 @@ import {Component} from '@angular/core';
templateUrl: './in-viewport.component.html'
})
export class InViewportComponent {
showMyElement: false;
onViewportChange(event) {
console.log(event);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment