Commit a223f069 by Emile TAVERNE

Compatibilité

parent 1038c257
...@@ -318,8 +318,6 @@ ...@@ -318,8 +318,6 @@
exports.AitpUtilsModule = AitpUtilsModule; exports.AitpUtilsModule = AitpUtilsModule;
exports.InViewportComponent = InViewportComponent; exports.InViewportComponent = InViewportComponent;
exports.InViewportDirective = InViewportDirective; exports.InViewportDirective = InViewportDirective;
exports.addDestroyObservableToComponent = addDestroyObservableToComponent;
exports.destroy$ = destroy$;
exports.untilDestroy = untilDestroy; exports.untilDestroy = untilDestroy;
exports.ViewportService = ViewportService; exports.ViewportService = ViewportService;
exports.ɵb = InViewportComponent; exports.ɵb = InViewportComponent;
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
"sourcesContent": [ "sourcesContent": [
"import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\r\n }\r\n}\r\n", "import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\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 {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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport { MonoTypeOperatorFunction } from 'rxjs/interfaces';\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$ = '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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {MonoTypeOperatorFunction} from 'rxjs/interfaces';\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\nconst destroy$ = '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\nfunction 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", "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<MyIntersectionObserverEntry>>();\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: MyIntersectionObserverEntry) => {\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: MyIntersectionObserverEntry) => {\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\r\nexport interface MyIntersectionObserverEntry extends IntersectionObserverEntry {\r\n readonly isIntersecting: boolean;\r\n}\r\n",
"import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n" "import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n"
], ],
"names": [ "names": [
...@@ -39,5 +39,5 @@ ...@@ -39,5 +39,5 @@
"Components.InViewportComponent", "Components.InViewportComponent",
"Services.ViewportService" "Services.ViewportService"
], ],
"mappings": "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" "mappings": ";;;;;;;;;;AAAA;QAOE,6BAAoB,iBAAoC;YAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;SACvD;;;;;QAED,8CAAgB;;;;YAAhB,UAAiB,yBAAoD;gBACnE,IAAI,yBAAyB,CAAC,cAAc,EAAE;oBAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;iBACnC;qBAAM;oBACL,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;iBACjC;aACF;;oBAdFA,cAAS,SAAC;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,uHAA2C;qBAC5C;;;;;wBALOC,sBAAiB;;;QAiBzB,0BAAC;KAfD;;;;;;;;;;;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;;;;QAOM,QAAQ,GAAG,UAAU;;;;;;AAM3B,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;;;;;;IAKD,SAAS,+BAA+B,CAAC,SAAc;QACrD,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;;;;;;;;;;;AChDD;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,EAAwC,CAAC;SAOxF;;;;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,KAAkC;4BAC5C,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,KAAkC;4BAC5C,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,r,n,t,o){"use strict";var i=function(){function e(e){this.changeDetectorRef=e}return e.prototype.onViewportChange=function(e){e.isIntersecting?this.changeDetectorRef.reattach():this.changeDetectorRef.detach()},e.decorators=[{type:n.Component,args:[{selector:"aiut-in-viewport",template:'<div (inViewport)="onViewportChange($event)" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n'}]}],e.ctorParameters=function(){return[{type:n.ChangeDetectorRef}]},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:n.Injectable}],e.ctorParameters=function(){return[]},e}(),c="destroy$",a=function(e){return e[c]===undefined&&p(e),o.takeUntil(e[c])};function p(r){r[c]=new t.Observable(function(e){var t=r.ngOnDestroy;if(null==t)throw new Error("untilDestroy operator needs the component to have an ngOnDestroy method");return r.ngOnDestroy=function(){e.next(),e.complete(),t.call(r)},function(e){return r[c]=undefined}})}var u=function(){function e(e,t,r){this.elementRef=e,this.viewportService=t,this.platformId=r,this.preRender=!0,this.oneTime=!1,this.inViewport=new n.EventEmitter}return e.prototype.ngOnInit=function(){var t=this;r.isPlatformBrowser(this.platformId)?this.oneTime?this.viewportService.observe(this.elementRef.nativeElement).pipe(a(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(a(this)).subscribe(function(e){t.inViewport.emit(e)}):this.preRender&&this.inViewport.emit({isIntersecting:!0,intersectionRatio:1})},e.prototype.ngOnDestroy=function(){},e.decorators=[{type:n.Directive,args:[{selector:"[aiutInViewport]"}]}],e.ctorParameters=function(){return[{type:n.ElementRef},{type:s},{type:Object,decorators:[{type:n.Inject,args:[n.PLATFORM_ID]}]}]},e.propDecorators={preRender:[{type:n.Input}],oneTime:[{type:n.Input}],inViewport:[{type:n.Output}]},e}(),f=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[r.CommonModule],declarations:[u,i],providers:[s],exports:[u,i]}]}],e}();e.AitpUtilsModule=f,e.InViewportComponent=i,e.InViewportDirective=u,e.addDestroyObservableToComponent=p,e.destroy$=c,e.untilDestroy=a,e.ViewportService=s,e.ɵb=i,e.ɵa=u,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,r,n,o,i){"use strict";var t=function(){function e(e){this.changeDetectorRef=e}return e.prototype.onViewportChange=function(e){e.isIntersecting?this.changeDetectorRef.reattach():this.changeDetectorRef.detach()},e.decorators=[{type:n.Component,args:[{selector:"aiut-in-viewport",template:'<div (inViewport)="onViewportChange($event)" aiutInViewport>\r\n <ng-content></ng-content>\r\n</div>\r\n'}]}],e.ctorParameters=function(){return[{type:n.ChangeDetectorRef}]},e}(),s=function(){function e(){this.options={rootMargin:"0px 0px 0px 0px",threshold:[.5]},this.callback$=new o.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(i.filter(function(e){return e.target===t}),i.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:n.Injectable}],e.ctorParameters=function(){return[]},e}(),c="destroy$",p=function(e){return e[c]===undefined&&function t(r){r[c]=new o.Observable(function(e){var t=r.ngOnDestroy;if(null==t)throw new Error("untilDestroy operator needs the component to have an ngOnDestroy method");return r.ngOnDestroy=function(){e.next(),e.complete(),t.call(r)},function(e){return r[c]=undefined}})}(e),i.takeUntil(e[c])};var a=function(){function e(e,t,r){this.elementRef=e,this.viewportService=t,this.platformId=r,this.preRender=!0,this.oneTime=!1,this.inViewport=new n.EventEmitter}return e.prototype.ngOnInit=function(){var t=this;r.isPlatformBrowser(this.platformId)?this.oneTime?this.viewportService.observe(this.elementRef.nativeElement).pipe(p(this),i.filter(function(e){return.5<=e.intersectionRatio}),i.take(1)).subscribe(function(e){t.inViewport.emit(e)}):this.viewportService.observe(this.elementRef.nativeElement).pipe(p(this)).subscribe(function(e){t.inViewport.emit(e)}):this.preRender&&this.inViewport.emit({isIntersecting:!0,intersectionRatio:1})},e.prototype.ngOnDestroy=function(){},e.decorators=[{type:n.Directive,args:[{selector:"[aiutInViewport]"}]}],e.ctorParameters=function(){return[{type:n.ElementRef},{type:s},{type:Object,decorators:[{type:n.Inject,args:[n.PLATFORM_ID]}]}]},e.propDecorators={preRender:[{type:n.Input}],oneTime:[{type:n.Input}],inViewport:[{type:n.Output}]},e}(),u=function(){function e(){}return e.decorators=[{type:n.NgModule,args:[{imports:[r.CommonModule],declarations:[a,t],providers:[s],exports:[a,t]}]}],e}();e.AitpUtilsModule=u,e.InViewportComponent=t,e.InViewportDirective=a,e.untilDestroy=p,e.ViewportService=s,e.ɵb=t,e.ɵa=a,e.ɵc=s,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=aitp-utils.umd.min.js.map //# sourceMappingURL=aitp-utils.umd.min.js.map
\ No newline at end of file
...@@ -51,7 +51,6 @@ ...@@ -51,7 +51,6 @@
"component", "component",
"undefined", "undefined",
"addDestroyObservableToComponent", "addDestroyObservableToComponent",
"takeUntil",
"Observable", "Observable",
"orignalDestroy", "orignalDestroy",
"ngOnDestroy", "ngOnDestroy",
...@@ -59,6 +58,7 @@ ...@@ -59,6 +58,7 @@
"complete", "complete",
"call", "call",
"_", "_",
"takeUntil",
"InViewportDirective", "InViewportDirective",
"elementRef", "elementRef",
"viewportService", "viewportService",
...@@ -94,12 +94,12 @@ ...@@ -94,12 +94,12 @@
"Services.ViewportService", "Services.ViewportService",
"exports" "exports"
], ],
"mappings": "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", "mappings": "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",
"sourcesContent": [ "sourcesContent": [
"import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\r\n }\r\n}\r\n", "import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\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 {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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport { MonoTypeOperatorFunction } from 'rxjs/interfaces';\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$ = '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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {MonoTypeOperatorFunction} from 'rxjs/interfaces';\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\nconst destroy$ = '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\nfunction 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", "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<MyIntersectionObserverEntry>>();\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: MyIntersectionObserverEntry) => {\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: MyIntersectionObserverEntry) => {\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\r\nexport interface MyIntersectionObserverEntry extends IntersectionObserverEntry {\r\n readonly isIntersecting: boolean;\r\n}\r\n",
"import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n" "import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n"
] ]
} }
...@@ -5,16 +5,8 @@ ...@@ -5,16 +5,8 @@
/** /**
* Generated bundle index. Do not edit. * Generated bundle index. Do not edit.
*/ */
export { export {AitpUtilsModule, InViewportComponent, InViewportDirective, untilDestroy, ViewportService} from './public_api';
AitpUtilsModule,
InViewportComponent,
InViewportDirective,
addDestroyObservableToComponent,
destroy$,
untilDestroy,
ViewportService
} from './public_api';
export {InViewportComponent as ɵb} from './lib/components'; export {InViewportComponent as ɵb} from './lib/components';
export {InViewportDirective as ɵa} from './lib/directives'; export {InViewportDirective as ɵa} from './lib/directives';
export {ViewportService as ɵc} from './lib/services'; export {ViewportService as ɵc} from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWl0cC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJhaXRwLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvSkFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0luVmlld3BvcnRDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCB7SW5WaWV3cG9ydERpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0IHtWaWV3cG9ydFNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7Il19 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWl0cC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJhaXRwLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSx5R0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0luVmlld3BvcnRDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCB7SW5WaWV3cG9ydERpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0IHtWaWV3cG9ydFNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7Il19
...@@ -10,7 +10,6 @@ import * as Services from './services'; ...@@ -10,7 +10,6 @@ import * as Services from './services';
export class AitpUtilsModule { export class AitpUtilsModule {
} }
AitpUtilsModule.decorators = [ AitpUtilsModule.decorators = [
{ {
type: NgModule, args: [{ type: NgModule, args: [{
......
...@@ -24,7 +24,6 @@ export class InViewportComponent { ...@@ -24,7 +24,6 @@ export class InViewportComponent {
} }
} }
} }
InViewportComponent.decorators = [ InViewportComponent.decorators = [
{ {
type: Component, args: [{ type: Component, args: [{
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @fileoverview added by tsickle * @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/ */
import {Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID,} from '@angular/core'; import {Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID} from '@angular/core';
import {isPlatformBrowser} from '@angular/common'; import {isPlatformBrowser} from '@angular/common';
import {filter, take} from 'rxjs/operators'; import {filter, take} from 'rxjs/operators';
import {ViewportService} from '../services'; import {ViewportService} from '../services';
...@@ -68,7 +68,6 @@ export class InViewportDirective { ...@@ -68,7 +68,6 @@ export class InViewportDirective {
ngOnDestroy() { ngOnDestroy() {
} }
} }
InViewportDirective.decorators = [ InViewportDirective.decorators = [
{ {
type: Directive, args: [{ type: Directive, args: [{
...@@ -110,4 +109,15 @@ if (false) { ...@@ -110,4 +109,15 @@ if (false) {
*/ */
InViewportDirective.prototype.platformId; InViewportDirective.prototype.platformId;
} }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2luLXZpZXdwb3J0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEdBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFLMUMsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7O0lBSzlCLFlBQ21CLFVBQXNCLEVBQy9CLGVBQWdDLEVBQ1gsVUFBa0I7UUFGOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDWCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBUGpDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNiLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0MsQ0FBQztJQU92RixDQUFDOzs7O0lBRU0sUUFBUTtRQUNiLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGVBQWU7cUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztxQkFDdEMsSUFBSSxDQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsRUFDbEIsTUFBTTs7OztnQkFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsRUFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO3FCQUNBLFNBQVM7Ozs7Z0JBQUMsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7b0JBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlO3FCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7cUJBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3hCLFNBQVM7Ozs7Z0JBQUMsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7b0JBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQzthQUNOO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDcEU7U0FDRjtJQUNILENBQUM7Ozs7SUFFRCxXQUFXO0lBQ1gsQ0FBQzs7O1lBNUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCOzs7O1lBUmtCLFVBQVU7WUFHckIsZUFBZTtZQWNzQixNQUFNLHVCQUE5QyxNQUFNLFNBQUMsV0FBVzs7O3dCQVBwQixLQUFLO3NCQUNMLEtBQUs7eUJBQ0wsTUFBTTs7OztJQUZQLHdDQUFpQzs7SUFDakMsc0NBQWdDOztJQUNoQyx5Q0FBdUY7Ozs7O0lBR3JGLHlDQUF1Qzs7Ozs7SUFDdkMsOENBQXdDOzs7OztJQUN4Qyx5Q0FBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBQTEFURk9STV9JRCx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge2ZpbHRlciwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1ZpZXdwb3J0U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge3VudGlsRGVzdHJveX0gZnJvbSAnLi4vb3BlcmF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FpdXRJblZpZXdwb3J0XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJblZpZXdwb3J0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVSZW5kZXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvbmVUaW1lID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGluVmlld3BvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSB2aWV3cG9ydFNlcnZpY2U6IFZpZXdwb3J0U2VydmljZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgaWYgKHRoaXMub25lVGltZSkge1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlXHJcbiAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB1bnRpbERlc3Ryb3kodGhpcyksXHJcbiAgICAgICAgICAgIGZpbHRlcihlbnRyeSA9PiBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+PSAwLjUpLFxyXG4gICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoZW50cnk6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pblZpZXdwb3J0LmVtaXQoZW50cnkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydFNlcnZpY2VcclxuICAgICAgICAgIC5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgICAgLnBpcGUodW50aWxEZXN0cm95KHRoaXMpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoZW50cnk6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pblZpZXdwb3J0LmVtaXQoZW50cnkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnByZVJlbmRlcikge1xyXG4gICAgICAgIHRoaXMuaW5WaWV3cG9ydC5lbWl0KHtpc0ludGVyc2VjdGluZzogdHJ1ZSwgaW50ZXJzZWN0aW9uUmF0aW86IDF9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
/**
* @record
*/
export function MyIntersectionObserverEntry() {
}
if (false) {
/** @type {?} */
MyIntersectionObserverEntry.prototype.isIntersecting;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2luLXZpZXdwb3J0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFLMUMsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7O0lBSzlCLFlBQ21CLFVBQXNCLEVBQy9CLGVBQWdDLEVBQ1gsVUFBa0I7UUFGOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDWCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBUGpDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNiLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBd0MsQ0FBQztJQU96RixDQUFDOzs7O0lBRU0sUUFBUTtRQUNiLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGVBQWU7cUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztxQkFDdEMsSUFBSSxDQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsRUFDbEIsTUFBTTs7OztnQkFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLEVBQUMsRUFDL0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO3FCQUNBLFNBQVM7Ozs7Z0JBQUMsQ0FBQyxLQUFrQyxFQUFFLEVBQUU7b0JBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxlQUFlO3FCQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7cUJBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3hCLFNBQVM7Ozs7Z0JBQUMsQ0FBQyxLQUFrQyxFQUFFLEVBQUU7b0JBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQzthQUNOO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDcEU7U0FDRjtJQUNILENBQUM7Ozs7SUFFRCxXQUFXO0lBQ1gsQ0FBQzs7O1lBNUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCOzs7O1lBUmtCLFVBQVU7WUFHckIsZUFBZTtZQWNzQixNQUFNLHVCQUE5QyxNQUFNLFNBQUMsV0FBVzs7O3dCQVBwQixLQUFLO3NCQUNMLEtBQUs7eUJBQ0wsTUFBTTs7OztJQUZQLHdDQUFpQzs7SUFDakMsc0NBQWdDOztJQUNoQyx5Q0FBeUY7Ozs7O0lBR3ZGLHlDQUF1Qzs7Ozs7SUFDdkMsOENBQXdDOzs7OztJQUN4Qyx5Q0FBK0M7Ozs7O0FBb0NuRCxpREFFQzs7O0lBREMscURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUExBVEZPUk1fSUR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2lzUGxhdGZvcm1Ccm93c2VyfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge2ZpbHRlciwgdGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1ZpZXdwb3J0U2VydmljZX0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge3VudGlsRGVzdHJveX0gZnJvbSAnLi4vb3BlcmF0b3JzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FpdXRJblZpZXdwb3J0XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJblZpZXdwb3J0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVSZW5kZXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBvbmVUaW1lID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGluVmlld3BvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8TXlJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5Pj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHZpZXdwb3J0U2VydmljZTogVmlld3BvcnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICBpZiAodGhpcy5vbmVUaW1lKSB7XHJcbiAgICAgICAgdGhpcy52aWV3cG9ydFNlcnZpY2VcclxuICAgICAgICAgIC5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHVudGlsRGVzdHJveSh0aGlzKSxcclxuICAgICAgICAgICAgZmlsdGVyKGVudHJ5ID0+IGVudHJ5LmludGVyc2VjdGlvblJhdGlvID49IDAuNSksXHJcbiAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChlbnRyeTogTXlJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5WaWV3cG9ydC5lbWl0KGVudHJ5KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlXHJcbiAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcclxuICAgICAgICAgIC5waXBlKHVudGlsRGVzdHJveSh0aGlzKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGVudHJ5OiBNeUludGVyc2VjdGlvbk9ic2VydmVyRW50cnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pblZpZXdwb3J0LmVtaXQoZW50cnkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnByZVJlbmRlcikge1xyXG4gICAgICAgIHRoaXMuaW5WaWV3cG9ydC5lbWl0KHtpc0ludGVyc2VjdGluZzogdHJ1ZSwgaW50ZXJzZWN0aW9uUmF0aW86IDF9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE15SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSBleHRlbmRzIEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkge1xyXG4gIHJlYWRvbmx5IGlzSW50ZXJzZWN0aW5nOiBib29sZWFuO1xyXG59XHJcbiJdfQ==
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
* @fileoverview added by tsickle * @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/ */
export {addDestroyObservableToComponent, destroy$, untilDestroy} from './until-destroy'; export {untilDestroy} from './until-destroy';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9haXRwLXV0aWxzLyIsInNvdXJjZXMiOlsibGliL29wZXJhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0VBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VudGlsLWRlc3Ryb3knO1xyXG4iXX0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9haXRwLXV0aWxzLyIsInNvdXJjZXMiOlsibGliL29wZXJhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkJBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VudGlsLWRlc3Ryb3knO1xyXG4iXX0=
...@@ -8,7 +8,7 @@ import {takeUntil} from 'rxjs/operators'; ...@@ -8,7 +8,7 @@ import {takeUntil} from 'rxjs/operators';
// the component so it doesn't conflict with anything. // the component so it doesn't conflict with anything.
// I need this so I'm able to add the desired behaviour to the component. // I need this so I'm able to add the desired behaviour to the component.
/** @type {?} */ /** @type {?} */
export const destroy$ = 'destroy$'; const destroy$ = 'destroy$';
/** /**
* An operator that takes until destroy it takes a components this a parameter * An operator that takes until destroy it takes a components this a parameter
* returns a pipeable RxJS operator. * returns a pipeable RxJS operator.
...@@ -27,13 +27,12 @@ export const untilDestroy = (/** ...@@ -27,13 +27,12 @@ export const untilDestroy = (/**
// pipe in the takeUntil destroy$ and return the source unaltered // pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]); return takeUntil(component[destroy$]);
}); });
/** /**
* \@internal * \@internal
* @param {?} component * @param {?} component
* @return {?} * @return {?}
*/ */
export function addDestroyObservableToComponent(component) { function addDestroyObservableToComponent(component) {
component[destroy$] = new Observable((/** component[destroy$] = new Observable((/**
* @param {?} observer * @param {?} observer
* @return {?} * @return {?}
...@@ -69,4 +68,4 @@ export function addDestroyObservableToComponent(component) { ...@@ -69,4 +68,4 @@ export function addDestroyObservableToComponent(component) {
})); }));
} }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJsaWIvb3BlcmF0b3JzL3VudGlsLWRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU16QyxNQUFNLE9BQU8sUUFBUSxHQUFHLFVBQVU7Ozs7OztBQU1sQyxNQUFNLE9BQU8sWUFBWTs7Ozs7QUFBRyxDQUFJLFNBQWMsRUFBK0IsRUFBRTtJQUM3RSxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLEVBQUU7UUFDckMsbUNBQW1DO1FBQ25DLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQzVDO0lBRUQsaUVBQWlFO0lBQ2pFLE9BQU8sU0FBUyxDQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQTs7Ozs7O0FBS0QsTUFBTSxVQUFVLCtCQUErQixDQUFDLFNBQWM7SUFDNUQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksVUFBVTs7OztJQUFPLFFBQVEsQ0FBQyxFQUFFOzs7O2NBRzlDLGNBQWMsR0FBRyxTQUFTLENBQUMsV0FBVztRQUM1QyxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDMUIseURBQXlEO1lBQ3pELDZCQUE2QjtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7U0FDNUY7UUFDRCwwQkFBMEI7UUFDMUIsU0FBUyxDQUFDLFdBQVc7OztRQUFHLEdBQUcsRUFBRTtZQUMzQixrQ0FBa0M7WUFDbEMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLDBCQUEwQjtZQUMxQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIseUNBQXlDO1lBQ3pDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFBLENBQUM7UUFDRiwyQkFBMkI7UUFDM0I7Ozs7UUFBTyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUM7SUFDdkQsQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAncnhqcy9pbnRlcmZhY2VzJztcclxuXHJcbi8vIGNyZWF0ZSBhIHN5bWJvbCBpZGVudGlmeSB0aGUgb2JzZXJ2YWJsZSBJIGFkZCB0b1xyXG4vLyB0aGUgY29tcG9uZW50IHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCBhbnl0aGluZy5cclxuLy8gSSBuZWVkIHRoaXMgc28gSSdtIGFibGUgdG8gYWRkIHRoZSBkZXNpcmVkIGJlaGF2aW91ciB0byB0aGUgY29tcG9uZW50LlxyXG5leHBvcnQgY29uc3QgZGVzdHJveSQgPSAnZGVzdHJveSQnO1xyXG5cclxuLyoqXHJcbiAqIEFuIG9wZXJhdG9yIHRoYXQgdGFrZXMgdW50aWwgZGVzdHJveSBpdCB0YWtlcyBhIGNvbXBvbmVudHMgdGhpcyBhIHBhcmFtZXRlclxyXG4gKiByZXR1cm5zIGEgcGlwZWFibGUgUnhKUyBvcGVyYXRvci5cclxuICovXHJcbmV4cG9ydCBjb25zdCB1bnRpbERlc3Ryb3kgPSA8VD4oY29tcG9uZW50OiBhbnkpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4gPT4ge1xyXG4gIGlmIChjb21wb25lbnRbZGVzdHJveSRdID09PSB1bmRlZmluZWQpIHtcclxuICAgIC8vIG9ubHkgaG9va3VwIGVhY2ggY29tcG9uZW50IG9uY2UuXHJcbiAgICBhZGREZXN0cm95T2JzZXJ2YWJsZVRvQ29tcG9uZW50KGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICAvLyBwaXBlIGluIHRoZSB0YWtlVW50aWwgZGVzdHJveSQgYW5kIHJldHVybiB0aGUgc291cmNlIHVuYWx0ZXJlZFxyXG4gIHJldHVybiB0YWtlVW50aWw8VD4oY29tcG9uZW50W2Rlc3Ryb3kkXSk7XHJcbn07XHJcblxyXG4vKipcclxuICogQGludGVybmFsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkRGVzdHJveU9ic2VydmFibGVUb0NvbXBvbmVudChjb21wb25lbnQ6IGFueSkge1xyXG4gIGNvbXBvbmVudFtkZXN0cm95JF0gPSBuZXcgT2JzZXJ2YWJsZTx2b2lkPihvYnNlcnZlciA9PiB7XHJcbiAgICAvLyBrZWVwIHRyYWNrIG9mIHRoZSBvcmlnaW5hbCBkZXN0cm95IGZ1bmN0aW9uLFxyXG4gICAgLy8gdGhlIHVzZXIgbWlnaHQgZG8gc29tZXRoaW5nIGluIHRoZXJlXHJcbiAgICBjb25zdCBvcmlnbmFsRGVzdHJveSA9IGNvbXBvbmVudC5uZ09uRGVzdHJveTtcclxuICAgIGlmIChvcmlnbmFsRGVzdHJveSA9PSBudWxsKSB7XHJcbiAgICAgIC8vIEFuZ3VsYXIgZG9lcyBub3Qgc3VwcG9ydCBkeW5hbWljIGFkZGVkIGRlc3Ryb3kgbWV0aG9kc1xyXG4gICAgICAvLyBzbyBtYWtlIHN1cmUgdGhlcmUgaXMgb25lLlxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3VudGlsRGVzdHJveSBvcGVyYXRvciBuZWVkcyB0aGUgY29tcG9uZW50IHRvIGhhdmUgYW4gbmdPbkRlc3Ryb3kgbWV0aG9kJyk7XHJcbiAgICB9XHJcbiAgICAvLyByZXBsYWNlIHRoZSBuZ09uZGVzdHJveVxyXG4gICAgY29tcG9uZW50Lm5nT25EZXN0cm95ID0gKCkgPT4ge1xyXG4gICAgICAvLyBmaXJlIG9mZiB0aGUgZGVzdHJveSBvYnNlcnZhYmxlXHJcbiAgICAgIG9ic2VydmVyLm5leHQoKTtcclxuICAgICAgLy8gY29tcGxldGUgdGhlIG9ic2VydmFibGVcclxuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgLy8gYW5kIGF0IGxhc3QsIGNhbGwgdGhlIG9yaWdpbmFsIGRlc3Ryb3lcclxuICAgICAgb3JpZ25hbERlc3Ryb3kuY2FsbChjb21wb25lbnQpO1xyXG4gICAgfTtcclxuICAgIC8vIHJldHVybiBjbGVhbnVwIGZ1bmN0aW9uLlxyXG4gICAgcmV0dXJuIChfOiBhbnkpID0+IChjb21wb25lbnRbZGVzdHJveSRdID0gdW5kZWZpbmVkKTtcclxuICB9KTtcclxufVxyXG4iXX0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJsaWIvb3BlcmF0b3JzL3VudGlsLWRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztNQU1uQyxRQUFRLEdBQUcsVUFBVTs7Ozs7O0FBTTNCLE1BQU0sT0FBTyxZQUFZOzs7OztBQUFHLENBQUksU0FBYyxFQUErQixFQUFFO0lBQzdFLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLFNBQVMsRUFBRTtRQUNyQyxtQ0FBbUM7UUFDbkMsK0JBQStCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDNUM7SUFFRCxpRUFBaUU7SUFDakUsT0FBTyxTQUFTLENBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFBOzs7Ozs7QUFLRCxTQUFTLCtCQUErQixDQUFDLFNBQWM7SUFDckQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksVUFBVTs7OztJQUFPLFFBQVEsQ0FBQyxFQUFFOzs7O2NBRzlDLGNBQWMsR0FBRyxTQUFTLENBQUMsV0FBVztRQUM1QyxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDMUIseURBQXlEO1lBQ3pELDZCQUE2QjtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7U0FDNUY7UUFDRCwwQkFBMEI7UUFDMUIsU0FBUyxDQUFDLFdBQVc7OztRQUFHLEdBQUcsRUFBRTtZQUMzQixrQ0FBa0M7WUFDbEMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hCLDBCQUEwQjtZQUMxQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIseUNBQXlDO1lBQ3pDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFBLENBQUM7UUFDRiwyQkFBMkI7UUFDM0I7Ozs7UUFBTyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUM7SUFDdkQsQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb259IGZyb20gJ3J4anMvaW50ZXJmYWNlcyc7XHJcblxyXG4vLyBjcmVhdGUgYSBzeW1ib2wgaWRlbnRpZnkgdGhlIG9ic2VydmFibGUgSSBhZGQgdG9cclxuLy8gdGhlIGNvbXBvbmVudCBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggYW55dGhpbmcuXHJcbi8vIEkgbmVlZCB0aGlzIHNvIEknbSBhYmxlIHRvIGFkZCB0aGUgZGVzaXJlZCBiZWhhdmlvdXIgdG8gdGhlIGNvbXBvbmVudC5cclxuY29uc3QgZGVzdHJveSQgPSAnZGVzdHJveSQnO1xyXG5cclxuLyoqXHJcbiAqIEFuIG9wZXJhdG9yIHRoYXQgdGFrZXMgdW50aWwgZGVzdHJveSBpdCB0YWtlcyBhIGNvbXBvbmVudHMgdGhpcyBhIHBhcmFtZXRlclxyXG4gKiByZXR1cm5zIGEgcGlwZWFibGUgUnhKUyBvcGVyYXRvci5cclxuICovXHJcbmV4cG9ydCBjb25zdCB1bnRpbERlc3Ryb3kgPSA8VD4oY29tcG9uZW50OiBhbnkpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4gPT4ge1xyXG4gIGlmIChjb21wb25lbnRbZGVzdHJveSRdID09PSB1bmRlZmluZWQpIHtcclxuICAgIC8vIG9ubHkgaG9va3VwIGVhY2ggY29tcG9uZW50IG9uY2UuXHJcbiAgICBhZGREZXN0cm95T2JzZXJ2YWJsZVRvQ29tcG9uZW50KGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICAvLyBwaXBlIGluIHRoZSB0YWtlVW50aWwgZGVzdHJveSQgYW5kIHJldHVybiB0aGUgc291cmNlIHVuYWx0ZXJlZFxyXG4gIHJldHVybiB0YWtlVW50aWw8VD4oY29tcG9uZW50W2Rlc3Ryb3kkXSk7XHJcbn07XHJcblxyXG4vKipcclxuICogQGludGVybmFsXHJcbiAqL1xyXG5mdW5jdGlvbiBhZGREZXN0cm95T2JzZXJ2YWJsZVRvQ29tcG9uZW50KGNvbXBvbmVudDogYW55KSB7XHJcbiAgY29tcG9uZW50W2Rlc3Ryb3kkXSA9IG5ldyBPYnNlcnZhYmxlPHZvaWQ+KG9ic2VydmVyID0+IHtcclxuICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIG9yaWdpbmFsIGRlc3Ryb3kgZnVuY3Rpb24sXHJcbiAgICAvLyB0aGUgdXNlciBtaWdodCBkbyBzb21ldGhpbmcgaW4gdGhlcmVcclxuICAgIGNvbnN0IG9yaWduYWxEZXN0cm95ID0gY29tcG9uZW50Lm5nT25EZXN0cm95O1xyXG4gICAgaWYgKG9yaWduYWxEZXN0cm95ID09IG51bGwpIHtcclxuICAgICAgLy8gQW5ndWxhciBkb2VzIG5vdCBzdXBwb3J0IGR5bmFtaWMgYWRkZWQgZGVzdHJveSBtZXRob2RzXHJcbiAgICAgIC8vIHNvIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmUuXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW50aWxEZXN0cm95IG9wZXJhdG9yIG5lZWRzIHRoZSBjb21wb25lbnQgdG8gaGF2ZSBhbiBuZ09uRGVzdHJveSBtZXRob2QnKTtcclxuICAgIH1cclxuICAgIC8vIHJlcGxhY2UgdGhlIG5nT25kZXN0cm95XHJcbiAgICBjb21wb25lbnQubmdPbkRlc3Ryb3kgPSAoKSA9PiB7XHJcbiAgICAgIC8vIGZpcmUgb2ZmIHRoZSBkZXN0cm95IG9ic2VydmFibGVcclxuICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xyXG4gICAgICAvLyBjb21wbGV0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAvLyBhbmQgYXQgbGFzdCwgY2FsbCB0aGUgb3JpZ2luYWwgZGVzdHJveVxyXG4gICAgICBvcmlnbmFsRGVzdHJveS5jYWxsKGNvbXBvbmVudCk7XHJcbiAgICB9O1xyXG4gICAgLy8gcmV0dXJuIGNsZWFudXAgZnVuY3Rpb24uXHJcbiAgICByZXR1cm4gKF86IGFueSkgPT4gKGNvbXBvbmVudFtkZXN0cm95JF0gPSB1bmRlZmluZWQpO1xyXG4gIH0pO1xyXG59XHJcbiJdfQ==
...@@ -45,7 +45,6 @@ export class ViewportService { ...@@ -45,7 +45,6 @@ export class ViewportService {
entry => this.callback$.next(entry))); entry => this.callback$.next(entry)));
} }
} }
ViewportService.decorators = [ ViewportService.decorators = [
{type: Injectable} {type: Injectable}
]; ];
......
...@@ -8,6 +8,6 @@ ...@@ -8,6 +8,6 @@
export {AitpUtilsModule} from './lib/aitp-utils.module'; export {AitpUtilsModule} from './lib/aitp-utils.module';
export {InViewportComponent} from './lib/components'; export {InViewportComponent} from './lib/components';
export {InViewportDirective} from './lib/directives'; export {InViewportDirective} from './lib/directives';
export {addDestroyObservableToComponent, destroy$, untilDestroy} from './lib/operators'; export {untilDestroy} from './lib/operators';
export {ViewportService} from './lib/services'; export {ViewportService} from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnQ0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyx3RUFBYyxpQkFBaUIsQ0FBQztBQUNoQyxnQ0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhaXRwLXV0aWxzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWl0cC11dGlscy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZXJhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuIl19 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnQ0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyw2QkFBYyxpQkFBaUIsQ0FBQztBQUNoQyxnQ0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhaXRwLXV0aWxzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWl0cC11dGlscy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZXJhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuIl19
...@@ -5,16 +5,8 @@ ...@@ -5,16 +5,8 @@
/** /**
* Generated bundle index. Do not edit. * Generated bundle index. Do not edit.
*/ */
export { export {AitpUtilsModule, InViewportComponent, InViewportDirective, untilDestroy, ViewportService} from './public_api';
AitpUtilsModule,
InViewportComponent,
InViewportDirective,
addDestroyObservableToComponent,
destroy$,
untilDestroy,
ViewportService
} from './public_api';
export {InViewportComponent as ɵb} from './lib/components'; export {InViewportComponent as ɵb} from './lib/components';
export {InViewportDirective as ɵa} from './lib/directives'; export {InViewportDirective as ɵa} from './lib/directives';
export {ViewportService as ɵc} from './lib/services'; export {ViewportService as ɵc} from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWl0cC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJhaXRwLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxvSkFBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0luVmlld3BvcnRDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCB7SW5WaWV3cG9ydERpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0IHtWaWV3cG9ydFNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7Il19 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWl0cC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJhaXRwLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSx5R0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0luVmlld3BvcnRDb21wb25lbnQgYXMgybVifSBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCB7SW5WaWV3cG9ydERpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xuZXhwb3J0IHtWaWV3cG9ydFNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7Il19
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @fileoverview added by tsickle * @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/ */
import {Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID,} from '@angular/core'; import {Directive, ElementRef, EventEmitter, Inject, Input, Output, PLATFORM_ID} from '@angular/core';
import {isPlatformBrowser} from '@angular/common'; import {isPlatformBrowser} from '@angular/common';
import {filter, take} from 'rxjs/operators'; import {filter, take} from 'rxjs/operators';
import {ViewportService} from '../services'; import {ViewportService} from '../services';
...@@ -116,4 +116,15 @@ if (false) { ...@@ -116,4 +116,15 @@ if (false) {
*/ */
InViewportDirective.prototype.platformId; InViewportDirective.prototype.platformId;
} }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2luLXZpZXdwb3J0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEdBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUM7SUFRRSw2QkFDbUIsVUFBc0IsRUFDL0IsZUFBZ0MsRUFDWCxVQUFrQjtRQUY5QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQy9CLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNYLGVBQVUsR0FBVixVQUFVLENBQVE7UUFQakMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFzQyxDQUFDO0lBT3ZGLENBQUM7Ozs7SUFFTSxzQ0FBUTs7O0lBQWY7UUFBQSxpQkEwQkM7UUF6QkMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsZUFBZTtxQkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO3FCQUN0QyxJQUFJLENBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNsQixNQUFNOzs7O2dCQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBOUIsQ0FBOEIsRUFBQyxFQUMvQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7cUJBQ0EsU0FBUzs7OztnQkFBQyxVQUFDLEtBQWdDO29CQUMxQyxLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxFQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZUFBZTtxQkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO3FCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN4QixTQUFTOzs7O2dCQUFDLFVBQUMsS0FBZ0M7b0JBQzFDLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQzthQUNOO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDcEU7U0FDRjtJQUNILENBQUM7Ozs7SUFFRCx5Q0FBVzs7O0lBQVg7SUFDQSxDQUFDOztnQkE1Q0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOzs7O2dCQVJrQixVQUFVO2dCQUdyQixlQUFlO2dCQWNzQixNQUFNLHVCQUE5QyxNQUFNLFNBQUMsV0FBVzs7OzRCQVBwQixLQUFLOzBCQUNMLEtBQUs7NkJBQ0wsTUFBTTs7SUF1Q1QsMEJBQUM7Q0FBQSxBQTdDRCxJQTZDQztTQTFDWSxtQkFBbUI7OztJQUM5Qix3Q0FBaUM7O0lBQ2pDLHNDQUFnQzs7SUFDaEMseUNBQXVGOzs7OztJQUdyRix5Q0FBdUM7Ozs7O0lBQ3ZDLDhDQUF3Qzs7Ozs7SUFDeEMseUNBQStDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUExBVEZPUk1fSUQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtmaWx0ZXIsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtWaWV3cG9ydFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHt1bnRpbERlc3Ryb3l9IGZyb20gJy4uL29wZXJhdG9ycyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thaXV0SW5WaWV3cG9ydF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5WaWV3cG9ydERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBwdWJsaWMgcHJlUmVuZGVyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgb25lVGltZSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBpblZpZXdwb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPEludGVyc2VjdGlvbk9ic2VydmVyRW50cnk+PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgdmlld3BvcnRTZXJ2aWNlOiBWaWV3cG9ydFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIGlmICh0aGlzLm9uZVRpbWUpIHtcclxuICAgICAgICB0aGlzLnZpZXdwb3J0U2VydmljZVxyXG4gICAgICAgICAgLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdW50aWxEZXN0cm95KHRoaXMpLFxyXG4gICAgICAgICAgICBmaWx0ZXIoZW50cnkgPT4gZW50cnkuaW50ZXJzZWN0aW9uUmF0aW8gPj0gMC41KSxcclxuICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5WaWV3cG9ydC5lbWl0KGVudHJ5KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlXHJcbiAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcclxuICAgICAgICAgIC5waXBlKHVudGlsRGVzdHJveSh0aGlzKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKGVudHJ5OiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5WaWV3cG9ydC5lbWl0KGVudHJ5KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5wcmVSZW5kZXIpIHtcclxuICAgICAgICB0aGlzLmluVmlld3BvcnQuZW1pdCh7aXNJbnRlcnNlY3Rpbmc6IHRydWUsIGludGVyc2VjdGlvblJhdGlvOiAxfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gIH1cclxufVxyXG4iXX0=
/**
* @record
*/
export function MyIntersectionObserverEntry() {
}
if (false) {
/** @type {?} */
MyIntersectionObserverEntry.prototype.isIntersecting;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tdmlld3BvcnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWl0cC11dGlscy8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2luLXZpZXdwb3J0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxXQUFXLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUM7SUFRRSw2QkFDbUIsVUFBc0IsRUFDL0IsZUFBZ0MsRUFDWCxVQUFrQjtRQUY5QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQy9CLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNYLGVBQVUsR0FBVixVQUFVLENBQVE7UUFQakMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUF3QyxDQUFDO0lBT3pGLENBQUM7Ozs7SUFFTSxzQ0FBUTs7O0lBQWY7UUFBQSxpQkEwQkM7UUF6QkMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsZUFBZTtxQkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO3FCQUN0QyxJQUFJLENBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUNsQixNQUFNOzs7O2dCQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsRUFBOUIsQ0FBOEIsRUFBQyxFQUMvQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1I7cUJBQ0EsU0FBUzs7OztnQkFBQyxVQUFDLEtBQWtDO29CQUM1QyxLQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxFQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZUFBZTtxQkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO3FCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN4QixTQUFTOzs7O2dCQUFDLFVBQUMsS0FBa0M7b0JBQzVDLEtBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQzthQUNOO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDcEU7U0FDRjtJQUNILENBQUM7Ozs7SUFFRCx5Q0FBVzs7O0lBQVg7SUFDQSxDQUFDOztnQkE1Q0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOzs7O2dCQVJrQixVQUFVO2dCQUdyQixlQUFlO2dCQWNzQixNQUFNLHVCQUE5QyxNQUFNLFNBQUMsV0FBVzs7OzRCQVBwQixLQUFLOzBCQUNMLEtBQUs7NkJBQ0wsTUFBTTs7SUF1Q1QsMEJBQUM7Q0FBQSxBQTdDRCxJQTZDQztTQTFDWSxtQkFBbUI7OztJQUM5Qix3Q0FBaUM7O0lBQ2pDLHNDQUFnQzs7SUFDaEMseUNBQXlGOzs7OztJQUd2Rix5Q0FBdUM7Ozs7O0lBQ3ZDLDhDQUF3Qzs7Ozs7SUFDeEMseUNBQStDOzs7OztBQW9DbkQsaURBRUM7OztJQURDLHFEQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFBMQVRGT1JNX0lEfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtpc1BsYXRmb3JtQnJvd3Nlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtmaWx0ZXIsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtWaWV3cG9ydFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHt1bnRpbERlc3Ryb3l9IGZyb20gJy4uL29wZXJhdG9ycyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thaXV0SW5WaWV3cG9ydF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5WaWV3cG9ydERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBwdWJsaWMgcHJlUmVuZGVyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgb25lVGltZSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBpblZpZXdwb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPE15SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeT4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSB2aWV3cG9ydFNlcnZpY2U6IFZpZXdwb3J0U2VydmljZSxcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcclxuICAgICAgaWYgKHRoaXMub25lVGltZSkge1xyXG4gICAgICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlXHJcbiAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB1bnRpbERlc3Ryb3kodGhpcyksXHJcbiAgICAgICAgICAgIGZpbHRlcihlbnRyeSA9PiBlbnRyeS5pbnRlcnNlY3Rpb25SYXRpbyA+PSAwLjUpLFxyXG4gICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoZW50cnk6IE15SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmluVmlld3BvcnQuZW1pdChlbnRyeSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZpZXdwb3J0U2VydmljZVxyXG4gICAgICAgICAgLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXHJcbiAgICAgICAgICAucGlwZSh1bnRpbERlc3Ryb3kodGhpcykpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChlbnRyeTogTXlJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5WaWV3cG9ydC5lbWl0KGVudHJ5KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5wcmVSZW5kZXIpIHtcclxuICAgICAgICB0aGlzLmluVmlld3BvcnQuZW1pdCh7aXNJbnRlcnNlY3Rpbmc6IHRydWUsIGludGVyc2VjdGlvblJhdGlvOiAxfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNeUludGVyc2VjdGlvbk9ic2VydmVyRW50cnkgZXh0ZW5kcyBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5IHtcclxuICByZWFkb25seSBpc0ludGVyc2VjdGluZzogYm9vbGVhbjtcclxufVxyXG4iXX0=
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
* @fileoverview added by tsickle * @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/ */
export {addDestroyObservableToComponent, destroy$, untilDestroy} from './until-destroy'; export {untilDestroy} from './until-destroy';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9haXRwLXV0aWxzLyIsInNvdXJjZXMiOlsibGliL29wZXJhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0VBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VudGlsLWRlc3Ryb3knO1xyXG4iXX0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9haXRwLXV0aWxzLyIsInNvdXJjZXMiOlsibGliL29wZXJhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkJBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VudGlsLWRlc3Ryb3knO1xyXG4iXX0=
...@@ -8,7 +8,7 @@ import {takeUntil} from 'rxjs/operators'; ...@@ -8,7 +8,7 @@ import {takeUntil} from 'rxjs/operators';
// the component so it doesn't conflict with anything. // the component so it doesn't conflict with anything.
// I need this so I'm able to add the desired behaviour to the component. // I need this so I'm able to add the desired behaviour to the component.
/** @type {?} */ /** @type {?} */
export var destroy$ = 'destroy$'; var destroy$ = 'destroy$';
/** /**
* An operator that takes until destroy it takes a components this a parameter * An operator that takes until destroy it takes a components this a parameter
* returns a pipeable RxJS operator. * returns a pipeable RxJS operator.
...@@ -27,13 +27,12 @@ function (component) { ...@@ -27,13 +27,12 @@ function (component) {
// pipe in the takeUntil destroy$ and return the source unaltered // pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]); return takeUntil(component[destroy$]);
}); });
/** /**
* \@internal * \@internal
* @param {?} component * @param {?} component
* @return {?} * @return {?}
*/ */
export function addDestroyObservableToComponent(component) { function addDestroyObservableToComponent(component) {
component[destroy$] = new Observable((/** component[destroy$] = new Observable((/**
* @param {?} observer * @param {?} observer
* @return {?} * @return {?}
...@@ -71,4 +70,4 @@ export function addDestroyObservableToComponent(component) { ...@@ -71,4 +70,4 @@ export function addDestroyObservableToComponent(component) {
})); }));
} }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJsaWIvb3BlcmF0b3JzL3VudGlsLWRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU16QyxNQUFNLEtBQU8sUUFBUSxHQUFHLFVBQVU7Ozs7OztBQU1sQyxNQUFNLEtBQU8sWUFBWTs7Ozs7QUFBRyxVQUFJLFNBQWM7SUFDNUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO1FBQ3JDLG1DQUFtQztRQUNuQywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUM1QztJQUVELGlFQUFpRTtJQUNqRSxPQUFPLFNBQVMsQ0FBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDLENBQUE7Ozs7OztBQUtELE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxTQUFjO0lBQzVELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLFVBQVU7Ozs7SUFBTyxVQUFBLFFBQVE7Ozs7WUFHM0MsY0FBYyxHQUFHLFNBQVMsQ0FBQyxXQUFXO1FBQzVDLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtZQUMxQix5REFBeUQ7WUFDekQsNkJBQTZCO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztTQUM1RjtRQUNELDBCQUEwQjtRQUMxQixTQUFTLENBQUMsV0FBVzs7O1FBQUc7WUFDdEIsa0NBQWtDO1lBQ2xDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQiwwQkFBMEI7WUFDMUIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLHlDQUF5QztZQUN6QyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQSxDQUFDO1FBQ0YsMkJBQTJCO1FBQzNCOzs7O1FBQU8sVUFBQyxDQUFNLElBQUssT0FBQSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBakMsQ0FBaUMsRUFBQztJQUN2RCxDQUFDLEVBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICdyeGpzL2ludGVyZmFjZXMnO1xyXG5cclxuLy8gY3JlYXRlIGEgc3ltYm9sIGlkZW50aWZ5IHRoZSBvYnNlcnZhYmxlIEkgYWRkIHRvXHJcbi8vIHRoZSBjb21wb25lbnQgc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIGFueXRoaW5nLlxyXG4vLyBJIG5lZWQgdGhpcyBzbyBJJ20gYWJsZSB0byBhZGQgdGhlIGRlc2lyZWQgYmVoYXZpb3VyIHRvIHRoZSBjb21wb25lbnQuXHJcbmV4cG9ydCBjb25zdCBkZXN0cm95JCA9ICdkZXN0cm95JCc7XHJcblxyXG4vKipcclxuICogQW4gb3BlcmF0b3IgdGhhdCB0YWtlcyB1bnRpbCBkZXN0cm95IGl0IHRha2VzIGEgY29tcG9uZW50cyB0aGlzIGEgcGFyYW1ldGVyXHJcbiAqIHJldHVybnMgYSBwaXBlYWJsZSBSeEpTIG9wZXJhdG9yLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHVudGlsRGVzdHJveSA9IDxUPihjb21wb25lbnQ6IGFueSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiA9PiB7XHJcbiAgaWYgKGNvbXBvbmVudFtkZXN0cm95JF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgLy8gb25seSBob29rdXAgZWFjaCBjb21wb25lbnQgb25jZS5cclxuICAgIGFkZERlc3Ryb3lPYnNlcnZhYmxlVG9Db21wb25lbnQoY29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIC8vIHBpcGUgaW4gdGhlIHRha2VVbnRpbCBkZXN0cm95JCBhbmQgcmV0dXJuIHRoZSBzb3VyY2UgdW5hbHRlcmVkXHJcbiAgcmV0dXJuIHRha2VVbnRpbDxUPihjb21wb25lbnRbZGVzdHJveSRdKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGREZXN0cm95T2JzZXJ2YWJsZVRvQ29tcG9uZW50KGNvbXBvbmVudDogYW55KSB7XHJcbiAgY29tcG9uZW50W2Rlc3Ryb3kkXSA9IG5ldyBPYnNlcnZhYmxlPHZvaWQ+KG9ic2VydmVyID0+IHtcclxuICAgIC8vIGtlZXAgdHJhY2sgb2YgdGhlIG9yaWdpbmFsIGRlc3Ryb3kgZnVuY3Rpb24sXHJcbiAgICAvLyB0aGUgdXNlciBtaWdodCBkbyBzb21ldGhpbmcgaW4gdGhlcmVcclxuICAgIGNvbnN0IG9yaWduYWxEZXN0cm95ID0gY29tcG9uZW50Lm5nT25EZXN0cm95O1xyXG4gICAgaWYgKG9yaWduYWxEZXN0cm95ID09IG51bGwpIHtcclxuICAgICAgLy8gQW5ndWxhciBkb2VzIG5vdCBzdXBwb3J0IGR5bmFtaWMgYWRkZWQgZGVzdHJveSBtZXRob2RzXHJcbiAgICAgIC8vIHNvIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmUuXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW50aWxEZXN0cm95IG9wZXJhdG9yIG5lZWRzIHRoZSBjb21wb25lbnQgdG8gaGF2ZSBhbiBuZ09uRGVzdHJveSBtZXRob2QnKTtcclxuICAgIH1cclxuICAgIC8vIHJlcGxhY2UgdGhlIG5nT25kZXN0cm95XHJcbiAgICBjb21wb25lbnQubmdPbkRlc3Ryb3kgPSAoKSA9PiB7XHJcbiAgICAgIC8vIGZpcmUgb2ZmIHRoZSBkZXN0cm95IG9ic2VydmFibGVcclxuICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xyXG4gICAgICAvLyBjb21wbGV0ZSB0aGUgb2JzZXJ2YWJsZVxyXG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgICAvLyBhbmQgYXQgbGFzdCwgY2FsbCB0aGUgb3JpZ2luYWwgZGVzdHJveVxyXG4gICAgICBvcmlnbmFsRGVzdHJveS5jYWxsKGNvbXBvbmVudCk7XHJcbiAgICB9O1xyXG4gICAgLy8gcmV0dXJuIGNsZWFudXAgZnVuY3Rpb24uXHJcbiAgICByZXR1cm4gKF86IGFueSkgPT4gKGNvbXBvbmVudFtkZXN0cm95JF0gPSB1bmRlZmluZWQpO1xyXG4gIH0pO1xyXG59XHJcbiJdfQ== //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW50aWwtZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJsaWIvb3BlcmF0b3JzL3VudGlsLWRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7OztJQU1uQyxRQUFRLEdBQUcsVUFBVTs7Ozs7O0FBTTNCLE1BQU0sS0FBTyxZQUFZOzs7OztBQUFHLFVBQUksU0FBYztJQUM1QyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLEVBQUU7UUFDckMsbUNBQW1DO1FBQ25DLCtCQUErQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQzVDO0lBRUQsaUVBQWlFO0lBQ2pFLE9BQU8sU0FBUyxDQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMsQ0FBQTs7Ozs7O0FBS0QsU0FBUywrQkFBK0IsQ0FBQyxTQUFjO0lBQ3JELFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLFVBQVU7Ozs7SUFBTyxVQUFBLFFBQVE7Ozs7WUFHM0MsY0FBYyxHQUFHLFNBQVMsQ0FBQyxXQUFXO1FBQzVDLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtZQUMxQix5REFBeUQ7WUFDekQsNkJBQTZCO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztTQUM1RjtRQUNELDBCQUEwQjtRQUMxQixTQUFTLENBQUMsV0FBVzs7O1FBQUc7WUFDdEIsa0NBQWtDO1lBQ2xDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQiwwQkFBMEI7WUFDMUIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLHlDQUF5QztZQUN6QyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQSxDQUFDO1FBQ0YsMkJBQTJCO1FBQzNCOzs7O1FBQU8sVUFBQyxDQUFNLElBQUssT0FBQSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBakMsQ0FBaUMsRUFBQztJQUN2RCxDQUFDLEVBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge01vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbn0gZnJvbSAncnhqcy9pbnRlcmZhY2VzJztcclxuXHJcbi8vIGNyZWF0ZSBhIHN5bWJvbCBpZGVudGlmeSB0aGUgb2JzZXJ2YWJsZSBJIGFkZCB0b1xyXG4vLyB0aGUgY29tcG9uZW50IHNvIGl0IGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCBhbnl0aGluZy5cclxuLy8gSSBuZWVkIHRoaXMgc28gSSdtIGFibGUgdG8gYWRkIHRoZSBkZXNpcmVkIGJlaGF2aW91ciB0byB0aGUgY29tcG9uZW50LlxyXG5jb25zdCBkZXN0cm95JCA9ICdkZXN0cm95JCc7XHJcblxyXG4vKipcclxuICogQW4gb3BlcmF0b3IgdGhhdCB0YWtlcyB1bnRpbCBkZXN0cm95IGl0IHRha2VzIGEgY29tcG9uZW50cyB0aGlzIGEgcGFyYW1ldGVyXHJcbiAqIHJldHVybnMgYSBwaXBlYWJsZSBSeEpTIG9wZXJhdG9yLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHVudGlsRGVzdHJveSA9IDxUPihjb21wb25lbnQ6IGFueSk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiA9PiB7XHJcbiAgaWYgKGNvbXBvbmVudFtkZXN0cm95JF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgLy8gb25seSBob29rdXAgZWFjaCBjb21wb25lbnQgb25jZS5cclxuICAgIGFkZERlc3Ryb3lPYnNlcnZhYmxlVG9Db21wb25lbnQoY29tcG9uZW50KTtcclxuICB9XHJcblxyXG4gIC8vIHBpcGUgaW4gdGhlIHRha2VVbnRpbCBkZXN0cm95JCBhbmQgcmV0dXJuIHRoZSBzb3VyY2UgdW5hbHRlcmVkXHJcbiAgcmV0dXJuIHRha2VVbnRpbDxUPihjb21wb25lbnRbZGVzdHJveSRdKTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbmZ1bmN0aW9uIGFkZERlc3Ryb3lPYnNlcnZhYmxlVG9Db21wb25lbnQoY29tcG9uZW50OiBhbnkpIHtcclxuICBjb21wb25lbnRbZGVzdHJveSRdID0gbmV3IE9ic2VydmFibGU8dm9pZD4ob2JzZXJ2ZXIgPT4ge1xyXG4gICAgLy8ga2VlcCB0cmFjayBvZiB0aGUgb3JpZ2luYWwgZGVzdHJveSBmdW5jdGlvbixcclxuICAgIC8vIHRoZSB1c2VyIG1pZ2h0IGRvIHNvbWV0aGluZyBpbiB0aGVyZVxyXG4gICAgY29uc3Qgb3JpZ25hbERlc3Ryb3kgPSBjb21wb25lbnQubmdPbkRlc3Ryb3k7XHJcbiAgICBpZiAob3JpZ25hbERlc3Ryb3kgPT0gbnVsbCkge1xyXG4gICAgICAvLyBBbmd1bGFyIGRvZXMgbm90IHN1cHBvcnQgZHluYW1pYyBhZGRlZCBkZXN0cm95IG1ldGhvZHNcclxuICAgICAgLy8gc28gbWFrZSBzdXJlIHRoZXJlIGlzIG9uZS5cclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnRpbERlc3Ryb3kgb3BlcmF0b3IgbmVlZHMgdGhlIGNvbXBvbmVudCB0byBoYXZlIGFuIG5nT25EZXN0cm95IG1ldGhvZCcpO1xyXG4gICAgfVxyXG4gICAgLy8gcmVwbGFjZSB0aGUgbmdPbmRlc3Ryb3lcclxuICAgIGNvbXBvbmVudC5uZ09uRGVzdHJveSA9ICgpID0+IHtcclxuICAgICAgLy8gZmlyZSBvZmYgdGhlIGRlc3Ryb3kgb2JzZXJ2YWJsZVxyXG4gICAgICBvYnNlcnZlci5uZXh0KCk7XHJcbiAgICAgIC8vIGNvbXBsZXRlIHRoZSBvYnNlcnZhYmxlXHJcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgIC8vIGFuZCBhdCBsYXN0LCBjYWxsIHRoZSBvcmlnaW5hbCBkZXN0cm95XHJcbiAgICAgIG9yaWduYWxEZXN0cm95LmNhbGwoY29tcG9uZW50KTtcclxuICAgIH07XHJcbiAgICAvLyByZXR1cm4gY2xlYW51cCBmdW5jdGlvbi5cclxuICAgIHJldHVybiAoXzogYW55KSA9PiAoY29tcG9uZW50W2Rlc3Ryb3kkXSA9IHVuZGVmaW5lZCk7XHJcbiAgfSk7XHJcbn1cclxuIl19
...@@ -8,6 +8,6 @@ ...@@ -8,6 +8,6 @@
export {AitpUtilsModule} from './lib/aitp-utils.module'; export {AitpUtilsModule} from './lib/aitp-utils.module';
export {InViewportComponent} from './lib/components'; export {InViewportComponent} from './lib/components';
export {InViewportDirective} from './lib/directives'; export {InViewportDirective} from './lib/directives';
export {addDestroyObservableToComponent, destroy$, untilDestroy} from './lib/operators'; export {untilDestroy} from './lib/operators';
export {ViewportService} from './lib/services'; export {ViewportService} from './lib/services';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnQ0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyx3RUFBYyxpQkFBaUIsQ0FBQztBQUNoQyxnQ0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhaXRwLXV0aWxzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWl0cC11dGlscy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZXJhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuIl19 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FpdHAtdXRpbHMvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxnQ0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxvQ0FBYyxrQkFBa0IsQ0FBQztBQUNqQyw2QkFBYyxpQkFBaUIsQ0FBQztBQUNoQyxnQ0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhaXRwLXV0aWxzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYWl0cC11dGlscy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL29wZXJhdG9ycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzJztcclxuIl19
...@@ -39,7 +39,6 @@ class InViewportComponent { ...@@ -39,7 +39,6 @@ class InViewportComponent {
} }
} }
} }
InViewportComponent.decorators = [ InViewportComponent.decorators = [
{ {
type: Component, args: [{ type: Component, args: [{
...@@ -101,7 +100,6 @@ class ViewportService { ...@@ -101,7 +100,6 @@ class ViewportService {
entry => this.callback$.next(entry))); entry => this.callback$.next(entry)));
} }
} }
ViewportService.decorators = [ ViewportService.decorators = [
{type: Injectable} {type: Injectable}
]; ];
...@@ -140,7 +138,6 @@ const untilDestroy = (/** ...@@ -140,7 +138,6 @@ const untilDestroy = (/**
// pipe in the takeUntil destroy$ and return the source unaltered // pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]); return takeUntil(component[destroy$]);
}); });
/** /**
* \@internal * \@internal
* @param {?} component * @param {?} component
...@@ -251,7 +248,6 @@ class InViewportDirective { ...@@ -251,7 +248,6 @@ class InViewportDirective {
ngOnDestroy() { ngOnDestroy() {
} }
} }
InViewportDirective.decorators = [ InViewportDirective.decorators = [
{ {
type: Directive, args: [{ type: Directive, args: [{
...@@ -282,7 +278,6 @@ InViewportDirective.propDecorators = { ...@@ -282,7 +278,6 @@ InViewportDirective.propDecorators = {
*/ */
class AitpUtilsModule { class AitpUtilsModule {
} }
AitpUtilsModule.decorators = [ AitpUtilsModule.decorators = [
{ {
type: NgModule, args: [{ type: NgModule, args: [{
...@@ -308,8 +303,6 @@ export { ...@@ -308,8 +303,6 @@ export {
AitpUtilsModule, AitpUtilsModule,
InViewportComponent, InViewportComponent,
InViewportDirective, InViewportDirective,
addDestroyObservableToComponent,
destroy$,
untilDestroy, untilDestroy,
ViewportService, ViewportService,
InViewportComponent as ɵb, InViewportComponent as ɵb,
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
"sourcesContent": [ "sourcesContent": [
"import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\r\n }\r\n}\r\n", "import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\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 {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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport { MonoTypeOperatorFunction } from 'rxjs/interfaces';\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$ = '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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {MonoTypeOperatorFunction} from 'rxjs/interfaces';\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\nconst destroy$ = '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\nfunction 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", "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<MyIntersectionObserverEntry>>();\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: MyIntersectionObserverEntry) => {\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: MyIntersectionObserverEntry) => {\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\r\nexport interface MyIntersectionObserverEntry extends IntersectionObserverEntry {\r\n readonly isIntersecting: boolean;\r\n}\r\n",
"import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n" "import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n"
], ],
"names": [ "names": [
...@@ -20,5 +20,5 @@ ...@@ -20,5 +20,5 @@
"Components.InViewportComponent", "Components.InViewportComponent",
"Services.ViewportService" "Services.ViewportService"
], ],
"mappings": ";;;;;;;;;AAAA,MAMa,mBAAmB;;;;IAC9B,YAAoB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;KACvD;;;;;IAED,gBAAgB,CAAC,yBAAoD;QACnE,IAAI,yBAAyB,CAAC,cAAc,EAAE;YAC5C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;SACjC;KACF;;;YAdF,SAAS,SAAC;gBACT,QAAQ,EAAE,kBAAkB;gBAC5B,uHAA2C;aAC5C;;;;YALO,iBAAiB;;;;;;;;;;;;ACAzB,MAKa,eAAe;IAQ1B;QAPiB,YAAO,GAA6B;YACnD,UAAU,EAAE,iBAAiB;YAC7B,SAAS,EAAE,CAAC,GAAG,CAAC;SACjB,CAAC;QAEM,cAAS,GAAuC,IAAI,OAAO,EAAE,CAAC;QAGpE,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACjF;;;;;IAED,OAAO,CAAC,OAAgB;QACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,IAAI,CACvC,MAAM;;;;QAAC,CAAC,KAAgC,KAAK,KAAK,CAAC,MAAM,KAAK,OAAO,EAAC,EACtE,QAAQ;;;QAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,CACjD,CAAC;KACH;;;;;;IAEO,OAAO,CAAC,OAAyC;QACvD,OAAO,CAAC,OAAO;;;;QAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC;KACtD;;;YAxBF,UAAU;;;;;;;;;;;;;;ACJX;;;;AAOA,MAAa,QAAQ,GAAG,UAAU;;;;;;AAMlC,MAAa,YAAY;;;;;AAAG,CAAI,SAAc;IAC5C,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;;QAErC,+BAA+B,CAAC,SAAS,CAAC,CAAC;KAC5C;;IAGD,OAAO,SAAS,CAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC1C,CAAA;;;;;;AAKD,SAAgB,+BAA+B,CAAC,SAAc;IAC5D,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,UAAU;;;;IAAO,QAAQ;;;;cAG3C,cAAc,GAAG,SAAS,CAAC,WAAW;QAC5C,IAAI,cAAc,IAAI,IAAI,EAAE;;;YAG1B,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;SAC5F;;QAED,SAAS,CAAC,WAAW;;;QAAG;;YAEtB,QAAQ,CAAC,IAAI,EAAE,CAAC;;YAEhB,QAAQ,CAAC,QAAQ,EAAE,CAAC;;YAEpB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAChC,CAAA,CAAC;;QAEF;;;;QAAO,CAAC,CAAM,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,EAAC;KACtD,EAAC,CAAC;CACJ;;;;;;;;;;;AChDD,MASa,mBAAmB;;;;;;IAK9B,YACmB,UAAsB,EAC/B,eAAgC,EACX,UAAkB;QAF9B,eAAU,GAAV,UAAU,CAAY;QAC/B,oBAAe,GAAf,eAAe,CAAiB;QACX,eAAU,GAAV,UAAU,CAAQ;QAPjC,cAAS,GAAG,IAAI,CAAC;QACjB,YAAO,GAAG,KAAK,CAAC;QACb,eAAU,GAAG,IAAI,YAAY,EAAsC,CAAC;KAOtF;;;;IAEM,QAAQ;QACb,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,eAAe;qBACjB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;qBACtC,IAAI,CACH,YAAY,CAAC,IAAI,CAAC,EAClB,MAAM;;;;gBAAC,KAAK,IAAI,KAAK,CAAC,iBAAiB,IAAI,GAAG,EAAC,EAC/C,IAAI,CAAC,CAAC,CAAC,CACR;qBACA,SAAS;;;;gBAAC,CAAC,KAAgC;oBAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC7B,EAAC,CAAC;aACN;iBAAM;gBACL,IAAI,CAAC,eAAe;qBACjB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;qBACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;qBACxB,SAAS;;;;gBAAC,CAAC,KAAgC;oBAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC7B,EAAC,CAAC;aACN;SACF;aAAM;YACL,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAC,CAAC,CAAC;aACpE;SACF;KACF;;;;IAED,WAAW;KACV;;;YA5CF,SAAS,SAAC;gBACT,QAAQ,EAAE,kBAAkB;aAC7B;;;;YARkB,UAAU;YAGrB,eAAe;YAcsB,MAAM,uBAA9C,MAAM,SAAC,WAAW;;;wBAPpB,KAAK;sBACL,KAAK;yBACL,MAAM;;;;;;;;;;;;ACZT,MAaa,eAAe;;;YAN3B,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAACA,mBAA8B,EAAEC,mBAA8B,CAAC;gBAC9E,SAAS,EAAE,CAACC,eAAwB,CAAC;gBACrC,OAAO,EAAE,CAACF,mBAA8B,EAAEC,mBAA8B,CAAC;aAC1E;;;;;;;;;;;;;;;" "mappings": "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"
} }
...@@ -161,7 +161,6 @@ function (component) { ...@@ -161,7 +161,6 @@ function (component) {
// pipe in the takeUntil destroy$ and return the source unaltered // pipe in the takeUntil destroy$ and return the source unaltered
return takeUntil(component[destroy$]); return takeUntil(component[destroy$]);
}); });
/** /**
* \@internal * \@internal
* @param {?} component * @param {?} component
...@@ -339,8 +338,6 @@ export { ...@@ -339,8 +338,6 @@ export {
AitpUtilsModule, AitpUtilsModule,
InViewportComponent, InViewportComponent,
InViewportDirective, InViewportDirective,
addDestroyObservableToComponent,
destroy$,
untilDestroy, untilDestroy,
ViewportService, ViewportService,
InViewportComponent as ɵb, InViewportComponent as ɵb,
......
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
"sourcesContent": [ "sourcesContent": [
"import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\r\n }\r\n}\r\n", "import {ChangeDetectorRef, 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 constructor(private changeDetectorRef: ChangeDetectorRef) {\r\n }\r\n\r\n onViewportChange(intersectionObserverEntry: IntersectionObserverEntry) {\r\n if (intersectionObserverEntry.isIntersecting) {\r\n this.changeDetectorRef.reattach();\r\n } else {\r\n this.changeDetectorRef.detach();\r\n }\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 {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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport { MonoTypeOperatorFunction } from 'rxjs/interfaces';\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$ = '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 {Observable} from 'rxjs';\r\nimport {takeUntil} from 'rxjs/operators';\r\nimport {MonoTypeOperatorFunction} from 'rxjs/interfaces';\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\nconst destroy$ = '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\nfunction 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", "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<MyIntersectionObserverEntry>>();\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: MyIntersectionObserverEntry) => {\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: MyIntersectionObserverEntry) => {\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\r\nexport interface MyIntersectionObserverEntry extends IntersectionObserverEntry {\r\n readonly isIntersecting: boolean;\r\n}\r\n",
"import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n" "import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport * as Components from './components';\r\nimport * as Directives from './directives';\r\nimport * as Services from './services';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Directives.InViewportDirective, Components.InViewportComponent],\r\n providers: [Services.ViewportService],\r\n exports: [Directives.InViewportDirective, Components.InViewportComponent]\r\n})\r\nexport class AitpUtilsModule { }\r\n"
], ],
"names": [ "names": [
...@@ -20,5 +20,5 @@ ...@@ -20,5 +20,5 @@
"Components.InViewportComponent", "Components.InViewportComponent",
"Services.ViewportService" "Services.ViewportService"
], ],
"mappings": "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" "mappings": "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"
} }
...@@ -4,7 +4,7 @@ import {ViewportService} from '../services'; ...@@ -4,7 +4,7 @@ import {ViewportService} from '../services';
export declare class InViewportDirective implements OnInit, OnDestroy { export declare class InViewportDirective implements OnInit, OnDestroy {
preRender: boolean; preRender: boolean;
oneTime: boolean; oneTime: boolean;
readonly inViewport: EventEmitter<Partial<IntersectionObserverEntry>>; readonly inViewport: EventEmitter<Partial<MyIntersectionObserverEntry>>;
private readonly elementRef; private readonly elementRef;
private viewportService; private viewportService;
private platformId; private platformId;
...@@ -15,3 +15,7 @@ export declare class InViewportDirective implements OnInit, OnDestroy { ...@@ -15,3 +15,7 @@ export declare class InViewportDirective implements OnInit, OnDestroy {
ngOnDestroy(): void; ngOnDestroy(): void;
} }
export interface MyIntersectionObserverEntry extends IntersectionObserverEntry {
readonly isIntersecting: boolean;
}
import {MonoTypeOperatorFunction} from 'rxjs/interfaces'; import {MonoTypeOperatorFunction} from 'rxjs/interfaces';
export declare const destroy$ = 'destroy$';
/** /**
* An operator that takes until destroy it takes a components this a parameter * An operator that takes until destroy it takes a components this a parameter
* returns a pipeable RxJS operator. * returns a pipeable RxJS operator.
*/ */
export declare const untilDestroy: <T>(component: any) => MonoTypeOperatorFunction<T>; export declare const untilDestroy: <T>(component: any) => MonoTypeOperatorFunction<T>;
/**
* @internal
*/
export declare function addDestroyObservableToComponent(component: any): void;
import {Directive, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, PLATFORM_ID,} from '@angular/core'; import {Directive, ElementRef, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, PLATFORM_ID} from '@angular/core';
import {isPlatformBrowser} from '@angular/common'; import {isPlatformBrowser} from '@angular/common';
import {filter, take} from 'rxjs/operators'; import {filter, take} from 'rxjs/operators';
import {ViewportService} from '../services'; import {ViewportService} from '../services';
...@@ -10,7 +10,7 @@ import {untilDestroy} from '../operators'; ...@@ -10,7 +10,7 @@ import {untilDestroy} from '../operators';
export class InViewportDirective implements OnInit, OnDestroy { export class InViewportDirective implements OnInit, OnDestroy {
@Input() public preRender = true; @Input() public preRender = true;
@Input() public oneTime = false; @Input() public oneTime = false;
@Output() readonly inViewport = new EventEmitter<Partial<IntersectionObserverEntry>>(); @Output() readonly inViewport = new EventEmitter<Partial<MyIntersectionObserverEntry>>();
constructor( constructor(
private readonly elementRef: ElementRef, private readonly elementRef: ElementRef,
...@@ -29,14 +29,14 @@ export class InViewportDirective implements OnInit, OnDestroy { ...@@ -29,14 +29,14 @@ export class InViewportDirective implements OnInit, OnDestroy {
filter(entry => entry.intersectionRatio >= 0.5), filter(entry => entry.intersectionRatio >= 0.5),
take(1), take(1),
) )
.subscribe((entry: IntersectionObserverEntry) => { .subscribe((entry: MyIntersectionObserverEntry) => {
this.inViewport.emit(entry); this.inViewport.emit(entry);
}); });
} else { } else {
this.viewportService this.viewportService
.observe(this.elementRef.nativeElement) .observe(this.elementRef.nativeElement)
.pipe(untilDestroy(this)) .pipe(untilDestroy(this))
.subscribe((entry: IntersectionObserverEntry) => { .subscribe((entry: MyIntersectionObserverEntry) => {
this.inViewport.emit(entry); this.inViewport.emit(entry);
}); });
} }
...@@ -50,3 +50,7 @@ export class InViewportDirective implements OnInit, OnDestroy { ...@@ -50,3 +50,7 @@ export class InViewportDirective implements OnInit, OnDestroy {
ngOnDestroy() { ngOnDestroy() {
} }
} }
export interface MyIntersectionObserverEntry extends IntersectionObserverEntry {
readonly isIntersecting: boolean;
}
...@@ -5,7 +5,7 @@ import {MonoTypeOperatorFunction} from 'rxjs/interfaces'; ...@@ -5,7 +5,7 @@ import {MonoTypeOperatorFunction} from 'rxjs/interfaces';
// create a symbol identify the observable I add to // create a symbol identify the observable I add to
// the component so it doesn't conflict with anything. // the component so it doesn't conflict with anything.
// I need this so I'm able to add the desired behaviour to the component. // I need this so I'm able to add the desired behaviour to the component.
export const destroy$ = 'destroy$'; const destroy$ = 'destroy$';
/** /**
* An operator that takes until destroy it takes a components this a parameter * An operator that takes until destroy it takes a components this a parameter
...@@ -24,7 +24,7 @@ export const untilDestroy = <T>(component: any): MonoTypeOperatorFunction<T> => ...@@ -24,7 +24,7 @@ export const untilDestroy = <T>(component: any): MonoTypeOperatorFunction<T> =>
/** /**
* @internal * @internal
*/ */
export function addDestroyObservableToComponent(component: any) { function addDestroyObservableToComponent(component: any) {
component[destroy$] = new Observable<void>(observer => { component[destroy$] = new Observable<void>(observer => {
// keep track of the original destroy function, // keep track of the original destroy function,
// the user might do something in there // the user might do something in there
......
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