{"version":3,"file":"angular-fire-compat-analytics.mjs","sources":["../../../src/compat/analytics/base.ts","../../../src/compat/analytics/analytics.ts","../../../src/compat/analytics/user-tracking.service.ts","../../../src/compat/analytics/screen-tracking.service.ts","../../../src/compat/analytics/analytics.module.ts","../../../src/compat/analytics/angular-fire-compat-analytics.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/analytics, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n  app: null,\n  logEvent: null,\n  setCurrentScreen: null,\n  setUserId: null,\n  setUserProperties: null,\n  setAnalyticsCollectionEnabled: null,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵcacheInstance, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FirebaseApp } from '@angular/fire/compat';\nimport { isSupported } from 'firebase/analytics';\nimport firebase from 'firebase/compat/app';\nimport { EMPTY, of } from 'rxjs';\nimport { map, observeOn, shareReplay, switchMap } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\nexport type Config = Record<string, any>;\n\nexport const COLLECTION_ENABLED = new InjectionToken<boolean>('angularfire2.analytics.analyticsCollectionEnabled');\nexport const APP_VERSION = new InjectionToken<string>('angularfire2.analytics.appVersion');\nexport const APP_NAME = new InjectionToken<string>('angularfire2.analytics.appName');\nexport const DEBUG_MODE = new InjectionToken<boolean>('angularfire2.analytics.debugMode');\nexport const CONFIG = new InjectionToken<Config>('angularfire2.analytics.config');\n\nconst APP_NAME_KEY = 'app_name';\nconst APP_VERSION_KEY = 'app_version';\nconst DEBUG_MODE_KEY = 'debug_mode';\nconst GTAG_CONFIG_COMMAND = 'config';\nconst GTAG_FUNCTION_NAME = 'gtag'; // TODO rename these\nconst DATA_LAYER_NAME = 'dataLayer';\nconst SEND_TO_KEY = 'send_to';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireAnalytics extends ɵPromiseProxy<firebase.analytics.Analytics> {\n}\n\n@Injectable({\n  providedIn: 'any'\n})\nexport class AngularFireAnalytics {\n\n  private measurementId: string;\n  private analyticsInitialized = new Promise<void>(() => undefined);\n\n  async updateConfig(config: Config) {\n    await this.analyticsInitialized;\n    window[GTAG_FUNCTION_NAME](GTAG_CONFIG_COMMAND, this.measurementId, { ...config, update: true });\n  }\n\n  constructor(\n    app: FirebaseApp,\n    @Optional() @Inject(COLLECTION_ENABLED) analyticsCollectionEnabled: boolean | null,\n    @Optional() @Inject(APP_VERSION) providedAppVersion: string | null,\n    @Optional() @Inject(APP_NAME) providedAppName: string | null,\n    @Optional() @Inject(DEBUG_MODE) debugModeEnabled: boolean | null,\n    @Optional() @Inject(CONFIG) providedConfig: Config | null,\n    // eslint-disable-next-line @typescript-eslint/ban-types\n    @Inject(PLATFORM_ID) platformId: Object,\n    zone: NgZone,\n    schedulers: ɵAngularFireSchedulers,\n  ) {\n\n    if (isPlatformBrowser(platformId)) {\n\n      window[DATA_LAYER_NAME] = window[DATA_LAYER_NAME] || [];\n\n      // It turns out we can't rely on the measurementId in the Firebase config JSON\n      // this identifier is not stable. firebase/analytics does a call to get a fresh value\n      // falling back on the one in the config. Rather than do that ourselves we should listen\n      // on our gtag function for a analytics config command\n      // e.g, ['config', measurementId, { origin: 'firebase', firebase_id }]\n      const parseMeasurementId = (...args: any[]) => {\n        if (args[0] === 'config' && args[2].origin === 'firebase') {\n          this.measurementId = args[1];\n          return true;\n        } else {\n          return false;\n        }\n      };\n\n      const patchGtag = (fn?: (...args: any[]) => void) => {\n        window[GTAG_FUNCTION_NAME] = (...args: any[]) => {\n          if (fn) {\n            fn(...args);\n          }\n          // Inject app_name and app_version into events\n          // TODO(jamesdaniels): I'm doing this as documented but it's still not\n          //   showing up in the console. Investigate. Guessing it's just part of the\n          //   whole GA4 transition mess.\n          if (args[0] === 'event' && args[2][SEND_TO_KEY] === this.measurementId) {\n            if (providedAppName) {\n              args[2][APP_NAME_KEY] = providedAppName;\n            }\n            if (providedAppVersion) {\n              args[2][APP_VERSION_KEY] = providedAppVersion;\n            }\n          }\n          if (debugModeEnabled && typeof console !== 'undefined') {\n            // eslint-disable-next-line no-console\n            console.info(...args);\n          }\n          /**\n           * According to the gtag documentation, this function that defines a custom data layer cannot be\n           * an arrow function because 'arguments' is not an array. It is actually an object that behaves\n           * like an array and contains more information then just indexes. Transforming this into arrow function\n           * caused issue #2505 where analytics no longer sent any data.\n           */\n          (function(..._args: any[]) {\n            window[DATA_LAYER_NAME].push(arguments);\n          })(...args);\n        };\n      };\n\n      // Unclear if we still need to but I was running into config/events I passed\n      // to gtag before ['js' timestamp] weren't getting parsed, so let's make a promise\n      // that resolves when firebase/analytics has configured gtag.js that we wait on\n      // before sending anything\n      const firebaseAnalyticsAlreadyInitialized = window[DATA_LAYER_NAME].some(parseMeasurementId);\n      if (firebaseAnalyticsAlreadyInitialized) {\n        this.analyticsInitialized = Promise.resolve();\n        patchGtag();\n      } else {\n        this.analyticsInitialized = new Promise(resolve => {\n          patchGtag((...args) => {\n            if (parseMeasurementId(...args)) {\n              resolve();\n            }\n          });\n        });\n      }\n\n      if (providedConfig) {\n        this.updateConfig(providedConfig);\n      }\n      if (debugModeEnabled) {\n        this.updateConfig({ [DEBUG_MODE_KEY]: 1 });\n      }\n\n    } else {\n\n      this.analyticsInitialized = Promise.resolve();\n\n    }\n\n    const analytics = of(undefined).pipe(\n      observeOn(schedulers.outsideAngular),\n      switchMap(isSupported),\n      switchMap(supported => supported ? zone.runOutsideAngular(() => import('firebase/compat/analytics')) : EMPTY),\n      map(() => {\n        return ɵcacheInstance(`analytics`, 'AngularFireAnalytics', app.name, () => {\n          const analytics = app.analytics();\n          if (analyticsCollectionEnabled === false) {\n            analytics.setAnalyticsCollectionEnabled(false);\n          }\n          return analytics;\n        }, [app, analyticsCollectionEnabled, providedConfig, debugModeEnabled]);\n      }),\n      shareReplay({ bufferSize: 1, refCount: false })\n    );\n\n    return ɵlazySDKProxy(this, analytics, zone);\n\n  }\n\n}\n\nɵapplyMixins(AngularFireAnalytics, [proxyPolyfillCompat]);\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, NgZone, OnDestroy, PLATFORM_ID } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { AngularFireAuth } from '@angular/fire/compat/auth';\nimport firebase from 'firebase/compat/app';\nimport { Subscription } from 'rxjs';\nimport { AngularFireAnalytics } from './analytics';\n\n@Injectable()\nexport class UserTrackingService implements OnDestroy {\n\n  initialized: Promise<void>;\n  private disposables: Subscription[] = [];\n\n  // TODO a user properties injector\n  constructor(\n    analytics: AngularFireAnalytics,\n    // eslint-disable-next-line @typescript-eslint/ban-types\n    @Inject(PLATFORM_ID) platformId: Object,\n    auth: AngularFireAuth,\n    zone: NgZone,\n  ) {\n    firebase.registerVersion('angularfire', VERSION.full, 'compat-user-tracking');\n    if (isPlatformBrowser(platformId)) {\n      let resolveInitialized;\n      this.initialized = zone.runOutsideAngular(() => new Promise(resolve => resolveInitialized = resolve));\n      this.disposables = [\n          auth.authState.subscribe(user => {\n            analytics.setUserId(user?.uid);\n            resolveInitialized();\n          }),\n          auth.credential.subscribe(credential => {\n            if (credential) {\n              const method = credential.user.isAnonymous ? 'anonymous' : credential.additionalUserInfo.providerId;\n              if (credential.additionalUserInfo.isNewUser) {\n                analytics.logEvent('sign_up', { method });\n              }\n              analytics.logEvent('login', { method });\n            }\n          })\n      ];\n    } else {\n      this.initialized = Promise.resolve();\n    }\n\n  }\n\n  ngOnDestroy() {\n    this.disposables.forEach(it => it.unsubscribe());\n  }\n}\n","import { ComponentFactoryResolver, Injectable, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { ɵscreenViewEvent } from '@angular/fire/analytics';\nimport { Title } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport firebase from 'firebase/compat/app';\nimport { Subscription } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { AngularFireAnalytics } from './analytics';\nimport { UserTrackingService } from './user-tracking.service';\n\nconst SCREEN_VIEW_EVENT = 'screen_view';\n\n@Injectable()\nexport class ScreenTrackingService implements OnDestroy {\n\n  private disposable: Subscription | undefined;\n\n  constructor(\n    analytics: AngularFireAnalytics,\n    @Optional() router: Router,\n    @Optional() title: Title,\n    componentFactoryResolver: ComponentFactoryResolver,\n    zone: NgZone,\n    @Optional() userTrackingService: UserTrackingService,\n  ) {\n    firebase.registerVersion('angularfire', VERSION.full, 'compat-screen-tracking');\n    if (!router || !analytics) { return this; }\n    zone.runOutsideAngular(() => {\n      this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(\n          switchMap(async params => {\n            if (userTrackingService) {\n              await userTrackingService.initialized;\n            }\n            return await analytics.logEvent(SCREEN_VIEW_EVENT, params);\n          })\n      ).subscribe();\n    });\n  }\n\n  ngOnDestroy() {\n    if (this.disposable) {\n      this.disposable.unsubscribe();\n    }\n  }\n\n}\n","import { NgModule, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireAnalytics } from './analytics';\nimport { ScreenTrackingService } from './screen-tracking.service';\nimport { UserTrackingService } from './user-tracking.service';\n\n@NgModule({\n  providers: [ AngularFireAnalytics ]\n})\nexport class AngularFireAnalyticsModule {\n  constructor(\n    analytics: AngularFireAnalytics,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    @Optional() screenTracking: ScreenTrackingService,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    @Optional() userTracking: UserTrackingService,\n  ) {\n    firebase.registerVersion('angularfire', VERSION.full, 'analytics-compat');\n    // calling anything on analytics will eagerly load the SDK\n    analytics.app.then(() => undefined);\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins","i2","ɵscreenViewEvent","i1.AngularFireAnalytics","i4.UserTrackingService","i2.ScreenTrackingService","i3.UserTrackingService"],"mappings":"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"}