ngx-firebase-cms
Version:
Angular Content Management System using Google Firebase (Authentication, Storage & Firestore)
56 lines • 4.77 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { ReplaySubject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import * as i0 from "@angular/core";
export class UnsubscriptionService {
constructor() { }
/**
* @param {?} component
* @return {?}
*/
componentDestroyed(component) {
/** @type {?} */
const modifiedComponent = (/** @type {?} */ (component));
if (modifiedComponent.__componentDestroyed$) {
return modifiedComponent.__componentDestroyed$;
}
/** @type {?} */
const oldNgOnDestroy = component.ngOnDestroy;
/** @type {?} */
const stop$ = new ReplaySubject();
modifiedComponent.ngOnDestroy = (/**
* @return {?}
*/
function () {
oldNgOnDestroy && oldNgOnDestroy.apply(component);
stop$.next(true);
stop$.complete();
});
return modifiedComponent.__componentDestroyed$ = stop$.asObservable();
}
/**
* @template T
* @param {?} component
* @return {?}
*/
untilComponentDestroyed(component) {
return (/**
* @param {?} source
* @return {?}
*/
(source) => source.pipe(takeUntil(this.componentDestroyed(component))));
}
}
UnsubscriptionService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
UnsubscriptionService.ctorParameters = () => [];
/** @nocollapse */ UnsubscriptionService.ngInjectableDef = i0.defineInjectable({ factory: function UnsubscriptionService_Factory() { return new UnsubscriptionService(); }, token: UnsubscriptionService, providedIn: "root" });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zdWJzY3JpcHRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1maXJlYmFzZS1jbXMvIiwic291cmNlcyI6WyJsaWIvc2VydmljZS91bnN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUszQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLGdCQUFnQixDQUFDOzs7OztJQUVqQixrQkFBa0IsQ0FBQyxTQUFrQzs7Y0FDN0MsaUJBQWlCLEdBQUcsbUJBQUEsU0FBUyxFQUFxRTtRQUN4RyxJQUFJLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFO1lBQzNDLE9BQU8saUJBQWlCLENBQUMscUJBQXFCLENBQUM7U0FDaEQ7O2NBQ0ssY0FBYyxHQUFHLFNBQVMsQ0FBQyxXQUFXOztjQUN0QyxLQUFLLEdBQUcsSUFBSSxhQUFhLEVBQVE7UUFDdkMsaUJBQWlCLENBQUMsV0FBVzs7O1FBQUc7WUFDOUIsY0FBYyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFBLENBQUM7UUFDRixPQUFPLGlCQUFpQixDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4RSxDQUFDOzs7Ozs7SUFFRCx1QkFBdUIsQ0FBSSxTQUFrQztRQUMzRDs7OztRQUFPLENBQUMsTUFBcUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDM0MsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUM5QyxFQUFBO0lBQ0gsQ0FBQzs7O1lBMUJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVW5zdWJzY3JpcHRpb25TZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGNvbXBvbmVudERlc3Ryb3llZChjb21wb25lbnQ6IHsgbmdPbkRlc3Ryb3koKTogdm9pZCB9KTogT2JzZXJ2YWJsZTx0cnVlPiB7XG4gICAgY29uc3QgbW9kaWZpZWRDb21wb25lbnQgPSBjb21wb25lbnQgYXMgeyBuZ09uRGVzdHJveSgpOiB2b2lkLCBfX2NvbXBvbmVudERlc3Ryb3llZCQ/OiBPYnNlcnZhYmxlPHRydWU+IH07XG4gICAgaWYgKG1vZGlmaWVkQ29tcG9uZW50Ll9fY29tcG9uZW50RGVzdHJveWVkJCkge1xuICAgICAgcmV0dXJuIG1vZGlmaWVkQ29tcG9uZW50Ll9fY29tcG9uZW50RGVzdHJveWVkJDtcbiAgICB9XG4gICAgY29uc3Qgb2xkTmdPbkRlc3Ryb3kgPSBjb21wb25lbnQubmdPbkRlc3Ryb3k7XG4gICAgY29uc3Qgc3RvcCQgPSBuZXcgUmVwbGF5U3ViamVjdDx0cnVlPigpO1xuICAgIG1vZGlmaWVkQ29tcG9uZW50Lm5nT25EZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgICAgb2xkTmdPbkRlc3Ryb3kgJiYgb2xkTmdPbkRlc3Ryb3kuYXBwbHkoY29tcG9uZW50KTtcbiAgICAgIHN0b3AkLm5leHQodHJ1ZSk7XG4gICAgICBzdG9wJC5jb21wbGV0ZSgpO1xuICAgIH07XG4gICAgcmV0dXJuIG1vZGlmaWVkQ29tcG9uZW50Ll9fY29tcG9uZW50RGVzdHJveWVkJCA9IHN0b3AkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgdW50aWxDb21wb25lbnREZXN0cm95ZWQ8VD4oY29tcG9uZW50OiB7IG5nT25EZXN0cm95KCk6IHZvaWQgfSk6IChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA9PiBzb3VyY2UucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZChjb21wb25lbnQpKVxuICAgIClcbiAgfVxuXG59Il19