{"version":3,"sources":["webpack:///../node_modules/@capacitor-community/firebase-analytics/dist/esm/web.js"],"names":["FirebaseAnalyticsWeb","super","this","not_supported_mssg","options_missing_mssg","duplicate_app_mssg","analytics_missing_mssg","scripts","key","src","ready","Promise","resolve","readyResolver","configure","options","async","reject","hasFirebaseInitialized","app","window","firebase","initializeApp","analyticsRef","analytics","userId","undefined","setUserId","name","value","property","setUserProperties","_reject","_options","params","logEvent","enabled","setAnalyticsCollectionEnabled","_resolve","loadScripts","error","interval","setInterval","clearInterval","firebaseAppScript","firebaseAnalyticsScript","map","script","document","getElementById","loadScript","id","file","createElement","type","onload","onerror","querySelector","appendChild","firebaseApps","apps","length"],"mappings":"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","file":"js/chunk-2d21b851.6c94bdee.js","sourcesContent":["import { WebPlugin } from \"@capacitor/core\";\nexport class FirebaseAnalyticsWeb extends WebPlugin {\n constructor() {\n super();\n this.not_supported_mssg = \"This method is not supported\";\n this.options_missing_mssg = \"Firebase options are missing\";\n this.duplicate_app_mssg = \"Firebase app already exists\";\n this.analytics_missing_mssg = \"Firebase analytics is not initialized. Make sure initializeFirebase() is called once\";\n this.scripts = [\n {\n key: \"firebase-app\",\n src: \"https://www.gstatic.com/firebasejs/8.2.3/firebase-app.js\",\n },\n {\n key: \"firebase-ac\",\n src: \"https://www.gstatic.com/firebasejs/8.2.3/firebase-analytics.js\",\n },\n ];\n this.ready = new Promise((resolve) => (this.readyResolver = resolve));\n this.configure();\n }\n /**\n * Configure and Initialize FirebaseApp if not present\n * @param options - web app's Firebase configuration\n * @returns firebase analytics object reference\n * Platform: Web\n */\n initializeFirebase(options) {\n return new Promise(async (resolve, reject) => {\n await this.ready;\n if (this.hasFirebaseInitialized()) {\n reject(this.duplicate_app_mssg);\n return;\n }\n if (!options) {\n reject(this.options_missing_mssg);\n return;\n }\n const app = window.firebase.initializeApp(options);\n this.analyticsRef = app.analytics();\n resolve(this.analyticsRef);\n });\n }\n /**\n * Sets the user ID property.\n * @param options - userId: unique identifier of the user to log\n * Platform: Web/Android/iOS\n */\n setUserId(options) {\n return new Promise(async (resolve, reject) => {\n await this.ready;\n if (!this.analyticsRef) {\n reject(this.analytics_missing_mssg);\n return;\n }\n const { userId } = options || { userId: undefined };\n if (!userId) {\n reject(\"userId property is missing\");\n return;\n }\n this.analyticsRef.setUserId(userId);\n resolve();\n });\n }\n /**\n * Sets a user property to a given value.\n * @param options - name: The name of the user property to set.\n * value: The value of the user property.\n * Platform: Web/Android/iOS\n */\n setUserProperty(options) {\n return new Promise(async (resolve, reject) => {\n await this.ready;\n if (!this.analyticsRef) {\n reject(this.analytics_missing_mssg);\n return;\n }\n const { name, value } = options || { name: undefined, value: undefined };\n if (!name) {\n reject(\"name property is missing\");\n return;\n }\n if (!value) {\n reject(\"value property is missing\");\n return;\n }\n let property = {};\n property[name] = value;\n this.analyticsRef.setUserProperties(property);\n resolve();\n });\n }\n /**\n * Retrieves the app instance id from the service.\n * @returns - instanceId: current instance if of the app\n * Platform: Web/Android/iOS\n */\n getAppInstanceId() {\n return new Promise((resolve, _reject) => resolve);\n }\n /**\n * Sets the current screen name, which specifies the current visual context in your app.\n * @param options - screenName: the activity to which the screen name and class name apply.\n * nameOverride: the name of the current screen. Set to null to clear the current screen name.\n * Platform: Android/iOS\n */\n setScreenName(_options) {\n return new Promise((resolve, _reject) => resolve);\n }\n /**\n * Clears all analytics data for this app from the device and resets the app instance id.\n * Platform: Android/iOS\n */\n reset() {\n return new Promise((resolve, _reject) => resolve);\n }\n /**\n * Logs an app event.\n * @param options - name: unique name of the event\n * params: the map of event parameters.\n * Platform: Web/Android/iOS\n */\n logEvent(options) {\n return new Promise(async (resolve, reject) => {\n await this.ready;\n if (!this.analyticsRef) {\n reject(this.analytics_missing_mssg);\n return;\n }\n const { name, params } = options || {\n name: undefined,\n params: undefined,\n };\n if (!name) {\n reject(\"name property is missing\");\n return;\n }\n this.analyticsRef.logEvent(name, params);\n resolve();\n });\n }\n /**\n * Sets whether analytics collection is enabled for this app on this device.\n * @param options - enabled: boolean true/false to enable/disable logging\n * Platform: Web/Android/iOS\n */\n setCollectionEnabled(options) {\n return new Promise(async (resolve, reject) => {\n await this.ready;\n if (!this.analyticsRef) {\n reject(this.analytics_missing_mssg);\n return;\n }\n const { enabled } = options || { enabled: false };\n this.analyticsRef.setAnalyticsCollectionEnabled(enabled);\n resolve();\n });\n }\n /**\n * Sets the duration of inactivity that terminates the current session.\n * @param options - duration: duration of inactivity\n * Platform: Android/iOS\n */\n setSessionTimeoutDuration(_options) {\n return new Promise((_resolve, reject) => {\n reject(this.not_supported_mssg);\n });\n }\n /**\n * Returns analytics reference object\n */\n get remoteConfig() {\n return this.analyticsRef;\n }\n enable() {\n return new Promise(async (resolve, reject) => {\n await this.ready;\n if (!this.analyticsRef) {\n reject(this.analytics_missing_mssg);\n return;\n }\n this.analyticsRef.setAnalyticsCollectionEnabled(true);\n resolve();\n });\n }\n disable() {\n return new Promise(async (resolve, reject) => {\n await this.ready;\n if (!this.analyticsRef) {\n reject(this.analytics_missing_mssg);\n return;\n }\n this.analyticsRef.setAnalyticsCollectionEnabled(false);\n resolve();\n });\n }\n /**\n * Ready resolver to check and load firebase analytics\n */\n async configure() {\n try {\n await this.loadScripts();\n if (window.firebase &&\n window.firebase.analytics &&\n this.hasFirebaseInitialized()) {\n this.analyticsRef = window.firebase.analytics();\n }\n }\n catch (error) {\n throw error;\n }\n const interval = setInterval(() => {\n if (!window.firebase) {\n return;\n }\n clearInterval(interval);\n this.readyResolver();\n }, 50);\n }\n /**\n * Check for existing loaded script and load new scripts\n */\n loadScripts() {\n const firebaseAppScript = this.scripts[0];\n const firebaseAnalyticsScript = this.scripts[1];\n return new Promise(async (resolve, _reject) => {\n const scripts = this.scripts.map((script) => script.key);\n if (document.getElementById(scripts[0]) &&\n document.getElementById(scripts[1])) {\n return resolve(null);\n }\n await this.loadScript(firebaseAppScript.key, firebaseAppScript.src);\n await this.loadScript(firebaseAnalyticsScript.key, firebaseAnalyticsScript.src);\n resolve(null);\n });\n }\n /**\n * Loaded single script with provided id and source\n * @param id - unique identifier of the script\n * @param src - source of the script\n */\n loadScript(id, src) {\n return new Promise((resolve, reject) => {\n const file = document.createElement(\"script\");\n file.type = \"text/javascript\";\n file.src = src;\n file.id = id;\n file.onload = resolve;\n file.onerror = reject;\n document.querySelector(\"head\").appendChild(file);\n });\n }\n /**\n * Returns true/false if firebase object reference exists inside window\n */\n hasFirebaseInitialized() {\n if (!window.firebase) {\n return false;\n }\n const firebaseApps = window.firebase.apps;\n if (firebaseApps && firebaseApps.length === 0) {\n return false;\n }\n return true;\n }\n}\n//# sourceMappingURL=web.js.map"],"sourceRoot":""}