UNPKG

@angular/fire

Version:

The official library for Firebase and Angular

163 lines (155 loc) 7.96 kB
(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