@angular/fire 18.0.0-rc.0 → 18.0.1-canary.3639e41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/analytics/analytics.module.mjs +5 -5
- package/esm2022/analytics/screen-tracking.service.mjs +4 -4
- package/esm2022/analytics/user-tracking.service.mjs +4 -4
- package/esm2022/app/app.module.mjs +5 -5
- package/esm2022/app-check/app-check.module.mjs +5 -5
- package/esm2022/auth/auth.module.mjs +5 -5
- package/esm2022/auth-guard/auth-guard.mjs +4 -4
- package/esm2022/auth-guard/auth-guard.module.mjs +5 -5
- package/esm2022/compat/analytics/analytics.mjs +4 -4
- package/esm2022/compat/analytics/analytics.module.mjs +5 -5
- package/esm2022/compat/analytics/screen-tracking.service.mjs +4 -4
- package/esm2022/compat/analytics/user-tracking.service.mjs +4 -4
- package/esm2022/compat/auth/auth.mjs +4 -4
- package/esm2022/compat/auth/auth.module.mjs +5 -5
- package/esm2022/compat/auth-guard/auth-guard.mjs +4 -4
- package/esm2022/compat/auth-guard/auth-guard.module.mjs +5 -5
- package/esm2022/compat/database/database.mjs +4 -4
- package/esm2022/compat/database/database.module.mjs +5 -5
- package/esm2022/compat/firebase.app.module.mjs +5 -5
- package/esm2022/compat/firestore/firestore.mjs +4 -4
- package/esm2022/compat/firestore/firestore.module.mjs +5 -5
- package/esm2022/compat/functions/functions.mjs +4 -4
- package/esm2022/compat/functions/functions.module.mjs +5 -5
- package/esm2022/compat/messaging/messaging.mjs +4 -4
- package/esm2022/compat/messaging/messaging.module.mjs +5 -5
- package/esm2022/compat/performance/performance.mjs +4 -4
- package/esm2022/compat/performance/performance.module.mjs +5 -5
- package/esm2022/compat/performance/performance.service.mjs +4 -4
- package/esm2022/compat/remote-config/remote-config.mjs +4 -4
- package/esm2022/compat/remote-config/remote-config.module.mjs +5 -5
- package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +8 -8
- package/esm2022/compat/storage/storage.mjs +4 -4
- package/esm2022/compat/storage/storage.module.mjs +5 -5
- package/esm2022/database/database.module.mjs +5 -5
- package/esm2022/firestore/firestore.module.mjs +5 -5
- package/esm2022/firestore/lite/lite.module.mjs +5 -5
- package/esm2022/functions/functions.module.mjs +5 -5
- package/esm2022/messaging/messaging.module.mjs +5 -5
- package/esm2022/performance/performance.module.mjs +5 -5
- package/esm2022/remote-config/remote-config.module.mjs +5 -5
- package/esm2022/storage/storage.module.mjs +5 -5
- package/esm2022/vertexai-preview/vertexai.module.mjs +5 -5
- package/esm2022/zones.mjs +4 -4
- package/fesm2022/angular-fire-analytics.mjs +297 -410
- package/fesm2022/angular-fire-analytics.mjs.map +1 -7
- package/fesm2022/angular-fire-app-check.mjs +91 -162
- package/fesm2022/angular-fire-app-check.mjs.map +1 -7
- package/fesm2022/angular-fire-app.mjs +108 -181
- package/fesm2022/angular-fire-app.mjs.map +1 -7
- package/fesm2022/angular-fire-auth-guard.mjs +73 -83
- package/fesm2022/angular-fire-auth-guard.mjs.map +1 -7
- package/fesm2022/angular-fire-auth.mjs +142 -421
- package/fesm2022/angular-fire-auth.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-analytics.mjs +271 -262
- package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-auth-guard.mjs +72 -83
- package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-auth.mjs +214 -215
- package/fesm2022/angular-fire-compat-auth.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-database.mjs +378 -375
- package/fesm2022/angular-fire-compat-database.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-firestore.mjs +677 -537
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-functions.mjs +94 -98
- package/fesm2022/angular-fire-compat-functions.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-messaging.mjs +107 -107
- package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-performance.mjs +152 -158
- package/fesm2022/angular-fire-compat-performance.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-remote-config.mjs +232 -216
- package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-storage.mjs +231 -226
- package/fesm2022/angular-fire-compat-storage.mjs.map +1 -7
- package/fesm2022/angular-fire-compat.mjs +153 -140
- package/fesm2022/angular-fire-compat.mjs.map +1 -7
- package/fesm2022/angular-fire-database.mjs +136 -376
- package/fesm2022/angular-fire-database.mjs.map +1 -7
- package/fesm2022/angular-fire-firestore-lite.mjs +139 -388
- package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -7
- package/fesm2022/angular-fire-firestore.mjs +167 -526
- package/fesm2022/angular-fire-firestore.mjs.map +1 -7
- package/fesm2022/angular-fire-functions.mjs +93 -166
- package/fesm2022/angular-fire-functions.mjs.map +1 -7
- package/fesm2022/angular-fire-messaging.mjs +118 -196
- package/fesm2022/angular-fire-messaging.mjs.map +1 -7
- package/fesm2022/angular-fire-performance.mjs +104 -178
- package/fesm2022/angular-fire-performance.mjs.map +1 -7
- package/fesm2022/angular-fire-remote-config.mjs +132 -254
- package/fesm2022/angular-fire-remote-config.mjs.map +1 -7
- package/fesm2022/angular-fire-storage.mjs +105 -225
- package/fesm2022/angular-fire-storage.mjs.map +1 -7
- package/fesm2022/angular-fire-vertexai-preview.mjs +85 -146
- package/fesm2022/angular-fire-vertexai-preview.mjs.map +1 -7
- package/fesm2022/angular-fire.mjs +213 -183
- package/fesm2022/angular-fire.mjs.map +1 -7
- package/package.json +7 -7
|
@@ -1,436 +1,323 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
-
|
|
19
|
-
// angular-fire-analytics.mjs
|
|
20
|
-
var angular_fire_analytics_exports = {};
|
|
21
|
-
__export(angular_fire_analytics_exports, {
|
|
22
|
-
Analytics: () => Analytics,
|
|
23
|
-
AnalyticsInstances: () => AnalyticsInstances,
|
|
24
|
-
AnalyticsModule: () => AnalyticsModule,
|
|
25
|
-
ScreenTrackingService: () => ScreenTrackingService,
|
|
26
|
-
UserTrackingService: () => UserTrackingService,
|
|
27
|
-
analyticInstance$: () => analyticInstance$,
|
|
28
|
-
getAnalytics: () => getAnalytics,
|
|
29
|
-
getGoogleAnalyticsClientId: () => getGoogleAnalyticsClientId,
|
|
30
|
-
initializeAnalytics: () => initializeAnalytics,
|
|
31
|
-
isSupported: () => isSupported2,
|
|
32
|
-
logEvent: () => logEvent,
|
|
33
|
-
provideAnalytics: () => provideAnalytics,
|
|
34
|
-
setAnalyticsCollectionEnabled: () => setAnalyticsCollectionEnabled,
|
|
35
|
-
setConsent: () => setConsent,
|
|
36
|
-
setCurrentScreen: () => setCurrentScreen,
|
|
37
|
-
setDefaultEventParameters: () => setDefaultEventParameters,
|
|
38
|
-
setUserId: () => setUserId,
|
|
39
|
-
setUserProperties: () => setUserProperties,
|
|
40
|
-
settings: () => settings,
|
|
41
|
-
ɵscreenViewEvent: () => ɵscreenViewEvent
|
|
42
|
-
});
|
|
1
|
+
import { ɵgetAllInstancesOf as _getAllInstancesOf, ɵisSupportedError as _isSupportedError, ɵzoneWrap as _zoneWrap, VERSION, ɵgetDefaultInstanceOf as _getDefaultInstanceOf, ɵAngularFireSchedulers as _AngularFireSchedulers } from '@angular/fire';
|
|
2
|
+
import { timer, from, of } from 'rxjs';
|
|
3
|
+
import { concatMap, distinct, filter, switchMap, map, groupBy, mergeMap, distinctUntilChanged, startWith, pairwise } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from '@angular/core';
|
|
5
|
+
import { Injectable, Optional, InjectionToken, APP_INITIALIZER, NgModule, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
|
|
6
|
+
import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
|
|
7
|
+
import { registerVersion } from 'firebase/app';
|
|
8
|
+
import { isSupported as isSupported$1, getAnalytics as getAnalytics$1, getGoogleAnalyticsClientId as getGoogleAnalyticsClientId$1, initializeAnalytics as initializeAnalytics$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setConsent as setConsent$1, setCurrentScreen as setCurrentScreen$1, setDefaultEventParameters as setDefaultEventParameters$1, settings as settings$1, setUserId as setUserId$1, setUserProperties as setUserProperties$1 } from 'firebase/analytics';
|
|
9
|
+
export * from 'firebase/analytics';
|
|
10
|
+
import * as i2 from '@angular/platform-browser';
|
|
11
|
+
import * as i1$1 from '@angular/router';
|
|
12
|
+
import { ActivationEnd, ɵEmptyOutletComponent as _EmptyOutletComponent } from '@angular/router';
|
|
13
|
+
import * as i1 from '@angular/fire/auth';
|
|
14
|
+
import { authState } from '@angular/fire/auth';
|
|
43
15
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
isSupported: () => isSupported2,
|
|
57
|
-
logEvent: () => logEvent,
|
|
58
|
-
provideAnalytics: () => provideAnalytics,
|
|
59
|
-
setAnalyticsCollectionEnabled: () => setAnalyticsCollectionEnabled,
|
|
60
|
-
setConsent: () => setConsent,
|
|
61
|
-
setCurrentScreen: () => setCurrentScreen,
|
|
62
|
-
setDefaultEventParameters: () => setDefaultEventParameters,
|
|
63
|
-
setUserId: () => setUserId,
|
|
64
|
-
setUserProperties: () => setUserProperties,
|
|
65
|
-
settings: () => settings,
|
|
66
|
-
ɵscreenViewEvent: () => ɵscreenViewEvent
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
// analytics.mjs
|
|
70
|
-
import { ɵgetAllInstancesOf } from "@angular/fire";
|
|
71
|
-
import { from, timer } from "rxjs";
|
|
72
|
-
import { concatMap, distinct } from "rxjs/operators";
|
|
73
|
-
var Analytics = class {
|
|
74
|
-
constructor(analytics) {
|
|
75
|
-
return analytics;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
var ANALYTICS_PROVIDER_NAME = "analytics";
|
|
79
|
-
var AnalyticsInstances = class {
|
|
80
|
-
constructor() {
|
|
81
|
-
return ɵgetAllInstancesOf(ANALYTICS_PROVIDER_NAME);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
var analyticInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInstancesOf(ANALYTICS_PROVIDER_NAME))), distinct());
|
|
16
|
+
class Analytics {
|
|
17
|
+
constructor(analytics) {
|
|
18
|
+
return analytics;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const ANALYTICS_PROVIDER_NAME = 'analytics';
|
|
22
|
+
class AnalyticsInstances {
|
|
23
|
+
constructor() {
|
|
24
|
+
return _getAllInstancesOf(ANALYTICS_PROVIDER_NAME);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const analyticInstance$ = timer(0, 300).pipe(concatMap(() => from(_getAllInstancesOf(ANALYTICS_PROVIDER_NAME))), distinct());
|
|
85
28
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
throw new Error(ɵisSupportedError("Analytics"));
|
|
29
|
+
const isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';
|
|
30
|
+
const isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';
|
|
31
|
+
globalThis[isAnalyticsSupportedPromiseSymbol] ||= isSupported$1().then(it => globalThis[isAnalyticsSupportedValueSymbol] = it).catch(() => globalThis[isAnalyticsSupportedValueSymbol] = false);
|
|
32
|
+
const isAnalyticsSupportedFactory = {
|
|
33
|
+
async: () => globalThis[isAnalyticsSupportedPromiseSymbol],
|
|
34
|
+
sync: () => {
|
|
35
|
+
const ret = globalThis[isAnalyticsSupportedValueSymbol];
|
|
36
|
+
if (ret === undefined) {
|
|
37
|
+
throw new Error(_isSupportedError('Analytics'));
|
|
38
|
+
}
|
|
39
|
+
return ret;
|
|
98
40
|
}
|
|
99
|
-
return ret;
|
|
100
|
-
}
|
|
101
41
|
};
|
|
102
42
|
|
|
103
|
-
|
|
104
|
-
var firebase_exports = {};
|
|
105
|
-
__export(firebase_exports, {
|
|
106
|
-
getAnalytics: () => getAnalytics,
|
|
107
|
-
getGoogleAnalyticsClientId: () => getGoogleAnalyticsClientId,
|
|
108
|
-
initializeAnalytics: () => initializeAnalytics,
|
|
109
|
-
isSupported: () => isSupported2,
|
|
110
|
-
logEvent: () => logEvent,
|
|
111
|
-
setAnalyticsCollectionEnabled: () => setAnalyticsCollectionEnabled,
|
|
112
|
-
setConsent: () => setConsent,
|
|
113
|
-
setCurrentScreen: () => setCurrentScreen,
|
|
114
|
-
setDefaultEventParameters: () => setDefaultEventParameters,
|
|
115
|
-
setUserId: () => setUserId,
|
|
116
|
-
setUserProperties: () => setUserProperties,
|
|
117
|
-
settings: () => settings
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
// overrides.mjs
|
|
121
|
-
var isSupported2 = isAnalyticsSupportedFactory.async;
|
|
43
|
+
const isSupported = isAnalyticsSupportedFactory.async;
|
|
122
44
|
|
|
123
|
-
//
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
var setDefaultEventParameters = ɵzoneWrap(_setDefaultEventParameters, true);
|
|
136
|
-
var settings = ɵzoneWrap(_settings, true);
|
|
137
|
-
var setUserId = ɵzoneWrap(_setUserId, true);
|
|
138
|
-
var setUserProperties = ɵzoneWrap(_setUserProperties, true);
|
|
45
|
+
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
46
|
+
const getAnalytics = _zoneWrap(getAnalytics$1, true);
|
|
47
|
+
const getGoogleAnalyticsClientId = _zoneWrap(getGoogleAnalyticsClientId$1, true);
|
|
48
|
+
const initializeAnalytics = _zoneWrap(initializeAnalytics$1, true);
|
|
49
|
+
const logEvent = _zoneWrap(logEvent$1, true);
|
|
50
|
+
const setAnalyticsCollectionEnabled = _zoneWrap(setAnalyticsCollectionEnabled$1, true);
|
|
51
|
+
const setConsent = _zoneWrap(setConsent$1, true);
|
|
52
|
+
const setCurrentScreen = _zoneWrap(setCurrentScreen$1, true);
|
|
53
|
+
const setDefaultEventParameters = _zoneWrap(setDefaultEventParameters$1, true);
|
|
54
|
+
const settings = _zoneWrap(settings$1, true);
|
|
55
|
+
const setUserId = _zoneWrap(setUserId$1, true);
|
|
56
|
+
const setUserProperties = _zoneWrap(setUserProperties$1, true);
|
|
139
57
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
];
|
|
166
|
-
} else {
|
|
167
|
-
resolveInitialized();
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
ngOnDestroy() {
|
|
172
|
-
this.disposables.forEach((it) => it.unsubscribe());
|
|
173
|
-
}
|
|
174
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _UserTrackingService, deps: [{ token: i1.Auth }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
175
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _UserTrackingService });
|
|
176
|
-
};
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: UserTrackingService, decorators: [{
|
|
178
|
-
type: Injectable
|
|
179
|
-
}], ctorParameters: () => [{ type: i1.Auth }, { type: i0.NgZone }, { type: i0.Injector }] });
|
|
180
|
-
|
|
181
|
-
// screen-tracking.service.mjs
|
|
182
|
-
import { ComponentFactoryResolver, Injectable as Injectable2, Injector as Injector3, NgZone as NgZone3, Optional } from "@angular/core";
|
|
183
|
-
import { VERSION as VERSION2 } from "@angular/fire";
|
|
184
|
-
import { Title } from "@angular/platform-browser";
|
|
185
|
-
import { ActivationEnd, Router, ɵEmptyOutletComponent } from "@angular/router";
|
|
186
|
-
import { registerVersion as registerVersion2 } from "firebase/app";
|
|
187
|
-
import { of } from "rxjs";
|
|
188
|
-
import { distinctUntilChanged, filter, groupBy, map, mergeMap, pairwise, startWith, switchMap } from "rxjs/operators";
|
|
189
|
-
import * as i02 from "@angular/core";
|
|
190
|
-
import * as i12 from "@angular/router";
|
|
191
|
-
import * as i2 from "@angular/platform-browser";
|
|
192
|
-
var FIREBASE_EVENT_ORIGIN_KEY = "firebase_event_origin";
|
|
193
|
-
var FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = "firebase_previous_class";
|
|
194
|
-
var FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = "firebase_previous_id";
|
|
195
|
-
var FIREBASE_PREVIOUS_SCREEN_NAME_KEY = "firebase_previous_screen";
|
|
196
|
-
var FIREBASE_SCREEN_CLASS_KEY = "firebase_screen_class";
|
|
197
|
-
var FIREBASE_SCREEN_INSTANCE_ID_KEY = "firebase_screen_id";
|
|
198
|
-
var FIREBASE_SCREEN_NAME_KEY = "firebase_screen";
|
|
199
|
-
var OUTLET_KEY = "outlet";
|
|
200
|
-
var PAGE_PATH_KEY = "page_path";
|
|
201
|
-
var PAGE_TITLE_KEY = "page_title";
|
|
202
|
-
var SCREEN_CLASS_KEY = "screen_class";
|
|
203
|
-
var SCREEN_NAME_KEY = "screen_name";
|
|
204
|
-
var SCREEN_VIEW_EVENT = "screen_view";
|
|
205
|
-
var EVENT_ORIGIN_AUTO = "auto";
|
|
206
|
-
var SCREEN_INSTANCE_DELIMITER = "#";
|
|
207
|
-
var nextScreenInstanceID = Math.floor(Math.random() * (2 ** 32 - 1)) - 2 ** 31;
|
|
208
|
-
var knownScreenInstanceIDs = {};
|
|
209
|
-
var getScreenInstanceID = (params) => {
|
|
210
|
-
const screenInstanceKey = [
|
|
211
|
-
params[SCREEN_CLASS_KEY],
|
|
212
|
-
params[OUTLET_KEY]
|
|
213
|
-
].join(SCREEN_INSTANCE_DELIMITER);
|
|
214
|
-
if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {
|
|
215
|
-
return knownScreenInstanceIDs[screenInstanceKey];
|
|
216
|
-
} else {
|
|
217
|
-
const ret = nextScreenInstanceID++;
|
|
218
|
-
knownScreenInstanceIDs[screenInstanceKey] = ret;
|
|
219
|
-
return ret;
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
var ɵscreenViewEvent = (router, title, componentFactoryResolver) => {
|
|
223
|
-
const activationEndEvents = router.events.pipe(filter((e) => e instanceof ActivationEnd));
|
|
224
|
-
return activationEndEvents.pipe(switchMap((activationEnd) => {
|
|
225
|
-
const urlTree = router.parseUrl(router.url.replace(/(?:\().+(?:\))/g, (a) => a.replace("://", ":///")));
|
|
226
|
-
const pagePath = urlTree.root.children[activationEnd.snapshot.outlet]?.toString() || "";
|
|
227
|
-
const actualSnapshot = router.routerState.root.children.map((it) => it).find((it) => it.outlet === activationEnd.snapshot.outlet);
|
|
228
|
-
if (!actualSnapshot) {
|
|
229
|
-
return of(null);
|
|
58
|
+
class UserTrackingService {
|
|
59
|
+
initialized;
|
|
60
|
+
disposables = [];
|
|
61
|
+
constructor(auth, zone, injector) {
|
|
62
|
+
registerVersion('angularfire', VERSION.full, 'user-tracking');
|
|
63
|
+
let resolveInitialized;
|
|
64
|
+
this.initialized = zone.runOutsideAngular(() => new Promise(resolve => { resolveInitialized = resolve; }));
|
|
65
|
+
// The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI
|
|
66
|
+
// may not be done when services are initialized. Guard the functionality by first ensuring
|
|
67
|
+
// that the (global) promise has resolved, then get Analytics from the injector.
|
|
68
|
+
isSupported().then(() => {
|
|
69
|
+
const analytics = injector.get(Analytics);
|
|
70
|
+
if (analytics) {
|
|
71
|
+
this.disposables = [
|
|
72
|
+
// TODO add credential tracking back in
|
|
73
|
+
authState(auth).subscribe(user => {
|
|
74
|
+
setUserId(analytics, user?.uid);
|
|
75
|
+
resolveInitialized();
|
|
76
|
+
}),
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
resolveInitialized();
|
|
81
|
+
}
|
|
82
|
+
});
|
|
230
83
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
actualDeep = actualDeep.firstChild;
|
|
84
|
+
ngOnDestroy() {
|
|
85
|
+
this.disposables.forEach(it => it.unsubscribe());
|
|
234
86
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
87
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: UserTrackingService, deps: [{ token: i1.Auth }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: UserTrackingService });
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: UserTrackingService, decorators: [{
|
|
91
|
+
type: Injectable
|
|
92
|
+
}], ctorParameters: () => [{ type: i1.Auth }, { type: i0.NgZone }, { type: i0.Injector }] });
|
|
93
|
+
|
|
94
|
+
const FIREBASE_EVENT_ORIGIN_KEY = 'firebase_event_origin';
|
|
95
|
+
const FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = 'firebase_previous_class';
|
|
96
|
+
const FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = 'firebase_previous_id';
|
|
97
|
+
const FIREBASE_PREVIOUS_SCREEN_NAME_KEY = 'firebase_previous_screen';
|
|
98
|
+
const FIREBASE_SCREEN_CLASS_KEY = 'firebase_screen_class';
|
|
99
|
+
const FIREBASE_SCREEN_INSTANCE_ID_KEY = 'firebase_screen_id';
|
|
100
|
+
const FIREBASE_SCREEN_NAME_KEY = 'firebase_screen';
|
|
101
|
+
const OUTLET_KEY = 'outlet';
|
|
102
|
+
const PAGE_PATH_KEY = 'page_path';
|
|
103
|
+
const PAGE_TITLE_KEY = 'page_title';
|
|
104
|
+
const SCREEN_CLASS_KEY = 'screen_class';
|
|
105
|
+
const SCREEN_NAME_KEY = 'screen_name';
|
|
106
|
+
const SCREEN_VIEW_EVENT = 'screen_view';
|
|
107
|
+
const EVENT_ORIGIN_AUTO = 'auto';
|
|
108
|
+
const SCREEN_INSTANCE_DELIMITER = '#';
|
|
109
|
+
// this is an INT64 in iOS/Android but use INT32 cause javascript
|
|
110
|
+
let nextScreenInstanceID = Math.floor(Math.random() * (2 ** 32 - 1)) - 2 ** 31;
|
|
111
|
+
const knownScreenInstanceIDs = {};
|
|
112
|
+
const getScreenInstanceID = (params) => {
|
|
113
|
+
// unique the screen class against the outlet name
|
|
114
|
+
const screenInstanceKey = [
|
|
115
|
+
params[SCREEN_CLASS_KEY],
|
|
116
|
+
params[OUTLET_KEY]
|
|
117
|
+
].join(SCREEN_INSTANCE_DELIMITER);
|
|
118
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
119
|
+
if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {
|
|
120
|
+
return knownScreenInstanceIDs[screenInstanceKey];
|
|
257
121
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });
|
|
122
|
+
else {
|
|
123
|
+
const ret = nextScreenInstanceID++;
|
|
124
|
+
knownScreenInstanceIDs[screenInstanceKey] = ret;
|
|
125
|
+
return ret;
|
|
263
126
|
}
|
|
264
|
-
return of(null);
|
|
265
|
-
}), filter((it) => !!it), map((params) => ({
|
|
266
|
-
[FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY],
|
|
267
|
-
[FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params),
|
|
268
|
-
...params
|
|
269
|
-
})), groupBy((it) => it[OUTLET_KEY]), mergeMap((it) => it.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), startWith(void 0), pairwise(), map(([prior, current]) => prior ? {
|
|
270
|
-
[FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],
|
|
271
|
-
[FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],
|
|
272
|
-
[FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],
|
|
273
|
-
...current
|
|
274
|
-
} : current))));
|
|
275
127
|
};
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
128
|
+
const ɵscreenViewEvent = (router, title, componentFactoryResolver) => {
|
|
129
|
+
const activationEndEvents = router.events.pipe(filter(e => e instanceof ActivationEnd));
|
|
130
|
+
return activationEndEvents.pipe(switchMap(activationEnd => {
|
|
131
|
+
// router parseUrl is having trouble with outlets when they're empty
|
|
132
|
+
// e.g, /asdf/1(bob://sally:asdf), so put another slash in when empty
|
|
133
|
+
const urlTree = router.parseUrl(router.url.replace(/(?:\().+(?:\))/g, a => a.replace('://', ':///')));
|
|
134
|
+
const pagePath = urlTree.root.children[activationEnd.snapshot.outlet]?.toString() || '';
|
|
135
|
+
const actualSnapshot = router.routerState.root.children.map(it => it).find(it => it.outlet === activationEnd.snapshot.outlet);
|
|
136
|
+
if (!actualSnapshot) {
|
|
137
|
+
return of(null);
|
|
138
|
+
}
|
|
139
|
+
let actualDeep = actualSnapshot;
|
|
140
|
+
while (actualDeep.firstChild) {
|
|
141
|
+
actualDeep = actualDeep.firstChild;
|
|
142
|
+
}
|
|
143
|
+
const screenName = actualDeep.pathFromRoot.map(s => s.routeConfig?.path).filter(it => it).join('/') || '/';
|
|
144
|
+
const params = {
|
|
145
|
+
[SCREEN_NAME_KEY]: screenName,
|
|
146
|
+
[PAGE_PATH_KEY]: `/${pagePath}`,
|
|
147
|
+
[FIREBASE_EVENT_ORIGIN_KEY]: EVENT_ORIGIN_AUTO,
|
|
148
|
+
[FIREBASE_SCREEN_NAME_KEY]: screenName,
|
|
149
|
+
[OUTLET_KEY]: activationEnd.snapshot.outlet
|
|
150
|
+
};
|
|
151
|
+
if (title) {
|
|
152
|
+
params[PAGE_TITLE_KEY] = title.getTitle();
|
|
153
|
+
}
|
|
154
|
+
let component = actualSnapshot.component;
|
|
155
|
+
if (component) {
|
|
156
|
+
if (component === _EmptyOutletComponent) {
|
|
157
|
+
let deepSnapshot = activationEnd.snapshot;
|
|
158
|
+
// TODO when might there be mutple children, different outlets? explore
|
|
159
|
+
while (deepSnapshot.firstChild) {
|
|
160
|
+
deepSnapshot = deepSnapshot.firstChild;
|
|
161
|
+
}
|
|
162
|
+
component = deepSnapshot.component;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
component = activationEnd.snapshot.component;
|
|
167
|
+
}
|
|
168
|
+
if (typeof component === 'string') {
|
|
169
|
+
return of({ ...params, [SCREEN_CLASS_KEY]: component });
|
|
170
|
+
}
|
|
171
|
+
else if (component) {
|
|
172
|
+
const componentFactory = componentFactoryResolver.resolveComponentFactory(component);
|
|
173
|
+
return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });
|
|
174
|
+
}
|
|
175
|
+
// lazy loads cause extra activations, ignore
|
|
176
|
+
return of(null);
|
|
177
|
+
}), filter(it => !!it), map(params => ({
|
|
178
|
+
[FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY],
|
|
179
|
+
[FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params),
|
|
180
|
+
...params
|
|
181
|
+
})), groupBy(it => it[OUTLET_KEY]), mergeMap(it => it.pipe(distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), startWith(undefined), pairwise(), map(([prior, current]) => prior ? {
|
|
182
|
+
[FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],
|
|
183
|
+
[FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],
|
|
184
|
+
[FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],
|
|
185
|
+
...current
|
|
186
|
+
} : current))));
|
|
302
187
|
};
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
188
|
+
class ScreenTrackingService {
|
|
189
|
+
disposable;
|
|
190
|
+
constructor(router, title, componentFactoryResolver, zone, userTrackingService, injector) {
|
|
191
|
+
registerVersion('angularfire', VERSION.full, 'screen-tracking');
|
|
192
|
+
// The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI
|
|
193
|
+
// may not be done when services are initialized. Guard the functionality by first ensuring
|
|
194
|
+
// that the (global) promise has resolved, then get Analytics from the injector.
|
|
195
|
+
isSupported().then(() => {
|
|
196
|
+
const analytics = injector.get(Analytics);
|
|
197
|
+
if (!router || !analytics) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
zone.runOutsideAngular(() => {
|
|
201
|
+
this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(switchMap(async (params) => {
|
|
202
|
+
if (userTrackingService) {
|
|
203
|
+
await userTrackingService.initialized;
|
|
204
|
+
}
|
|
205
|
+
return logEvent(analytics, SCREEN_VIEW_EVENT, params);
|
|
206
|
+
})).subscribe();
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
ngOnDestroy() {
|
|
211
|
+
if (this.disposable) {
|
|
212
|
+
this.disposable.unsubscribe();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ScreenTrackingService, deps: [{ token: i1$1.Router, optional: true }, { token: i2.Title, optional: true }, { token: i0.ComponentFactoryResolver }, { token: i0.NgZone }, { token: UserTrackingService, optional: true }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
216
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ScreenTrackingService });
|
|
217
|
+
}
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ScreenTrackingService, decorators: [{
|
|
219
|
+
type: Injectable
|
|
220
|
+
}], ctorParameters: () => [{ type: i1$1.Router, decorators: [{
|
|
221
|
+
type: Optional
|
|
222
|
+
}] }, { type: i2.Title, decorators: [{
|
|
223
|
+
type: Optional
|
|
224
|
+
}] }, { type: i0.ComponentFactoryResolver }, { type: i0.NgZone }, { type: UserTrackingService, decorators: [{
|
|
225
|
+
type: Optional
|
|
226
|
+
}] }, { type: i0.Injector }] });
|
|
312
227
|
|
|
313
|
-
|
|
314
|
-
import { APP_INITIALIZER, InjectionToken, Injector as Injector5, NgModule, NgZone as NgZone5, Optional as Optional2, makeEnvironmentProviders } from "@angular/core";
|
|
315
|
-
import { VERSION as VERSION3, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from "@angular/fire";
|
|
316
|
-
import { FirebaseApp, FirebaseApps } from "@angular/fire/app";
|
|
317
|
-
import { registerVersion as registerVersion3 } from "firebase/app";
|
|
318
|
-
import * as i03 from "@angular/core";
|
|
319
|
-
var PROVIDED_ANALYTICS_INSTANCES = new InjectionToken("angularfire2.analytics-instances");
|
|
228
|
+
const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken('angularfire2.analytics-instances');
|
|
320
229
|
function defaultAnalyticsInstanceFactory(provided, defaultApp) {
|
|
321
|
-
if (!isAnalyticsSupportedFactory.sync()) {
|
|
322
|
-
return null;
|
|
323
|
-
}
|
|
324
|
-
const defaultAnalytics = ɵgetDefaultInstanceOf(ANALYTICS_PROVIDER_NAME, provided, defaultApp);
|
|
325
|
-
return defaultAnalytics && new Analytics(defaultAnalytics);
|
|
326
|
-
}
|
|
327
|
-
function analyticsInstanceFactory(fn) {
|
|
328
|
-
return (zone, injector) => {
|
|
329
230
|
if (!isAnalyticsSupportedFactory.sync()) {
|
|
330
|
-
|
|
231
|
+
return null;
|
|
331
232
|
}
|
|
332
|
-
const
|
|
333
|
-
return new Analytics(
|
|
334
|
-
};
|
|
233
|
+
const defaultAnalytics = _getDefaultInstanceOf(ANALYTICS_PROVIDER_NAME, provided, defaultApp);
|
|
234
|
+
return defaultAnalytics && new Analytics(defaultAnalytics);
|
|
335
235
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
236
|
+
function analyticsInstanceFactory(fn) {
|
|
237
|
+
return (zone, injector) => {
|
|
238
|
+
if (!isAnalyticsSupportedFactory.sync()) {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
const analytics = zone.runOutsideAngular(() => fn(injector));
|
|
242
|
+
return new Analytics(analytics);
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
const ANALYTICS_INSTANCES_PROVIDER = {
|
|
246
|
+
provide: AnalyticsInstances,
|
|
247
|
+
deps: [
|
|
248
|
+
[new Optional(), PROVIDED_ANALYTICS_INSTANCES],
|
|
249
|
+
]
|
|
341
250
|
};
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
251
|
+
const DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {
|
|
252
|
+
provide: Analytics,
|
|
253
|
+
useFactory: defaultAnalyticsInstanceFactory,
|
|
254
|
+
deps: [
|
|
255
|
+
[new Optional(), PROVIDED_ANALYTICS_INSTANCES],
|
|
256
|
+
FirebaseApp,
|
|
257
|
+
]
|
|
349
258
|
};
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
static ɵfac = i03.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i03, type: _AnalyticsModule, deps: [{ token: ScreenTrackingService, optional: true }, { token: UserTrackingService, optional: true }], target: i03.ɵɵFactoryTarget.NgModule });
|
|
355
|
-
static ɵmod = i03.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-rc.3", ngImport: i03, type: _AnalyticsModule });
|
|
356
|
-
static ɵinj = i03.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i03, type: _AnalyticsModule, providers: [
|
|
357
|
-
DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
|
|
358
|
-
ANALYTICS_INSTANCES_PROVIDER,
|
|
359
|
-
{
|
|
360
|
-
provide: APP_INITIALIZER,
|
|
361
|
-
useValue: isAnalyticsSupportedFactory.async,
|
|
362
|
-
multi: true
|
|
259
|
+
class AnalyticsModule {
|
|
260
|
+
constructor(_screenTrackingService, _userTrackingService) {
|
|
261
|
+
registerVersion('angularfire', VERSION.full, 'analytics');
|
|
363
262
|
}
|
|
364
|
-
|
|
365
|
-
};
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
263
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AnalyticsModule, deps: [{ token: ScreenTrackingService, optional: true }, { token: UserTrackingService, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
264
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: AnalyticsModule });
|
|
265
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AnalyticsModule, providers: [
|
|
266
|
+
DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
|
|
267
|
+
ANALYTICS_INSTANCES_PROVIDER,
|
|
268
|
+
{
|
|
269
|
+
provide: APP_INITIALIZER,
|
|
270
|
+
useValue: isAnalyticsSupportedFactory.async,
|
|
271
|
+
multi: true,
|
|
272
|
+
}
|
|
273
|
+
] });
|
|
274
|
+
}
|
|
275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AnalyticsModule, decorators: [{
|
|
276
|
+
type: NgModule,
|
|
277
|
+
args: [{
|
|
278
|
+
providers: [
|
|
279
|
+
DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
|
|
280
|
+
ANALYTICS_INSTANCES_PROVIDER,
|
|
281
|
+
{
|
|
282
|
+
provide: APP_INITIALIZER,
|
|
283
|
+
useValue: isAnalyticsSupportedFactory.async,
|
|
284
|
+
multi: true,
|
|
285
|
+
}
|
|
286
|
+
]
|
|
287
|
+
}]
|
|
288
|
+
}], ctorParameters: () => [{ type: ScreenTrackingService, decorators: [{
|
|
289
|
+
type: Optional
|
|
290
|
+
}] }, { type: UserTrackingService, decorators: [{
|
|
291
|
+
type: Optional
|
|
292
|
+
}] }] });
|
|
384
293
|
function provideAnalytics(fn, ...deps) {
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
294
|
+
registerVersion('angularfire', VERSION.full, 'analytics');
|
|
295
|
+
return makeEnvironmentProviders([
|
|
296
|
+
DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
|
|
297
|
+
ANALYTICS_INSTANCES_PROVIDER,
|
|
298
|
+
{
|
|
299
|
+
provide: APP_INITIALIZER,
|
|
300
|
+
useValue: isAnalyticsSupportedFactory.async,
|
|
301
|
+
multi: true,
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
provide: PROVIDED_ANALYTICS_INSTANCES,
|
|
305
|
+
useFactory: analyticsInstanceFactory(fn),
|
|
306
|
+
multi: true,
|
|
307
|
+
deps: [
|
|
308
|
+
NgZone,
|
|
309
|
+
Injector,
|
|
310
|
+
_AngularFireSchedulers,
|
|
311
|
+
FirebaseApps,
|
|
312
|
+
...deps,
|
|
313
|
+
],
|
|
314
|
+
},
|
|
315
|
+
]);
|
|
407
316
|
}
|
|
408
317
|
|
|
409
|
-
|
|
410
|
-
|
|
318
|
+
/**
|
|
319
|
+
* Generated bundle index. Do not edit.
|
|
320
|
+
*/
|
|
411
321
|
|
|
412
|
-
|
|
413
|
-
__reExport(angular_fire_analytics_exports, public_api_exports);
|
|
414
|
-
export {
|
|
415
|
-
Analytics,
|
|
416
|
-
AnalyticsInstances,
|
|
417
|
-
AnalyticsModule,
|
|
418
|
-
ScreenTrackingService,
|
|
419
|
-
UserTrackingService,
|
|
420
|
-
analyticInstance$,
|
|
421
|
-
getAnalytics,
|
|
422
|
-
getGoogleAnalyticsClientId,
|
|
423
|
-
initializeAnalytics,
|
|
424
|
-
isSupported2 as isSupported,
|
|
425
|
-
logEvent,
|
|
426
|
-
provideAnalytics,
|
|
427
|
-
setAnalyticsCollectionEnabled,
|
|
428
|
-
setConsent,
|
|
429
|
-
setCurrentScreen,
|
|
430
|
-
setDefaultEventParameters,
|
|
431
|
-
setUserId,
|
|
432
|
-
setUserProperties,
|
|
433
|
-
settings,
|
|
434
|
-
ɵscreenViewEvent
|
|
435
|
-
};
|
|
322
|
+
export { Analytics, AnalyticsInstances, AnalyticsModule, ScreenTrackingService, UserTrackingService, analyticInstance$, getAnalytics, getGoogleAnalyticsClientId, initializeAnalytics, isSupported, logEvent, provideAnalytics, setAnalyticsCollectionEnabled, setConsent, setCurrentScreen, setDefaultEventParameters, setUserId, setUserProperties, settings, ɵscreenViewEvent };
|
|
436
323
|
//# sourceMappingURL=angular-fire-analytics.mjs.map
|