@@ -5,7 +5,9 @@ import { map, observeOn, shareReplay, switchMap, tap } from 'rxjs/operators';
55import { FIREBASE_APP_NAME , FIREBASE_OPTIONS , FirebaseAppConfig , FirebaseOptions , ɵAngularFireSchedulers , ɵfirebaseAppFactory , ɵlazySDKProxy , ɵPromiseProxy } from '@angular/fire' ;
66import { analytics } from 'firebase' ;
77
8- export interface Config { [ key : string ] : any ; }
8+ export interface Config {
9+ [ key : string ] : any ;
10+ }
911
1012export const COLLECTION_ENABLED = new InjectionToken < boolean > ( 'angularfire2.analytics.analyticsCollectionEnabled' ) ;
1113export const APP_VERSION = new InjectionToken < string > ( 'angularfire2.analytics.appVersion' ) ;
@@ -21,11 +23,12 @@ const GTAG_CONFIG_COMMAND = 'config';
2123const GTAG_FUNCTION_NAME = 'gtag' ;
2224const DATA_LAYER_NAME = 'dataLayer' ;
2325
24- export interface AngularFireAnalytics extends ɵPromiseProxy < analytics . Analytics > { }
26+ export interface AngularFireAnalytics extends ɵPromiseProxy < analytics . Analytics > {
27+ }
2528
2629let gtag : ( ...args : any [ ] ) => void ;
2730let analyticsInitialized : Promise < void > ;
28- const analyticsInstanceCache : { [ key : string ] : Observable < analytics . Analytics > } = { } ;
31+ const analyticsInstanceCache : { [ key : string ] : Observable < analytics . Analytics > } = { } ;
2932
3033@Injectable ( {
3134 providedIn : 'any'
@@ -39,30 +42,36 @@ export class AngularFireAnalytics {
3942
4043 constructor (
4144 @Inject ( FIREBASE_OPTIONS ) private options : FirebaseOptions ,
42- @Optional ( ) @Inject ( FIREBASE_APP_NAME ) nameOrConfig : string | FirebaseAppConfig | null | undefined ,
43- @Optional ( ) @Inject ( COLLECTION_ENABLED ) analyticsCollectionEnabled : boolean | null ,
44- @Optional ( ) @Inject ( APP_VERSION ) providedAppVersion : string | null ,
45- @Optional ( ) @Inject ( APP_NAME ) providedAppName : string | null ,
46- @Optional ( ) @Inject ( DEBUG_MODE ) debugModeEnabled : boolean | null ,
47- @Optional ( ) @Inject ( CONFIG ) providedConfig : Config | null ,
45+ @Optional ( ) @Inject ( FIREBASE_APP_NAME ) nameOrConfig : string | FirebaseAppConfig | null | undefined ,
46+ @Optional ( ) @Inject ( COLLECTION_ENABLED ) analyticsCollectionEnabled : boolean | null ,
47+ @Optional ( ) @Inject ( APP_VERSION ) providedAppVersion : string | null ,
48+ @Optional ( ) @Inject ( APP_NAME ) providedAppName : string | null ,
49+ @Optional ( ) @Inject ( DEBUG_MODE ) debugModeEnabled : boolean | null ,
50+ @Optional ( ) @Inject ( CONFIG ) providedConfig : Config | null ,
51+ // tslint:disable-next-line:ban-types
4852 @Inject ( PLATFORM_ID ) platformId : Object ,
4953 zone : NgZone
5054 ) {
5155
5256 if ( ! analyticsInitialized ) {
5357 if ( isPlatformBrowser ( platformId ) ) {
54- gtag = window [ GTAG_FUNCTION_NAME ] || function ( ) { window [ DATA_LAYER_NAME ] . push ( arguments ) ; } ;
58+ gtag = window [ GTAG_FUNCTION_NAME ] || ( ( ) => {
59+ window [ DATA_LAYER_NAME ] . push ( arguments ) ;
60+ } ) ;
5561 window [ DATA_LAYER_NAME ] = window [ DATA_LAYER_NAME ] || [ ] ;
5662 analyticsInitialized = zone . runOutsideAngular ( ( ) =>
5763 new Promise ( resolve => {
5864 window [ GTAG_FUNCTION_NAME ] = ( ...args : any [ ] ) => {
59- if ( args [ 0 ] == 'js' ) { resolve ( ) ; }
65+ if ( args [ 0 ] === 'js' ) {
66+ resolve ( ) ;
67+ }
6068 gtag ( ...args ) ;
6169 } ;
6270 } )
6371 ) ;
6472 } else {
65- gtag = ( ) => { } ;
73+ gtag = ( ) => {
74+ } ;
6675 analyticsInitialized = Promise . resolve ( ) ;
6776 }
6877 }
@@ -75,17 +84,27 @@ export class AngularFireAnalytics {
7584 map ( ( ) => ɵfirebaseAppFactory ( options , zone , nameOrConfig ) ) ,
7685 map ( app => app . analytics ( ) ) ,
7786 tap ( analytics => {
78- if ( analyticsCollectionEnabled === false ) { analytics . setAnalyticsCollectionEnabled ( false ) ; }
87+ if ( analyticsCollectionEnabled === false ) {
88+ analytics . setAnalyticsCollectionEnabled ( false ) ;
89+ }
7990 } ) ,
80- shareReplay ( { bufferSize : 1 , refCount : false } ) ,
91+ shareReplay ( { bufferSize : 1 , refCount : false } )
8192 ) ;
8293 analyticsInstanceCache [ options [ ANALYTICS_ID_FIELD ] ] = analytics ;
8394 }
8495
85- if ( providedConfig ) { this . updateConfig ( providedConfig ) ; }
86- if ( providedAppName ) { this . updateConfig ( { [ APP_NAME_KEY ] : providedAppName } ) ; }
87- if ( providedAppVersion ) { this . updateConfig ( { [ APP_VERSION_KEY ] : providedAppVersion } ) ; }
88- if ( debugModeEnabled ) { this . updateConfig ( { [ DEBUG_MODE_KEY ] : 1 } ) ; }
96+ if ( providedConfig ) {
97+ this . updateConfig ( providedConfig ) ;
98+ }
99+ if ( providedAppName ) {
100+ this . updateConfig ( { [ APP_NAME_KEY ] : providedAppName } ) ;
101+ }
102+ if ( providedAppVersion ) {
103+ this . updateConfig ( { [ APP_VERSION_KEY ] : providedAppVersion } ) ;
104+ }
105+ if ( debugModeEnabled ) {
106+ this . updateConfig ( { [ DEBUG_MODE_KEY ] : 1 } ) ;
107+ }
89108
90109 return ɵlazySDKProxy ( this , analytics , zone ) ;
91110
0 commit comments