UNPKG

@greg-md/ng-facebook

Version:
154 lines (153 loc) 10.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { Directive, Input, ElementRef, Renderer2, InjectionToken, Inject, Optional, PLATFORM_ID } from '@angular/core'; import { isPlatformBrowser } from '@angular/common'; import { inViewport } from './dom'; import { FacebookService } from './facebook.service'; export var /** @type {?} */ FB_PARSE_LAZY_LOAD = new InjectionToken('fb_parse_lazy_load'); var FacebookParseDirective = /** @class */ (function () { function FacebookParseDirective(elementRef, facebook, renderer, platformId, threshold) { this.elementRef = elementRef; this.facebook = facebook; this.renderer = renderer; this.platformId = platformId; this.threshold = threshold; } Object.defineProperty(FacebookParseDirective.prototype, "lazyLoad", { set: /** * @param {?} threshold * @return {?} */ function (threshold) { this.threshold = threshold; }, enumerable: true, configurable: true }); /** * @return {?} */ FacebookParseDirective.prototype.ngAfterViewInit = /** * @return {?} */ function () { if (this.threshold === null) { this.load(); } else { this.initListeners(); this.tryLoading(); } }; /** * @return {?} */ FacebookParseDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { this.unloadListeners(); }; /** * @return {?} */ FacebookParseDirective.prototype.initListeners = /** * @return {?} */ function () { var _this = this; this.scrollUnload = this.renderer.listen('window', 'scroll', function () { _this.tryLoading(); }); this.resizeUnload = this.renderer.listen('window', 'resize', function () { _this.tryLoading(); }); }; /** * @return {?} */ FacebookParseDirective.prototype.tryLoading = /** * @return {?} */ function () { if (isPlatformBrowser(this.platformId) && inViewport(this.elementRef.nativeElement, { threshold: this.threshold, container: this.container })) { this.load(); this.unloadListeners(); } }; /** * @return {?} */ FacebookParseDirective.prototype.load = /** * @return {?} */ function () { this.facebook.parse(this.elementRef.nativeElement).subscribe(); }; /** * @return {?} */ FacebookParseDirective.prototype.unloadListeners = /** * @return {?} */ function () { if (this.scrollUnload) { this.scrollUnload(); } if (this.resizeUnload) { this.resizeUnload(); } }; FacebookParseDirective.decorators = [ { type: Directive, args: [{ selector: '[fbParse]', },] }, ]; /** @nocollapse */ FacebookParseDirective.ctorParameters = function () { return [ { type: ElementRef, }, { type: FacebookService, }, { type: Renderer2, }, { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] },] }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [FB_PARSE_LAZY_LOAD,] },] }, ]; }; FacebookParseDirective.propDecorators = { "lazyLoad": [{ type: Input },], "container": [{ type: Input },], }; return FacebookParseDirective; }()); export { FacebookParseDirective }; function FacebookParseDirective_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ FacebookParseDirective.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ FacebookParseDirective.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ FacebookParseDirective.propDecorators; /** @type {?} */ FacebookParseDirective.prototype.container; /** @type {?} */ FacebookParseDirective.prototype.scrollUnload; /** @type {?} */ FacebookParseDirective.prototype.resizeUnload; /** @type {?} */ FacebookParseDirective.prototype.elementRef; /** @type {?} */ FacebookParseDirective.prototype.facebook; /** @type {?} */ FacebookParseDirective.prototype.renderer; /** @type {?} */ FacebookParseDirective.prototype.platformId; /** @type {?} */ FacebookParseDirective.prototype.threshold; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdyZWctbWQvbmctZmFjZWJvb2svIiwic291cmNlcyI6WyJsaWIvcGFyc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQWlCLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFDeEYsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxxQkFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBUyxvQkFBb0IsQ0FBQyxDQUFDOztJQWlCakYsZ0NBQ1UsWUFDQSxVQUNBLFVBQ3FCLFlBQ21CO1FBSnhDLGVBQVUsR0FBVixVQUFVO1FBQ1YsYUFBUSxHQUFSLFFBQVE7UUFDUixhQUFRLEdBQVIsUUFBUTtRQUNhLGVBQVUsR0FBVixVQUFVO1FBQ1MsY0FBUyxHQUFULFNBQVM7S0FFMUQ7MEJBakJHLDRDQUFROzs7OztrQkFBQyxTQUFpQjtZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQzs7Ozs7Ozs7SUFrQjdCLGdEQUFlOzs7SUFBZjtRQUNFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXJCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtLQUNGOzs7O0lBRUQsNENBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0tBQ3hCOzs7O0lBRUQsOENBQWE7OztJQUFiO1FBQUEsaUJBUUM7UUFQQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUU7WUFDM0QsS0FBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRTtZQUMzRCxLQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkIsQ0FBQyxDQUFDO0tBQ0o7Ozs7SUFFRCwyQ0FBVTs7O0lBQVY7UUFDRSxFQUFFLENBQUMsQ0FDRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFO1lBQzlFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FDSCxDQUFDLENBQUMsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN4QjtLQUNGOzs7O0lBRUQscUNBQUk7OztJQUFKO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUNoRTs7OztJQUVELGdEQUFlOzs7SUFBZjtRQUNFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtRQUVELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtLQUNGOztnQkF6RUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO2lCQUN0Qjs7OztnQkFibUIsVUFBVTtnQkFPckIsZUFBZTtnQkFQdUIsU0FBUzs2Q0E4Qm5ELE1BQU0sU0FBQyxXQUFXO2dEQUNsQixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7OzZCQWhCdkMsS0FBSzs4QkFLTCxLQUFLOztpQ0FyQlI7O1NBZWEsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLCBJbnB1dCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgUmVuZGVyZXIyLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0LCBPcHRpb25hbCxcbiAgUExBVEZPUk1fSUQsIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgaW5WaWV3cG9ydCB9IGZyb20gJy4vZG9tJztcblxuaW1wb3J0IHsgRmFjZWJvb2tTZXJ2aWNlIH0gZnJvbSAnLi9mYWNlYm9vay5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEZCX1BBUlNFX0xBWllfTE9BRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdmYl9wYXJzZV9sYXp5X2xvYWQnKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZiUGFyc2VdJyxcbn0pXG5leHBvcnQgY2xhc3MgRmFjZWJvb2tQYXJzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHNldCBsYXp5TG9hZCh0aHJlc2hvbGQ6IG51bWJlcikge1xuICAgIHRoaXMudGhyZXNob2xkID0gdGhyZXNob2xkO1xuICB9XG5cbiAgQElucHV0KClcbiAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IFdpbmRvdztcblxuICBzY3JvbGxVbmxvYWQ6ICgpID0+IHZvaWQ7XG4gIHJlc2l6ZVVubG9hZDogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBmYWNlYm9vazogRmFjZWJvb2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZCX1BBUlNFX0xBWllfTE9BRCkgcHJpdmF0ZSB0aHJlc2hvbGQ6IG51bWJlcixcbiAgKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMudGhyZXNob2xkID09PSBudWxsKSB7XG4gICAgICB0aGlzLmxvYWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0TGlzdGVuZXJzKCk7XG5cbiAgICAgIHRoaXMudHJ5TG9hZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5sb2FkTGlzdGVuZXJzKCk7XG4gIH1cblxuICBpbml0TGlzdGVuZXJzKCkge1xuICAgIHRoaXMuc2Nyb2xsVW5sb2FkID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdzY3JvbGwnLCAoKSA9PiB7XG4gICAgICB0aGlzLnRyeUxvYWRpbmcoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVzaXplVW5sb2FkID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoKSA9PiB7XG4gICAgICB0aGlzLnRyeUxvYWRpbmcoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRyeUxvYWRpbmcoKSB7XG4gICAgaWYgKFxuICAgICAgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiBpblZpZXdwb3J0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIHRocmVzaG9sZDogdGhpcy50aHJlc2hvbGQsXG4gICAgICAgIGNvbnRhaW5lcjogdGhpcy5jb250YWluZXJcbiAgICAgIH0pXG4gICAgKSB7XG4gICAgICB0aGlzLmxvYWQoKTtcblxuICAgICAgdGhpcy51bmxvYWRMaXN0ZW5lcnMoKTtcbiAgICB9XG4gIH1cblxuICBsb2FkKCkge1xuICAgIHRoaXMuZmFjZWJvb2sucGFyc2UodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdW5sb2FkTGlzdGVuZXJzKCkge1xuICAgIGlmICh0aGlzLnNjcm9sbFVubG9hZCkge1xuICAgICAgdGhpcy5zY3JvbGxVbmxvYWQoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXNpemVVbmxvYWQpIHtcbiAgICAgIHRoaXMucmVzaXplVW5sb2FkKCk7XG4gICAgfVxuICB9XG59XG4iXX0=