@angular/fire
Version:
The official library for Firebase and Angular
163 lines (155 loc) • 7.96 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('rxjs/operators'), require('@angular/fire'), require('@angular/common')) :
typeof define === 'function' && define.amd ? define('@angular/fire/messaging', ['exports', '@angular/core', 'rxjs', 'rxjs/operators', '@angular/fire', '@angular/common'], factory) :
(global = global || self, factory((global.angular = global.angular || {}, global.angular.fire = global.angular.fire || {}, global.angular.fire.messaging = {}), global.ng.core, global.rxjs, global.rxjs.operators, global.angular.fire, global.ng.common));
}(this, (function (exports, i0, rxjs, operators, i1, common) { 'use strict';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// WARNING: interface has both a type and a value, skipping emit
var AngularFireMessaging = /** @class */ (function () {
/**
* @param {?} options
* @param {?} nameOrConfig
* @param {?} platformId
* @param {?} zone
*/
function AngularFireMessaging(options, nameOrConfig,
// tslint:disable-next-line:ban-types
platformId, zone) {
var _this = this;
/** @type {?} */
var schedulers = new i1.ɵAngularFireSchedulers(zone);
/** @type {?} */
var messaging = rxjs.of(undefined).pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @return {?}
*/function () { return common.isPlatformServer(platformId) ? rxjs.EMPTY : import('firebase/messaging'); })), operators.map(( /**
* @return {?}
*/function () { return i1.ɵfirebaseAppFactory(options, zone, nameOrConfig); })), operators.map(( /**
* @param {?} app
* @return {?}
*/function (/**
* @param {?} app
* @return {?}
*/ app) { return app.messaging(); })));
if (!common.isPlatformServer(platformId)) {
this.requestPermission = messaging.pipe(operators.observeOn(schedulers.outsideAngular),
// tslint:disable-next-line
operators.switchMap(( /**
* @param {?} messaging
* @return {?}
*/function (/**
* @param {?} messaging
* @return {?}
*/ messaging) { return messaging.requestPermission(); })));
}
else {
this.requestPermission = rxjs.throwError('Not available on server platform.');
}
this.getToken = messaging.pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @param {?} messaging
* @return {?}
*/function (/**
* @param {?} messaging
* @return {?}
*/ messaging) { return messaging.getToken(); })), operators.defaultIfEmpty(null));
/** @type {?} */
var tokenChanges = messaging.pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @param {?} messaging
* @return {?}
*/function (/**
* @param {?} messaging
* @return {?}
*/ messaging) { return new rxjs.Observable(messaging.onTokenRefresh.bind(messaging)).pipe(operators.switchMap(( /**
* @return {?}
*/function () { return messaging.getToken(); }))); })));
this.tokenChanges = rxjs.concat(messaging.pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @param {?} messaging
* @return {?}
*/function (/**
* @param {?} messaging
* @return {?}
*/ messaging) { return messaging.getToken(); }))), tokenChanges);
this.messages = messaging.pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @param {?} messaging
* @return {?}
*/function (/**
* @param {?} messaging
* @return {?}
*/ messaging) { return new rxjs.Observable(messaging.onMessage.bind(messaging)); })));
this.requestToken = rxjs.of(undefined).pipe(operators.switchMap(( /**
* @return {?}
*/function () { return _this.requestPermission; })), operators.catchError(( /**
* @return {?}
*/function () { return rxjs.of(null); })), operators.mergeMap(( /**
* @return {?}
*/function () { return _this.tokenChanges; })));
this.deleteToken = ( /**
* @param {?} token
* @return {?}
*/function (token) { return messaging.pipe(operators.observeOn(schedulers.outsideAngular), operators.switchMap(( /**
* @param {?} messaging
* @return {?}
*/function (/**
* @param {?} messaging
* @return {?}
*/ messaging) { return messaging.deleteToken(token); })), operators.defaultIfEmpty(false)); });
return i1.ɵlazySDKProxy(this, messaging, zone);
}
return AngularFireMessaging;
}());
AngularFireMessaging.decorators = [
{ type: i0.Injectable, args: [{
providedIn: 'any'
},] }
];
/** @nocollapse */
AngularFireMessaging.ctorParameters = function () { return [
{ type: undefined, decorators: [{ type: i0.Inject, args: [i1.FIREBASE_OPTIONS,] }] },
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i1.FIREBASE_APP_NAME,] }] },
{ type: Object, decorators: [{ type: i0.Inject, args: [i0.PLATFORM_ID,] }] },
{ type: i0.NgZone }
]; };
/** @nocollapse */ AngularFireMessaging.ɵprov = i0.ɵɵdefineInjectable({ factory: function AngularFireMessaging_Factory() { return new AngularFireMessaging(i0.ɵɵinject(i1.FIREBASE_OPTIONS), i0.ɵɵinject(i1.FIREBASE_APP_NAME, 8), i0.ɵɵinject(i0.PLATFORM_ID), i0.ɵɵinject(i0.NgZone)); }, token: AngularFireMessaging, providedIn: "any" });
if (false) {
/** @type {?} */
AngularFireMessaging.prototype.requestPermission;
/** @type {?} */
AngularFireMessaging.prototype.getToken;
/** @type {?} */
AngularFireMessaging.prototype.tokenChanges;
/** @type {?} */
AngularFireMessaging.prototype.messages;
/** @type {?} */
AngularFireMessaging.prototype.requestToken;
/** @type {?} */
AngularFireMessaging.prototype.deleteToken;
}
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var AngularFireMessagingModule = /** @class */ (function () {
function AngularFireMessagingModule() {
}
return AngularFireMessagingModule;
}());
AngularFireMessagingModule.decorators = [
{ type: i0.NgModule, args: [{
providers: [AngularFireMessaging]
},] }
];
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
exports.AngularFireMessaging = AngularFireMessaging;
exports.AngularFireMessagingModule = AngularFireMessagingModule;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=angular-fire-messaging.umd.js.map