@dereekb/dbx-firebase 13.11.14 → 13.11.16

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.
@@ -136,10 +136,11 @@ function firebaseAuthTokenFromUser(user) {
136
136
  }
137
137
 
138
138
  /**
139
- * Creates a AuthUserStateObsFunction that derives a user state from the input firebase auth service, and the optional stateForLoggedInUser input
139
+ * Creates a AuthUserStateObsFunction that derives a user state from the input firebase auth service, and the optional stateForLoggedInUser input.
140
140
  *
141
- * @param stateForLoggedInUser Optional function that returns an observable for the user's state if they are logged in and not an anonymous user.
141
+ * @param stateForLoggedInUser - Optional function that returns an observable for the user's state if they are logged in and not an anonymous user.
142
142
  * @returns
143
+ *
143
144
  * @__NO_SIDE_EFFECTS__
144
145
  */
145
146
  function authUserStateFromFirebaseAuthServiceFunction(stateForLoggedInUser = () => of('user')) {
@@ -304,11 +305,15 @@ class DbxFirebaseAuthService {
304
305
  return user.getIdTokenResult(true);
305
306
  }
306
307
  rolesForClaims(claims) {
308
+ let result;
307
309
  if (this._authRoleClaimsService) {
308
- return this._authRoleClaimsService.toRoles(claims);
310
+ result = this._authRoleClaimsService.toRoles(claims);
311
+ }
312
+ else {
313
+ console.warn('DbxFirebaseAuthService: rolesForClaims called with no authRoleClaimsService provided. An empty set is returned.');
314
+ result = new Set();
309
315
  }
310
- console.warn('DbxFirebaseAuthService: rolesForClaims called with no authRoleClaimsService provided. An empty set is returned.');
311
- return new Set();
316
+ return result;
312
317
  }
313
318
  getAuthContextInfo() {
314
319
  return firstValueFrom(this.authUser$).then((user) => this.loadAuthContextInfoForUser(user));
@@ -329,7 +334,7 @@ class DbxFirebaseAuthService {
329
334
  *
330
335
  * @param provider - The auth provider to link.
331
336
  * @param resolver - Optional popup redirect resolver.
332
- * @returns A promise resolving to the user credential after linking.
337
+ * @returns Promise resolving to the user credential after linking.
333
338
  *
334
339
  * @example
335
340
  * ```ts
@@ -349,7 +354,7 @@ class DbxFirebaseAuthService {
349
354
  * when a credential-already-in-use error provides an {@link AuthCredential}.
350
355
  *
351
356
  * @param credential - The auth credential to link.
352
- * @returns A promise resolving to the user credential after linking.
357
+ * @returns Promise resolving to the user credential after linking.
353
358
  *
354
359
  * @example
355
360
  * ```ts
@@ -368,7 +373,7 @@ class DbxFirebaseAuthService {
368
373
  * Unlinks an authentication provider from the current user.
369
374
  *
370
375
  * @param providerId - The provider ID to unlink (e.g., 'google.com').
371
- * @returns A promise resolving to the updated user.
376
+ * @returns Promise resolving to the updated user.
372
377
  *
373
378
  * @example
374
379
  * ```ts
@@ -389,8 +394,8 @@ class DbxFirebaseAuthService {
389
394
  /**
390
395
  * Sends a password reset email to the given address via the configured delegate.
391
396
  *
392
- * @param email - the email address to send the reset to
393
- * @returns A promise that resolves when the email has been sent.
397
+ * @param email - The email address to send the reset to.
398
+ * @returns Resolves when the email has been sent.
394
399
  *
395
400
  * @example
396
401
  * ```ts
@@ -403,8 +408,8 @@ class DbxFirebaseAuthService {
403
408
  /**
404
409
  * Completes a password reset using the verification code and new password via the configured delegate.
405
410
  *
406
- * @param input - the verification code and new password
407
- * @returns A promise that resolves when the password has been reset.
411
+ * @param input - The verification code and new password.
412
+ * @returns Resolves when the password has been reset.
408
413
  *
409
414
  * @example
410
415
  * ```ts
@@ -415,11 +420,11 @@ class DbxFirebaseAuthService {
415
420
  return this.delegate.completePasswordReset(this, input);
416
421
  }
417
422
  /**
423
+ * @param email - The email address to send the reset to.
424
+ * @returns Resolves when the email has been sent.
425
+ *
418
426
  * @deprecated use {@link sendPasswordReset} instead, which delegates to the configured
419
427
  * {@link DbxFirebaseAuthServiceDelegate.sendPasswordReset} implementation.
420
- *
421
- * @param email - the email address to send the reset to
422
- * @returns A promise that resolves when the email has been sent.
423
428
  */
424
429
  sendPasswordResetEmail(email) {
425
430
  return this.sendPasswordReset(email);
@@ -559,7 +564,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
559
564
  /**
560
565
  * Creates a EnvironmentProviders that provides a DbxFirebaseAnalyticsUserEventsListenerService and initialize it when the app is initialized.
561
566
  *
562
- * @returns EnvironmentProviders
567
+ * @returns EnvironmentProviders.
568
+ *
563
569
  * @__NO_SIDE_EFFECTS__
564
570
  */
565
571
  function provideDbxFirebaseAnalyticsUserEventsListenerService() {
@@ -734,14 +740,18 @@ class DbxFirebaseAuthLoginService {
734
740
  * @returns True if the provider was registered, false if it already existed and override was false.
735
741
  */
736
742
  register(provider, override = true) {
743
+ let result;
737
744
  if (override || !this._providers.has(provider.loginMethodType)) {
738
745
  this._providers.set(provider.loginMethodType, provider);
739
746
  if (provider.assets) {
740
747
  this.updateAssetsForProvider(provider.loginMethodType, provider.assets);
741
748
  }
742
- return true;
749
+ result = true;
750
+ }
751
+ else {
752
+ result = false;
743
753
  }
744
- return false;
754
+ return result;
745
755
  }
746
756
  /**
747
757
  * Updates the assets for a provider type.
@@ -805,7 +815,7 @@ class DbxFirebaseAuthLoginService {
805
815
  /**
806
816
  * Returns all registered provider assets.
807
817
  *
808
- * @returns A map of login method types to their asset configurations.
818
+ * @returns Map of login method types to their asset configurations.
809
819
  */
810
820
  getAllProviderAssets() {
811
821
  return new Map(this._assets);
@@ -919,7 +929,10 @@ class DbxFirebaseLoginButtonComponent {
919
929
  iconSignal = computed(() => this.config()?.icon, ...(ngDevMode ? [{ debugName: "iconSignal" }] : /* istanbul ignore next */ []));
920
930
  iconFilterSignal = computed(() => this.config()?.iconFilter, ...(ngDevMode ? [{ debugName: "iconFilterSignal" }] : /* istanbul ignore next */ []));
921
931
  textSignal = computed(() => this.config()?.text ?? '', ...(ngDevMode ? [{ debugName: "textSignal" }] : /* istanbul ignore next */ []));
922
- buttonColorSignal = computed(() => this.config()?.buttonColor ?? (this.config()?.color ? undefined : 'transparent'), ...(ngDevMode ? [{ debugName: "buttonColorSignal" }] : /* istanbul ignore next */ []));
932
+ buttonColorSignal = computed(() => {
933
+ const config = this.config();
934
+ return config?.buttonColor ?? (config?.color ? undefined : 'transparent');
935
+ }, ...(ngDevMode ? [{ debugName: "buttonColorSignal" }] : /* istanbul ignore next */ []));
923
936
  buttonTextColorSignal = computed(() => this.config()?.buttonTextColor, ...(ngDevMode ? [{ debugName: "buttonTextColorSignal" }] : /* istanbul ignore next */ []));
924
937
  colorSignal = computed(() => this.config()?.color, ...(ngDevMode ? [{ debugName: "colorSignal" }] : /* istanbul ignore next */ []));
925
938
  confirmConfigSignal = computed(() => this.config()?.confirmConfig, ...(ngDevMode ? [{ debugName: "confirmConfigSignal" }] : /* istanbul ignore next */ []));
@@ -1077,7 +1090,8 @@ class AbstractConfiguredDbxFirebaseLoginButtonDirective {
1077
1090
  * Handles the link action. Override in subclasses that support linking.
1078
1091
  * Throws by default for providers that do not support linking.
1079
1092
  *
1080
- * @returns A promise that resolves when the link action completes.
1093
+ * @returns Resolves when the link action completes.
1094
+ * @throws {Error} Always, in the base implementation; subclasses override to perform the link.
1081
1095
  */
1082
1096
  handleLink() {
1083
1097
  throw new Error(`Linking is not supported for the "${this.loginProvider}" provider.`);
@@ -1086,7 +1100,8 @@ class AbstractConfiguredDbxFirebaseLoginButtonDirective {
1086
1100
  * Handles the unlink action by removing the provider from the current user.
1087
1101
  * Uses the {@link LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP} to resolve the Firebase provider ID.
1088
1102
  *
1089
- * @returns A promise that resolves when the unlink action completes.
1103
+ * @returns Resolves when the unlink action completes.
1104
+ * @throws {Error} When `loginProvider` does not map to a known Firebase provider ID.
1090
1105
  */
1091
1106
  handleUnlink() {
1092
1107
  const providerId = loginMethodTypeToFirebaseProviderId(this.loginProvider);
@@ -1228,13 +1243,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
1228
1243
  */
1229
1244
  class DbxFirebaseEmailForgeFormComponent extends AbstractConfigAsyncForgeFormDirective {
1230
1245
  formConfig$ = this.currentConfig$.pipe(map((config) => {
1231
- if (!config) {
1232
- return undefined;
1246
+ let result;
1247
+ if (config) {
1248
+ const loginMode = config.loginMode ?? 'login';
1249
+ const passwordConfig = config.passwordConfig;
1250
+ const fields = [dbxForgeUsernameLoginField('email'), dbxForgeTextPasswordField(passwordConfig), ...(loginMode === 'register' ? [dbxForgeTextVerifyPasswordField()] : [])];
1251
+ result = { fields };
1252
+ }
1253
+ else {
1254
+ result = undefined;
1233
1255
  }
1234
- const loginMode = config.loginMode ?? 'login';
1235
- const passwordConfig = config.passwordConfig;
1236
- const fields = [dbxForgeUsernameLoginField('email'), dbxForgeTextPasswordField(passwordConfig), ...(loginMode === 'register' ? [dbxForgeTextVerifyPasswordField()] : [])];
1237
- return { fields };
1256
+ return result;
1238
1257
  }));
1239
1258
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFirebaseEmailForgeFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1240
1259
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxFirebaseEmailForgeFormComponent, isStandalone: true, selector: "dbx-firebase-email-forge-form", providers: dbxForgeFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-forge></dbx-forge>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: i1$2.DbxForgeFormComponent, selector: "dbx-forge" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -1490,7 +1509,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
1490
1509
  /**
1491
1510
  * Factory function for creating the default Firebase auth login providers.
1492
1511
  *
1493
- * @returns Array of DbxFirebaseAuthLoginProvider
1512
+ * @returns Array of DbxFirebaseAuthLoginProvider.
1513
+ *
1494
1514
  * @__NO_SIDE_EFFECTS__
1495
1515
  */
1496
1516
  function defaultFirebaseAuthLoginProvidersFactory() {
@@ -1594,8 +1614,8 @@ function defaultFirebaseAuthLoginProvidersFactory() {
1594
1614
  /**
1595
1615
  * Creates EnvironmentProviders for providing DbxFirebaseLogin configuration.
1596
1616
  *
1597
- * @param config Configuration
1598
- * @returns EnvironmentProviders
1617
+ * @param config - Configuration.
1618
+ * @returns EnvironmentProviders.
1599
1619
  */
1600
1620
  function provideDbxFirebaseLogin(config) {
1601
1621
  const { termsOfServiceUrls: loginTerms, enabledLoginMethods, loginTermsComponentClass, passwordConfig } = config;
@@ -1659,28 +1679,35 @@ class DbxFirebaseLoginListComponent {
1659
1679
  omitProviderTypes = input(...(ngDevMode ? [undefined, { debugName: "omitProviderTypes" }] : /* istanbul ignore next */ []));
1660
1680
  providerCategories = input(...(ngDevMode ? [undefined, { debugName: "providerCategories" }] : /* istanbul ignore next */ []));
1661
1681
  loginModeAriaLabelSignal = computed(() => {
1682
+ let result;
1662
1683
  switch (this.loginMode()) {
1663
1684
  case 'register':
1664
- return 'Registration options';
1685
+ result = 'Registration options';
1686
+ break;
1665
1687
  case 'link':
1666
- return 'Link account options';
1688
+ result = 'Link account options';
1689
+ break;
1667
1690
  case 'unlink':
1668
- return 'Unlink account options';
1691
+ result = 'Unlink account options';
1692
+ break;
1669
1693
  default:
1670
- return 'Login options';
1694
+ result = 'Login options';
1695
+ break;
1671
1696
  }
1697
+ return result;
1672
1698
  }, ...(ngDevMode ? [{ debugName: "loginModeAriaLabelSignal" }] : /* istanbul ignore next */ []));
1673
1699
  get loginModeAriaLabel() {
1674
1700
  return this.loginModeAriaLabelSignal();
1675
1701
  }
1676
1702
  providerTypesSignal = computed(() => {
1703
+ const linkedMethodTypes = this.linkedMethodTypesSignal();
1677
1704
  const providerTypes = this.providerTypes();
1678
1705
  const omitProviderTypes = this.omitProviderTypes();
1679
1706
  const loginMode = this.loginMode();
1680
1707
  let baseTypes;
1681
1708
  if (loginMode === 'unlink') {
1682
1709
  // In unlink mode, show only currently linked providers
1683
- baseTypes = this.linkedMethodTypesSignal();
1710
+ baseTypes = linkedMethodTypes;
1684
1711
  }
1685
1712
  else {
1686
1713
  baseTypes = providerTypes ? asArray(providerTypes) : this.dbxFirebaseAuthLoginService.getEnabledTypes();
@@ -2051,7 +2078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
2051
2078
  * Optionally adds the current AuthUserState to the role set.
2052
2079
  *
2053
2080
  * @param config - Configuration specifying the claims service and optional auth user state inclusion.
2054
- * @returns A function that, given a DbxFirebaseAuthService, returns an Observable of the decoded AuthRoleSet.
2081
+ * @returns Function that, given a DbxFirebaseAuthService, returns an Observable of the decoded AuthRoleSet.
2055
2082
  * @__NO_SIDE_EFFECTS__
2056
2083
  */
2057
2084
  function authRolesObsWithClaimsService(config) {
@@ -2071,6 +2098,8 @@ function authRolesObsWithClaimsService(config) {
2071
2098
  *
2072
2099
  * @param config - Configuration with the claims service and optional auth state customization.
2073
2100
  * @returns A DbxFirebaseAuthServiceDelegate configured for claims-based auth.
2101
+ * @throws {Error} When more than one of `stateForLoggedInUser`, `stateForLoggedInUserToken`, or `authUserStateObs` is supplied.
2102
+ *
2074
2103
  * @__NO_SIDE_EFFECTS__
2075
2104
  */
2076
2105
  function defaultDbxFirebaseAuthServiceDelegateWithClaimsService(config) {
@@ -2140,12 +2169,16 @@ class DbxFirebaseDevelopmentWidgetService {
2140
2169
  */
2141
2170
  register(provider, override = true) {
2142
2171
  const type = provider.widget.type;
2172
+ let result;
2143
2173
  if (override || !this._entries.has(type)) {
2144
2174
  this._entries.set(type, provider);
2145
2175
  this.dbxWidgetService.register(provider.widget, override);
2146
- return true;
2176
+ result = true;
2147
2177
  }
2148
- return false;
2178
+ else {
2179
+ result = false;
2180
+ }
2181
+ return result;
2149
2182
  }
2150
2183
  getEntryWidgetIdentifiers() {
2151
2184
  return [...this._entries.keys()];
@@ -2241,24 +2274,28 @@ const DISPLAY_FOR_DEVELOPMENT_POPUP_STRING_VALUE = (values) => {
2241
2274
  */
2242
2275
  class DbxFirebaseDevelopmentPopupContentForgeFormComponent extends AbstractConfigAsyncForgeFormDirective {
2243
2276
  formConfig$ = this.currentConfig$.pipe(map((config) => {
2244
- if (!config) {
2245
- return undefined;
2277
+ let result;
2278
+ if (config) {
2279
+ result = {
2280
+ fields: [
2281
+ dbxForgePickableChipField({
2282
+ key: 'specifier',
2283
+ hint: 'Pick a tool to get started.',
2284
+ props: {
2285
+ filterLabel: 'Tools',
2286
+ filterValues: filterPickableItemFieldValuesByLabel,
2287
+ loadValues: () => of(config.entries.map((y) => ({ value: y.widget.type, meta: y }))),
2288
+ displayForValue: DISPLAY_FOR_DEVELOPMENT_POPUP_STRING_VALUE,
2289
+ asArrayValue: false
2290
+ }
2291
+ })
2292
+ ]
2293
+ };
2246
2294
  }
2247
- return {
2248
- fields: [
2249
- dbxForgePickableChipField({
2250
- key: 'specifier',
2251
- hint: 'Pick a tool to get started.',
2252
- props: {
2253
- filterLabel: 'Tools',
2254
- filterValues: filterPickableItemFieldValuesByLabel,
2255
- loadValues: () => of(config.entries.map((y) => ({ value: y.widget.type, meta: y }))),
2256
- displayForValue: DISPLAY_FOR_DEVELOPMENT_POPUP_STRING_VALUE,
2257
- asArrayValue: false
2258
- }
2259
- })
2260
- ]
2261
- };
2295
+ else {
2296
+ result = undefined;
2297
+ }
2298
+ return result;
2262
2299
  }));
2263
2300
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentForgeFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2264
2301
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxFirebaseDevelopmentPopupContentForgeFormComponent, isStandalone: true, selector: "dbx-firebase-development-popup-content-forge-form", providers: dbxForgeFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-forge></dbx-forge>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxForgeFormComponentImportsModule }, { kind: "component", type: i1$2.DbxForgeFormComponent, selector: "dbx-forge" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -2715,7 +2752,7 @@ function provideDbxFirebaseDevelopment(config) {
2715
2752
  * derived from `dbxFirebaseAppOptions.emulators`.
2716
2753
  *
2717
2754
  * @param config
2718
- * @returns EnvironmentProviders
2755
+ * @returns EnvironmentProviders.
2719
2756
  *
2720
2757
  * @example
2721
2758
  * ```ts
@@ -2755,7 +2792,7 @@ function provideDbxFirebaseApp(config) {
2755
2792
  * Parses a {@link DbxFirebaseEmulatorsConfig} into a fully-resolved {@link DbxFirebaseParsedEmulatorsConfig}.
2756
2793
  *
2757
2794
  * @param config
2758
- * @returns DbxFirebaseParsedEmulatorsConfig
2795
+ * @returns DbxFirebaseParsedEmulatorsConfig.
2759
2796
  *
2760
2797
  * @example
2761
2798
  * ```ts
@@ -2788,12 +2825,13 @@ function parseDbxFirebaseEmulatorsConfig(config) {
2788
2825
  * or when no App Check options are configured.
2789
2826
  *
2790
2827
  * @param params
2791
- * @returns AppCheck
2828
+ * @returns AppCheck.
2792
2829
  *
2793
2830
  * @example
2794
2831
  * ```ts
2795
2832
  * const appCheck = createDbxFirebaseAppCheck({ app, options });
2796
2833
  * ```
2834
+ *
2797
2835
  * @__NO_SIDE_EFFECTS__
2798
2836
  */
2799
2837
  function createDbxFirebaseAppCheck(params) {
@@ -2820,12 +2858,13 @@ function createDbxFirebaseAppCheck(params) {
2820
2858
  * Initializes Firestore for the given FirebaseApp with persistence and emulator settings derived from options.
2821
2859
  *
2822
2860
  * @param params
2823
- * @returns Firestore
2861
+ * @returns Firestore.
2824
2862
  *
2825
2863
  * @example
2826
2864
  * ```ts
2827
2865
  * const firestore = createDbxFirebaseFirestore({ app, options, emulators });
2828
2866
  * ```
2867
+ *
2829
2868
  * @__NO_SIDE_EFFECTS__
2830
2869
  */
2831
2870
  function createDbxFirebaseFirestore(params) {
@@ -2849,12 +2888,13 @@ function createDbxFirebaseFirestore(params) {
2849
2888
  * Returns the Firebase Auth instance for the given app, wired up to the auth emulator if configured.
2850
2889
  *
2851
2890
  * @param params
2852
- * @returns Auth
2891
+ * @returns Auth.
2853
2892
  *
2854
2893
  * @example
2855
2894
  * ```ts
2856
2895
  * const auth = createDbxFirebaseAuth({ app, emulators });
2857
2896
  * ```
2897
+ *
2858
2898
  * @__NO_SIDE_EFFECTS__
2859
2899
  */
2860
2900
  function createDbxFirebaseAuth(params) {
@@ -2869,12 +2909,13 @@ function createDbxFirebaseAuth(params) {
2869
2909
  * Returns the Firebase Storage instance for the given app, wired up to the storage emulator if configured.
2870
2910
  *
2871
2911
  * @param params
2872
- * @returns FirebaseStorage
2912
+ * @returns FirebaseStorage.
2873
2913
  *
2874
2914
  * @example
2875
2915
  * ```ts
2876
2916
  * const storage = createDbxFirebaseStorage({ app, emulators });
2877
2917
  * ```
2918
+ *
2878
2919
  * @__NO_SIDE_EFFECTS__
2879
2920
  */
2880
2921
  function createDbxFirebaseStorage(params) {
@@ -2889,12 +2930,13 @@ function createDbxFirebaseStorage(params) {
2889
2930
  * Returns the Firebase Functions instance for the given app, wired up to the functions emulator if configured.
2890
2931
  *
2891
2932
  * @param params
2892
- * @returns Functions
2933
+ * @returns Functions.
2893
2934
  *
2894
2935
  * @example
2895
2936
  * ```ts
2896
2937
  * const functions = createDbxFirebaseFunctions({ app, options, emulators });
2897
2938
  * ```
2939
+ *
2898
2940
  * @__NO_SIDE_EFFECTS__
2899
2941
  */
2900
2942
  function createDbxFirebaseFunctions(params) {
@@ -2914,8 +2956,9 @@ const DBX_FIRESTORE_CONTEXT_TOKEN = new InjectionToken('DBX_FIRESTORE_CONTEXT_TO
2914
2956
  /**
2915
2957
  * Provider factory for the SystemStateFirestoreCollections.
2916
2958
  *
2917
- * @param appCollection The app collection class to use.
2959
+ * @param appCollection - The app collection class to use.
2918
2960
  * @returns Provider factory for the SystemStateFirestoreCollections.
2961
+ * @throws {Error} When `appCollection` does not expose a `systemStateCollection`.
2919
2962
  */
2920
2963
  function provideSystemStateFirestoreCollections(appCollection) {
2921
2964
  if (!appCollection.systemStateCollection) {
@@ -2926,8 +2969,9 @@ function provideSystemStateFirestoreCollections(appCollection) {
2926
2969
  /**
2927
2970
  * Provider factory for the NotificationFirestoreCollections.
2928
2971
  *
2929
- * @param appCollection The app collection class to use.
2972
+ * @param appCollection - The app collection class to use.
2930
2973
  * @returns Provider factory for the NotificationFirestoreCollections.
2974
+ * @throws {Error} When `appCollection` does not expose a `notificationSummaryCollection`.
2931
2975
  */
2932
2976
  function provideNotificationFirestoreCollections(appCollection) {
2933
2977
  if (!appCollection.notificationSummaryCollection) {
@@ -2938,8 +2982,9 @@ function provideNotificationFirestoreCollections(appCollection) {
2938
2982
  /**
2939
2983
  * Provider factory for the StorageFileFirestoreCollections.
2940
2984
  *
2941
- * @param appCollection The app collection class to use.
2985
+ * @param appCollection - The app collection class to use.
2942
2986
  * @returns Provider factory for the StorageFileFirestoreCollections.
2987
+ * @throws {Error} When `appCollection` does not expose a `storageFileCollection`.
2943
2988
  */
2944
2989
  function provideStorageFileFirestoreCollections(appCollection) {
2945
2990
  if (!appCollection.storageFileCollection) {
@@ -2950,8 +2995,8 @@ function provideStorageFileFirestoreCollections(appCollection) {
2950
2995
  /**
2951
2996
  * Creates EnvironmentProviders for the DBX_FIRESTORE_CONTEXT_TOKEN, appCollectionClass, and optionally the SystemStateFirestoreCollections and NotificationFirestoreCollections.
2952
2997
  *
2953
- * @param config Configuration for the providers.
2954
- * @returns EnvironmentProviders
2998
+ * @param config - Configuration for the providers.
2999
+ * @returns EnvironmentProviders.
2955
3000
  */
2956
3001
  function provideDbxFirestoreCollection(config) {
2957
3002
  const params = config.firestoreContextCacheFactory ? { firestoreContextCacheFactory: config.firestoreContextCacheFactory } : undefined;
@@ -3014,8 +3059,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
3014
3059
  *
3015
3060
  * Also provides FirebaseDevelopmentFunctions if developmentFunctionsKey is provided.
3016
3061
  *
3017
- * @param config Configuration for provideDbxFirebaseFunctions().
3062
+ * @param config - Configuration for provideDbxFirebaseFunctions().
3018
3063
  * @returns EnvironmentProviders for the LazyFirebaseFunctions type.
3064
+ *
3019
3065
  * @__NO_SIDE_EFFECTS__
3020
3066
  */
3021
3067
  function provideDbxFirebaseFunctions(config) {
@@ -3123,10 +3169,14 @@ class DbxFirebaseCollectionChangeTriggerInstance {
3123
3169
  init() {
3124
3170
  this._sub.subscription = this._triggerFunction
3125
3171
  .pipe(switchMap((triggerFunction) => {
3172
+ let result;
3126
3173
  if (triggerFunction) {
3127
- return this.watcher.triggered$.pipe(filter((triggered) => triggered), exhaustMap(() => asObservable(triggerFunction(this))));
3174
+ result = this.watcher.triggered$.pipe(filter((triggered) => triggered), exhaustMap(() => asObservable(triggerFunction(this))));
3128
3175
  }
3129
- return EMPTY;
3176
+ else {
3177
+ result = EMPTY;
3178
+ }
3179
+ return result;
3130
3180
  }))
3131
3181
  .subscribe();
3132
3182
  }
@@ -3217,21 +3267,25 @@ class DbxFirebaseCollectionLoaderInstance {
3217
3267
  }), shareReplay(1));
3218
3268
  iteratorFilter$ = combineLatest([this._itemsPerPage.pipe(distinctUntilChanged()), this.constraints$]).pipe(map(([limit, constraints]) => ({ limit, constraints, maxPageLoadLimit: this.maxPages })), shareReplay(1));
3219
3269
  firestoreIteration$ = this.collection$.pipe(switchMap((collection) => {
3270
+ let result;
3220
3271
  if (collection) {
3221
- return combineLatest([this.collectionMode$, this.iteratorFilter$, this._restart.pipe(startWith(undefined))]).pipe(throttleTime(100, undefined, { trailing: true }), // prevent rapid changes and executing filters too quickly.
3272
+ result = combineLatest([this.collectionMode$, this.iteratorFilter$, this._restart.pipe(startWith(undefined))]).pipe(throttleTime(100, undefined, { trailing: true }), // prevent rapid changes and executing filters too quickly.
3222
3273
  switchMap(([mode, filter]) => {
3223
- let result;
3274
+ let innerResult;
3224
3275
  if (mode === 'query') {
3225
- result = of(collection.firestoreIteration(filter));
3276
+ innerResult = of(collection.firestoreIteration(filter));
3226
3277
  }
3227
3278
  else {
3228
- result = this.collectionRefs$.pipe(map((refs) => collection.firestoreFixedIteration(refs, filter)));
3279
+ innerResult = this.collectionRefs$.pipe(map((refs) => collection.firestoreFixedIteration(refs, filter)));
3229
3280
  }
3230
- return result;
3281
+ return innerResult;
3231
3282
  }), cleanupDestroyable(), // cleanup the iteration
3232
3283
  shareReplay(1));
3233
3284
  }
3234
- return NEVER; // don't emit anything until collection is provided.
3285
+ else {
3286
+ result = NEVER; // don't emit anything until collection is provided.
3287
+ }
3288
+ return result;
3235
3289
  }), cleanupDestroyable(), // cleanup the iteration
3236
3290
  shareReplay(1));
3237
3291
  queryChangeWatcher$ = this.firestoreIteration$.pipe(map((instance) => iterationQueryDocChangeWatcher({ instance })), shareReplay(1));
@@ -3637,8 +3691,9 @@ function firebaseContextServiceEntityMap() {
3637
3691
  /**
3638
3692
  * Creates EnvironmentProviders that provides a DbxFirebaseModelContextService and the configured class instance.
3639
3693
  *
3640
- * @param config Configuration
3641
- * @returns EnvironmentProviders
3694
+ * @param config - Configuration.
3695
+ * @returns EnvironmentProviders.
3696
+ *
3642
3697
  * @__NO_SIDE_EFFECTS__
3643
3698
  */
3644
3699
  function provideDbxFirebaseModelContextService(config) {
@@ -3806,6 +3861,7 @@ class DbxFirebaseModelTrackerService {
3806
3861
  * @returns
3807
3862
  */
3808
3863
  filterHistoryPairs(filter) {
3864
+ let result;
3809
3865
  if (filter && (filter?.identity || filter?.filterItem)) {
3810
3866
  const { invertFilter = false, identity, filterItem } = filter;
3811
3867
  const allowedIdentities = new Set(asArray(identity));
@@ -3815,9 +3871,12 @@ class DbxFirebaseModelTrackerService {
3815
3871
  const filterItemFn = (x) => {
3816
3872
  return isAllowedIdentityFn(x.identity) ? baseFilterItemFn(x) : of(false);
3817
3873
  };
3818
- return this.filterItemHistoryPairs$.pipe(filterItemsWithObservableDecision(filterItemFn), map((x) => x.map((y) => y.instancePair)), shareReplay(1));
3874
+ result = this.filterItemHistoryPairs$.pipe(filterItemsWithObservableDecision(filterItemFn), map((x) => x.map((y) => y.instancePair)), shareReplay(1));
3875
+ }
3876
+ else {
3877
+ result = this.historyPairs$;
3819
3878
  }
3820
- return this.historyPairs$;
3879
+ return result;
3821
3880
  }
3822
3881
  loadHistoryKeys() {
3823
3882
  return this.dbxModelTrackerService.getAllViewEvents().pipe(map(allDbxModelViewTrackerEventModelKeys));
@@ -4066,8 +4125,8 @@ class DbxFirebaseModelEntitiesWidgetService {
4066
4125
  *
4067
4126
  * If an entry with the same identity is already registered, this will override it by default.
4068
4127
  *
4069
- * @param entries The entries to register
4070
- * @param override Whether to override existing entries (default: true)
4128
+ * @param entries - The entries to register.
4129
+ * @param override - Whether to override existing entries (default: true)
4071
4130
  */
4072
4131
  register(entries, override = true) {
4073
4132
  useIterableOrValue(entries, (entry) => {
@@ -4116,8 +4175,9 @@ const DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN = new InjectionToken('DbxFireba
4116
4175
  /**
4117
4176
  * Creates a DbxFirebaseModelEntitiesWidgetInjectionConfigFactory.
4118
4177
  *
4119
- * @param injector Optional injector to use for the components.
4178
+ * @param injector - Optional injector to use for the components.
4120
4179
  * @returns
4180
+ *
4121
4181
  * @__NO_SIDE_EFFECTS__
4122
4182
  */
4123
4183
  function dbxFirebaseModelEntityWidgetInjectionConfigFactory(injector) {
@@ -4432,8 +4492,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
4432
4492
  /**
4433
4493
  * Creates EnvironmentProviders for DbxFirebaseModelEntitiesWidgetService.
4434
4494
  *
4435
- * @param config Configuration
4436
- * @returns EnvironmentProviders
4495
+ * @param config - Configuration.
4496
+ * @returns EnvironmentProviders.
4497
+ *
4437
4498
  * @__NO_SIDE_EFFECTS__
4438
4499
  */
4439
4500
  function provideDbxFirebaseModelEntitiesWidgetService(config) {
@@ -4617,15 +4678,15 @@ class DbxFirebaseModelKeyComponent {
4617
4678
  modelTypeInstanceSignal = toSignal(this.modelTypeInstance$);
4618
4679
  modelIdentitySignal = toSignal(this.modelIdentity$);
4619
4680
  typeInfoSignal = toSignal(this.typeInfo$);
4620
- typeCanSegueToView = computed(() => this.typeInfoSignal()?.canSegueToView ?? false, ...(ngDevMode ? [{ debugName: "typeCanSegueToView" }] : /* istanbul ignore next */ []));
4681
+ typeCanSegueToViewSignal = computed(() => this.typeInfoSignal()?.canSegueToView ?? false, ...(ngDevMode ? [{ debugName: "typeCanSegueToViewSignal" }] : /* istanbul ignore next */ []));
4621
4682
  sref$ = this.modelTypeInstance$.pipe(switchMap((x) => x?.segueRef$ ?? of(undefined)));
4622
4683
  srefSignal = toSignal(this.sref$);
4623
4684
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFirebaseModelKeyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4624
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxFirebaseModelKeyComponent, isStandalone: true, selector: "dbx-firebase-model-key", inputs: { modelKey: { classPropertyName: "modelKey", publicName: "modelKey", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ modelKeyIdSignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKeySignal()\">(Flat) {{ oneWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKeySignal()\">(Encoded Flat) {{ twoWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n", dependencies: [{ kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "showIcon", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }] });
4685
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxFirebaseModelKeyComponent, isStandalone: true, selector: "dbx-firebase-model-key", inputs: { modelKey: { classPropertyName: "modelKey", publicName: "modelKey", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ modelKeyIdSignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKeySignal()\">(Flat) {{ oneWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKeySignal()\">(Encoded Flat) {{ twoWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToViewSignal()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n", dependencies: [{ kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "showIcon", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }] });
4625
4686
  }
4626
4687
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxFirebaseModelKeyComponent, decorators: [{
4627
4688
  type: Component,
4628
- args: [{ selector: 'dbx-firebase-model-key', standalone: true, imports: [DbxDetailBlockComponent, DbxButtonComponent, DbxClickToCopyTextComponent, DbxAnchorComponent], template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ modelKeyIdSignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKeySignal()\">(Flat) {{ oneWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKeySignal()\">(Encoded Flat) {{ twoWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToView()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n" }]
4689
+ args: [{ selector: 'dbx-firebase-model-key', standalone: true, imports: [DbxDetailBlockComponent, DbxButtonComponent, DbxClickToCopyTextComponent, DbxAnchorComponent], template: "<div class=\"dbx-firebase-model-key\">\n @if (modelKey(); as key) {\n <!-- Key Data -->\n <dbx-detail-block icon=\"key\" header=\"Model Key\">\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ key }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\">{{ modelKeyIdSignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"oneWayFlatModelKeySignal()\">(Flat) {{ oneWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n <dbx-click-to-copy-text [highlighted]=\"true\" class=\"dbx-block\" [copyText]=\"twoWayFlatModelKeySignal()\">(Encoded Flat) {{ twoWayFlatModelKeySignal() }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n\n <!-- Type Info -->\n @if (typeInfoSignal(); as typeInfo) {\n <!-- Model Meta Data -->\n <div>\n <dbx-detail-block [icon]=\"typeInfo.icon\" header=\"Model Type\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.modelType }}</dbx-click-to-copy-text>\n @if (typeInfo.icon) {\n <dbx-click-to-copy-text [copyText]=\"typeInfo.icon\" class=\"dbx-block\">\n Icon:\n <span class=\"dbx-u\">{{ typeInfo.icon }}</span>\n </dbx-click-to-copy-text>\n } @else {\n <span class=\"dbx-notice\">No Icon For Type</span>\n }\n </dbx-detail-block>\n <dbx-detail-block icon=\"dataset\" header=\"Collection Name\">\n <dbx-click-to-copy-text class=\"dbx-block\">{{ typeInfo.identity.collectionName }}</dbx-click-to-copy-text>\n </dbx-detail-block>\n </div>\n\n <!-- Segue Info -->\n @if (typeCanSegueToViewSignal()) {\n <dbx-detail-block icon=\"arrow_forward\" header=\"Segue To View\">\n <div class=\"dbx-hint dbx-small\">This model has a unique view within the app.</div>\n <dbx-anchor [anchor]=\"srefSignal()\"><dbx-button text=\"Go To View\"></dbx-button></dbx-anchor>\n </dbx-detail-block>\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Segue View\">\n <span>This type provides no information for segue directly.</span>\n </dbx-detail-block>\n }\n } @else {\n <dbx-detail-block class=\"dbx-warn\" icon=\"warning\" header=\"No Type Info\">\n <span>There is no type info registered for this model type.</span>\n </dbx-detail-block>\n }\n } @else {\n <div class=\"dbx-firebase-model-key-empty\">No model key provided</div>\n }\n</div>\n" }]
4629
4690
  }], propDecorators: { modelKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "modelKey", required: false }] }] } });
4630
4691
 
4631
4692
  /**
@@ -5385,16 +5446,20 @@ let AbstractRootSingleItemDbxFirebaseDocument = class AbstractRootSingleItemDbxF
5385
5446
  * Sets the SingleItemFirestoreCollection to use.
5386
5447
  */
5387
5448
  setFirestoreCollection = this.updater((state, firestoreCollection) => {
5449
+ let result;
5388
5450
  if (firestoreCollection != null) {
5389
5451
  const id = firestoreCollection.singleItemIdentifier;
5390
- if (id != null) {
5391
- return { ...state, firestoreCollection, id };
5452
+ if (id == null) {
5453
+ throw new Error('AbstractRootSingleItemDbxFirebaseDocument only accepts RootSingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
5454
+ }
5455
+ else {
5456
+ result = { ...state, firestoreCollection, id };
5392
5457
  }
5393
- throw new Error('AbstractRootSingleItemDbxFirebaseDocument only accepts RootSingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
5394
5458
  }
5395
5459
  else {
5396
- return { ...state, firestoreCollection: null };
5460
+ result = { ...state, firestoreCollection: null };
5397
5461
  }
5462
+ return result;
5398
5463
  });
5399
5464
  /**
5400
5465
  * Does nothing on a AbstractRootSingleItemDbxFirebaseDocument.
@@ -5427,7 +5492,7 @@ AbstractRootSingleItemDbxFirebaseDocument = __decorate([
5427
5492
  * @param store - The document store to capture the created model's key into.
5428
5493
  * @param fn - The Firebase create function to wrap.
5429
5494
  * @param config - Optional config with an `onResult` callback.
5430
- * @returns A function that executes the create and sets the resulting key on the store.
5495
+ * @returns Executes the create and sets the resulting key on the store.
5431
5496
  * @__NO_SIDE_EFFECTS__
5432
5497
  */
5433
5498
  function firebaseDocumentStoreCreateFunction(store, fn, config) {
@@ -5476,7 +5541,7 @@ function firebaseDocumentStoreReadFunction(store, fn) {
5476
5541
  * @param store - The document store whose current key is injected into the request params.
5477
5542
  * @param fn - The Firebase update function to wrap.
5478
5543
  * @param config - Optional config with an `onResult` callback.
5479
- * @returns A function that executes the update with the store's key injected.
5544
+ * @returns Executes the update with the store's key injected.
5480
5545
  * @__NO_SIDE_EFFECTS__
5481
5546
  */
5482
5547
  function firebaseDocumentStoreUpdateFunction(store, fn, config) {
@@ -5551,22 +5616,30 @@ class AbstractDbxFirebaseCollectionWithParentStore extends AbstractDbxFirebaseCo
5551
5616
  setSourceMode = this.effect((input) => {
5552
5617
  return input.pipe(distinctUntilChanged(), switchMap((inputMode) => {
5553
5618
  const mode = inputMode?.toLowerCase() ?? 'parent'; // default to parent mode
5619
+ let result;
5554
5620
  if (mode === 'group') {
5555
- return this.currentCollectionGroup$.pipe(tap((collectionGroup) => {
5621
+ result = this.currentCollectionGroup$.pipe(tap((collectionGroup) => {
5556
5622
  this.setFirestoreCollection(collectionGroup);
5557
5623
  }));
5558
5624
  }
5559
- // parent document collection
5560
- return this.currentParent$.pipe(switchMap((parent) => {
5561
- if (parent) {
5562
- return this.collectionFactory$.pipe(tap((collectionFactory) => {
5563
- const collection = collectionFactory(parent);
5564
- this.setFirestoreCollection(collection);
5565
- }));
5566
- }
5567
- this.setFirestoreCollection(undefined);
5568
- return NEVER;
5569
- }));
5625
+ else {
5626
+ // parent document collection
5627
+ result = this.currentParent$.pipe(switchMap((parent) => {
5628
+ let innerResult;
5629
+ if (parent) {
5630
+ innerResult = this.collectionFactory$.pipe(tap((collectionFactory) => {
5631
+ const collection = collectionFactory(parent);
5632
+ this.setFirestoreCollection(collection);
5633
+ }));
5634
+ }
5635
+ else {
5636
+ this.setFirestoreCollection(undefined);
5637
+ innerResult = NEVER;
5638
+ }
5639
+ return innerResult;
5640
+ }));
5641
+ }
5642
+ return result;
5570
5643
  }));
5571
5644
  });
5572
5645
  // MARK: Accessors
@@ -5616,16 +5689,20 @@ class AbstractDbxFirebaseDocumentWithParentStore extends AbstractDbxFirebaseDocu
5616
5689
  setParent = this.effect((input) => {
5617
5690
  return input.pipe(switchMap((parent) => {
5618
5691
  this._setParentDocument(parent);
5692
+ let result;
5619
5693
  if (parent) {
5620
- return this.collectionFactory$.pipe(tap((collectionFactory) => {
5694
+ result = this.collectionFactory$.pipe(tap((collectionFactory) => {
5621
5695
  const collection = collectionFactory(parent);
5622
5696
  this.setFirestoreCollection(collection);
5623
5697
  }));
5624
5698
  }
5625
- // clear the current collection
5626
- this.setFirestoreCollection(undefined);
5627
- // do nothing until a parent is returned.
5628
- return NEVER;
5699
+ else {
5700
+ // clear the current collection
5701
+ this.setFirestoreCollection(undefined);
5702
+ // do nothing until a parent is returned.
5703
+ result = NEVER;
5704
+ }
5705
+ return result;
5629
5706
  }));
5630
5707
  });
5631
5708
  _setParent = this.setParent;
@@ -5663,16 +5740,18 @@ class AbstractSingleItemDbxFirebaseDocument extends AbstractDbxFirebaseDocumentW
5663
5740
  * Sets the SingleItemFirestoreCollection to use.
5664
5741
  */
5665
5742
  setFirestoreCollection = this.updater((state, firestoreCollection) => {
5743
+ let result;
5666
5744
  if (firestoreCollection != null) {
5667
5745
  const id = firestoreCollection.singleItemIdentifier;
5668
- if (id != null) {
5669
- return { ...state, firestoreCollection, id };
5746
+ if (id == null) {
5747
+ throw new Error('AbstractSingleItemDbxFirebaseDocument only accepts SingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
5670
5748
  }
5671
- throw new Error('AbstractSingleItemDbxFirebaseDocument only accepts SingleItemFirestoreCollection values with a singleItemIdentifier set for setFirestoreCollection.');
5749
+ result = { ...state, firestoreCollection, id };
5672
5750
  }
5673
5751
  else {
5674
- return { ...state, firestoreCollection: null };
5752
+ result = { ...state, firestoreCollection: null };
5675
5753
  }
5754
+ return result;
5676
5755
  });
5677
5756
  /**
5678
5757
  * Does nothing on a AbstractSingleItemDbxFirebaseDocument.
@@ -6008,6 +6087,7 @@ class DbxFirebaseNotificationItemWidgetService {
6008
6087
  register(provider, override = true) {
6009
6088
  const { componentClass, notificationTemplateType } = provider;
6010
6089
  const widgetType = dbxWidgetTypeForNotificationTemplateType(notificationTemplateType);
6090
+ let result = false;
6011
6091
  if (override || !this._entries.has(notificationTemplateType)) {
6012
6092
  const notificationTemplateTypeInfo = this.dbxFirebaseNotificationTemplateService.appNotificationTemplateTypeInfoRecordService.appNotificationTemplateTypeInfoRecord[notificationTemplateType];
6013
6093
  if (!notificationTemplateTypeInfo) {
@@ -6024,10 +6104,10 @@ class DbxFirebaseNotificationItemWidgetService {
6024
6104
  };
6025
6105
  this._entries.set(notificationTemplateType, entry);
6026
6106
  this.dbxWidgetService.register(entry.widget, override);
6027
- return true;
6107
+ result = true;
6028
6108
  }
6029
6109
  }
6030
- return false;
6110
+ return result;
6031
6111
  }
6032
6112
  registerDefaultWidget(entry, override = true) {
6033
6113
  return this.dbxWidgetService.register({
@@ -6525,8 +6605,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
6525
6605
  /**
6526
6606
  * Creates EnvironmentProviders that provides a DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationItemWidgetService and AppNotificationTemplateTypeInfoRecordService.
6527
6607
  *
6528
- * @param config Configuration
6529
- * @returns EnvironmentProviders
6608
+ * @param config - Configuration.
6609
+ * @returns EnvironmentProviders.
6530
6610
  */
6531
6611
  function provideDbxFirebaseNotifications(config) {
6532
6612
  const { appNotificationTemplateTypeInfoRecordService } = config;
@@ -7195,7 +7275,7 @@ function storageFileUploadFiles(input) {
7195
7275
  multiUploadsSubscriptionObject.unsub();
7196
7276
  const allFilesAndLatestProgress = new Array(allFiles.length);
7197
7277
  const allFilesAndDetails = allFiles.map((file) => ({ file }));
7198
- const overallProgressPerCompletedFile = (1 / allFilesAndLatestProgress.length);
7278
+ const overallProgressPerCompletedFile = 1 / allFilesAndLatestProgress.length;
7199
7279
  /**
7200
7280
  * Once set, any new file upload task that hits this will return an cancel failure.
7201
7281
  */
@@ -7308,50 +7388,53 @@ function storageFileUploadFiles(input) {
7308
7388
  subscriber.next(nextEvent);
7309
7389
  }
7310
7390
  async function runUploadTaskForFile([file, index]) {
7391
+ let result;
7311
7392
  if (flaggedCancel) {
7312
7393
  onStartFileUploadFlaggedCancelled(index);
7313
- return;
7314
7394
  }
7315
- return new Promise((resolve) => {
7316
- const updateFileUploadProgress = (nextProgress) => {
7317
- // update the progress
7318
- updateUploadProgress({
7319
- index,
7320
- nextProgress
7321
- });
7322
- };
7323
- const updateFileUploadProgressWithUncaughtError = (error) => {
7324
- // error occurred, update the progress with the error
7325
- updateUploadProgress({
7326
- index,
7327
- nonProgressError: error,
7328
- fileUploadTaskDone: true
7329
- });
7330
- // always resolve, never reject
7331
- resolve();
7332
- };
7333
- const completeFileUploadProgress = () => {
7334
- updateUploadProgress({
7335
- index,
7336
- fileUploadTaskDone: true
7337
- });
7338
- resolve();
7339
- };
7340
- // upload the file, subscribe to the progress
7341
- uploadHandler
7342
- .uploadFile(file)
7343
- .then((uploadInstance) => {
7344
- // add to active file indexes
7345
- onStartFileUpload(index, uploadInstance);
7346
- const uploadSubscription = uploadInstance.upload.subscribe({
7347
- next: updateFileUploadProgress,
7348
- error: updateFileUploadProgressWithUncaughtError,
7349
- complete: completeFileUploadProgress
7350
- });
7351
- multiUploadsSubscriptionObject.addSubs(uploadSubscription);
7352
- })
7353
- .catch(updateFileUploadProgressWithUncaughtError);
7354
- });
7395
+ else {
7396
+ result = new Promise((resolve) => {
7397
+ const updateFileUploadProgress = (nextProgress) => {
7398
+ // update the progress
7399
+ updateUploadProgress({
7400
+ index,
7401
+ nextProgress
7402
+ });
7403
+ };
7404
+ const updateFileUploadProgressWithUncaughtError = (error) => {
7405
+ // error occurred, update the progress with the error
7406
+ updateUploadProgress({
7407
+ index,
7408
+ nonProgressError: error,
7409
+ fileUploadTaskDone: true
7410
+ });
7411
+ // always resolve, never reject
7412
+ resolve();
7413
+ };
7414
+ const completeFileUploadProgress = () => {
7415
+ updateUploadProgress({
7416
+ index,
7417
+ fileUploadTaskDone: true
7418
+ });
7419
+ resolve();
7420
+ };
7421
+ // upload the file, subscribe to the progress
7422
+ uploadHandler
7423
+ .uploadFile(file)
7424
+ .then((uploadInstance) => {
7425
+ // add to active file indexes
7426
+ onStartFileUpload(index, uploadInstance);
7427
+ const uploadSubscription = uploadInstance.upload.subscribe({
7428
+ next: updateFileUploadProgress,
7429
+ error: updateFileUploadProgressWithUncaughtError,
7430
+ complete: completeFileUploadProgress
7431
+ });
7432
+ multiUploadsSubscriptionObject.addSubs(uploadSubscription);
7433
+ })
7434
+ .catch(updateFileUploadProgressWithUncaughtError);
7435
+ });
7436
+ }
7437
+ return result;
7355
7438
  }
7356
7439
  // run upload task for each file
7357
7440
  const fileTuples = allFiles.map((file, index) => [file, index]);
@@ -7828,9 +7911,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7828
7911
  args: [{ name: 'twoWayFlatFirestoreModelKey', standalone: true }]
7829
7912
  }] });
7830
7913
 
7831
- const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY = 'id';
7832
- const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY = 'key';
7833
- const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = '0';
7914
+ const DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_ID_PARAM_KEY = 'id';
7915
+ const DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_KEY_PARAM_KEY = 'key';
7916
+ const DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_USE_PARAM_VALUE = '0';
7834
7917
  /**
7835
7918
  * Creates a {@link DbxFirebaseIdRouteParamRedirectInstance} configured to read a model key from route params.
7836
7919
  *
@@ -7838,7 +7921,7 @@ const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = '0';
7838
7921
  * @param defaultParamKey - The route parameter key to read. Defaults to 'key'.
7839
7922
  * @returns A new route param redirect instance for model keys.
7840
7923
  */
7841
- function dbxFirebaseKeyRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY) {
7924
+ function dbxFirebaseKeyRouteParamRedirect(dbxRouterService, defaultParamKey = DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_KEY_PARAM_KEY) {
7842
7925
  return dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey);
7843
7926
  }
7844
7927
  /**
@@ -7848,10 +7931,10 @@ function dbxFirebaseKeyRouteParamRedirect(dbxRouterService, defaultParamKey = DB
7848
7931
  * @param defaultParamKey - The route parameter key to read. Defaults to 'id'.
7849
7932
  * @returns A new route param redirect instance for model IDs with configurable redirect behavior.
7850
7933
  */
7851
- function dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY) {
7934
+ function dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey = DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_ID_PARAM_KEY) {
7852
7935
  const _paramReader = dbxRouteParamReaderInstance(dbxRouterService, defaultParamKey);
7853
7936
  const _paramRedirect = new DbxRouteParamDefaultRedirectInstance(_paramReader);
7854
- const _useDefaultParamDecider = new BehaviorSubject(DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE);
7937
+ const _useDefaultParamDecider = new BehaviorSubject(DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_USE_PARAM_VALUE);
7855
7938
  const _useDefaultParam$ = _useDefaultParamDecider.pipe(map((x) => {
7856
7939
  let result;
7857
7940
  if (typeof x === 'string') {
@@ -7940,8 +8023,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7940
8023
  /**
7941
8024
  * The default factory function for the DbxFirebaseStorageContext.
7942
8025
  *
7943
- * @param base Optional base configuration to use.
8026
+ * @param base - Optional base configuration to use.
7944
8027
  * @returns Factory function for the DbxFirebaseStorageContext.
8028
+ *
7945
8029
  * @__NO_SIDE_EFFECTS__
7946
8030
  */
7947
8031
  function dbxFirebaseStorageProvidersContextConfigFactory(base) {
@@ -7991,8 +8075,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
7991
8075
  /**
7992
8076
  * Creates EnvironmentProviders for DbxFirebaseModelTypesService.
7993
8077
  *
7994
- * @param config Configuration
7995
- * @returns EnvironmentProviders
8078
+ * @param config - Configuration.
8079
+ * @returns EnvironmentProviders.
8080
+ *
7996
8081
  * @__NO_SIDE_EFFECTS__
7997
8082
  */
7998
8083
  function provideDbxFirebaseModelTypesService(config) {
@@ -8013,7 +8098,7 @@ function provideDbxFirebaseModelTypesService(config) {
8013
8098
  * Requires the following already be provided/called:
8014
8099
  * - provideDbxModelService()
8015
8100
  *
8016
- * @param config Configuration for provideDbxFirebase().
8101
+ * @param config - Configuration for provideDbxFirebase().
8017
8102
  * @returns EnvironmentProviders for the DbxFirebase configuration.
8018
8103
  */
8019
8104
  function provideDbxFirebase(config) {
@@ -8044,5 +8129,5 @@ function provideDbxFirebase(config) {
8044
8129
  * Generated bundle index. Do not edit.
8045
8130
  */
8046
8131
 
8047
- export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseModelEntityWidgetDirective, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_TOKEN, DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN, DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserEventsListenerService, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthLoginService, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentForgeFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, DbxFirebaseDocumentStoreContextStore, DbxFirebaseDocumentStoreContextStoreDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailForgeFormComponent, DbxFirebaseEmailRecoveryForgeFormComponent, DbxFirebaseEmulatorService, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseManageAuthProvidersComponent, DbxFirebaseModelContextService, DbxFirebaseModelEntitiesComponent, DbxFirebaseModelEntitiesDebugWidgetComponent, DbxFirebaseModelEntitiesPopoverButtonComponent, DbxFirebaseModelEntitiesPopoverComponent, DbxFirebaseModelEntitiesSource, DbxFirebaseModelEntitiesWidgetService, DbxFirebaseModelEntitiesWidgetServiceConfig, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelKeyComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePasswordResetComponent, DbxFirebasePasswordResetFormComponent, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileDownloadButtonComponent, DbxFirebaseStorageFileDownloadService, DbxFirebaseStorageFileDownloadStorage, DbxFirebaseStorageFileGroupDocumentStoreDirective, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_APP_CHECK_TOKEN, FIREBASE_APP_TOKEN, FIREBASE_AUTH_TOKEN, FIREBASE_FIRESTORE_TOKEN, FIREBASE_FUNCTIONS_TOKEN, FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX, FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP, FIREBASE_STORAGE_TOKEN, FlatFirestoreModelKeyPipe, IMPORTS_AND_EXPORTS, LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP, NotificationBoxCollectionStore, NotificationBoxDocumentStore, NotificationCollectionStore, NotificationDocumentStore, NotificationSummaryCollectionStore, NotificationSummaryDocumentStore, NotificationUserCollectionStore, NotificationUserDocumentStore, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, StorageFileCollectionStore, StorageFileDocumentStore, StorageFileGroupDocumentStore, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, createDbxFirebaseAppCheck, createDbxFirebaseAuth, createDbxFirebaseFirestore, createDbxFirebaseFunctions, createDbxFirebaseStorage, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelEntityWidgetInjectionConfigFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageFileDownloadServiceCustomSourceFromObs, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthState, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, firebaseIdToken, firebaseProviderIdToLoginMethodType, isDbxFirebaseModelEntityWithStore, linkDocumentStoreToParentContextStores, loginMethodTypeToFirebaseProviderId, modelDoesNotExistError, parseDbxFirebaseEmulatorsConfig, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreContextStore, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseModelEntitiesWidgetService, provideDbxFirebaseNotifications, provideDbxFirebaseStorageFileService, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
8132
+ export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseModelEntityWidgetDirective, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_COMPONENT_CONFIGURATION, DBX_FIREBASE_APP_OPTIONS_TOKEN, DBX_FIREBASE_DOCUMENT_STORE_CONTEXT_STORE_TOKEN, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_MODEL_ENTITY_WITH_STORE_TOKEN, DBX_FIREBASE_STORAGEFILE_DOWNLOAD_STORAGE_ACCESSOR_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_ID_PARAM_KEY, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_KEY_PARAM_KEY, DEFAULT_DBX_FIREBASE_ID_ROUTER_PARAM_USE_PARAM_VALUE, DEFAULT_DBX_FIREBASE_MODEL_ENTITIES_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY, DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserEventsListenerService, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthLoginService, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentForgeFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreContextModelEntitiesSourceDirective, DbxFirebaseDocumentStoreContextStore, DbxFirebaseDocumentStoreContextStoreDirective, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailForgeFormComponent, DbxFirebaseEmailRecoveryForgeFormComponent, DbxFirebaseEmulatorService, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseManageAuthProvidersComponent, DbxFirebaseModelContextService, DbxFirebaseModelEntitiesComponent, DbxFirebaseModelEntitiesDebugWidgetComponent, DbxFirebaseModelEntitiesPopoverButtonComponent, DbxFirebaseModelEntitiesPopoverComponent, DbxFirebaseModelEntitiesSource, DbxFirebaseModelEntitiesWidgetService, DbxFirebaseModelEntitiesWidgetServiceConfig, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelKeyComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceListComponent, DbxFirebaseModelTypeInstanceListViewComponent, DbxFirebaseModelTypeInstanceListViewItemComponent, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModelViewedEventDirective, DbxFirebaseModule, DbxFirebaseNotificationBoxCollectionStoreDirective, DbxFirebaseNotificationBoxDocumentStoreDirective, DbxFirebaseNotificationCollectionStoreDirective, DbxFirebaseNotificationDocumentStoreDirective, DbxFirebaseNotificationItemContentComponent, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemStorePopoverButtonComponent, DbxFirebaseNotificationItemStorePopoverComponent, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePasswordResetComponent, DbxFirebasePasswordResetFormComponent, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageFileCollectionStoreDirective, DbxFirebaseStorageFileDocumentStoreDirective, DbxFirebaseStorageFileDownloadButtonComponent, DbxFirebaseStorageFileDownloadService, DbxFirebaseStorageFileDownloadStorage, DbxFirebaseStorageFileGroupDocumentStoreDirective, DbxFirebaseStorageFileUploadActionHandlerDirective, DbxFirebaseStorageFileUploadInitializeDocumentDirective, DbxFirebaseStorageFileUploadModule, DbxFirebaseStorageFileUploadStore, DbxFirebaseStorageFileUploadStoreDirective, DbxFirebaseStorageFileUploadSyncDirective, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_APP_CHECK_TOKEN, FIREBASE_APP_TOKEN, FIREBASE_AUTH_TOKEN, FIREBASE_FIRESTORE_TOKEN, FIREBASE_FUNCTIONS_TOKEN, FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX, FIREBASE_PROVIDER_ID_TO_LOGIN_METHOD_TYPE_MAP, FIREBASE_STORAGE_TOKEN, FlatFirestoreModelKeyPipe, IMPORTS_AND_EXPORTS, LOGIN_METHOD_TYPE_TO_FIREBASE_PROVIDER_ID_MAP, NotificationBoxCollectionStore, NotificationBoxDocumentStore, NotificationCollectionStore, NotificationDocumentStore, NotificationSummaryCollectionStore, NotificationSummaryDocumentStore, NotificationUserCollectionStore, NotificationUserDocumentStore, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, StorageFileCollectionStore, StorageFileDocumentStore, StorageFileGroupDocumentStore, StorageFileUploadFilesError, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, createDbxFirebaseAppCheck, createDbxFirebaseAuth, createDbxFirebaseFirestore, createDbxFirebaseFunctions, createDbxFirebaseStorage, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseDocumentStoreContextModelEntitiesSourceFactory, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelEntityWidgetInjectionConfigFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageFileDownloadServiceCustomSourceFromObs, dbxFirebaseStorageProvidersContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultDbxFirebaseStorageFileDownloadStorageAccessorFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthState, firebaseAuthTokenFromUser, firebaseCollectionStoreCreateFunction, firebaseCollectionStoreCrudFunction, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, firebaseIdToken, firebaseProviderIdToLoginMethodType, isDbxFirebaseModelEntityWithStore, linkDocumentStoreToParentContextStores, loginMethodTypeToFirebaseProviderId, modelDoesNotExistError, parseDbxFirebaseEmulatorsConfig, provideDbxFirebase, provideDbxFirebaseAnalyticsUserEventsListenerService, provideDbxFirebaseApp, provideDbxFirebaseAuth, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDevelopment, provideDbxFirebaseDocumentStoreContextStore, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideDbxFirebaseFunctions, provideDbxFirebaseLogin, provideDbxFirebaseModelContextService, provideDbxFirebaseModelEntitiesWidgetService, provideDbxFirebaseNotifications, provideDbxFirebaseStorageFileService, provideDbxFirestoreCollection, provideNotificationFirestoreCollections, provideStorageFileFirestoreCollections, provideSystemStateFirestoreCollections, providedDbxFirebaseStorage, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction, storageFileUploadFiles, storageFileUploadHandler };
8048
8133
  //# sourceMappingURL=dereekb-dbx-firebase.mjs.map