@angular/fire 7.1.0-canary.ca6eac2 → 7.1.0-canary.f0b932a

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.
Files changed (157) hide show
  1. package/analytics/analytics.module.d.ts +10 -5
  2. package/analytics/public_api.d.ts +2 -0
  3. package/analytics/screen-tracking.service.d.ts +42 -0
  4. package/analytics/user-tracking.service.d.ts +13 -0
  5. package/app/app.module.d.ts +3 -3
  6. package/app-check/app-check.module.d.ts +3 -3
  7. package/auth/auth.module.d.ts +3 -3
  8. package/bundles/angular-fire-analytics.umd.js +563 -35
  9. package/bundles/angular-fire-analytics.umd.js.map +1 -1
  10. package/bundles/angular-fire-app-check.umd.js +336 -18
  11. package/bundles/angular-fire-app-check.umd.js.map +1 -1
  12. package/bundles/angular-fire-app.umd.js +323 -3
  13. package/bundles/angular-fire-app.umd.js.map +1 -1
  14. package/bundles/angular-fire-auth.umd.js +324 -9
  15. package/bundles/angular-fire-auth.umd.js.map +1 -1
  16. package/bundles/angular-fire-compat-analytics.umd.js +16 -112
  17. package/bundles/angular-fire-compat-analytics.umd.js.map +1 -1
  18. package/bundles/angular-fire-compat-auth.umd.js +1 -1
  19. package/bundles/angular-fire-compat-auth.umd.js.map +1 -1
  20. package/bundles/angular-fire-compat-database.umd.js +1 -1
  21. package/bundles/angular-fire-compat-database.umd.js.map +1 -1
  22. package/bundles/angular-fire-compat-firestore.umd.js +1 -1
  23. package/bundles/angular-fire-compat-firestore.umd.js.map +1 -1
  24. package/bundles/angular-fire-compat-functions.umd.js +1 -1
  25. package/bundles/angular-fire-compat-functions.umd.js.map +1 -1
  26. package/bundles/angular-fire-compat-messaging.umd.js +5 -5
  27. package/bundles/angular-fire-compat-messaging.umd.js.map +1 -1
  28. package/bundles/angular-fire-compat-performance.umd.js +5 -5
  29. package/bundles/angular-fire-compat-performance.umd.js.map +1 -1
  30. package/bundles/angular-fire-compat-remote-config.umd.js +5 -5
  31. package/bundles/angular-fire-compat-remote-config.umd.js.map +1 -1
  32. package/bundles/angular-fire-compat-storage.umd.js +2 -1
  33. package/bundles/angular-fire-compat-storage.umd.js.map +1 -1
  34. package/bundles/angular-fire-compat.umd.js +38 -2
  35. package/bundles/angular-fire-compat.umd.js.map +1 -1
  36. package/bundles/angular-fire-database.umd.js +323 -6
  37. package/bundles/angular-fire-database.umd.js.map +1 -1
  38. package/bundles/angular-fire-firestore-lite.umd.js +4 -3
  39. package/bundles/angular-fire-firestore-lite.umd.js.map +1 -1
  40. package/bundles/angular-fire-firestore.umd.js +323 -8
  41. package/bundles/angular-fire-firestore.umd.js.map +1 -1
  42. package/bundles/angular-fire-functions.umd.js +323 -6
  43. package/bundles/angular-fire-functions.umd.js.map +1 -1
  44. package/bundles/angular-fire-messaging.umd.js +330 -9
  45. package/bundles/angular-fire-messaging.umd.js.map +1 -1
  46. package/bundles/angular-fire-performance.umd.js +339 -11
  47. package/bundles/angular-fire-performance.umd.js.map +1 -1
  48. package/bundles/angular-fire-remote-config.umd.js +353 -11
  49. package/bundles/angular-fire-remote-config.umd.js.map +1 -1
  50. package/bundles/angular-fire-storage.umd.js +324 -7
  51. package/bundles/angular-fire-storage.umd.js.map +1 -1
  52. package/bundles/angular-fire.umd.js +2 -373
  53. package/bundles/angular-fire.umd.js.map +1 -1
  54. package/compat/analytics/screen-tracking.service.d.ts +2 -2
  55. package/compat/cache.d.ts +1 -0
  56. package/compat/public_api.d.ts +1 -0
  57. package/compat/storage/interfaces.d.ts +1 -0
  58. package/compat/storage/ref.d.ts +2 -1
  59. package/core.d.ts +1 -3
  60. package/database/database.module.d.ts +3 -3
  61. package/docs/deploy/getting-started.md +62 -1
  62. package/docs/version-7-upgrade.md +1 -1
  63. package/esm2015/analytics/analytics.module.js +41 -20
  64. package/esm2015/analytics/public_api.js +3 -1
  65. package/esm2015/analytics/screen-tracking.service.js +147 -0
  66. package/esm2015/analytics/user-tracking.service.js +42 -0
  67. package/esm2015/app/app.module.js +12 -7
  68. package/esm2015/app-check/app-check.js +1 -2
  69. package/esm2015/app-check/app-check.module.js +19 -14
  70. package/esm2015/auth/auth.js +1 -2
  71. package/esm2015/auth/auth.module.js +10 -9
  72. package/esm2015/compat/analytics/analytics.js +2 -3
  73. package/esm2015/compat/analytics/screen-tracking.service.js +11 -100
  74. package/esm2015/compat/auth/auth.js +2 -3
  75. package/esm2015/compat/cache.js +32 -0
  76. package/esm2015/compat/database/database.js +2 -3
  77. package/esm2015/compat/firestore/firestore.js +2 -3
  78. package/esm2015/compat/functions/functions.js +2 -3
  79. package/esm2015/compat/messaging/messaging.js +3 -3
  80. package/esm2015/compat/performance/performance.js +2 -3
  81. package/esm2015/compat/public_api.js +2 -1
  82. package/esm2015/compat/remote-config/remote-config.js +4 -5
  83. package/esm2015/compat/storage/interfaces.js +1 -1
  84. package/esm2015/compat/storage/ref.js +2 -1
  85. package/esm2015/compat/storage/storage.js +3 -3
  86. package/esm2015/core.js +4 -57
  87. package/esm2015/database/database.module.js +9 -7
  88. package/esm2015/firestore/firestore.module.js +9 -9
  89. package/esm2015/firestore/lite/lite.module.js +7 -6
  90. package/esm2015/functions/functions.module.js +9 -7
  91. package/esm2015/messaging/messaging.module.js +16 -10
  92. package/esm2015/performance/performance.module.js +22 -8
  93. package/esm2015/remote-config/firebase.js +3 -2
  94. package/esm2015/remote-config/remote-config.module.js +34 -8
  95. package/esm2015/storage/storage.module.js +10 -8
  96. package/fesm2015/angular-fire-analytics.js +219 -33
  97. package/fesm2015/angular-fire-analytics.js.map +1 -1
  98. package/fesm2015/angular-fire-app-check.js +18 -14
  99. package/fesm2015/angular-fire-app-check.js.map +1 -1
  100. package/fesm2015/angular-fire-app.js +11 -6
  101. package/fesm2015/angular-fire-app.js.map +1 -1
  102. package/fesm2015/angular-fire-auth.js +9 -9
  103. package/fesm2015/angular-fire-auth.js.map +1 -1
  104. package/fesm2015/angular-fire-compat-analytics.js +10 -98
  105. package/fesm2015/angular-fire-compat-analytics.js.map +1 -1
  106. package/fesm2015/angular-fire-compat-auth.js +2 -2
  107. package/fesm2015/angular-fire-compat-auth.js.map +1 -1
  108. package/fesm2015/angular-fire-compat-database.js +2 -2
  109. package/fesm2015/angular-fire-compat-database.js.map +1 -1
  110. package/fesm2015/angular-fire-compat-firestore.js +2 -2
  111. package/fesm2015/angular-fire-compat-firestore.js.map +1 -1
  112. package/fesm2015/angular-fire-compat-functions.js +2 -2
  113. package/fesm2015/angular-fire-compat-functions.js.map +1 -1
  114. package/fesm2015/angular-fire-compat-messaging.js +2 -2
  115. package/fesm2015/angular-fire-compat-messaging.js.map +1 -1
  116. package/fesm2015/angular-fire-compat-performance.js +2 -2
  117. package/fesm2015/angular-fire-compat-performance.js.map +1 -1
  118. package/fesm2015/angular-fire-compat-remote-config.js +4 -4
  119. package/fesm2015/angular-fire-compat-remote-config.js.map +1 -1
  120. package/fesm2015/angular-fire-compat-storage.js +3 -2
  121. package/fesm2015/angular-fire-compat-storage.js.map +1 -1
  122. package/fesm2015/angular-fire-compat.js +34 -3
  123. package/fesm2015/angular-fire-compat.js.map +1 -1
  124. package/fesm2015/angular-fire-database.js +8 -6
  125. package/fesm2015/angular-fire-database.js.map +1 -1
  126. package/fesm2015/angular-fire-firestore-lite.js +6 -5
  127. package/fesm2015/angular-fire-firestore-lite.js.map +1 -1
  128. package/fesm2015/angular-fire-firestore.js +8 -8
  129. package/fesm2015/angular-fire-firestore.js.map +1 -1
  130. package/fesm2015/angular-fire-functions.js +8 -6
  131. package/fesm2015/angular-fire-functions.js.map +1 -1
  132. package/fesm2015/angular-fire-messaging.js +15 -9
  133. package/fesm2015/angular-fire-messaging.js.map +1 -1
  134. package/fesm2015/angular-fire-performance.js +21 -7
  135. package/fesm2015/angular-fire-performance.js.map +1 -1
  136. package/fesm2015/angular-fire-remote-config.js +36 -10
  137. package/fesm2015/angular-fire-remote-config.js.map +1 -1
  138. package/fesm2015/angular-fire-storage.js +9 -7
  139. package/fesm2015/angular-fire-storage.js.map +1 -1
  140. package/fesm2015/angular-fire.js +4 -57
  141. package/fesm2015/angular-fire.js.map +1 -1
  142. package/firestore/firestore.module.d.ts +3 -3
  143. package/firestore/lite/lite.module.d.ts +2 -2
  144. package/functions/functions.module.d.ts +3 -3
  145. package/messaging/messaging.module.d.ts +3 -3
  146. package/package.json +8 -2
  147. package/performance/performance.module.d.ts +4 -4
  148. package/remote-config/firebase.d.ts +2 -1
  149. package/remote-config/remote-config.module.d.ts +4 -4
  150. package/schematics/deploy/actions.js +19 -13
  151. package/schematics/deploy/schema.json +4 -0
  152. package/schematics/firebaseTools.js +2 -2
  153. package/schematics/setup/ssr.js +7 -1
  154. package/schematics/setup/static.js +9 -3
  155. package/schematics/utils.js +1 -1
  156. package/schematics/versions.json +1 -1
  157. package/storage/storage.module.d.ts +3 -3
@@ -1,17 +1,27 @@
1
- import { NgModule, Optional, NgZone, InjectionToken } from '@angular/core';
2
- import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
1
+ import { NgModule, Optional, NgZone, InjectionToken, PLATFORM_ID, Injector } from '@angular/core';
2
+ import { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
3
3
  import { Performance, PerformanceInstances, PERFORMANCE_PROVIDER_NAME } from './performance';
4
4
  import { FirebaseApps, FirebaseApp } from '@angular/fire/app';
5
5
  import { registerVersion } from 'firebase/app';
6
+ import { isPlatformBrowser } from '@angular/common';
6
7
  import * as i0 from "@angular/core";
7
8
  export const PROVIDED_PERFORMANCE_INSTANCES = new InjectionToken('angularfire2.performance-instances');
8
- export function defaultPerformanceInstanceFactory(provided, defaultApp) {
9
+ export function defaultPerformanceInstanceFactory(provided, defaultApp,
10
+ // tslint:disable-next-line:ban-types
11
+ platform) {
12
+ if (!isPlatformBrowser(platform)) {
13
+ return null;
14
+ }
9
15
  const defaultPerformance = ɵgetDefaultInstanceOf(PERFORMANCE_PROVIDER_NAME, provided, defaultApp);
10
- return new Performance(defaultPerformance);
16
+ return defaultPerformance && new Performance(defaultPerformance);
11
17
  }
12
18
  export function performanceInstanceFactory(fn) {
13
- return (zone) => {
14
- const performance = ɵmemoizeInstance(fn, zone);
19
+ // tslint:disable-next-line:ban-types
20
+ return (zone, platform, injector) => {
21
+ if (!isPlatformBrowser(platform)) {
22
+ return null;
23
+ }
24
+ const performance = zone.runOutsideAngular(() => fn(injector));
15
25
  return new Performance(performance);
16
26
  };
17
27
  }
@@ -27,6 +37,7 @@ const DEFAULT_PERFORMANCE_INSTANCE_PROVIDER = {
27
37
  deps: [
28
38
  [new Optional(), PROVIDED_PERFORMANCE_INSTANCES],
29
39
  FirebaseApp,
40
+ PLATFORM_ID,
30
41
  ]
31
42
  };
32
43
  export class PerformanceModule {
@@ -49,7 +60,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
49
60
  ]
50
61
  }]
51
62
  }], ctorParameters: function () { return []; } });
52
- export function providePerformance(fn) {
63
+ export function providePerformance(fn, ...deps) {
53
64
  return {
54
65
  ngModule: PerformanceModule,
55
66
  providers: [{
@@ -58,10 +69,13 @@ export function providePerformance(fn) {
58
69
  multi: true,
59
70
  deps: [
60
71
  NgZone,
72
+ PLATFORM_ID,
73
+ Injector,
61
74
  ɵAngularFireSchedulers,
62
75
  FirebaseApps,
76
+ ...deps,
63
77
  ]
64
78
  }]
65
79
  };
66
80
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUUvQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FBZ0Isb0NBQW9DLENBQUMsQ0FBQztBQUV0SCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsUUFBeUMsRUFBRSxVQUF1QjtJQUNsSCxNQUFNLGtCQUFrQixHQUFHLHFCQUFxQixDQUFzQix5QkFBeUIsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkgsT0FBTyxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsRUFBNkI7SUFDdEUsT0FBTyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ3RCLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFzQixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSw4QkFBOEIsR0FBRztJQUNyQyxPQUFPLEVBQUUsb0JBQW9CO0lBQzdCLElBQUksRUFBRTtRQUNKLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSw4QkFBOEIsQ0FBRTtLQUNsRDtDQUNGLENBQUM7QUFFRixNQUFNLHFDQUFxQyxHQUFHO0lBQzVDLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFVBQVUsRUFBRSxpQ0FBaUM7SUFDN0MsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLDhCQUE4QixDQUFFO1FBQ2pELFdBQVc7S0FDWjtDQUNGLENBQUM7QUFRRixNQUFNLE9BQU8saUJBQWlCO0lBQzVCO1FBQ0UsZUFBZSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzhHQUhVLGlCQUFpQjsrR0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsYUFMakI7UUFDVCxxQ0FBcUM7UUFDckMsOEJBQThCO0tBQy9COzJGQUVVLGlCQUFpQjtrQkFON0IsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1QscUNBQXFDO3dCQUNyQyw4QkFBOEI7cUJBQy9CO2lCQUNGOztBQU9ELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxFQUE2QjtJQUM5RCxPQUFPO1FBQ0wsUUFBUSxFQUFFLGlCQUFpQjtRQUMzQixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsOEJBQThCO2dCQUN2QyxVQUFVLEVBQUUsMEJBQTBCLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixzQkFBc0I7b0JBQ3RCLFlBQVk7aUJBQ2I7YUFDRixDQUFDO0tBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgT3B0aW9uYWwsIE5nWm9uZSwgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpcmViYXNlUGVyZm9ybWFuY2UgfSBmcm9tICdmaXJlYmFzZS9wZXJmb3JtYW5jZSc7XG5pbXBvcnQgeyDJtWdldERlZmF1bHRJbnN0YW5jZU9mLCDJtW1lbW9pemVJbnN0YW5jZSwgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsIFZFUlNJT04gfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IFBlcmZvcm1hbmNlLCBQZXJmb3JtYW5jZUluc3RhbmNlcywgUEVSRk9STUFOQ0VfUFJPVklERVJfTkFNRSB9IGZyb20gJy4vcGVyZm9ybWFuY2UnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBzLCBGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IHJlZ2lzdGVyVmVyc2lvbiB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFRF9QRVJGT1JNQU5DRV9JTlNUQU5DRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48UGVyZm9ybWFuY2VbXT4oJ2FuZ3VsYXJmaXJlMi5wZXJmb3JtYW5jZS1pbnN0YW5jZXMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQZXJmb3JtYW5jZUluc3RhbmNlRmFjdG9yeShwcm92aWRlZDogRmlyZWJhc2VQZXJmb3JtYW5jZVtdfHVuZGVmaW5lZCwgZGVmYXVsdEFwcDogRmlyZWJhc2VBcHApIHtcbiAgY29uc3QgZGVmYXVsdFBlcmZvcm1hbmNlID0gybVnZXREZWZhdWx0SW5zdGFuY2VPZjxGaXJlYmFzZVBlcmZvcm1hbmNlPihQRVJGT1JNQU5DRV9QUk9WSURFUl9OQU1FLCBwcm92aWRlZCwgZGVmYXVsdEFwcCk7XG4gIHJldHVybiBuZXcgUGVyZm9ybWFuY2UoZGVmYXVsdFBlcmZvcm1hbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcmZvcm1hbmNlSW5zdGFuY2VGYWN0b3J5KGZuOiAoKSA9PiBGaXJlYmFzZVBlcmZvcm1hbmNlKSB7XG4gIHJldHVybiAoem9uZTogTmdab25lKSA9PiB7XG4gICAgY29uc3QgcGVyZm9ybWFuY2UgPSDJtW1lbW9pemVJbnN0YW5jZTxGaXJlYmFzZVBlcmZvcm1hbmNlPihmbiwgem9uZSk7XG4gICAgcmV0dXJuIG5ldyBQZXJmb3JtYW5jZShwZXJmb3JtYW5jZSk7XG4gIH07XG59XG5cbmNvbnN0IFBFUkZPUk1BTkNFX0lOU1RBTkNFU19QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogUGVyZm9ybWFuY2VJbnN0YW5jZXMsXG4gIGRlcHM6IFtcbiAgICBbbmV3IE9wdGlvbmFsKCksIFBST1ZJREVEX1BFUkZPUk1BTkNFX0lOU1RBTkNFUyBdLFxuICBdXG59O1xuXG5jb25zdCBERUZBVUxUX1BFUkZPUk1BTkNFX0lOU1RBTkNFX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBQZXJmb3JtYW5jZSxcbiAgdXNlRmFjdG9yeTogZGVmYXVsdFBlcmZvcm1hbmNlSW5zdGFuY2VGYWN0b3J5LFxuICBkZXBzOiBbXG4gICAgW25ldyBPcHRpb25hbCgpLCBQUk9WSURFRF9QRVJGT1JNQU5DRV9JTlNUQU5DRVMgXSxcbiAgICBGaXJlYmFzZUFwcCxcbiAgXVxufTtcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgREVGQVVMVF9QRVJGT1JNQU5DRV9JTlNUQU5DRV9QUk9WSURFUixcbiAgICBQRVJGT1JNQU5DRV9JTlNUQU5DRVNfUFJPVklERVIsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUGVyZm9ybWFuY2VNb2R1bGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZWdpc3RlclZlcnNpb24oJ2FuZ3VsYXJmaXJlJywgVkVSU0lPTi5mdWxsLCAncGVyZicpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlUGVyZm9ybWFuY2UoZm46ICgpID0+IEZpcmViYXNlUGVyZm9ybWFuY2UpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBlcmZvcm1hbmNlTW9kdWxlPiB7XG4gIHJldHVybiB7XG4gICAgbmdNb2R1bGU6IFBlcmZvcm1hbmNlTW9kdWxlLFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgIHByb3ZpZGU6IFBST1ZJREVEX1BFUkZPUk1BTkNFX0lOU1RBTkNFUyxcbiAgICAgIHVzZUZhY3Rvcnk6IHBlcmZvcm1hbmNlSW5zdGFuY2VGYWN0b3J5KGZuKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgZGVwczogW1xuICAgICAgICBOZ1pvbmUsXG4gICAgICAgIMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzLFxuICAgICAgICBGaXJlYmFzZUFwcHMsXG4gICAgICBdXG4gICAgfV1cbiAgfTtcbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyZm9ybWFuY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BlcmZvcm1hbmNlL3BlcmZvcm1hbmNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXBELE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUFnQixvQ0FBb0MsQ0FBQyxDQUFDO0FBRXRILE1BQU0sVUFBVSxpQ0FBaUMsQ0FDL0MsUUFBeUMsRUFDekMsVUFBdUI7QUFDdkIscUNBQXFDO0FBQ3JDLFFBQWdCO0lBRWhCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDO0tBQUU7SUFDbEQsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBc0IseUJBQXlCLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZILE9BQU8sa0JBQWtCLElBQUksSUFBSSxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEVBQStDO0lBQ3hGLHFDQUFxQztJQUNyQyxPQUFPLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsUUFBa0IsRUFBRSxFQUFFO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sOEJBQThCLEdBQUc7SUFDckMsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixJQUFJLEVBQUU7UUFDSixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsOEJBQThCLENBQUU7S0FDbEQ7Q0FDRixDQUFDO0FBRUYsTUFBTSxxQ0FBcUMsR0FBRztJQUM1QyxPQUFPLEVBQUUsV0FBVztJQUNwQixVQUFVLEVBQUUsaUNBQWlDO0lBQzdDLElBQUksRUFBRTtRQUNKLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSw4QkFBOEIsQ0FBRTtRQUNqRCxXQUFXO1FBQ1gsV0FBVztLQUNaO0NBQ0YsQ0FBQztBQVFGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7UUFDRSxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7OEdBSFUsaUJBQWlCOytHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixhQUxqQjtRQUNULHFDQUFxQztRQUNyQyw4QkFBOEI7S0FDL0I7MkZBRVUsaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxxQ0FBcUM7d0JBQ3JDLDhCQUE4QjtxQkFDL0I7aUJBQ0Y7O0FBT0QsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEVBQTZCLEVBQUUsR0FBRyxJQUFXO0lBQzlFLE9BQU87UUFDTCxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSw4QkFBOEI7Z0JBQ3ZDLFVBQVUsRUFBRSwwQkFBMEIsQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRTtvQkFDSixNQUFNO29CQUNOLFdBQVc7b0JBQ1gsUUFBUTtvQkFDUixzQkFBc0I7b0JBQ3RCLFlBQVk7b0JBQ1osR0FBRyxJQUFJO2lCQUNSO2FBQ0YsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE9wdGlvbmFsLCBOZ1pvbmUsIEluamVjdGlvblRva2VuLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBQTEFURk9STV9JRCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpcmViYXNlUGVyZm9ybWFuY2UgfSBmcm9tICdmaXJlYmFzZS9wZXJmb3JtYW5jZSc7XG5pbXBvcnQgeyDJtWdldERlZmF1bHRJbnN0YW5jZU9mLCDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycywgVkVSU0lPTiB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgUGVyZm9ybWFuY2UsIFBlcmZvcm1hbmNlSW5zdGFuY2VzLCBQRVJGT1JNQU5DRV9QUk9WSURFUl9OQU1FIH0gZnJvbSAnLi9wZXJmb3JtYW5jZSc7XG5pbXBvcnQgeyBGaXJlYmFzZUFwcHMsIEZpcmViYXNlQXBwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnO1xuaW1wb3J0IHsgcmVnaXN0ZXJWZXJzaW9uIH0gZnJvbSAnZmlyZWJhc2UvYXBwJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFBST1ZJREVEX1BFUkZPUk1BTkNFX0lOU1RBTkNFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQZXJmb3JtYW5jZVtdPignYW5ndWxhcmZpcmUyLnBlcmZvcm1hbmNlLWluc3RhbmNlcycpO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFBlcmZvcm1hbmNlSW5zdGFuY2VGYWN0b3J5KFxuICBwcm92aWRlZDogRmlyZWJhc2VQZXJmb3JtYW5jZVtdfHVuZGVmaW5lZCxcbiAgZGVmYXVsdEFwcDogRmlyZWJhc2VBcHAsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpiYW4tdHlwZXNcbiAgcGxhdGZvcm06IE9iamVjdFxuKSB7XG4gIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm0pKSB7IHJldHVybiBudWxsOyB9XG4gIGNvbnN0IGRlZmF1bHRQZXJmb3JtYW5jZSA9IMm1Z2V0RGVmYXVsdEluc3RhbmNlT2Y8RmlyZWJhc2VQZXJmb3JtYW5jZT4oUEVSRk9STUFOQ0VfUFJPVklERVJfTkFNRSwgcHJvdmlkZWQsIGRlZmF1bHRBcHApO1xuICByZXR1cm4gZGVmYXVsdFBlcmZvcm1hbmNlICYmIG5ldyBQZXJmb3JtYW5jZShkZWZhdWx0UGVyZm9ybWFuY2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVyZm9ybWFuY2VJbnN0YW5jZUZhY3RvcnkoZm46IChpbmplY3RvcjogSW5qZWN0b3IpID0+IEZpcmViYXNlUGVyZm9ybWFuY2UpIHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmJhbi10eXBlc1xuICByZXR1cm4gKHpvbmU6IE5nWm9uZSwgcGxhdGZvcm06IE9iamVjdCwgaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybSkpIHsgcmV0dXJuIG51bGw7IH1cbiAgICBjb25zdCBwZXJmb3JtYW5jZSA9IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oaW5qZWN0b3IpKTtcbiAgICByZXR1cm4gbmV3IFBlcmZvcm1hbmNlKHBlcmZvcm1hbmNlKTtcbiAgfTtcbn1cblxuY29uc3QgUEVSRk9STUFOQ0VfSU5TVEFOQ0VTX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBQZXJmb3JtYW5jZUluc3RhbmNlcyxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgUFJPVklERURfUEVSRk9STUFOQ0VfSU5TVEFOQ0VTIF0sXG4gIF1cbn07XG5cbmNvbnN0IERFRkFVTFRfUEVSRk9STUFOQ0VfSU5TVEFOQ0VfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IFBlcmZvcm1hbmNlLFxuICB1c2VGYWN0b3J5OiBkZWZhdWx0UGVyZm9ybWFuY2VJbnN0YW5jZUZhY3RvcnksXG4gIGRlcHM6IFtcbiAgICBbbmV3IE9wdGlvbmFsKCksIFBST1ZJREVEX1BFUkZPUk1BTkNFX0lOU1RBTkNFUyBdLFxuICAgIEZpcmViYXNlQXBwLFxuICAgIFBMQVRGT1JNX0lELFxuICBdXG59O1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICBERUZBVUxUX1BFUkZPUk1BTkNFX0lOU1RBTkNFX1BST1ZJREVSLFxuICAgIFBFUkZPUk1BTkNFX0lOU1RBTkNFU19QUk9WSURFUixcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQZXJmb3JtYW5jZU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHJlZ2lzdGVyVmVyc2lvbignYW5ndWxhcmZpcmUnLCBWRVJTSU9OLmZ1bGwsICdwZXJmJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVQZXJmb3JtYW5jZShmbjogKCkgPT4gRmlyZWJhc2VQZXJmb3JtYW5jZSwgLi4uZGVwczogYW55W10pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFBlcmZvcm1hbmNlTW9kdWxlPiB7XG4gIHJldHVybiB7XG4gICAgbmdNb2R1bGU6IFBlcmZvcm1hbmNlTW9kdWxlLFxuICAgIHByb3ZpZGVyczogW3tcbiAgICAgIHByb3ZpZGU6IFBST1ZJREVEX1BFUkZPUk1BTkNFX0lOU1RBTkNFUyxcbiAgICAgIHVzZUZhY3Rvcnk6IHBlcmZvcm1hbmNlSW5zdGFuY2VGYWN0b3J5KGZuKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgZGVwczogW1xuICAgICAgICBOZ1pvbmUsXG4gICAgICAgIFBMQVRGT1JNX0lELFxuICAgICAgICBJbmplY3RvcixcbiAgICAgICAgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsXG4gICAgICAgIEZpcmViYXNlQXBwcyxcbiAgICAgICAgLi4uZGVwcyxcbiAgICAgIF1cbiAgICB9XVxuICB9O1xufVxuIl19
@@ -1,7 +1,7 @@
1
1
  // DO NOT MODIFY, this file is autogenerated by tools/build.ts
2
2
  export * from 'firebase/remote-config';
3
3
  import { ɵzoneWrap } from '@angular/fire';
4
- import { activate as _activate, ensureInitialized as _ensureInitialized, fetchAndActivate as _fetchAndActivate, fetchConfig as _fetchConfig, getAll as _getAll, getBoolean as _getBoolean, getNumber as _getNumber, getRemoteConfig as _getRemoteConfig, getString as _getString, getValue as _getValue, setLogLevel as _setLogLevel } from 'firebase/remote-config';
4
+ import { activate as _activate, ensureInitialized as _ensureInitialized, fetchAndActivate as _fetchAndActivate, fetchConfig as _fetchConfig, getAll as _getAll, getBoolean as _getBoolean, getNumber as _getNumber, getRemoteConfig as _getRemoteConfig, getString as _getString, getValue as _getValue, isSupported as _isSupported, setLogLevel as _setLogLevel } from 'firebase/remote-config';
5
5
  export const activate = ɵzoneWrap(_activate, true);
6
6
  export const ensureInitialized = ɵzoneWrap(_ensureInitialized, true);
7
7
  export const fetchAndActivate = ɵzoneWrap(_fetchAndActivate, true);
@@ -12,5 +12,6 @@ export const getNumber = ɵzoneWrap(_getNumber, true);
12
12
  export const getRemoteConfig = ɵzoneWrap(_getRemoteConfig, true);
13
13
  export const getString = ɵzoneWrap(_getString, true);
14
14
  export const getValue = ɵzoneWrap(_getValue, true);
15
+ export const isSupported = ɵzoneWrap(_isSupported, true);
15
16
  export const setLogLevel = ɵzoneWrap(_setLogLevel, true);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVtb3RlLWNvbmZpZy9maXJlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxRQUFRLElBQUksU0FBUyxFQUNyQixpQkFBaUIsSUFBSSxrQkFBa0IsRUFDdkMsZ0JBQWdCLElBQUksaUJBQWlCLEVBQ3JDLFdBQVcsSUFBSSxZQUFZLEVBQzNCLE1BQU0sSUFBSSxPQUFPLEVBQ2pCLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLFNBQVMsSUFBSSxVQUFVLEVBQ3ZCLGVBQWUsSUFBSSxnQkFBZ0IsRUFDbkMsU0FBUyxJQUFJLFVBQVUsRUFDdkIsUUFBUSxJQUFJLFNBQVMsRUFDckIsV0FBVyxJQUFJLFlBQVksRUFDNUIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBETyBOT1QgTU9ESUZZLCB0aGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0b29scy9idWlsZC50c1xuZXhwb3J0ICogZnJvbSAnZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyc7XG5pbXBvcnQgeyDJtXpvbmVXcmFwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQge1xuICBhY3RpdmF0ZSBhcyBfYWN0aXZhdGUsXG4gIGVuc3VyZUluaXRpYWxpemVkIGFzIF9lbnN1cmVJbml0aWFsaXplZCxcbiAgZmV0Y2hBbmRBY3RpdmF0ZSBhcyBfZmV0Y2hBbmRBY3RpdmF0ZSxcbiAgZmV0Y2hDb25maWcgYXMgX2ZldGNoQ29uZmlnLFxuICBnZXRBbGwgYXMgX2dldEFsbCxcbiAgZ2V0Qm9vbGVhbiBhcyBfZ2V0Qm9vbGVhbixcbiAgZ2V0TnVtYmVyIGFzIF9nZXROdW1iZXIsXG4gIGdldFJlbW90ZUNvbmZpZyBhcyBfZ2V0UmVtb3RlQ29uZmlnLFxuICBnZXRTdHJpbmcgYXMgX2dldFN0cmluZyxcbiAgZ2V0VmFsdWUgYXMgX2dldFZhbHVlLFxuICBzZXRMb2dMZXZlbCBhcyBfc2V0TG9nTGV2ZWxcbn0gZnJvbSAnZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyc7XG5cbmV4cG9ydCBjb25zdCBhY3RpdmF0ZSA9IMm1em9uZVdyYXAoX2FjdGl2YXRlLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBlbnN1cmVJbml0aWFsaXplZCA9IMm1em9uZVdyYXAoX2Vuc3VyZUluaXRpYWxpemVkLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBmZXRjaEFuZEFjdGl2YXRlID0gybV6b25lV3JhcChfZmV0Y2hBbmRBY3RpdmF0ZSwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZmV0Y2hDb25maWcgPSDJtXpvbmVXcmFwKF9mZXRjaENvbmZpZywgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZ2V0QWxsID0gybV6b25lV3JhcChfZ2V0QWxsLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRCb29sZWFuID0gybV6b25lV3JhcChfZ2V0Qm9vbGVhbiwgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZ2V0TnVtYmVyID0gybV6b25lV3JhcChfZ2V0TnVtYmVyLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRSZW1vdGVDb25maWcgPSDJtXpvbmVXcmFwKF9nZXRSZW1vdGVDb25maWcsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldFN0cmluZyA9IMm1em9uZVdyYXAoX2dldFN0cmluZywgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZ2V0VmFsdWUgPSDJtXpvbmVXcmFwKF9nZXRWYWx1ZSwgdHJ1ZSk7XG5leHBvcnQgY29uc3Qgc2V0TG9nTGV2ZWwgPSDJtXpvbmVXcmFwKF9zZXRMb2dMZXZlbCwgdHJ1ZSk7XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVtb3RlLWNvbmZpZy9maXJlYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFDTCxRQUFRLElBQUksU0FBUyxFQUNyQixpQkFBaUIsSUFBSSxrQkFBa0IsRUFDdkMsZ0JBQWdCLElBQUksaUJBQWlCLEVBQ3JDLFdBQVcsSUFBSSxZQUFZLEVBQzNCLE1BQU0sSUFBSSxPQUFPLEVBQ2pCLFVBQVUsSUFBSSxXQUFXLEVBQ3pCLFNBQVMsSUFBSSxVQUFVLEVBQ3ZCLGVBQWUsSUFBSSxnQkFBZ0IsRUFDbkMsU0FBUyxJQUFJLFVBQVUsRUFDdkIsUUFBUSxJQUFJLFNBQVMsRUFDckIsV0FBVyxJQUFJLFlBQVksRUFDM0IsV0FBVyxJQUFJLFlBQVksRUFDNUIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNuRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBETyBOT1QgTU9ESUZZLCB0aGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSB0b29scy9idWlsZC50c1xuZXhwb3J0ICogZnJvbSAnZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyc7XG5pbXBvcnQgeyDJtXpvbmVXcmFwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQge1xuICBhY3RpdmF0ZSBhcyBfYWN0aXZhdGUsXG4gIGVuc3VyZUluaXRpYWxpemVkIGFzIF9lbnN1cmVJbml0aWFsaXplZCxcbiAgZmV0Y2hBbmRBY3RpdmF0ZSBhcyBfZmV0Y2hBbmRBY3RpdmF0ZSxcbiAgZmV0Y2hDb25maWcgYXMgX2ZldGNoQ29uZmlnLFxuICBnZXRBbGwgYXMgX2dldEFsbCxcbiAgZ2V0Qm9vbGVhbiBhcyBfZ2V0Qm9vbGVhbixcbiAgZ2V0TnVtYmVyIGFzIF9nZXROdW1iZXIsXG4gIGdldFJlbW90ZUNvbmZpZyBhcyBfZ2V0UmVtb3RlQ29uZmlnLFxuICBnZXRTdHJpbmcgYXMgX2dldFN0cmluZyxcbiAgZ2V0VmFsdWUgYXMgX2dldFZhbHVlLFxuICBpc1N1cHBvcnRlZCBhcyBfaXNTdXBwb3J0ZWQsXG4gIHNldExvZ0xldmVsIGFzIF9zZXRMb2dMZXZlbFxufSBmcm9tICdmaXJlYmFzZS9yZW1vdGUtY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IGFjdGl2YXRlID0gybV6b25lV3JhcChfYWN0aXZhdGUsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGVuc3VyZUluaXRpYWxpemVkID0gybV6b25lV3JhcChfZW5zdXJlSW5pdGlhbGl6ZWQsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGZldGNoQW5kQWN0aXZhdGUgPSDJtXpvbmVXcmFwKF9mZXRjaEFuZEFjdGl2YXRlLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBmZXRjaENvbmZpZyA9IMm1em9uZVdyYXAoX2ZldGNoQ29uZmlnLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRBbGwgPSDJtXpvbmVXcmFwKF9nZXRBbGwsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldEJvb2xlYW4gPSDJtXpvbmVXcmFwKF9nZXRCb29sZWFuLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXROdW1iZXIgPSDJtXpvbmVXcmFwKF9nZXROdW1iZXIsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGdldFJlbW90ZUNvbmZpZyA9IMm1em9uZVdyYXAoX2dldFJlbW90ZUNvbmZpZywgdHJ1ZSk7XG5leHBvcnQgY29uc3QgZ2V0U3RyaW5nID0gybV6b25lV3JhcChfZ2V0U3RyaW5nLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBnZXRWYWx1ZSA9IMm1em9uZVdyYXAoX2dldFZhbHVlLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBpc1N1cHBvcnRlZCA9IMm1em9uZVdyYXAoX2lzU3VwcG9ydGVkLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzZXRMb2dMZXZlbCA9IMm1em9uZVdyYXAoX3NldExvZ0xldmVsLCB0cnVlKTtcbiJdfQ==
@@ -1,17 +1,26 @@
1
- import { NgModule, Optional, NgZone, InjectionToken } from '@angular/core';
2
- import { ɵmemoizeInstance, ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
1
+ import { NgModule, Optional, NgZone, InjectionToken, Injector, APP_INITIALIZER } from '@angular/core';
2
+ import { isSupported } from 'firebase/remote-config';
3
+ import { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
3
4
  import { RemoteConfig, RemoteConfigInstances, REMOTE_CONFIG_PROVIDER_NAME } from './remote-config';
4
5
  import { FirebaseApps, FirebaseApp } from '@angular/fire/app';
5
6
  import { registerVersion } from 'firebase/app';
6
7
  import * as i0 from "@angular/core";
7
8
  export const PROVIDED_REMOTE_CONFIG_INSTANCES = new InjectionToken('angularfire2.remote-config-instances');
8
- export function defaultRemoteConfigInstanceFactory(provided, defaultApp) {
9
+ const IS_SUPPORTED = new InjectionToken('angularfire2.remote-config.isSupported');
10
+ const isSupportedSymbol = Symbol('angularfire2.remote-config.isSupported');
11
+ export function defaultRemoteConfigInstanceFactory(isSupported, provided, defaultApp) {
12
+ if (!isSupported) {
13
+ return null;
14
+ }
9
15
  const defaultRemoteConfig = ɵgetDefaultInstanceOf(REMOTE_CONFIG_PROVIDER_NAME, provided, defaultApp);
10
- return new RemoteConfig(defaultRemoteConfig);
16
+ return defaultRemoteConfig && new RemoteConfig(defaultRemoteConfig);
11
17
  }
12
18
  export function remoteConfigInstanceFactory(fn) {
13
- return (zone) => {
14
- const remoteConfig = ɵmemoizeInstance(fn, zone);
19
+ return (zone, isSupported, injector) => {
20
+ if (!isSupported) {
21
+ return null;
22
+ }
23
+ const remoteConfig = zone.runOutsideAngular(() => fn(injector));
15
24
  return new RemoteConfig(remoteConfig);
16
25
  };
17
26
  }
@@ -25,6 +34,7 @@ const DEFAULT_REMOTE_CONFIG_INSTANCE_PROVIDER = {
25
34
  provide: RemoteConfig,
26
35
  useFactory: defaultRemoteConfigInstanceFactory,
27
36
  deps: [
37
+ IS_SUPPORTED,
28
38
  [new Optional(), PROVIDED_REMOTE_CONFIG_INSTANCES],
29
39
  FirebaseApp,
30
40
  ]
@@ -39,6 +49,11 @@ RemoteConfigModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
39
49
  RemoteConfigModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: RemoteConfigModule, providers: [
40
50
  DEFAULT_REMOTE_CONFIG_INSTANCE_PROVIDER,
41
51
  REMOTE_CONFIG_INSTANCES_PROVIDER,
52
+ {
53
+ provide: APP_INITIALIZER,
54
+ useValue: () => isSupported().then(it => globalThis[isSupportedSymbol] = it),
55
+ multi: true,
56
+ },
42
57
  ] });
43
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: RemoteConfigModule, decorators: [{
44
59
  type: NgModule,
@@ -46,22 +61,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
46
61
  providers: [
47
62
  DEFAULT_REMOTE_CONFIG_INSTANCE_PROVIDER,
48
63
  REMOTE_CONFIG_INSTANCES_PROVIDER,
64
+ {
65
+ provide: APP_INITIALIZER,
66
+ useValue: () => isSupported().then(it => globalThis[isSupportedSymbol] = it),
67
+ multi: true,
68
+ },
49
69
  ]
50
70
  }]
51
71
  }], ctorParameters: function () { return []; } });
52
- export function provideRemoteConfig(fn) {
72
+ export function provideRemoteConfig(fn, ...deps) {
53
73
  return {
54
74
  ngModule: RemoteConfigModule,
55
75
  providers: [{
76
+ provide: IS_SUPPORTED,
77
+ useFactory: () => globalThis[isSupportedSymbol],
78
+ }, {
56
79
  provide: PROVIDED_REMOTE_CONFIG_INSTANCES,
57
80
  useFactory: remoteConfigInstanceFactory(fn),
58
81
  multi: true,
59
82
  deps: [
60
83
  NgZone,
84
+ IS_SUPPORTED,
85
+ Injector,
61
86
  ɵAngularFireSchedulers,
62
87
  FirebaseApps,
88
+ ...deps,
63
89
  ]
64
90
  }]
65
91
  };
66
92
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVtb3RlLWNvbmZpZy9yZW1vdGUtY29uZmlnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRS9DLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLElBQUksY0FBYyxDQUFpQixzQ0FBc0MsQ0FBQyxDQUFDO0FBRTNILE1BQU0sVUFBVSxrQ0FBa0MsQ0FBQyxRQUEwQyxFQUFFLFVBQXVCO0lBQ3BILE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQXVCLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMzSCxPQUFPLElBQUksWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxFQUE4QjtJQUN4RSxPQUFPLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDdEIsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQXVCLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxPQUFPLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLGdDQUFnQyxHQUFHO0lBQ3ZDLE9BQU8sRUFBRSxxQkFBcUI7SUFDOUIsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLGdDQUFnQyxDQUFFO0tBQ3BEO0NBQ0YsQ0FBQztBQUVGLE1BQU0sdUNBQXVDLEdBQUc7SUFDOUMsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLGtDQUFrQztJQUM5QyxJQUFJLEVBQUU7UUFDSixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsZ0NBQWdDLENBQUU7UUFDbkQsV0FBVztLQUNaO0NBQ0YsQ0FBQztBQVFGLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7UUFDRSxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7K0dBSFUsa0JBQWtCO2dIQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixhQUxsQjtRQUNULHVDQUF1QztRQUN2QyxnQ0FBZ0M7S0FDakM7MkZBRVUsa0JBQWtCO2tCQU45QixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCx1Q0FBdUM7d0JBQ3ZDLGdDQUFnQztxQkFDakM7aUJBQ0Y7O0FBT0QsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEVBQThCO0lBQ2hFLE9BQU87UUFDTCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLFNBQVMsRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxnQ0FBZ0M7Z0JBQ3pDLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRTtvQkFDSixNQUFNO29CQUNOLHNCQUFzQjtvQkFDdEIsWUFBWTtpQkFDYjthQUNGLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBPcHRpb25hbCwgTmdab25lLCBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVtb3RlQ29uZmlnIGFzIEZpcmViYXNlUmVtb3RlQ29uZmlnIH0gZnJvbSAnZmlyZWJhc2UvcmVtb3RlLWNvbmZpZyc7XG5pbXBvcnQgeyDJtW1lbW9pemVJbnN0YW5jZSwgybVnZXREZWZhdWx0SW5zdGFuY2VPZiwgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsIFZFUlNJT04gfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IFJlbW90ZUNvbmZpZywgUmVtb3RlQ29uZmlnSW5zdGFuY2VzLCBSRU1PVEVfQ09ORklHX1BST1ZJREVSX05BTUUgfSBmcm9tICcuL3JlbW90ZS1jb25maWcnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBzLCBGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IHJlZ2lzdGVyVmVyc2lvbiB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFRF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZW1vdGVDb25maWdbXT4oJ2FuZ3VsYXJmaXJlMi5yZW1vdGUtY29uZmlnLWluc3RhbmNlcycpO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFJlbW90ZUNvbmZpZ0luc3RhbmNlRmFjdG9yeShwcm92aWRlZDogRmlyZWJhc2VSZW1vdGVDb25maWdbXXx1bmRlZmluZWQsIGRlZmF1bHRBcHA6IEZpcmViYXNlQXBwKSB7XG4gIGNvbnN0IGRlZmF1bHRSZW1vdGVDb25maWcgPSDJtWdldERlZmF1bHRJbnN0YW5jZU9mPEZpcmViYXNlUmVtb3RlQ29uZmlnPihSRU1PVEVfQ09ORklHX1BST1ZJREVSX05BTUUsIHByb3ZpZGVkLCBkZWZhdWx0QXBwKTtcbiAgcmV0dXJuIG5ldyBSZW1vdGVDb25maWcoZGVmYXVsdFJlbW90ZUNvbmZpZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdGVDb25maWdJbnN0YW5jZUZhY3RvcnkoZm46ICgpID0+IEZpcmViYXNlUmVtb3RlQ29uZmlnKSB7XG4gIHJldHVybiAoem9uZTogTmdab25lKSA9PiB7XG4gICAgY29uc3QgcmVtb3RlQ29uZmlnID0gybVtZW1vaXplSW5zdGFuY2U8RmlyZWJhc2VSZW1vdGVDb25maWc+KGZuLCB6b25lKTtcbiAgICByZXR1cm4gbmV3IFJlbW90ZUNvbmZpZyhyZW1vdGVDb25maWcpO1xuICB9O1xufVxuXG5jb25zdCBSRU1PVEVfQ09ORklHX0lOU1RBTkNFU19QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogUmVtb3RlQ29uZmlnSW5zdGFuY2VzLFxuICBkZXBzOiBbXG4gICAgW25ldyBPcHRpb25hbCgpLCBQUk9WSURFRF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFUyBdLFxuICBdXG59O1xuXG5jb25zdCBERUZBVUxUX1JFTU9URV9DT05GSUdfSU5TVEFOQ0VfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IFJlbW90ZUNvbmZpZyxcbiAgdXNlRmFjdG9yeTogZGVmYXVsdFJlbW90ZUNvbmZpZ0luc3RhbmNlRmFjdG9yeSxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgUFJPVklERURfUkVNT1RFX0NPTkZJR19JTlNUQU5DRVMgXSxcbiAgICBGaXJlYmFzZUFwcCxcbiAgXVxufTtcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgREVGQVVMVF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFX1BST1ZJREVSLFxuICAgIFJFTU9URV9DT05GSUdfSU5TVEFOQ0VTX1BST1ZJREVSLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUNvbmZpZ01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHJlZ2lzdGVyVmVyc2lvbignYW5ndWxhcmZpcmUnLCBWRVJTSU9OLmZ1bGwsICdyYycpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlUmVtb3RlQ29uZmlnKGZuOiAoKSA9PiBGaXJlYmFzZVJlbW90ZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UmVtb3RlQ29uZmlnTW9kdWxlPiB7XG4gIHJldHVybiB7XG4gICAgbmdNb2R1bGU6IFJlbW90ZUNvbmZpZ01vZHVsZSxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICBwcm92aWRlOiBQUk9WSURFRF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFUyxcbiAgICAgIHVzZUZhY3Rvcnk6IHJlbW90ZUNvbmZpZ0luc3RhbmNlRmFjdG9yeShmbiksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgTmdab25lLFxuICAgICAgICDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICAgICAgRmlyZWJhc2VBcHBzLFxuICAgICAgXVxuICAgIH1dXG4gIH07XG59XG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbmZpZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmVtb3RlLWNvbmZpZy9yZW1vdGUtY29uZmlnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBd0MsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUUvQyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsc0NBQXNDLENBQUMsQ0FBQztBQUMzSCxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBVSx3Q0FBd0MsQ0FBQyxDQUFDO0FBRTNGLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7QUFFM0UsTUFBTSxVQUFVLGtDQUFrQyxDQUNoRCxXQUFvQixFQUNwQixRQUEwQyxFQUMxQyxVQUF1QjtJQUV2QixJQUFJLENBQUMsV0FBVyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUM7S0FBRTtJQUNsQyxNQUFNLG1CQUFtQixHQUFHLHFCQUFxQixDQUF1QiwyQkFBMkIsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0gsT0FBTyxtQkFBbUIsSUFBSSxJQUFJLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsRUFBZ0Q7SUFDMUYsT0FBTyxDQUFDLElBQVksRUFBRSxXQUFvQixFQUFFLFFBQWtCLEVBQUUsRUFBRTtRQUNoRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7U0FBRTtRQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxnQ0FBZ0MsR0FBRztJQUN2QyxPQUFPLEVBQUUscUJBQXFCO0lBQzlCLElBQUksRUFBRTtRQUNKLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxnQ0FBZ0MsQ0FBRTtLQUNwRDtDQUNGLENBQUM7QUFFRixNQUFNLHVDQUF1QyxHQUFHO0lBQzlDLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFVBQVUsRUFBRSxrQ0FBa0M7SUFDOUMsSUFBSSxFQUFFO1FBQ0osWUFBWTtRQUNaLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxnQ0FBZ0MsQ0FBRTtRQUNuRCxXQUFXO0tBQ1o7Q0FDRixDQUFDO0FBYUYsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QjtRQUNFLGVBQWUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOzsrR0FIVSxrQkFBa0I7Z0hBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGFBVmxCO1FBQ1QsdUNBQXVDO1FBQ3ZDLGdDQUFnQztRQUNoQztZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDNUUsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzJGQUVVLGtCQUFrQjtrQkFYOUIsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1QsdUNBQXVDO3dCQUN2QyxnQ0FBZ0M7d0JBQ2hDOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDOzRCQUM1RSxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs7QUFPRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBOEIsRUFBRSxHQUFHLElBQVc7SUFDaEYsT0FBTztRQUNMLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsU0FBUyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLFlBQVk7Z0JBQ3JCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7YUFDaEQsRUFBRTtnQkFDRCxPQUFPLEVBQUUsZ0NBQWdDO2dCQUN6QyxVQUFVLEVBQUUsMkJBQTJCLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixZQUFZO29CQUNaLFFBQVE7b0JBQ1Isc0JBQXNCO29CQUN0QixZQUFZO29CQUNaLEdBQUcsSUFBSTtpQkFDUjthQUNGLENBQUM7S0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBPcHRpb25hbCwgTmdab25lLCBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycywgSW5qZWN0b3IsIEFQUF9JTklUSUFMSVpFUiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVtb3RlQ29uZmlnIGFzIEZpcmViYXNlUmVtb3RlQ29uZmlnLCBpc1N1cHBvcnRlZCB9IGZyb20gJ2ZpcmViYXNlL3JlbW90ZS1jb25maWcnO1xuaW1wb3J0IHsgybVnZXREZWZhdWx0SW5zdGFuY2VPZiwgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsIFZFUlNJT04gfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IFJlbW90ZUNvbmZpZywgUmVtb3RlQ29uZmlnSW5zdGFuY2VzLCBSRU1PVEVfQ09ORklHX1BST1ZJREVSX05BTUUgfSBmcm9tICcuL3JlbW90ZS1jb25maWcnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBzLCBGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IHJlZ2lzdGVyVmVyc2lvbiB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5cbmV4cG9ydCBjb25zdCBQUk9WSURFRF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZW1vdGVDb25maWdbXT4oJ2FuZ3VsYXJmaXJlMi5yZW1vdGUtY29uZmlnLWluc3RhbmNlcycpO1xuY29uc3QgSVNfU1VQUE9SVEVEID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdhbmd1bGFyZmlyZTIucmVtb3RlLWNvbmZpZy5pc1N1cHBvcnRlZCcpO1xuXG5jb25zdCBpc1N1cHBvcnRlZFN5bWJvbCA9IFN5bWJvbCgnYW5ndWxhcmZpcmUyLnJlbW90ZS1jb25maWcuaXNTdXBwb3J0ZWQnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRSZW1vdGVDb25maWdJbnN0YW5jZUZhY3RvcnkoXG4gIGlzU3VwcG9ydGVkOiBib29sZWFuLFxuICBwcm92aWRlZDogRmlyZWJhc2VSZW1vdGVDb25maWdbXXx1bmRlZmluZWQsXG4gIGRlZmF1bHRBcHA6IEZpcmViYXNlQXBwLFxuKSB7XG4gIGlmICghaXNTdXBwb3J0ZWQpIHsgcmV0dXJuIG51bGw7IH1cbiAgY29uc3QgZGVmYXVsdFJlbW90ZUNvbmZpZyA9IMm1Z2V0RGVmYXVsdEluc3RhbmNlT2Y8RmlyZWJhc2VSZW1vdGVDb25maWc+KFJFTU9URV9DT05GSUdfUFJPVklERVJfTkFNRSwgcHJvdmlkZWQsIGRlZmF1bHRBcHApO1xuICByZXR1cm4gZGVmYXVsdFJlbW90ZUNvbmZpZyAmJiBuZXcgUmVtb3RlQ29uZmlnKGRlZmF1bHRSZW1vdGVDb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3RlQ29uZmlnSW5zdGFuY2VGYWN0b3J5KGZuOiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBGaXJlYmFzZVJlbW90ZUNvbmZpZykge1xuICByZXR1cm4gKHpvbmU6IE5nWm9uZSwgaXNTdXBwb3J0ZWQ6IGJvb2xlYW4sIGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgIGlmICghaXNTdXBwb3J0ZWQpIHsgcmV0dXJuIG51bGw7IH1cbiAgICBjb25zdCByZW1vdGVDb25maWcgPSB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGZuKGluamVjdG9yKSk7XG4gICAgcmV0dXJuIG5ldyBSZW1vdGVDb25maWcocmVtb3RlQ29uZmlnKTtcbiAgfTtcbn1cblxuY29uc3QgUkVNT1RFX0NPTkZJR19JTlNUQU5DRVNfUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IFJlbW90ZUNvbmZpZ0luc3RhbmNlcyxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgUFJPVklERURfUkVNT1RFX0NPTkZJR19JTlNUQU5DRVMgXSxcbiAgXVxufTtcblxuY29uc3QgREVGQVVMVF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBSZW1vdGVDb25maWcsXG4gIHVzZUZhY3Rvcnk6IGRlZmF1bHRSZW1vdGVDb25maWdJbnN0YW5jZUZhY3RvcnksXG4gIGRlcHM6IFtcbiAgICBJU19TVVBQT1JURUQsXG4gICAgW25ldyBPcHRpb25hbCgpLCBQUk9WSURFRF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFUyBdLFxuICAgIEZpcmViYXNlQXBwLFxuICBdXG59O1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICBERUZBVUxUX1JFTU9URV9DT05GSUdfSU5TVEFOQ0VfUFJPVklERVIsXG4gICAgUkVNT1RFX0NPTkZJR19JTlNUQU5DRVNfUFJPVklERVIsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlVmFsdWU6ICgpID0+IGlzU3VwcG9ydGVkKCkudGhlbihpdCA9PiBnbG9iYWxUaGlzW2lzU3VwcG9ydGVkU3ltYm9sXSA9IGl0KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlQ29uZmlnTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgcmVnaXN0ZXJWZXJzaW9uKCdhbmd1bGFyZmlyZScsIFZFUlNJT04uZnVsbCwgJ3JjJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSZW1vdGVDb25maWcoZm46ICgpID0+IEZpcmViYXNlUmVtb3RlQ29uZmlnLCAuLi5kZXBzOiBhbnlbXSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UmVtb3RlQ29uZmlnTW9kdWxlPiB7XG4gIHJldHVybiB7XG4gICAgbmdNb2R1bGU6IFJlbW90ZUNvbmZpZ01vZHVsZSxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICBwcm92aWRlOiBJU19TVVBQT1JURUQsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiBnbG9iYWxUaGlzW2lzU3VwcG9ydGVkU3ltYm9sXSxcbiAgICB9LCB7XG4gICAgICBwcm92aWRlOiBQUk9WSURFRF9SRU1PVEVfQ09ORklHX0lOU1RBTkNFUyxcbiAgICAgIHVzZUZhY3Rvcnk6IHJlbW90ZUNvbmZpZ0luc3RhbmNlRmFjdG9yeShmbiksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIGRlcHM6IFtcbiAgICAgICAgTmdab25lLFxuICAgICAgICBJU19TVVBQT1JURUQsXG4gICAgICAgIEluamVjdG9yLFxuICAgICAgICDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICAgICAgRmlyZWJhc2VBcHBzLFxuICAgICAgICAuLi5kZXBzLFxuICAgICAgXVxuICAgIH1dXG4gIH07XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { NgModule, Optional, NgZone, InjectionToken } from '@angular/core';
2
- import { ɵgetDefaultInstanceOf, ɵmemoizeInstance, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
1
+ import { NgModule, Optional, NgZone, InjectionToken, Injector } from '@angular/core';
2
+ import { ɵgetDefaultInstanceOf, ɵAngularFireSchedulers, VERSION } from '@angular/fire';
3
3
  import { Storage, StorageInstances, STORAGE_PROVIDER_NAME } from './storage';
4
4
  import { FirebaseApps, FirebaseApp } from '@angular/fire/app';
5
5
  import { AuthInstances } from '@angular/fire/auth';
@@ -8,12 +8,12 @@ import { AppCheckInstances } from '@angular/fire/app-check';
8
8
  import * as i0 from "@angular/core";
9
9
  export const PROVIDED_STORAGE_INSTANCES = new InjectionToken('angularfire2.storage-instances');
10
10
  export function defaultStorageInstanceFactory(provided, defaultApp) {
11
- const defaultAuth = ɵgetDefaultInstanceOf(STORAGE_PROVIDER_NAME, provided, defaultApp);
12
- return new Storage(defaultAuth);
11
+ const defaultStorage = ɵgetDefaultInstanceOf(STORAGE_PROVIDER_NAME, provided, defaultApp);
12
+ return defaultStorage && new Storage(defaultStorage);
13
13
  }
14
14
  export function storageInstanceFactory(fn) {
15
- return (zone) => {
16
- const storage = ɵmemoizeInstance(fn, zone);
15
+ return (zone, injector) => {
16
+ const storage = zone.runOutsideAngular(() => fn(injector));
17
17
  return new Storage(storage);
18
18
  };
19
19
  }
@@ -51,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
51
51
  ]
52
52
  }]
53
53
  }], ctorParameters: function () { return []; } });
54
- export function provideStorage(fn) {
54
+ export function provideStorage(fn, ...deps) {
55
55
  return {
56
56
  ngModule: StorageModule,
57
57
  providers: [{
@@ -60,13 +60,15 @@ export function provideStorage(fn) {
60
60
  multi: true,
61
61
  deps: [
62
62
  NgZone,
63
+ Injector,
63
64
  ɵAngularFireSchedulers,
64
65
  FirebaseApps,
65
66
  // Defensively load Auth first, if provided
66
67
  [new Optional(), AuthInstances],
67
68
  [new Optional(), AppCheckInstances],
69
+ ...deps,
68
70
  ]
69
71
  }]
70
72
  };
71
73
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmFnZS9zdG9yYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFNUQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQVksZ0NBQWdDLENBQUMsQ0FBQztBQUUxRyxNQUFNLFVBQVUsNkJBQTZCLENBQUMsUUFBcUMsRUFBRSxVQUF1QjtJQUMxRyxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBa0IscUJBQXFCLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hHLE9BQU8sSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUF5QjtJQUM5RCxPQUFPLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDdEIsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQWtCLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RCxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLDBCQUEwQixHQUFHO0lBQ2pDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLDBCQUEwQixDQUFFO0tBQzlDO0NBQ0YsQ0FBQztBQUVGLE1BQU0saUNBQWlDLEdBQUc7SUFDeEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsVUFBVSxFQUFFLDZCQUE2QjtJQUN6QyxJQUFJLEVBQUU7UUFDSixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsMEJBQTBCLENBQUU7UUFDN0MsV0FBVztLQUNaO0NBQ0YsQ0FBQztBQVFGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCO1FBQ0UsZUFBZSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7OzBHQUhVLGFBQWE7MkdBQWIsYUFBYTsyR0FBYixhQUFhLGFBTGI7UUFDVCxpQ0FBaUM7UUFDakMsMEJBQTBCO0tBQzNCOzJGQUVVLGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULGlDQUFpQzt3QkFDakMsMEJBQTBCO3FCQUMzQjtpQkFDRjs7QUFPRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQXlCO0lBQ3RELE9BQU87UUFDTCxRQUFRLEVBQUUsYUFBYTtRQUN2QixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxVQUFVLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixzQkFBc0I7b0JBQ3RCLFlBQVk7b0JBQ1osMkNBQTJDO29CQUMzQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsYUFBYSxDQUFFO29CQUNoQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsaUJBQWlCLENBQUU7aUJBQ3JDO2FBQ0YsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE9wdGlvbmFsLCBOZ1pvbmUsIEluamVjdGlvblRva2VuLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlYmFzZVN0b3JhZ2UgfSBmcm9tICdmaXJlYmFzZS9zdG9yYWdlJztcbmltcG9ydCB7IMm1Z2V0RGVmYXVsdEluc3RhbmNlT2YsIMm1bWVtb2l6ZUluc3RhbmNlLCDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycywgVkVSU0lPTiB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgU3RvcmFnZSwgU3RvcmFnZUluc3RhbmNlcywgU1RPUkFHRV9QUk9WSURFUl9OQU1FIH0gZnJvbSAnLi9zdG9yYWdlJztcbmltcG9ydCB7IEZpcmViYXNlQXBwcywgRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCc7XG5pbXBvcnQgeyBBdXRoSW5zdGFuY2VzIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IHJlZ2lzdGVyVmVyc2lvbiB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBBcHBDaGVja0luc3RhbmNlcyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJztcblxuZXhwb3J0IGNvbnN0IFBST1ZJREVEX1NUT1JBR0VfSU5TVEFOQ0VTID0gbmV3IEluamVjdGlvblRva2VuPFN0b3JhZ2VbXT4oJ2FuZ3VsYXJmaXJlMi5zdG9yYWdlLWluc3RhbmNlcycpO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFN0b3JhZ2VJbnN0YW5jZUZhY3RvcnkocHJvdmlkZWQ6IEZpcmViYXNlU3RvcmFnZVtdfHVuZGVmaW5lZCwgZGVmYXVsdEFwcDogRmlyZWJhc2VBcHApIHtcbiAgY29uc3QgZGVmYXVsdEF1dGggPSDJtWdldERlZmF1bHRJbnN0YW5jZU9mPEZpcmViYXNlU3RvcmFnZT4oU1RPUkFHRV9QUk9WSURFUl9OQU1FLCBwcm92aWRlZCwgZGVmYXVsdEFwcCk7XG4gIHJldHVybiBuZXcgU3RvcmFnZShkZWZhdWx0QXV0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9yYWdlSW5zdGFuY2VGYWN0b3J5KGZuOiAoKSA9PiBGaXJlYmFzZVN0b3JhZ2UpIHtcbiAgcmV0dXJuICh6b25lOiBOZ1pvbmUpID0+IHtcbiAgICBjb25zdCBzdG9yYWdlID0gybVtZW1vaXplSW5zdGFuY2U8RmlyZWJhc2VTdG9yYWdlPihmbiwgem9uZSk7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlKHN0b3JhZ2UpO1xuICB9O1xufVxuXG5jb25zdCBTVE9SQUdFX0lOU1RBTkNFU19QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogU3RvcmFnZUluc3RhbmNlcyxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgUFJPVklERURfU1RPUkFHRV9JTlNUQU5DRVMgXSxcbiAgXVxufTtcblxuY29uc3QgREVGQVVMVF9TVE9SQUdFX0lOU1RBTkNFX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBTdG9yYWdlLFxuICB1c2VGYWN0b3J5OiBkZWZhdWx0U3RvcmFnZUluc3RhbmNlRmFjdG9yeSxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgUFJPVklERURfU1RPUkFHRV9JTlNUQU5DRVMgXSxcbiAgICBGaXJlYmFzZUFwcCxcbiAgXVxufTtcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgREVGQVVMVF9TVE9SQUdFX0lOU1RBTkNFX1BST1ZJREVSLFxuICAgIFNUT1JBR0VfSU5TVEFOQ0VTX1BST1ZJREVSLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VNb2R1bGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZWdpc3RlclZlcnNpb24oJ2FuZ3VsYXJmaXJlJywgVkVSU0lPTi5mdWxsLCAnZ2NzJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVTdG9yYWdlKGZuOiAoKSA9PiBGaXJlYmFzZVN0b3JhZ2UpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFN0b3JhZ2VNb2R1bGU+IHtcbiAgcmV0dXJuIHtcbiAgICBuZ01vZHVsZTogU3RvcmFnZU1vZHVsZSxcbiAgICBwcm92aWRlcnM6IFt7XG4gICAgICBwcm92aWRlOiBQUk9WSURFRF9TVE9SQUdFX0lOU1RBTkNFUyxcbiAgICAgIHVzZUZhY3Rvcnk6IHN0b3JhZ2VJbnN0YW5jZUZhY3RvcnkoZm4pLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICBkZXBzOiBbXG4gICAgICAgIE5nWm9uZSxcbiAgICAgICAgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMsXG4gICAgICAgIEZpcmViYXNlQXBwcyxcbiAgICAgICAgLy8gRGVmZW5zaXZlbHkgbG9hZCBBdXRoIGZpcnN0LCBpZiBwcm92aWRlZFxuICAgICAgICBbbmV3IE9wdGlvbmFsKCksIEF1dGhJbnN0YW5jZXMgXSxcbiAgICAgICAgW25ldyBPcHRpb25hbCgpLCBBcHBDaGVja0luc3RhbmNlcyBdLFxuICAgICAgXVxuICAgIH1dXG4gIH07XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3RvcmFnZS9zdG9yYWdlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTVELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFZLGdDQUFnQyxDQUFDLENBQUM7QUFFMUcsTUFBTSxVQUFVLDZCQUE2QixDQUFDLFFBQXFDLEVBQUUsVUFBdUI7SUFDMUcsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQWtCLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMzRyxPQUFPLGNBQWMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEVBQTJDO0lBQ2hGLE9BQU8sQ0FBQyxJQUFZLEVBQUUsUUFBa0IsRUFBRSxFQUFFO1FBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMzRCxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLDBCQUEwQixHQUFHO0lBQ2pDLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLDBCQUEwQixDQUFFO0tBQzlDO0NBQ0YsQ0FBQztBQUVGLE1BQU0saUNBQWlDLEdBQUc7SUFDeEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsVUFBVSxFQUFFLDZCQUE2QjtJQUN6QyxJQUFJLEVBQUU7UUFDSixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsMEJBQTBCLENBQUU7UUFDN0MsV0FBVztLQUNaO0NBQ0YsQ0FBQztBQVFGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCO1FBQ0UsZUFBZSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7OzBHQUhVLGFBQWE7MkdBQWIsYUFBYTsyR0FBYixhQUFhLGFBTGI7UUFDVCxpQ0FBaUM7UUFDakMsMEJBQTBCO0tBQzNCOzJGQUVVLGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULGlDQUFpQzt3QkFDakMsMEJBQTBCO3FCQUMzQjtpQkFDRjs7QUFPRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQXlCLEVBQUUsR0FBRyxJQUFXO0lBQ3RFLE9BQU87UUFDTCxRQUFRLEVBQUUsYUFBYTtRQUN2QixTQUFTLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxVQUFVLEVBQUUsc0JBQXNCLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUU7b0JBQ0osTUFBTTtvQkFDTixRQUFRO29CQUNSLHNCQUFzQjtvQkFDdEIsWUFBWTtvQkFDWiwyQ0FBMkM7b0JBQzNDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxhQUFhLENBQUU7b0JBQ2hDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsQ0FBRTtvQkFDcEMsR0FBRyxJQUFJO2lCQUNSO2FBQ0YsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE9wdGlvbmFsLCBOZ1pvbmUsIEluamVjdGlvblRva2VuLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZWJhc2VTdG9yYWdlIH0gZnJvbSAnZmlyZWJhc2Uvc3RvcmFnZSc7XG5pbXBvcnQgeyDJtWdldERlZmF1bHRJbnN0YW5jZU9mLCDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycywgVkVSU0lPTiB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgU3RvcmFnZSwgU3RvcmFnZUluc3RhbmNlcywgU1RPUkFHRV9QUk9WSURFUl9OQU1FIH0gZnJvbSAnLi9zdG9yYWdlJztcbmltcG9ydCB7IEZpcmViYXNlQXBwcywgRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCc7XG5pbXBvcnQgeyBBdXRoSW5zdGFuY2VzIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IHJlZ2lzdGVyVmVyc2lvbiB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBBcHBDaGVja0luc3RhbmNlcyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJztcblxuZXhwb3J0IGNvbnN0IFBST1ZJREVEX1NUT1JBR0VfSU5TVEFOQ0VTID0gbmV3IEluamVjdGlvblRva2VuPFN0b3JhZ2VbXT4oJ2FuZ3VsYXJmaXJlMi5zdG9yYWdlLWluc3RhbmNlcycpO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFN0b3JhZ2VJbnN0YW5jZUZhY3RvcnkocHJvdmlkZWQ6IEZpcmViYXNlU3RvcmFnZVtdfHVuZGVmaW5lZCwgZGVmYXVsdEFwcDogRmlyZWJhc2VBcHApIHtcbiAgY29uc3QgZGVmYXVsdFN0b3JhZ2UgPSDJtWdldERlZmF1bHRJbnN0YW5jZU9mPEZpcmViYXNlU3RvcmFnZT4oU1RPUkFHRV9QUk9WSURFUl9OQU1FLCBwcm92aWRlZCwgZGVmYXVsdEFwcCk7XG4gIHJldHVybiBkZWZhdWx0U3RvcmFnZSAmJiBuZXcgU3RvcmFnZShkZWZhdWx0U3RvcmFnZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9yYWdlSW5zdGFuY2VGYWN0b3J5KGZuOiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBGaXJlYmFzZVN0b3JhZ2UpIHtcbiAgcmV0dXJuICh6b25lOiBOZ1pvbmUsIGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgIGNvbnN0IHN0b3JhZ2UgPSB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGZuKGluamVjdG9yKSk7XG4gICAgcmV0dXJuIG5ldyBTdG9yYWdlKHN0b3JhZ2UpO1xuICB9O1xufVxuXG5jb25zdCBTVE9SQUdFX0lOU1RBTkNFU19QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogU3RvcmFnZUluc3RhbmNlcyxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgUFJPVklERURfU1RPUkFHRV9JTlNUQU5DRVMgXSxcbiAgXVxufTtcblxuY29uc3QgREVGQVVMVF9TVE9SQUdFX0lOU1RBTkNFX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBTdG9yYWdlLFxuICB1c2VGYWN0b3J5OiBkZWZhdWx0U3RvcmFnZUluc3RhbmNlRmFjdG9yeSxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgUFJPVklERURfU1RPUkFHRV9JTlNUQU5DRVMgXSxcbiAgICBGaXJlYmFzZUFwcCxcbiAgXVxufTtcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAgREVGQVVMVF9TVE9SQUdFX0lOU1RBTkNFX1BST1ZJREVSLFxuICAgIFNUT1JBR0VfSU5TVEFOQ0VTX1BST1ZJREVSLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VNb2R1bGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZWdpc3RlclZlcnNpb24oJ2FuZ3VsYXJmaXJlJywgVkVSU0lPTi5mdWxsLCAnZ2NzJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVTdG9yYWdlKGZuOiAoKSA9PiBGaXJlYmFzZVN0b3JhZ2UsIC4uLmRlcHM6IGFueVtdKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTdG9yYWdlTW9kdWxlPiB7XG4gIHJldHVybiB7XG4gICAgbmdNb2R1bGU6IFN0b3JhZ2VNb2R1bGUsXG4gICAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogUFJPVklERURfU1RPUkFHRV9JTlNUQU5DRVMsXG4gICAgICB1c2VGYWN0b3J5OiBzdG9yYWdlSW5zdGFuY2VGYWN0b3J5KGZuKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgZGVwczogW1xuICAgICAgICBOZ1pvbmUsXG4gICAgICAgIEluamVjdG9yLFxuICAgICAgICDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICAgICAgRmlyZWJhc2VBcHBzLFxuICAgICAgICAvLyBEZWZlbnNpdmVseSBsb2FkIEF1dGggZmlyc3QsIGlmIHByb3ZpZGVkXG4gICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgQXV0aEluc3RhbmNlcyBdLFxuICAgICAgICBbbmV3IE9wdGlvbmFsKCksIEFwcENoZWNrSW5zdGFuY2VzIF0sXG4gICAgICAgIC4uLmRlcHMsXG4gICAgICBdXG4gICAgfV1cbiAgfTtcbn1cbiJdfQ==
@@ -1,12 +1,19 @@
1
- import { ɵgetAllInstancesOf, ɵgetDefaultInstanceOf, ɵmemoizeInstance, VERSION, ɵAngularFireSchedulers, ɵzoneWrap } from '@angular/fire';
2
- import { timer, from } from 'rxjs';
3
- import { concatMap, distinct } from 'rxjs/operators';
1
+ import { ɵgetAllInstancesOf, ɵzoneWrap, VERSION, ɵgetDefaultInstanceOf, ɵ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
4
  import * as i0 from '@angular/core';
5
- import { InjectionToken, Optional, APP_INITIALIZER, NgModule, NgZone } from '@angular/core';
6
- import { isSupported as isSupported$1, getAnalytics as getAnalytics$1, initializeAnalytics as initializeAnalytics$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setCurrentScreen as setCurrentScreen$1, settings as settings$1, setUserId as setUserId$1, setUserProperties as setUserProperties$1 } from 'firebase/analytics';
5
+ import { Injectable, Inject, Optional, InjectionToken, APP_INITIALIZER, NgModule, NgZone, Injector } from '@angular/core';
6
+ import { getAnalytics as getAnalytics$1, initializeAnalytics as initializeAnalytics$1, isSupported as isSupported$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setCurrentScreen as setCurrentScreen$1, settings as settings$1, setUserId as setUserId$1, setUserProperties as setUserProperties$1 } from 'firebase/analytics';
7
7
  export * from 'firebase/analytics';
8
+ import * as i2 from '@angular/fire/app';
8
9
  import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
9
10
  import { registerVersion } from 'firebase/app';
11
+ import { __awaiter } from 'tslib';
12
+ import * as i1$1 from '@angular/router';
13
+ import { ActivationEnd, ɵEmptyOutletComponent } from '@angular/router';
14
+ import * as i2$1 from '@angular/platform-browser';
15
+ import * as i1 from '@angular/fire/auth';
16
+ import { authState } from '@angular/fire/auth';
10
17
 
11
18
  class Analytics {
12
19
  constructor(analytics) {
@@ -21,18 +28,198 @@ class AnalyticsInstances {
21
28
  }
22
29
  const analyticInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInstancesOf(ANALYTICS_PROVIDER_NAME))), distinct());
23
30
 
31
+ // DO NOT MODIFY, this file is autogenerated by tools/build.ts
32
+ const getAnalytics = ɵzoneWrap(getAnalytics$1, true);
33
+ const initializeAnalytics = ɵzoneWrap(initializeAnalytics$1, true);
34
+ const isSupported = ɵzoneWrap(isSupported$1, true);
35
+ const logEvent = ɵzoneWrap(logEvent$1, true);
36
+ const setAnalyticsCollectionEnabled = ɵzoneWrap(setAnalyticsCollectionEnabled$1, true);
37
+ const setCurrentScreen = ɵzoneWrap(setCurrentScreen$1, true);
38
+ const settings = ɵzoneWrap(settings$1, true);
39
+ const setUserId = ɵzoneWrap(setUserId$1, true);
40
+ const setUserProperties = ɵzoneWrap(setUserProperties$1, true);
41
+
42
+ class UserTrackingService {
43
+ constructor(auth, zone, analyticsInstanceFactories, injector, firebaseApp) {
44
+ this.disposables = [];
45
+ registerVersion('angularfire', VERSION.full, 'user-tracking');
46
+ // Analytics is not ready to be injected yet, as the APP_INITIALIZER hasn't evulated yet, do this the hard way
47
+ const analyticsInstance = globalThis[isSupportedPromiseSymbol].then((isSupported) => {
48
+ const analyticsInstances = analyticsInstanceFactories.map(fn => analyticsInstanceFactory(fn)(zone, isSupported, injector));
49
+ return defaultAnalyticsInstanceFactory(isSupported, analyticsInstances, firebaseApp);
50
+ });
51
+ let resolveInitialized;
52
+ this.initialized = zone.runOutsideAngular(() => new Promise(resolve => { resolveInitialized = resolve; }));
53
+ this.disposables = [
54
+ // TODO add credential tracking back in
55
+ authState(auth).subscribe(user => {
56
+ analyticsInstance.then(analytics => analytics && setUserId(analytics, user === null || user === void 0 ? void 0 : user.uid));
57
+ resolveInitialized();
58
+ }),
59
+ ];
60
+ }
61
+ ngOnDestroy() {
62
+ this.disposables.forEach(it => it.unsubscribe());
63
+ }
64
+ }
65
+ UserTrackingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: UserTrackingService, deps: [{ token: i1.Auth }, { token: i0.NgZone }, { token: PROVIDED_ANALYTICS_INSTANCE_FACTORIES }, { token: i0.Injector }, { token: i2.FirebaseApp }], target: i0.ɵɵFactoryTarget.Injectable });
66
+ UserTrackingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: UserTrackingService });
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: UserTrackingService, decorators: [{
68
+ type: Injectable
69
+ }], ctorParameters: function () { return [{ type: i1.Auth }, { type: i0.NgZone }, { type: Array, decorators: [{
70
+ type: Inject,
71
+ args: [PROVIDED_ANALYTICS_INSTANCE_FACTORIES]
72
+ }] }, { type: i0.Injector }, { type: i2.FirebaseApp }]; } });
73
+
74
+ const FIREBASE_EVENT_ORIGIN_KEY = 'firebase_event_origin';
75
+ const FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = 'firebase_previous_class';
76
+ const FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = 'firebase_previous_id';
77
+ const FIREBASE_PREVIOUS_SCREEN_NAME_KEY = 'firebase_previous_screen';
78
+ const FIREBASE_SCREEN_CLASS_KEY = 'firebase_screen_class';
79
+ const FIREBASE_SCREEN_INSTANCE_ID_KEY = 'firebase_screen_id';
80
+ const FIREBASE_SCREEN_NAME_KEY = 'firebase_screen';
81
+ const OUTLET_KEY = 'outlet';
82
+ const PAGE_PATH_KEY = 'page_path';
83
+ const PAGE_TITLE_KEY = 'page_title';
84
+ const SCREEN_CLASS_KEY = 'screen_class';
85
+ const SCREEN_NAME_KEY = 'screen_name';
86
+ const SCREEN_VIEW_EVENT = 'screen_view';
87
+ const EVENT_ORIGIN_AUTO = 'auto';
88
+ const SCREEN_INSTANCE_DELIMITER = '#';
89
+ // this is an INT64 in iOS/Android but use INT32 cause javascript
90
+ let nextScreenInstanceID = Math.floor(Math.random() * (Math.pow(2, 32) - 1)) - Math.pow(2, 31);
91
+ const knownScreenInstanceIDs = {};
92
+ const getScreenInstanceID = (params) => {
93
+ // unique the screen class against the outlet name
94
+ const screenInstanceKey = [
95
+ params[SCREEN_CLASS_KEY],
96
+ params[OUTLET_KEY]
97
+ ].join(SCREEN_INSTANCE_DELIMITER);
98
+ if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {
99
+ return knownScreenInstanceIDs[screenInstanceKey];
100
+ }
101
+ else {
102
+ const ret = nextScreenInstanceID++;
103
+ knownScreenInstanceIDs[screenInstanceKey] = ret;
104
+ return ret;
105
+ }
106
+ };
107
+ const ɵscreenViewEvent = (router, title, componentFactoryResolver) => {
108
+ const activationEndEvents = router.events.pipe(filter(e => e instanceof ActivationEnd));
109
+ return activationEndEvents.pipe(switchMap(activationEnd => {
110
+ var _a;
111
+ // router parseUrl is having trouble with outlets when they're empty
112
+ // e.g, /asdf/1(bob://sally:asdf), so put another slash in when empty
113
+ const urlTree = router.parseUrl(router.url.replace(/(?:\().+(?:\))/g, a => a.replace('://', ':///')));
114
+ const pagePath = ((_a = urlTree.root.children[activationEnd.snapshot.outlet]) === null || _a === void 0 ? void 0 : _a.toString()) || '';
115
+ const actualSnapshot = router.routerState.root.children.map(it => it).find(it => it.outlet === activationEnd.snapshot.outlet);
116
+ if (!actualSnapshot) {
117
+ return of(null);
118
+ }
119
+ let actualDeep = actualSnapshot;
120
+ while (actualDeep.firstChild) {
121
+ actualDeep = actualDeep.firstChild;
122
+ }
123
+ const screenName = actualDeep.pathFromRoot.map(s => { var _a; return (_a = s.routeConfig) === null || _a === void 0 ? void 0 : _a.path; }).filter(it => it).join('/') || '/';
124
+ const params = {
125
+ [SCREEN_NAME_KEY]: screenName,
126
+ [PAGE_PATH_KEY]: `/${pagePath}`,
127
+ [FIREBASE_EVENT_ORIGIN_KEY]: EVENT_ORIGIN_AUTO,
128
+ [FIREBASE_SCREEN_NAME_KEY]: screenName,
129
+ [OUTLET_KEY]: activationEnd.snapshot.outlet
130
+ };
131
+ if (title) {
132
+ params[PAGE_TITLE_KEY] = title.getTitle();
133
+ }
134
+ let component = actualSnapshot.component;
135
+ if (component) {
136
+ if (component === ɵEmptyOutletComponent) {
137
+ let deepSnapshot = activationEnd.snapshot;
138
+ // TODO when might there be mutple children, different outlets? explore
139
+ while (deepSnapshot.firstChild) {
140
+ deepSnapshot = deepSnapshot.firstChild;
141
+ }
142
+ component = deepSnapshot.component;
143
+ }
144
+ }
145
+ else {
146
+ component = activationEnd.snapshot.component;
147
+ }
148
+ if (typeof component === 'string') {
149
+ return of(Object.assign(Object.assign({}, params), { [SCREEN_CLASS_KEY]: component }));
150
+ }
151
+ else if (component) {
152
+ const componentFactory = componentFactoryResolver.resolveComponentFactory(component);
153
+ return of(Object.assign(Object.assign({}, params), { [SCREEN_CLASS_KEY]: componentFactory.selector }));
154
+ }
155
+ // lazy loads cause extra activations, ignore
156
+ return of(null);
157
+ }), filter(it => !!it), map(params => (Object.assign({ [FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY], [FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params) }, params))), 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 ? Object.assign({ [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY], [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY], [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY] }, current) : current))));
158
+ };
159
+ class ScreenTrackingService {
160
+ constructor(router, title, componentFactoryResolver, zone, userTrackingService, firebaseApp, analyticsInstanceFactories, injector) {
161
+ registerVersion('angularfire', VERSION.full, 'screen-tracking');
162
+ if (!router) {
163
+ return this;
164
+ }
165
+ // Analytics is not ready to be injected yet, as the APP_INITIALIZER hasn't evulated yet, do this the hard way
166
+ const analyticsInstance = globalThis[isSupportedPromiseSymbol].then((isSupported) => {
167
+ const analyticsInstances = analyticsInstanceFactories.map(fn => analyticsInstanceFactory(fn)(zone, isSupported, injector));
168
+ return defaultAnalyticsInstanceFactory(isSupported, analyticsInstances, firebaseApp);
169
+ });
170
+ zone.runOutsideAngular(() => {
171
+ this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(switchMap((params) => __awaiter(this, void 0, void 0, function* () {
172
+ if (userTrackingService) {
173
+ yield userTrackingService.initialized;
174
+ }
175
+ const analytics = yield analyticsInstance;
176
+ if (!analytics) {
177
+ return;
178
+ }
179
+ return logEvent(analytics, SCREEN_VIEW_EVENT, params);
180
+ }))).subscribe();
181
+ });
182
+ }
183
+ ngOnDestroy() {
184
+ if (this.disposable) {
185
+ this.disposable.unsubscribe();
186
+ }
187
+ }
188
+ }
189
+ ScreenTrackingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: ScreenTrackingService, deps: [{ token: i1$1.Router, optional: true }, { token: i2$1.Title, optional: true }, { token: i0.ComponentFactoryResolver }, { token: i0.NgZone }, { token: UserTrackingService, optional: true }, { token: i2.FirebaseApp }, { token: PROVIDED_ANALYTICS_INSTANCE_FACTORIES }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
190
+ ScreenTrackingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: ScreenTrackingService });
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: ScreenTrackingService, decorators: [{
192
+ type: Injectable
193
+ }], ctorParameters: function () { return [{ type: i1$1.Router, decorators: [{
194
+ type: Optional
195
+ }] }, { type: i2$1.Title, decorators: [{
196
+ type: Optional
197
+ }] }, { type: i0.ComponentFactoryResolver }, { type: i0.NgZone }, { type: UserTrackingService, decorators: [{
198
+ type: Optional
199
+ }] }, { type: i2.FirebaseApp }, { type: Array, decorators: [{
200
+ type: Inject,
201
+ args: [PROVIDED_ANALYTICS_INSTANCE_FACTORIES]
202
+ }] }, { type: i0.Injector }]; } });
203
+
204
+ const PROVIDED_ANALYTICS_INSTANCE_FACTORIES = new InjectionToken('angularfire2.analytics-instances.factory');
24
205
  const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken('angularfire2.analytics-instances');
25
206
  const IS_SUPPORTED = new InjectionToken('angularfire2.analytics.isSupported');
26
- const isSupportedSymbol = Symbol('angularfire2.analytics.isSupported');
207
+ const isSupportedValueSymbol = Symbol('angularfire2.analytics.isSupported.value');
208
+ const isSupportedPromiseSymbol = Symbol('angularfire2.analytics.isSupported');
209
+ globalThis[isSupportedPromiseSymbol] || (globalThis[isSupportedPromiseSymbol] = isSupported$1().then(it => globalThis[isSupportedValueSymbol] = it));
27
210
  function defaultAnalyticsInstanceFactory(isSupported, provided, defaultApp) {
28
- const defaultAnalytics = isSupported ?
29
- ɵgetDefaultInstanceOf(ANALYTICS_PROVIDER_NAME, provided, defaultApp) :
30
- undefined;
31
- return new Analytics(defaultAnalytics);
211
+ if (!isSupported) {
212
+ return null;
213
+ }
214
+ const defaultAnalytics = ɵgetDefaultInstanceOf(ANALYTICS_PROVIDER_NAME, provided, defaultApp);
215
+ return defaultAnalytics && new Analytics(defaultAnalytics);
32
216
  }
33
217
  function analyticsInstanceFactory(fn) {
34
- return (zone, isSupported) => {
35
- const analytics = isSupported ? ɵmemoizeInstance(fn, zone) : undefined;
218
+ return (zone, isSupported, injector) => {
219
+ if (!isSupported) {
220
+ return null;
221
+ }
222
+ const analytics = zone.runOutsideAngular(() => fn(injector));
36
223
  return new Analytics(analytics);
37
224
  };
38
225
  }
@@ -52,20 +239,20 @@ const DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {
52
239
  ]
53
240
  };
54
241
  class AnalyticsModule {
55
- constructor() {
242
+ constructor(_screenTracking, _userTracking) {
56
243
  registerVersion('angularfire', VERSION.full, 'analytics');
57
244
  }
58
245
  }
59
- AnalyticsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AnalyticsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
246
+ AnalyticsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AnalyticsModule, deps: [{ token: ScreenTrackingService, optional: true }, { token: UserTrackingService, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
60
247
  AnalyticsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AnalyticsModule });
61
248
  AnalyticsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AnalyticsModule, providers: [
62
249
  DEFAULT_ANALYTICS_INSTANCE_PROVIDER,
63
250
  ANALYTICS_INSTANCES_PROVIDER,
64
251
  {
65
252
  provide: APP_INITIALIZER,
66
- useValue: () => isSupported$1().then(it => globalThis[isSupportedSymbol] = it),
253
+ useValue: () => globalThis[isSupportedPromiseSymbol],
67
254
  multi: true,
68
- },
255
+ }
69
256
  ] });
70
257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AnalyticsModule, decorators: [{
71
258
  type: NgModule,
@@ -75,18 +262,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
75
262
  ANALYTICS_INSTANCES_PROVIDER,
76
263
  {
77
264
  provide: APP_INITIALIZER,
78
- useValue: () => isSupported$1().then(it => globalThis[isSupportedSymbol] = it),
265
+ useValue: () => globalThis[isSupportedPromiseSymbol],
79
266
  multi: true,
80
- },
267
+ }
81
268
  ]
82
269
  }]
83
- }], ctorParameters: function () { return []; } });
84
- function provideAnalytics(fn) {
270
+ }], ctorParameters: function () { return [{ type: ScreenTrackingService, decorators: [{
271
+ type: Optional
272
+ }] }, { type: UserTrackingService, decorators: [{
273
+ type: Optional
274
+ }] }]; } });
275
+ function provideAnalytics(fn, ...deps) {
85
276
  return {
86
277
  ngModule: AnalyticsModule,
87
278
  providers: [{
88
279
  provide: IS_SUPPORTED,
89
- useFactory: () => globalThis[isSupportedSymbol],
280
+ useFactory: () => globalThis[isSupportedValueSymbol],
281
+ }, {
282
+ provide: PROVIDED_ANALYTICS_INSTANCE_FACTORIES,
283
+ useValue: fn,
284
+ multi: true,
90
285
  }, {
91
286
  provide: PROVIDED_ANALYTICS_INSTANCES,
92
287
  useFactory: analyticsInstanceFactory(fn),
@@ -94,27 +289,18 @@ function provideAnalytics(fn) {
94
289
  deps: [
95
290
  NgZone,
96
291
  IS_SUPPORTED,
292
+ Injector,
97
293
  ɵAngularFireSchedulers,
98
294
  FirebaseApps,
295
+ ...deps,
99
296
  ]
100
297
  }]
101
298
  };
102
299
  }
103
300
 
104
- // DO NOT MODIFY, this file is autogenerated by tools/build.ts
105
- const getAnalytics = ɵzoneWrap(getAnalytics$1, true);
106
- const initializeAnalytics = ɵzoneWrap(initializeAnalytics$1, true);
107
- const isSupported = ɵzoneWrap(isSupported$1, true);
108
- const logEvent = ɵzoneWrap(logEvent$1, true);
109
- const setAnalyticsCollectionEnabled = ɵzoneWrap(setAnalyticsCollectionEnabled$1, true);
110
- const setCurrentScreen = ɵzoneWrap(setCurrentScreen$1, true);
111
- const settings = ɵzoneWrap(settings$1, true);
112
- const setUserId = ɵzoneWrap(setUserId$1, true);
113
- const setUserProperties = ɵzoneWrap(setUserProperties$1, true);
114
-
115
301
  /**
116
302
  * Generated bundle index. Do not edit.
117
303
  */
118
304
 
119
- export { Analytics, AnalyticsInstances, AnalyticsModule, analyticInstance$, getAnalytics, initializeAnalytics, isSupported, logEvent, provideAnalytics, setAnalyticsCollectionEnabled, setCurrentScreen, setUserId, setUserProperties, settings };
305
+ export { Analytics, AnalyticsInstances, AnalyticsModule, ScreenTrackingService, UserTrackingService, analyticInstance$, getAnalytics, initializeAnalytics, isSupported, logEvent, provideAnalytics, setAnalyticsCollectionEnabled, setCurrentScreen, setUserId, setUserProperties, settings, ɵscreenViewEvent };
120
306
  //# sourceMappingURL=angular-fire-analytics.js.map