@dereekb/dbx-firebase 11.0.21 → 11.1.1

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 (139) hide show
  1. package/esm2022/lib/analytics/analytics.user.source.mjs +1 -1
  2. package/esm2022/lib/auth/auth.mjs +1 -1
  3. package/esm2022/lib/auth/login/login.component.mjs +1 -1
  4. package/esm2022/lib/auth/login/login.email.content.component.mjs +1 -1
  5. package/esm2022/lib/auth/login/login.email.form.component.mjs +1 -1
  6. package/esm2022/lib/auth/login/login.service.mjs +4 -4
  7. package/esm2022/lib/auth/login/register.component.mjs +1 -1
  8. package/esm2022/lib/auth/service/firebase.auth.service.delegate.mjs +3 -3
  9. package/esm2022/lib/auth/service/firebase.auth.service.mjs +1 -1
  10. package/esm2022/lib/development/development.popup.content.component.mjs +1 -1
  11. package/esm2022/lib/development/development.popup.content.form.component.mjs +1 -1
  12. package/esm2022/lib/development/development.widget.mjs +1 -1
  13. package/esm2022/lib/development/development.widget.service.mjs +1 -1
  14. package/esm2022/lib/firebase/firebase.emulator.module.mjs +1 -1
  15. package/esm2022/lib/firebase/firebase.emulator.service.mjs +1 -1
  16. package/esm2022/lib/firestore/firebase.firestore.module.mjs +16 -3
  17. package/esm2022/lib/index.mjs +2 -1
  18. package/esm2022/lib/model/loader/document.loader.instance.mjs +1 -1
  19. package/esm2022/lib/model/modules/model/model.history.component.mjs +1 -1
  20. package/esm2022/lib/model/modules/model/model.history.popover.component.mjs +3 -3
  21. package/esm2022/lib/model/modules/model/model.tracker.service.mjs +4 -4
  22. package/esm2022/lib/model/modules/model/model.types.list.component.mjs +1 -1
  23. package/esm2022/lib/model/modules/model/model.types.service.mjs +7 -4
  24. package/esm2022/lib/model/modules/store/index.mjs +4 -1
  25. package/esm2022/lib/model/modules/store/model.store.module.mjs +5 -3
  26. package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +1 -1
  27. package/esm2022/lib/model/modules/store/store.collection.change.if.directive.mjs +1 -1
  28. package/esm2022/lib/model/modules/store/store.document.directive.mjs +20 -5
  29. package/esm2022/lib/model/modules/store/store.document.mjs +17 -4
  30. package/esm2022/lib/model/modules/store/store.document.router.directive.mjs +15 -28
  31. package/esm2022/lib/model/modules/store/store.document.router.key.directive.mjs +15 -23
  32. package/esm2022/lib/model/modules/store/store.document.twoway.key.directive.mjs +24 -0
  33. package/esm2022/lib/model/modules/store/store.document.twoway.key.source.directive.mjs +21 -0
  34. package/esm2022/lib/model/modules/store/store.document.twoway.key.source.mjs +16 -0
  35. package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +1 -1
  36. package/esm2022/lib/model/modules/store/store.subcollection.document.mjs +1 -1
  37. package/esm2022/lib/model/modules/store/store.subcollection.mjs +1 -1
  38. package/esm2022/lib/model/modules/store/store.subcollection.rxjs.mjs +1 -1
  39. package/esm2022/lib/model/service/model.context.mjs +1 -1
  40. package/esm2022/lib/modules/index.mjs +2 -0
  41. package/esm2022/lib/modules/notification/component/index.mjs +5 -0
  42. package/esm2022/lib/modules/notification/component/notificationitem.content.component.mjs +21 -0
  43. package/esm2022/lib/modules/notification/component/notificationitem.list.component.mjs +81 -0
  44. package/esm2022/lib/modules/notification/component/notificationitem.view.component.mjs +44 -0
  45. package/esm2022/lib/modules/notification/component/notificationitem.view.default.component.mjs +25 -0
  46. package/esm2022/lib/modules/notification/component/notificationitem.view.directive.mjs +14 -0
  47. package/esm2022/lib/modules/notification/container/index.mjs +3 -0
  48. package/esm2022/lib/modules/notification/container/notification.item.store.popover.button.component.mjs +52 -0
  49. package/esm2022/lib/modules/notification/container/notification.item.store.popover.component.mjs +47 -0
  50. package/esm2022/lib/modules/notification/index.mjs +5 -0
  51. package/esm2022/lib/modules/notification/notification.module.mjs +102 -0
  52. package/esm2022/lib/modules/notification/service/index.mjs +4 -0
  53. package/esm2022/lib/modules/notification/service/notification.template.service.mjs +28 -0
  54. package/esm2022/lib/modules/notification/service/notificationitem.widget.mjs +11 -0
  55. package/esm2022/lib/modules/notification/service/notificationitem.widget.service.mjs +58 -0
  56. package/esm2022/lib/modules/notification/store/index.mjs +10 -0
  57. package/esm2022/lib/modules/notification/store/notification.item.store.mjs +30 -0
  58. package/esm2022/lib/modules/notification/store/notificationbox.collection.store.directive.mjs +20 -0
  59. package/esm2022/lib/modules/notification/store/notificationbox.collection.store.mjs +16 -0
  60. package/esm2022/lib/modules/notification/store/notificationbox.document.store.directive.mjs +20 -0
  61. package/esm2022/lib/modules/notification/store/notificationbox.document.store.mjs +22 -0
  62. package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.directive.mjs +20 -0
  63. package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.mjs +16 -0
  64. package/esm2022/lib/modules/notification/store/notificationsummary.document.store.directive.mjs +20 -0
  65. package/esm2022/lib/modules/notification/store/notificationsummary.document.store.mjs +34 -0
  66. package/esm2022/lib/modules/notification/store/notificationuser.collection.store.directive.mjs +20 -0
  67. package/esm2022/lib/modules/notification/store/notificationuser.collection.store.mjs +16 -0
  68. package/esm2022/lib/modules/notification/store/notificationuser.document.store.directive.mjs +20 -0
  69. package/esm2022/lib/modules/notification/store/notificationuser.document.store.mjs +18 -0
  70. package/esm2022/lib/pipe/key.pipe.mjs +1 -1
  71. package/fesm2022/dereekb-dbx-firebase.mjs +839 -135
  72. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
  73. package/lib/analytics/analytics.user.source.d.ts +1 -1
  74. package/lib/auth/auth.d.ts +1 -1
  75. package/lib/auth/login/login.component.d.ts +1 -1
  76. package/lib/auth/login/login.email.content.component.d.ts +1 -1
  77. package/lib/auth/login/login.email.form.component.d.ts +1 -1
  78. package/lib/auth/login/register.component.d.ts +1 -1
  79. package/lib/auth/service/firebase.auth.service.d.ts +1 -1
  80. package/lib/development/development.popup.content.component.d.ts +2 -2
  81. package/lib/development/development.popup.content.form.component.d.ts +1 -1
  82. package/lib/development/development.widget.d.ts +2 -2
  83. package/lib/development/development.widget.service.d.ts +1 -1
  84. package/lib/firebase/firebase.emulator.service.d.ts +1 -1
  85. package/lib/firestore/firebase.firestore.module.d.ts +11 -4
  86. package/lib/index.d.ts +1 -0
  87. package/lib/model/loader/document.loader.instance.d.ts +1 -1
  88. package/lib/model/modules/model/model.history.component.d.ts +2 -2
  89. package/lib/model/modules/model/model.history.popover.component.d.ts +2 -2
  90. package/lib/model/modules/model/model.types.list.component.d.ts +2 -2
  91. package/lib/model/modules/model/model.types.service.d.ts +2 -1
  92. package/lib/model/modules/store/index.d.ts +3 -0
  93. package/lib/model/modules/store/model.store.module.d.ts +3 -1
  94. package/lib/model/modules/store/store.collection.change.directive.d.ts +1 -1
  95. package/lib/model/modules/store/store.collection.change.if.directive.d.ts +1 -1
  96. package/lib/model/modules/store/store.document.directive.d.ts +23 -16
  97. package/lib/model/modules/store/store.document.router.directive.d.ts +7 -15
  98. package/lib/model/modules/store/store.document.router.key.directive.d.ts +8 -14
  99. package/lib/model/modules/store/store.document.twoway.key.directive.d.ts +15 -0
  100. package/lib/model/modules/store/store.document.twoway.key.source.d.ts +10 -0
  101. package/lib/model/modules/store/store.document.twoway.key.source.directive.d.ts +13 -0
  102. package/lib/model/modules/store/store.subcollection.d.ts +1 -1
  103. package/lib/model/modules/store/store.subcollection.directive.d.ts +1 -1
  104. package/lib/model/modules/store/store.subcollection.document.d.ts +1 -1
  105. package/lib/model/modules/store/store.subcollection.rxjs.d.ts +1 -1
  106. package/lib/model/service/model.context.d.ts +3 -3
  107. package/lib/modules/index.d.ts +1 -0
  108. package/lib/modules/notification/component/index.d.ts +4 -0
  109. package/lib/modules/notification/component/notificationitem.content.component.d.ts +9 -0
  110. package/lib/modules/notification/component/notificationitem.content.scss +5 -0
  111. package/lib/modules/notification/component/notificationitem.list.component.d.ts +24 -0
  112. package/lib/modules/notification/component/notificationitem.view.component.d.ts +15 -0
  113. package/lib/modules/notification/component/notificationitem.view.default.component.d.ts +9 -0
  114. package/lib/modules/notification/component/notificationitem.view.directive.d.ts +8 -0
  115. package/lib/modules/notification/container/index.d.ts +2 -0
  116. package/lib/modules/notification/container/notification.item.store.popover.button.component.d.ts +17 -0
  117. package/lib/modules/notification/container/notification.item.store.popover.component.d.ts +50 -0
  118. package/lib/modules/notification/index.d.ts +4 -0
  119. package/lib/modules/notification/notification.module.d.ts +30 -0
  120. package/lib/modules/notification/service/index.d.ts +3 -0
  121. package/lib/modules/notification/service/notification.template.service.d.ts +11 -0
  122. package/lib/modules/notification/service/notificationitem.widget.d.ts +26 -0
  123. package/lib/modules/notification/service/notificationitem.widget.service.d.ts +22 -0
  124. package/lib/modules/notification/store/index.d.ts +9 -0
  125. package/lib/modules/notification/store/notification.item.store.d.ts +28 -0
  126. package/lib/modules/notification/store/notificationbox.collection.store.d.ts +8 -0
  127. package/lib/modules/notification/store/notificationbox.collection.store.directive.d.ts +9 -0
  128. package/lib/modules/notification/store/notificationbox.document.store.d.ts +13 -0
  129. package/lib/modules/notification/store/notificationbox.document.store.directive.d.ts +9 -0
  130. package/lib/modules/notification/store/notificationsummary.collection.store.d.ts +8 -0
  131. package/lib/modules/notification/store/notificationsummary.collection.store.directive.d.ts +9 -0
  132. package/lib/modules/notification/store/notificationsummary.document.store.d.ts +21 -0
  133. package/lib/modules/notification/store/notificationsummary.document.store.directive.d.ts +9 -0
  134. package/lib/modules/notification/store/notificationuser.collection.store.d.ts +8 -0
  135. package/lib/modules/notification/store/notificationuser.collection.store.directive.d.ts +9 -0
  136. package/lib/modules/notification/store/notificationuser.document.store.d.ts +11 -0
  137. package/lib/modules/notification/store/notificationuser.document.store.directive.d.ts +9 -0
  138. package/lib/pipe/key.pipe.d.ts +1 -1
  139. package/package.json +1 -1
@@ -1,14 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, Injectable, InjectionToken, Component, Optional, Inject, Input, Directive, EventEmitter, Output, NgModule, Injector, ViewChild, HostListener, ElementRef, ChangeDetectionStrategy, forwardRef, NgZone, Pipe } from '@angular/core';
3
3
  import { DbxAnalyticsService } from '@dereekb/dbx-analytics';
4
- import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, lazyFrom, switchMapWhileTrue, loadingStateFromObs, cleanupDestroyable, pageItemAccumulatorCurrentPage, accumulatorFlattenPageListLoadingState, useFirst, itemAccumulatorNextPageUntilResultsCount, iteratorNextPageUntilPage, iteratorNextPageUntilMaxPageLoadLimit, pageLoadingStateFromObs, useAsObservable, mapEachAsync, invertObservableDecision, filterItemsWithObservableDecision, distinctUntilModelKeyChange, successResult, beginLoading, errorResult, isLoadingStateLoading, cleanup, mapLoadingState } from '@dereekb/rxjs';
4
+ import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, lazyFrom, switchMapWhileTrue, loadingStateFromObs, cleanupDestroyable, pageItemAccumulatorCurrentPage, accumulatorFlattenPageListLoadingState, useFirst, itemAccumulatorNextPageUntilResultsCount, iteratorNextPageUntilPage, iteratorNextPageUntilMaxPageLoadLimit, pageLoadingStateFromObs, useAsObservable, filterMaybeArray, mapEachAsync, invertObservableDecision, filterItemsWithObservableDecision, distinctUntilModelKeyChange, successResult, beginLoading, errorResult, isLoadingStateLoading, cleanup, mapLoadingState, mapLoadingStateValueWithOperator } from '@dereekb/rxjs';
5
5
  import { switchMap, of, shareReplay, map, distinctUntilChanged, EMPTY, catchError, firstValueFrom, BehaviorSubject, combineLatest, first, from, tap, interval, exhaustMap, filter, take, startWith, Subject, throttleTime, NEVER, combineLatestWith } from 'rxjs';
6
6
  import * as i3 from '@dereekb/dbx-core';
7
- import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, AbstractSubscriptionDirective, AbstractIfDirective, dbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance, DbxRouterService, LockSetComponentStore, newWithInjector } from '@dereekb/dbx-core';
7
+ import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate, AbstractSubscriptionDirective, AbstractIfDirective, DbxRouteModelIdDirective, DbxRouteModelKeyDirective, LockSetComponentStore, newWithInjector, DbxValuePipeModule, dbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance } from '@dereekb/dbx-core';
8
8
  import * as i3$1 from '@angular/fire/auth';
9
9
  import { Auth, authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, reauthenticateWithPopup, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
10
- import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, runAsyncTasksForValues, forEachKeyValue, countAllInNestedArray, invertDecision, readableError, isMaybeSo, firstValue } from '@dereekb/util';
11
- import { safeFormatToISO8601DateString, msToSeconds } from '@dereekb/date';
10
+ import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeArrayValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, runAsyncTasksForValues, forEachKeyValue, countAllInNestedArray, invertDecision, readableError, isMaybeSo, firstValue } from '@dereekb/util';
11
+ import { safeFormatToISO8601DateString, msToSeconds, isSameDate } from '@dereekb/date';
12
12
  import { sendPasswordResetEmail } from 'firebase/auth';
13
13
  import { getToken, initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
14
14
  import * as i2$2 from '@angular/fire/app-check';
@@ -20,9 +20,9 @@ import { MatIconModule } from '@angular/material/icon';
20
20
  import * as i1$1 from '@angular/common';
21
21
  import { CommonModule } from '@angular/common';
22
22
  import * as i1 from '@dereekb/dbx-web';
23
- import { DbxRouterAnchorModule, DbxReadableErrorModule, DbxActionModule, DbxButtonModule, DbxWidgetService, AbstractDbxSelectionListWrapperDirective, provideDbxListViewWrapper, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListViewDirective, provideDbxListView, DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE, AbstractDbxValueListViewItemComponent, TwoColumnsContextStore, AbstractPopupDirective, DbxPopupService, DbxWidgetModule, DbxTextModule, DbxBlockLayoutModule, DbxTwoColumnLayoutModule, DbxPopupInteractionModule, DbxListLayoutModule, DbxModelTypesService, DbxModelTrackerService, allDbxModelViewTrackerEventModelKeys, AbstractPopoverDirective, AbstractPopoverRefDirective, DbxPopoverService, DbxModelObjectStateService, DbxModelInfoModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxListViewWrapper } from '@dereekb/dbx-web';
23
+ import { DbxRouterAnchorModule, DbxReadableErrorModule, DbxActionModule, DbxButtonModule, DbxWidgetService, AbstractDbxSelectionListWrapperDirective, provideDbxListViewWrapper, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListViewDirective, provideDbxListView, DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE, AbstractDbxValueListViewItemComponent, TwoColumnsContextStore, AbstractPopupDirective, DbxPopupService, DbxWidgetModule, DbxTextModule, DbxBlockLayoutModule, DbxTwoColumnLayoutModule, DbxPopupInteractionModule, DbxListLayoutModule, DbxModelTypesService, DbxModelTrackerService, allDbxModelViewTrackerEventModelKeys, AbstractPopoverDirective, AbstractPopoverRefDirective, DbxPopoverService, DbxModelObjectStateService, DbxModelInfoModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxListViewWrapper, AbstractDbxWidgetComponent, DbxSectionLayoutModule } from '@dereekb/dbx-web';
24
24
  import * as i1$3 from '@dereekb/firebase';
25
- import { firebaseAuthErrorToReadableError, FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFunctionTypeEnum, clientFirebaseFirestoreContextFactory, SystemStateFirestoreCollections, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, iterationQueryDocChangeWatcher, firebaseQuerySnapshotAccumulator, firebaseQueryItemAccumulator, firestoreModelKeysFromDocuments, firestoreModelIdsFromDocuments, documentReferencesFromDocuments, getDocumentSnapshots, getDataFromDocumentSnapshots, latestSnapshotsFromDocuments, dataFromDocumentSnapshots, loadDocumentsForKeys, loadDocumentsForDocumentReferences, loadDocumentsForIds, firestoreModelKeyCollectionTypePair, buildFirebaseCollectionTypeModelTypeMap, FirestoreAccessorStreamMode, firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, documentDataWithIdAndKey, inferKeyFromTwoWayFlatFirestoreModelKey, firestoreModelKeyParentKey, clientFirebaseStorageContextFactory } from '@dereekb/firebase';
25
+ import { firebaseAuthErrorToReadableError, FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFunctionTypeEnum, clientFirebaseFirestoreContextFactory, SystemStateFirestoreCollections, NotificationFirestoreCollections, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, iterationQueryDocChangeWatcher, firebaseQuerySnapshotAccumulator, firebaseQueryItemAccumulator, firestoreModelKeysFromDocuments, firestoreModelIdsFromDocuments, documentReferencesFromDocuments, getDocumentSnapshots, getDataFromDocumentSnapshots, latestSnapshotsFromDocuments, dataFromDocumentSnapshots, loadDocumentsForKeys, loadDocumentsForDocumentReferences, loadDocumentsForIds, firestoreModelKeyCollectionTypePair, buildFirebaseCollectionTypeModelTypeMap, FirestoreAccessorStreamMode, firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, flatFirestoreModelKey, twoWayFlatFirestoreModelKey, documentDataWithIdAndKey, isClientFirebaseError, FIRESTORE_PERMISSION_DENIED_ERROR_CODE, inferKeyFromTwoWayFlatFirestoreModelKey, firestoreModelKeyParentKey, AppNotificationTemplateTypeInfoRecordService, NotificationFunctions, unreadNotificationItems, clientFirebaseStorageContextFactory } from '@dereekb/firebase';
26
26
  import * as i4 from '@dereekb/dbx-form';
27
27
  import { AbstractAsyncFormlyFormDirective, usernamePasswordLoginFields, provideFormlyContext, AbstractSyncFormlyFormDirective, emailField, DbxFormIoModule, DbxFormModule, DbxFormlyModule, DbxFormActionModule, DbxFormFormlyTextFieldModule, AbstractConfigAsyncFormlyFormDirective, pickableItemChipField, filterPickableItemFieldValuesByLabel } from '@dereekb/dbx-form';
28
28
  import { initializeApp } from 'firebase/app';
@@ -37,6 +37,7 @@ import { provideFirestore, persistentMultipleTabManager, persistentSingleTabMana
37
37
  import { HTTP_INTERCEPTORS } from '@angular/common/http';
38
38
  import { MatSnackBar } from '@angular/material/snack-bar';
39
39
  import { __decorate, __param, __metadata } from 'tslib';
40
+ import { ComponentStore } from '@ngrx/component-store';
40
41
 
41
42
  function authUserInfoFromAuthUser(user) {
42
43
  return {
@@ -572,13 +573,13 @@ class DbxFirebaseAuthLoginService {
572
573
  return this._providers.get(type);
573
574
  }
574
575
  getLoginProviders(types) {
575
- return filterMaybeValues(mapIterable(types ?? [], (x) => this._providers.get(x)));
576
+ return filterMaybeArrayValues(mapIterable(types ?? [], (x) => this._providers.get(x)));
576
577
  }
577
578
  getRegisterProvider(type) {
578
579
  return this._providers.get(type);
579
580
  }
580
581
  getRegisterProviders(types) {
581
- return filterMaybeValues(mapIterable(types ?? [], (x) => this._providers.get(x))).filter((x) => x.registrationComponentClass !== false);
582
+ return filterMaybeArrayValues(mapIterable(types ?? [], (x) => this._providers.get(x))).filter((x) => x.registrationComponentClass !== false);
582
583
  }
583
584
  getProviderAssets(type) {
584
585
  return this._assets.get(type);
@@ -1479,7 +1480,7 @@ function authRolesObsWithClaimsService(config) {
1479
1480
  };
1480
1481
  }
1481
1482
  function defaultDbxFirebaseAuthServiceDelegateWithClaimsService(config) {
1482
- if (filterMaybeValues([config.stateForLoggedInUser, config.stateForLoggedInUserToken, config.authUserStateObs]).length > 1) {
1483
+ if (filterMaybeArrayValues([config.stateForLoggedInUser, config.stateForLoggedInUserToken, config.authUserStateObs]).length > 1) {
1483
1484
  throw new Error('Cannot specify a combination of "stateForLoggedInUserToken", "stateForLoggedInUser" and "authUserStateObs". Must specify one at max.');
1484
1485
  }
1485
1486
  const authUserStateObs = config.authUserStateObs ?? authUserStateFromFirebaseAuthServiceFunction(config.stateForLoggedInUserToken ? stateFromTokenForLoggedInUserFunction(config.stateForLoggedInUserToken) : config.stateForLoggedInUser);
@@ -2430,7 +2431,13 @@ const DBX_FIRESTORE_CONTEXT_TOKEN = new InjectionToken('DBX_FIRESTORE_CONTEXT_TO
2430
2431
 
2431
2432
  function provideSystemStateFirestoreCollections(appCollection) {
2432
2433
  if (!appCollection.systemStateCollection) {
2433
- throw new Error(`SystemStateFirestoreCollections could not be provided using the app's app collection. Set provideSystemStateFirestoreCollections to false in DbxFirebaseFirestoreCollectionModuleConfig to prevent auto-initialization, or update your aoo's collection class to implement SystemStateFirestoreCollections.`);
2434
+ throw new Error(`SystemStateFirestoreCollections could not be provided using the app's app collection. Set provideSystemStateFirestoreCollections to false in DbxFirebaseFirestoreCollectionModuleConfig to prevent auto-initialization, or update your app's collection class to implement SystemStateFirestoreCollections.`);
2435
+ }
2436
+ return appCollection;
2437
+ }
2438
+ function provideNotificationFirestoreCollections(appCollection) {
2439
+ if (!appCollection.notificationSummaryCollection) {
2440
+ throw new Error(`NotificationFirestoreCollections could not be provided using the app's app collection. Set provideNotificationFirestoreCollections to false in DbxFirebaseFirestoreCollectionModuleConfig to prevent auto-initialization, or update your app's collection class to implement NotificationFirestoreCollections.`);
2434
2441
  }
2435
2442
  return appCollection;
2436
2443
  }
@@ -2461,6 +2468,13 @@ class DbxFirebaseFirestoreCollectionModule {
2461
2468
  deps: [config.appCollectionClass]
2462
2469
  });
2463
2470
  }
2471
+ if (config.provideNotificationFirestoreCollections) {
2472
+ providers.push({
2473
+ provide: NotificationFirestoreCollections,
2474
+ useFactory: provideNotificationFirestoreCollections,
2475
+ deps: [config.appCollectionClass]
2476
+ });
2477
+ }
2464
2478
  return {
2465
2479
  ngModule: DbxFirebaseFirestoreCollectionModule,
2466
2480
  providers
@@ -3036,8 +3050,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3036
3050
  }] }]; } });
3037
3051
  function dbxFirebaseModelTypesServiceInstancePairForKeysFactory(service) {
3038
3052
  return (keys) => {
3039
- const instances = asArray(keys).map((x) => service.instanceForKey(x).instancePair$);
3040
- return instances.length ? combineLatest(instances) : of([]);
3053
+ const instances = asArray(keys).map((x) => service.instanceForKey(x).safeInstancePair$);
3054
+ return instances.length ? combineLatest(instances).pipe(filterMaybeArray(), shareReplay(1)) : of([]);
3041
3055
  };
3042
3056
  }
3043
3057
  function dbxFirebaseModelTypesServiceInstance(modelInfoInstance$, dbxFirebaseModelTypesService) {
@@ -3060,6 +3074,7 @@ function dbxFirebaseModelTypesServiceInstance(modelInfoInstance$, dbxFirebaseMod
3060
3074
  return ref;
3061
3075
  }), shareReplay(1));
3062
3076
  const instancePair$ = combineLatest([clickableSegueRef$, displayInfo$, key$]).pipe(map(([segueRef, displayInfo, key]) => ({ segueRef, displayInfo, key, instance })), shareReplay(1));
3077
+ const safeInstancePair$ = instancePair$.pipe(catchError(() => of(undefined)));
3063
3078
  const instance = {
3064
3079
  modelInfoInstance$,
3065
3080
  dbxFirebaseModelTypesService,
@@ -3071,6 +3086,7 @@ function dbxFirebaseModelTypesServiceInstance(modelInfoInstance$, dbxFirebaseMod
3071
3086
  segueRef$,
3072
3087
  displayInfo$,
3073
3088
  clickableSegueRef$,
3089
+ safeInstancePair$,
3074
3090
  instancePair$
3075
3091
  };
3076
3092
  return instance;
@@ -3082,7 +3098,7 @@ class DbxFirebaseModelTrackerService {
3082
3098
  historyKeys$ = this.dbxModelTrackerService.newEvent$.pipe(startWith(null), switchMap(() => this.loadHistoryKeys()), shareReplay(1));
3083
3099
  historyPairs$ = this.dbxModelTrackerService.newEvent$.pipe(startWith(null), switchMap(() => this.loadHistoryPairs()), // TODO: Improve efficiency of this to only load/remove items for new keys
3084
3100
  shareReplay(1));
3085
- filterItemHistoryPairs$ = this.historyPairs$.pipe(mapEachAsync((instancePair) => instancePair.instance.identity$.pipe(map((identity) => ({ instancePair, identity }))), { onlyFirst: true }), shareReplay(1));
3101
+ filterItemHistoryPairs$ = this.historyPairs$.pipe(mapEachAsync((instancePair) => instancePair.instance.identity$.pipe(map((identity) => ({ instancePair, identity })), catchError(() => of(undefined))), { onlyFirst: true }), filterMaybeArray(), shareReplay(1));
3086
3102
  /**
3087
3103
  * Filters from historyPairs$ using the input filter configuration, if it is provided.
3088
3104
  *
@@ -3221,11 +3237,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3221
3237
  type: Input
3222
3238
  }] } });
3223
3239
 
3224
- const DEFAULT_FIREBASE_HISTORY_COMPONENT_POPOVER_KEY = 'history';
3240
+ const DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY = 'history';
3225
3241
  class DbxFirebaseModelHistoryPopoverComponent extends AbstractPopoverDirective {
3226
3242
  static openPopover(popupService, { origin, header, icon, emptyText, historyFilter, anchorForItem }, popoverKey) {
3227
3243
  return popupService.open({
3228
- key: popoverKey ?? DEFAULT_FIREBASE_HISTORY_COMPONENT_POPOVER_KEY,
3244
+ key: popoverKey ?? DEFAULT_DBX_FIREBASE_MODEL_HISTORY_COMPONENT_POPOVER_KEY,
3229
3245
  origin,
3230
3246
  componentClass: DbxFirebaseModelHistoryPopoverComponent,
3231
3247
  data: {
@@ -3313,6 +3329,7 @@ class DbxFirebaseDocumentStoreDirective {
3313
3329
  documentLoadingState$ = this.store$.pipe(switchMap((x) => x.documentLoadingState$));
3314
3330
  id$ = this.store$.pipe(switchMap((x) => x.id$));
3315
3331
  key$ = this.store$.pipe(switchMap((x) => x.key$));
3332
+ twoWayFlatKey$ = this.store$.pipe(switchMap((x) => x.twoWayFlatKey$));
3316
3333
  ref$ = this.store$.pipe(switchMap((x) => x.ref$));
3317
3334
  snapshot$ = this.store$.pipe(switchMap((x) => x.snapshot$));
3318
3335
  snapshotLoadingState$ = this.store$.pipe(switchMap((x) => x.snapshotLoadingState$));
@@ -3334,6 +3351,12 @@ class DbxFirebaseDocumentStoreDirective {
3334
3351
  replaceStore(store) {
3335
3352
  this._store.next(store);
3336
3353
  }
3354
+ useRouteModelIdParamsObservable(idFromParams) {
3355
+ return this.store$.pipe(first()).subscribe((x) => x.setId(idFromParams));
3356
+ }
3357
+ useRouteModelKeyParamsObservable(keyFromParams) {
3358
+ return this.store$.pipe(first()).subscribe((x) => x.setKey(keyFromParams));
3359
+ }
3337
3360
  // MARK: Inputs
3338
3361
  set documentId(documentId) {
3339
3362
  useFirst(this.store$, (x) => x.setId(documentId));
@@ -3341,6 +3364,9 @@ class DbxFirebaseDocumentStoreDirective {
3341
3364
  set key(key) {
3342
3365
  useFirst(this.store$, (x) => x.setKey(key));
3343
3366
  }
3367
+ set flatKey(flatKey) {
3368
+ useFirst(this.store$, (x) => x.setFlatKey(flatKey));
3369
+ }
3344
3370
  set ref(ref) {
3345
3371
  useFirst(this.store$, (x) => x.setRef(ref));
3346
3372
  }
@@ -3348,7 +3374,7 @@ class DbxFirebaseDocumentStoreDirective {
3348
3374
  useFirst(this.store$, (x) => x.setStreamMode(streamMode));
3349
3375
  }
3350
3376
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
3351
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreDirective, inputs: { documentId: "documentId", key: "key", ref: "ref", streamMode: "streamMode" }, ngImport: i0 });
3377
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreDirective, inputs: { documentId: "documentId", key: "key", flatKey: "flatKey", ref: "ref", streamMode: "streamMode" }, ngImport: i0 });
3352
3378
  }
3353
3379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, decorators: [{
3354
3380
  type: Directive
@@ -3356,6 +3382,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3356
3382
  type: Input
3357
3383
  }], key: [{
3358
3384
  type: Input
3385
+ }], flatKey: [{
3386
+ type: Input
3359
3387
  }], ref: [{
3360
3388
  type: Input
3361
3389
  }], streamMode: [{
@@ -3366,9 +3394,11 @@ function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType) {
3366
3394
  {
3367
3395
  provide: DbxFirebaseDocumentStoreDirective,
3368
3396
  useExisting: forwardRef(() => sourceType)
3369
- }
3397
+ },
3398
+ ...provideDbxRouteModelIdDirectiveDelegate(sourceType),
3399
+ ...provideDbxRouteModelKeyDirectiveDelegate(sourceType)
3370
3400
  ];
3371
- if (storeType) {
3401
+ if (storeType != null) {
3372
3402
  providers.push(storeType);
3373
3403
  }
3374
3404
  return providers;
@@ -3413,7 +3443,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3413
3443
  args: ['dbxFirebaseModelViewedEvent']
3414
3444
  }] } });
3415
3445
 
3416
- const declarations$3 = [DbxfirebaseModelViewedEventDirective, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent];
3446
+ const declarations$4 = [DbxfirebaseModelViewedEventDirective, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent];
3417
3447
  class DbxFirebaseModelTypesModule {
3418
3448
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelTypesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3419
3449
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelTypesModule, declarations: [DbxfirebaseModelViewedEventDirective, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent], imports: [CommonModule, DbxModelInfoModule, DbxListLayoutModule], exports: [DbxfirebaseModelViewedEventDirective, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent] });
@@ -3423,12 +3453,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3423
3453
  type: NgModule,
3424
3454
  args: [{
3425
3455
  imports: [CommonModule, DbxModelInfoModule, DbxListLayoutModule],
3426
- declarations: declarations$3,
3427
- exports: declarations$3
3456
+ declarations: declarations$4,
3457
+ exports: declarations$4
3428
3458
  }]
3429
3459
  }] });
3430
3460
 
3431
- const declarations$2 = [DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent];
3461
+ const declarations$3 = [DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent];
3432
3462
  class DbxFirebaseModelHistoryModule {
3433
3463
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3434
3464
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryModule, declarations: [DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent], imports: [CommonModule, DbxButtonModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxModelInfoModule, DbxListLayoutModule, DbxFirebaseModelTypesModule], exports: [DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent] });
@@ -3438,8 +3468,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3438
3468
  type: NgModule,
3439
3469
  args: [{
3440
3470
  imports: [CommonModule, DbxButtonModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxModelInfoModule, DbxListLayoutModule, DbxFirebaseModelTypesModule],
3441
- declarations: declarations$2,
3442
- exports: declarations$2
3471
+ declarations: declarations$3,
3472
+ exports: declarations$3
3443
3473
  }]
3444
3474
  }] });
3445
3475
 
@@ -3661,113 +3691,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3661
3691
  }]
3662
3692
  }] });
3663
3693
 
3664
- const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY = 'id';
3665
- const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY = 'key';
3666
- const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = '0';
3667
- function dbxFirebaseKeyRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY) {
3668
- return dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey);
3669
- }
3670
- function dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY) {
3671
- const _paramReader = dbxRouteParamReaderInstance(dbxRouterService, defaultParamKey);
3672
- const _paramRedirect = new DbxRouteParamDefaultRedirectInstance(_paramReader);
3673
- const _useDefaultParamDecider = new BehaviorSubject(DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE);
3674
- const _useDefaultParam$ = _useDefaultParamDecider.pipe(map((x) => {
3675
- let result;
3676
- if (typeof x === 'string') {
3677
- result = (value) => of(value === x);
3678
- }
3679
- else {
3680
- result = x;
3681
- }
3682
- return result;
3683
- }), shareReplay(1));
3684
- const setParamKey = (paramKey) => {
3685
- _paramReader.setParamKey(paramKey || defaultParamKey);
3686
- };
3687
- const paramValue$ = _paramReader.paramValue$;
3688
- const value$ = _paramReader.value$;
3689
- const result = {
3690
- paramValue$,
3691
- defaultValue$: _paramReader.defaultValue$,
3692
- value$,
3693
- idFromParams$: paramValue$,
3694
- id$: value$,
3695
- init() {
3696
- _paramRedirect.setUseDefaultFilter((value) => {
3697
- return _useDefaultParam$.pipe(switchMap((x) => x(value)));
3698
- });
3699
- _paramRedirect.init();
3700
- },
3701
- destroy() {
3702
- _paramReader.destroy();
3703
- _paramRedirect.destroy();
3704
- _useDefaultParamDecider.complete();
3705
- },
3706
- getParamKey() {
3707
- return _paramReader.getParamKey();
3708
- },
3709
- setParamKey,
3710
- setDefaultValue(defaultValue) {
3711
- _paramReader.setDefaultValue(defaultValue);
3712
- },
3713
- setRedirectEnabled(redirect) {
3714
- _paramRedirect.enabled = redirect !== false;
3715
- },
3716
- setDecider(decider) {
3717
- _useDefaultParamDecider.next(decider);
3718
- },
3719
- setParamValue(value) {
3720
- _paramReader.setParamValue(value);
3721
- }
3722
- };
3723
- return result;
3724
- }
3725
-
3726
3694
  /**
3727
3695
  * Used for synchronizing the document store id to the param of the route.
3696
+ *
3697
+ * @deprecated use DbxRouteModelIdDirective instead.
3728
3698
  */
3729
- class DbxFirebaseDocumentStoreRouteIdDirective extends AbstractSubscriptionDirective {
3730
- dbxFirebaseDocumentStoreDirective = inject((DbxFirebaseDocumentStoreDirective), { host: true });
3731
- dbxRouterService = inject(DbxRouterService);
3732
- _redirectInstance = dbxFirebaseIdRouteParamRedirect(this.dbxRouterService);
3733
- idFromParams$ = this._redirectInstance.paramValue$;
3734
- id$ = this._redirectInstance.value$;
3735
- ngOnInit() {
3736
- this.sub = this.dbxFirebaseDocumentStoreDirective.store.setId(this.idFromParams$); // use from the params, as the params should get updated eventually to the id$ value
3737
- this._redirectInstance.init();
3738
- }
3739
- ngOnDestroy() {
3740
- super.ngOnDestroy();
3741
- this._redirectInstance.destroy();
3742
- }
3699
+ class DbxFirebaseDocumentStoreRouteIdDirective extends DbxRouteModelIdDirective {
3743
3700
  // MARK: Input
3744
- get idParam() {
3745
- return this._redirectInstance.getParamKey();
3701
+ get dbxFirebaseDocumentStoreRouteId() {
3702
+ return this.idParam;
3746
3703
  }
3747
- set idParam(idParam) {
3748
- this._redirectInstance.setParamKey(idParam);
3704
+ set dbxFirebaseDocumentStoreRouteId(idParam) {
3705
+ this.idParam = idParam;
3749
3706
  }
3750
3707
  set dbxFirebaseDocumentStoreRouteIdDefault(defaultValue) {
3751
- this._redirectInstance.setDefaultValue(defaultValue);
3708
+ this.dbxRouteModelIdDefault = defaultValue;
3752
3709
  }
3753
3710
  /**
3754
3711
  * Whether or not to enable the redirection. Is enabled by default.
3755
3712
  */
3756
3713
  set dbxFirebaseDocumentStoreRouteIdDefaultRedirect(redirect) {
3757
- this._redirectInstance.setRedirectEnabled(redirect !== false); // true by default
3714
+ this.dbxRouteModelIdDefaultRedirect = redirect;
3758
3715
  }
3759
3716
  set dbxFirebaseDocumentStoreRouteIdDefaultDecision(decider) {
3760
- this._redirectInstance.setDecider(decider);
3717
+ this.dbxRouteModelIdDefaultDecision = decider;
3761
3718
  }
3762
3719
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteIdDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3763
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreRouteIdDirective, selector: "[dbxFirebaseDocumentStoreRouteId]", inputs: { idParam: ["dbxFirebaseDocumentStoreRouteId", "idParam"], dbxFirebaseDocumentStoreRouteIdDefault: "dbxFirebaseDocumentStoreRouteIdDefault", dbxFirebaseDocumentStoreRouteIdDefaultRedirect: "dbxFirebaseDocumentStoreRouteIdDefaultRedirect", dbxFirebaseDocumentStoreRouteIdDefaultDecision: "dbxFirebaseDocumentStoreRouteIdDefaultDecision" }, usesInheritance: true, ngImport: i0 });
3720
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreRouteIdDirective, selector: "[dbxFirebaseDocumentStoreRouteId]", inputs: { dbxFirebaseDocumentStoreRouteId: "dbxFirebaseDocumentStoreRouteId", dbxFirebaseDocumentStoreRouteIdDefault: "dbxFirebaseDocumentStoreRouteIdDefault", dbxFirebaseDocumentStoreRouteIdDefaultRedirect: "dbxFirebaseDocumentStoreRouteIdDefaultRedirect", dbxFirebaseDocumentStoreRouteIdDefaultDecision: "dbxFirebaseDocumentStoreRouteIdDefaultDecision" }, usesInheritance: true, ngImport: i0 });
3764
3721
  }
3765
3722
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteIdDirective, decorators: [{
3766
3723
  type: Directive,
3767
3724
  args: [{
3768
3725
  selector: '[dbxFirebaseDocumentStoreRouteId]'
3769
3726
  }]
3770
- }], propDecorators: { idParam: [{
3727
+ }], propDecorators: { dbxFirebaseDocumentStoreRouteId: [{
3771
3728
  type: Input,
3772
3729
  args: ['dbxFirebaseDocumentStoreRouteId']
3773
3730
  }], dbxFirebaseDocumentStoreRouteIdDefault: [{
@@ -3780,49 +3737,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3780
3737
 
3781
3738
  /**
3782
3739
  * Used for synchronizing the document store key to the param of the route. The param is interpreted as a TwoWayFlatFirestoreModelKey.
3740
+ *
3741
+ * @deprecated use DbxRouteModelKeyDirective instead.
3783
3742
  */
3784
- class DbxFirebaseDocumentStoreRouteKeyDirective extends AbstractSubscriptionDirective {
3743
+ class DbxFirebaseDocumentStoreRouteKeyDirective extends DbxRouteModelKeyDirective {
3785
3744
  dbxFirebaseDocumentStoreDirective = inject((DbxFirebaseDocumentStoreDirective), { host: true });
3786
- dbxRouterService = inject(DbxRouterService);
3787
- _redirectInstance = dbxFirebaseKeyRouteParamRedirect(this.dbxRouterService);
3788
- keyFromParams$ = this._redirectInstance.paramValue$;
3789
- key$ = this._redirectInstance.value$;
3790
3745
  ngOnInit() {
3791
- this.sub = this.dbxFirebaseDocumentStoreDirective.store.setFlatKey(this.keyFromParams$); // use from the params, as the params should get updated eventually to the key$ value
3792
- this._redirectInstance.init();
3793
- }
3794
- ngOnDestroy() {
3795
- super.ngOnDestroy();
3796
- this._redirectInstance.destroy();
3746
+ super.ngOnInit();
3797
3747
  }
3798
3748
  // MARK: Input
3799
- get keyParam() {
3800
- return this._redirectInstance.getParamKey();
3749
+ get dbxFirebaseDocumentStoreRouteKey() {
3750
+ return this.keyParam;
3801
3751
  }
3802
- set keyParam(idParam) {
3803
- this._redirectInstance.setParamKey(idParam);
3752
+ set dbxFirebaseDocumentStoreRouteKey(keyParam) {
3753
+ this.keyParam = keyParam;
3804
3754
  }
3805
3755
  set dbxFirebaseDocumentStoreRouteKeyDefault(defaultValue) {
3806
- this._redirectInstance.setDefaultValue(defaultValue);
3756
+ this.dbxRouteModelKeyDefault = defaultValue;
3807
3757
  }
3808
3758
  /**
3809
3759
  * Whether or not to enable the redirection. Is enabled by default.
3810
3760
  */
3811
3761
  set dbxFirebaseDocumentStoreRouteKeyDefaultRedirect(redirect) {
3812
- this._redirectInstance.setRedirectEnabled(redirect !== false); // true by default
3762
+ this.dbxRouteModelKeyDefaultRedirect = redirect;
3813
3763
  }
3814
3764
  set dbxFirebaseDocumentStoreRouteKeyDefaultDecision(decider) {
3815
- this._redirectInstance.setDecider(decider);
3765
+ this.dbxRouteModelKeyDefaultDecision = decider;
3816
3766
  }
3817
3767
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteKeyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3818
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreRouteKeyDirective, selector: "[dbxFirebaseDocumentStoreRouteKey]", inputs: { keyParam: ["dbxFirebaseDocumentStoreRouteKey", "keyParam"], dbxFirebaseDocumentStoreRouteKeyDefault: "dbxFirebaseDocumentStoreRouteKeyDefault", dbxFirebaseDocumentStoreRouteKeyDefaultRedirect: "dbxFirebaseDocumentStoreRouteKeyDefaultRedirect", dbxFirebaseDocumentStoreRouteKeyDefaultDecision: "dbxFirebaseDocumentStoreRouteKeyDefaultDecision" }, usesInheritance: true, ngImport: i0 });
3768
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreRouteKeyDirective, selector: "[dbxFirebaseDocumentStoreRouteKey]", inputs: { dbxFirebaseDocumentStoreRouteKey: "dbxFirebaseDocumentStoreRouteKey", dbxFirebaseDocumentStoreRouteKeyDefault: "dbxFirebaseDocumentStoreRouteKeyDefault", dbxFirebaseDocumentStoreRouteKeyDefaultRedirect: "dbxFirebaseDocumentStoreRouteKeyDefaultRedirect", dbxFirebaseDocumentStoreRouteKeyDefaultDecision: "dbxFirebaseDocumentStoreRouteKeyDefaultDecision" }, usesInheritance: true, ngImport: i0 });
3819
3769
  }
3820
3770
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreRouteKeyDirective, decorators: [{
3821
3771
  type: Directive,
3822
3772
  args: [{
3823
3773
  selector: '[dbxFirebaseDocumentStoreRouteKey]'
3824
3774
  }]
3825
- }], propDecorators: { keyParam: [{
3775
+ }], propDecorators: { dbxFirebaseDocumentStoreRouteKey: [{
3826
3776
  type: Input,
3827
3777
  args: ['dbxFirebaseDocumentStoreRouteKey']
3828
3778
  }], dbxFirebaseDocumentStoreRouteKeyDefault: [{
@@ -3833,18 +3783,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3833
3783
  type: Input
3834
3784
  }] } });
3835
3785
 
3836
- const declarations$1 = [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective];
3786
+ class DbxFirebaseDocumentStoreTwoWayKeyProvider {
3787
+ }
3788
+ /**
3789
+ * Configures Providers for a DbxFirebaseDocumentStoreTwoWayKeyProvider.
3790
+ */
3791
+ function provideDbxFirebaseDocumentStoreTwoWayKeyProvider(sourceType) {
3792
+ const providers = [
3793
+ {
3794
+ provide: DbxFirebaseDocumentStoreTwoWayKeyProvider,
3795
+ useExisting: forwardRef(() => sourceType)
3796
+ }
3797
+ ];
3798
+ return providers;
3799
+ }
3800
+
3801
+ /**
3802
+ * Directive that implements DbxFirebaseDocumentStoreTwoWayKeyProvider and passes the twoWayFlatKey from a host DbxFirebaseDocumentStoreDirective.
3803
+ */
3804
+ class DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective {
3805
+ dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective, { host: true });
3806
+ twoWayFlatKey$ = this.dbxFirebaseDocumentStoreDirective.twoWayFlatKey$;
3807
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3808
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, selector: "[dbxFirebaseDocumentStoreTwoWayModelKeySource]", providers: provideDbxFirebaseDocumentStoreTwoWayKeyProvider(DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective), ngImport: i0 });
3809
+ }
3810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, decorators: [{
3811
+ type: Directive,
3812
+ args: [{
3813
+ selector: '[dbxFirebaseDocumentStoreTwoWayModelKeySource]',
3814
+ providers: provideDbxFirebaseDocumentStoreTwoWayKeyProvider(DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective)
3815
+ }]
3816
+ }] });
3817
+
3818
+ /**
3819
+ * Used for providing an id from the twoWayFlatKey$ from a DbxFirebaseDocumentStoreTwoWayKeyProvider.
3820
+ */
3821
+ class DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective extends AbstractSubscriptionDirective {
3822
+ dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective, { host: true });
3823
+ dbxFirebaseDocumentStoreTwoWayKeyProvider = inject(DbxFirebaseDocumentStoreTwoWayKeyProvider, { skipSelf: true, host: false });
3824
+ ngOnInit() {
3825
+ this.sub = this.dbxFirebaseDocumentStoreDirective.store.setId(this.dbxFirebaseDocumentStoreTwoWayKeyProvider.twoWayFlatKey$);
3826
+ }
3827
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3828
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, selector: "[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]", usesInheritance: true, ngImport: i0 });
3829
+ }
3830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, decorators: [{
3831
+ type: Directive,
3832
+ args: [{
3833
+ selector: '[dbxFirebaseDocumentStoreIdFromTwoWayModelKey]'
3834
+ }]
3835
+ }] });
3836
+
3837
+ const declarations$2 = [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective];
3837
3838
  class DbxFirebaseModelStoreModule {
3838
3839
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3839
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule, declarations: [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective], exports: [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective] });
3840
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule, declarations: [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective], exports: [DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective] });
3840
3841
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule });
3841
3842
  }
3842
3843
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelStoreModule, decorators: [{
3843
3844
  type: NgModule,
3844
3845
  args: [{
3845
3846
  imports: [],
3846
- declarations: declarations$1,
3847
- exports: declarations$1
3847
+ declarations: declarations$2,
3848
+ exports: declarations$2
3848
3849
  }]
3849
3850
  }] });
3850
3851
 
@@ -3985,7 +3986,20 @@ class AbstractDbxFirebaseDocumentStore extends LockSetComponentStore {
3985
3986
  return of(false);
3986
3987
  }
3987
3988
  }), shareReplay(1));
3988
- exists$ = this.currentData$.pipe(map((x) => isMaybeSo(x)), shareReplay(1));
3989
+ exists$ = this.currentData$.pipe(map((x) => isMaybeSo(x)), catchError((e) => {
3990
+ let result;
3991
+ if (isClientFirebaseError(e)) {
3992
+ switch (e.code) {
3993
+ case FIRESTORE_PERMISSION_DENIED_ERROR_CODE:
3994
+ result = false;
3995
+ break;
3996
+ }
3997
+ }
3998
+ if (result == null) {
3999
+ throw e;
4000
+ }
4001
+ return of(result);
4002
+ }), shareReplay(1));
3989
4003
  doesNotExist$ = this.exists$.pipe(map((x) => !x), shareReplay(1));
3990
4004
  modelIdentity$ = this.document$.pipe(map((x) => x.modelIdentity), shareReplay(1));
3991
4005
  // MARK: State Changes
@@ -4446,6 +4460,634 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4446
4460
  }]
4447
4461
  }] });
4448
4462
 
4463
+ /**
4464
+ * Client-side service used for retrieving notification templates.
4465
+ */
4466
+ class DbxFirebaseNotificationTemplateService {
4467
+ appNotificationTemplateTypeInfoRecordService = inject(AppNotificationTemplateTypeInfoRecordService);
4468
+ notificationItemSubjectMessagePairForNotificationSummaryItem(item) {
4469
+ const templateType = item.t;
4470
+ const templateDetails = this.appNotificationTemplateTypeInfoRecordService.appNotificationTemplateTypeInfoRecord[templateType];
4471
+ const subject = item.s ?? templateDetails.name;
4472
+ const message = item.g ?? '';
4473
+ const date = item.cat;
4474
+ return {
4475
+ item,
4476
+ subject,
4477
+ message,
4478
+ date
4479
+ };
4480
+ }
4481
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationTemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4482
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationTemplateService });
4483
+ }
4484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationTemplateService, decorators: [{
4485
+ type: Injectable
4486
+ }] });
4487
+
4488
+ class DbxFirebaseNotificationItemListComponent extends AbstractDbxSelectionListWrapperDirective {
4489
+ constructor() {
4490
+ super({
4491
+ componentClass: DbxFirebaseNotificationItemListViewComponent,
4492
+ defaultSelectionMode: 'view'
4493
+ });
4494
+ }
4495
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4496
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemListComponent, selector: "dbx-firebase-notificationitem-list", providers: provideDbxListViewWrapper(DbxFirebaseNotificationItemListComponent), usesInheritance: true, ngImport: i0, template: "\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n", isInline: true, dependencies: [{ kind: "component", type: i1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state$", "config", "disabled", "selectionMode"], outputs: ["contentScrolled"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] });
4497
+ }
4498
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemListComponent, decorators: [{
4499
+ type: Component,
4500
+ args: [{
4501
+ selector: 'dbx-firebase-notificationitem-list',
4502
+ template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE,
4503
+ providers: provideDbxListViewWrapper(DbxFirebaseNotificationItemListComponent)
4504
+ }]
4505
+ }], ctorParameters: function () { return []; } });
4506
+ class DbxFirebaseNotificationItemListViewComponent extends AbstractDbxSelectionListViewDirective {
4507
+ config = {
4508
+ componentClass: DbxFirebaseNotificationItemListViewItemComponent,
4509
+ mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, icon: y.icon, itemValue: y })))
4510
+ };
4511
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4512
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemListViewComponent, selector: "dbx-firebase-notificationitem-list-view", providers: provideDbxListView(DbxFirebaseNotificationItemListViewComponent), usesInheritance: true, ngImport: i0, template: "<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>", isInline: true, dependencies: [{ kind: "component", type: i1.DbxSelectionValueListViewComponent, selector: "dbx-selection-list-view" }] });
4513
+ }
4514
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemListViewComponent, decorators: [{
4515
+ type: Component,
4516
+ args: [{
4517
+ selector: 'dbx-firebase-notificationitem-list-view',
4518
+ template: DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE,
4519
+ providers: provideDbxListView(DbxFirebaseNotificationItemListViewComponent)
4520
+ }]
4521
+ }] });
4522
+ class DbxFirebaseNotificationItemListViewItemComponent extends AbstractDbxValueListViewItemComponent {
4523
+ dbxFirebaseNotificationTemplateService = inject(DbxFirebaseNotificationTemplateService);
4524
+ pairGetter = cachedGetter(() => this.dbxFirebaseNotificationTemplateService.notificationItemSubjectMessagePairForNotificationSummaryItem(this.itemValue));
4525
+ get subject() {
4526
+ return this.pairGetter().subject;
4527
+ }
4528
+ get message() {
4529
+ return this.pairGetter().message;
4530
+ }
4531
+ get date() {
4532
+ return this.pairGetter().date;
4533
+ }
4534
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4535
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemListViewItemComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
4536
+ <div class="dbx-list-item-padded dbx-list-two-line-item dbx-firebase-notificationitem-list-view-item">
4537
+ <div class="item-left">
4538
+ <span class="notificationitem-subject">{{ subject }}</span>
4539
+ <span class="notificationitem-message item-details">{{ message | cutText: 90 }}</span>
4540
+ <span class="notificationitem-date item-details-footnote">{{ date | date: 'medium' }}</span>
4541
+ </div>
4542
+ </div>
4543
+ `, isInline: true, dependencies: [{ kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "pipe", type: i3.CutTextPipe, name: "cutText" }] });
4544
+ }
4545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemListViewItemComponent, decorators: [{
4546
+ type: Component,
4547
+ args: [{
4548
+ template: `
4549
+ <div class="dbx-list-item-padded dbx-list-two-line-item dbx-firebase-notificationitem-list-view-item">
4550
+ <div class="item-left">
4551
+ <span class="notificationitem-subject">{{ subject }}</span>
4552
+ <span class="notificationitem-message item-details">{{ message | cutText: 90 }}</span>
4553
+ <span class="notificationitem-date item-details-footnote">{{ date | date: 'medium' }}</span>
4554
+ </div>
4555
+ </div>
4556
+ `
4557
+ }]
4558
+ }] });
4559
+
4560
+ /**
4561
+ * Prefix used by all widgets.
4562
+ *
4563
+ * Does not include the "-" between the prefix and the template type returned by dbxWidgetTypeForNotificationTemplateType().
4564
+ */
4565
+ const FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX = 'dbxFirebaseNotificationItem';
4566
+ const DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE = `${FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX}Default`;
4567
+ function dbxWidgetTypeForNotificationTemplateType(notificationTemplateType) {
4568
+ return `${FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX}-${notificationTemplateType}`;
4569
+ }
4570
+
4571
+ /**
4572
+ * Service used for registering widgets used for notification items.
4573
+ */
4574
+ class DbxFirebaseNotificationItemWidgetService {
4575
+ dbxWidgetService = inject(DbxWidgetService);
4576
+ dbxFirebaseNotificationTemplateService = inject(DbxFirebaseNotificationTemplateService);
4577
+ _entries = new Map();
4578
+ /**
4579
+ * Used to register a item widget. If widget for the given type is already registered, this will override it by default.
4580
+ *
4581
+ * @param provider
4582
+ * @param override
4583
+ */
4584
+ register(provider, override = true) {
4585
+ const { componentClass, notificationTemplateType } = provider;
4586
+ const widgetType = dbxWidgetTypeForNotificationTemplateType(notificationTemplateType);
4587
+ if (override || !this._entries.has(notificationTemplateType)) {
4588
+ const notificationTemplateTypeInfo = this.dbxFirebaseNotificationTemplateService.appNotificationTemplateTypeInfoRecordService.appNotificationTemplateTypeInfoRecord[notificationTemplateType];
4589
+ if (!notificationTemplateTypeInfo) {
4590
+ console.warn(`DbxFirebaseNotificationItemWidgetService.register(): No known template type info was found for notification type: ${notificationTemplateType}. The entry is not being registered.`);
4591
+ }
4592
+ else {
4593
+ const entry = {
4594
+ notificationTemplateType,
4595
+ notificationTemplateTypeInfo,
4596
+ widget: {
4597
+ type: widgetType,
4598
+ componentClass
4599
+ }
4600
+ };
4601
+ this._entries.set(notificationTemplateType, entry);
4602
+ this.dbxWidgetService.register(entry.widget, override);
4603
+ return true;
4604
+ }
4605
+ }
4606
+ return false;
4607
+ }
4608
+ registerDefaultWidget(entry, override = true) {
4609
+ return this.dbxWidgetService.register({
4610
+ ...entry,
4611
+ type: DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE
4612
+ }, override);
4613
+ }
4614
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4615
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemWidgetService, providedIn: 'root' });
4616
+ }
4617
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemWidgetService, decorators: [{
4618
+ type: Injectable,
4619
+ args: [{
4620
+ providedIn: 'root'
4621
+ }]
4622
+ }] });
4623
+
4624
+ class DbxFirebaseNotificationItemViewComponent {
4625
+ _item = new BehaviorSubject(undefined);
4626
+ config$ = this._item.pipe(filterMaybe(), map((data) => {
4627
+ const type = dbxWidgetTypeForNotificationTemplateType(data.t);
4628
+ const widgetConfig = {
4629
+ type,
4630
+ data,
4631
+ defaultType: DEFAULT_FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE
4632
+ };
4633
+ return widgetConfig;
4634
+ }), shareReplay(1));
4635
+ ngOnDestroy() {
4636
+ this._item.complete();
4637
+ }
4638
+ get item() {
4639
+ return this._item.getValue();
4640
+ }
4641
+ set item(value) {
4642
+ this._item.next(value);
4643
+ }
4644
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4645
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemViewComponent, selector: "dbx-firebase-notificationitem-view", inputs: { item: "item" }, ngImport: i0, template: `
4646
+ <dbx-widget-view [config]="config$ | async"></dbx-widget-view>
4647
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.DbxWidgetViewComponent, selector: "dbx-widget-view", inputs: ["config"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }] });
4648
+ }
4649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemViewComponent, decorators: [{
4650
+ type: Component,
4651
+ args: [{
4652
+ selector: 'dbx-firebase-notificationitem-view',
4653
+ template: `
4654
+ <dbx-widget-view [config]="config$ | async"></dbx-widget-view>
4655
+ `
4656
+ }]
4657
+ }], propDecorators: { item: [{
4658
+ type: Input
4659
+ }] } });
4660
+
4661
+ class AbstractDbxFirebaseNotificationItemWidgetComponent extends AbstractDbxWidgetComponent {
4662
+ get notificationItem() {
4663
+ return this.data;
4664
+ }
4665
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseNotificationItemWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4666
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractDbxFirebaseNotificationItemWidgetComponent, usesInheritance: true, ngImport: i0 });
4667
+ }
4668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseNotificationItemWidgetComponent, decorators: [{
4669
+ type: Directive
4670
+ }] });
4671
+
4672
+ class DbxFirebaseNotificationItemContentComponent {
4673
+ subject;
4674
+ message;
4675
+ date;
4676
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4677
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemContentComponent, selector: "dbx-firebase-notificationitem-content", inputs: { subject: "subject", message: "message", date: "date" }, ngImport: i0, template: "<div class=\"dbx-firebase-notificationitem-content\">\n <div class=\"notificationitem-header dbx-pb2\">\n <div *ngIf=\"subject\" class=\"notificationitem-subject dbx-pb1\">{{ subject }}</div>\n <ng-content select=\"[header]\"></ng-content>\n <div *ngIf=\"date\" class=\"notificationitem-date dbx-label dbx-small\">{{ date | date: 'medium' }}</div>\n </div>\n <ng-content select=\"[premessage]\"></ng-content>\n <div class=\"notificationitem-message\">{{ message }}</div>\n <ng-content></ng-content>\n</div>\n", styles: [".dbx-firebase-notificationitem-content .notificationitem-subject{font-size:1.25em}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }] });
4678
+ }
4679
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemContentComponent, decorators: [{
4680
+ type: Component,
4681
+ args: [{ selector: 'dbx-firebase-notificationitem-content', template: "<div class=\"dbx-firebase-notificationitem-content\">\n <div class=\"notificationitem-header dbx-pb2\">\n <div *ngIf=\"subject\" class=\"notificationitem-subject dbx-pb1\">{{ subject }}</div>\n <ng-content select=\"[header]\"></ng-content>\n <div *ngIf=\"date\" class=\"notificationitem-date dbx-label dbx-small\">{{ date | date: 'medium' }}</div>\n </div>\n <ng-content select=\"[premessage]\"></ng-content>\n <div class=\"notificationitem-message\">{{ message }}</div>\n <ng-content></ng-content>\n</div>\n", styles: [".dbx-firebase-notificationitem-content .notificationitem-subject{font-size:1.25em}\n"] }]
4682
+ }], propDecorators: { subject: [{
4683
+ type: Input
4684
+ }], message: [{
4685
+ type: Input
4686
+ }], date: [{
4687
+ type: Input
4688
+ }] } });
4689
+
4690
+ class DbxFirebaseNotificationItemDefaultViewComponent extends AbstractDbxFirebaseNotificationItemWidgetComponent {
4691
+ get subject() {
4692
+ return this.notificationItem.s;
4693
+ }
4694
+ get message() {
4695
+ return this.notificationItem.g;
4696
+ }
4697
+ get date() {
4698
+ return this.notificationItem.cat;
4699
+ }
4700
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemDefaultViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4701
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemDefaultViewComponent, selector: "dbx-firebase-notificationitem-view-default", usesInheritance: true, ngImport: i0, template: '<dbx-firebase-notificationitem-content [subject]="subject" [message]="message" [date]="date"></dbx-firebase-notificationitem-content>', isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseNotificationItemContentComponent, selector: "dbx-firebase-notificationitem-content", inputs: ["subject", "message", "date"] }] });
4702
+ }
4703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemDefaultViewComponent, decorators: [{
4704
+ type: Component,
4705
+ args: [{
4706
+ selector: 'dbx-firebase-notificationitem-view-default',
4707
+ template: '<dbx-firebase-notificationitem-content [subject]="subject" [message]="message" [date]="date"></dbx-firebase-notificationitem-content>'
4708
+ }]
4709
+ }] });
4710
+
4711
+ class NotificationSummaryCollectionStore extends AbstractDbxFirebaseCollectionStore {
4712
+ constructor(collections) {
4713
+ super({ firestoreCollection: collections.notificationSummaryCollection });
4714
+ }
4715
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationSummaryCollectionStore, deps: [{ token: i1$3.NotificationFirestoreCollections }], target: i0.ɵɵFactoryTarget.Injectable });
4716
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationSummaryCollectionStore });
4717
+ }
4718
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationSummaryCollectionStore, decorators: [{
4719
+ type: Injectable
4720
+ }], ctorParameters: function () { return [{ type: i1$3.NotificationFirestoreCollections }]; } });
4721
+
4722
+ class DbxFirebaseNotificationSummaryCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
4723
+ constructor(store) {
4724
+ super(store);
4725
+ }
4726
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationSummaryCollectionStoreDirective, deps: [{ token: NotificationSummaryCollectionStore }], target: i0.ɵɵFactoryTarget.Directive });
4727
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationSummaryCollectionStoreDirective, selector: "[dbxFirebaseNotificationSummaryCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationSummaryCollectionStoreDirective, NotificationSummaryCollectionStore), usesInheritance: true, ngImport: i0 });
4728
+ }
4729
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationSummaryCollectionStoreDirective, decorators: [{
4730
+ type: Directive,
4731
+ args: [{
4732
+ selector: '[dbxFirebaseNotificationSummaryCollection]',
4733
+ providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationSummaryCollectionStoreDirective, NotificationSummaryCollectionStore)
4734
+ }]
4735
+ }], ctorParameters: function () { return [{ type: NotificationSummaryCollectionStore }]; } });
4736
+
4737
+ class NotificationSummaryDocumentStore extends AbstractDbxFirebaseDocumentStore {
4738
+ notificationFunctions = inject(NotificationFunctions);
4739
+ constructor() {
4740
+ super({ firestoreCollection: inject(NotificationFirestoreCollections).notificationSummaryCollection });
4741
+ }
4742
+ notificationItemsLoadingState$ = this.dataLoadingState$.pipe(mapLoadingStateValueWithOperator(map((x) => [...x.n].reverse())), // n is sorted in ascending order
4743
+ shareReplay(1));
4744
+ createdAt$ = this.data$.pipe(map((x) => x.cat), distinctUntilChanged(isSameDate), shareReplay(1));
4745
+ lastReadAt$ = this.data$.pipe(map((x) => x.rat), distinctUntilChanged(isSameDate), shareReplay(1));
4746
+ lastUpdateAt$ = this.data$.pipe(map((x) => x.lat), distinctUntilChanged(isSameDate), shareReplay(1));
4747
+ notificationItems$ = this.data$.pipe(map((x) => [...x.n].reverse()), // n is sorted in ascending order
4748
+ shareReplay(1));
4749
+ needsSync$ = this.data$.pipe(map((x) => x.s), distinctUntilChanged(), shareReplay(1));
4750
+ notificationItemsLoadingState() {
4751
+ return this.notificationItemsLoadingState$;
4752
+ }
4753
+ unreadNotificationItems(checkLastReadIfCreatedBeforeObs) {
4754
+ return combineLatest([asObservable(checkLastReadIfCreatedBeforeObs), this.notificationItems$]).pipe(map(([c, items]) => unreadNotificationItems(items, c)));
4755
+ }
4756
+ updateNotificationSummary = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationSummary.updateNotificationSummary.update);
4757
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationSummaryDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4758
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationSummaryDocumentStore });
4759
+ }
4760
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationSummaryDocumentStore, decorators: [{
4761
+ type: Injectable
4762
+ }], ctorParameters: function () { return []; } });
4763
+
4764
+ class DbxFirebaseNotificationSummaryDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
4765
+ constructor(store) {
4766
+ super(store);
4767
+ }
4768
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationSummaryDocumentStoreDirective, deps: [{ token: NotificationSummaryDocumentStore }], target: i0.ɵɵFactoryTarget.Directive });
4769
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationSummaryDocumentStoreDirective, selector: "[dbxFirebaseNotificationSummaryDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationSummaryDocumentStoreDirective, NotificationSummaryDocumentStore), usesInheritance: true, ngImport: i0 });
4770
+ }
4771
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationSummaryDocumentStoreDirective, decorators: [{
4772
+ type: Directive,
4773
+ args: [{
4774
+ selector: '[dbxFirebaseNotificationSummaryDocument]',
4775
+ providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationSummaryDocumentStoreDirective, NotificationSummaryDocumentStore)
4776
+ }]
4777
+ }], ctorParameters: function () { return [{ type: NotificationSummaryDocumentStore }]; } });
4778
+
4779
+ /**
4780
+ * Store used for selecting a specific NotificationItem from a list of notification items.
4781
+ */
4782
+ class DbxFirebaseNotificationItemStore extends ComponentStore {
4783
+ constructor() {
4784
+ super({
4785
+ items: [],
4786
+ selectedId: undefined
4787
+ });
4788
+ }
4789
+ // MARK: Accessors
4790
+ items$ = this.select((state) => state.items);
4791
+ selectedId$ = this.select((state) => state.selectedId).pipe(distinctUntilChanged(), shareReplay(1));
4792
+ selectedItem$ = combineLatest([this.items$, this.selectedId$]).pipe(map(([items, selectedId]) => {
4793
+ return items.find((item) => item.id === selectedId);
4794
+ }), distinctUntilChanged(), shareReplay(1));
4795
+ // MARK: State Changes
4796
+ setItems = this.updater((state, items) => ({ ...state, items }));
4797
+ setSelectedId = this.updater((state, selectedId) => ({ ...state, selectedId }));
4798
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4799
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemStore });
4800
+ }
4801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemStore, decorators: [{
4802
+ type: Injectable
4803
+ }], ctorParameters: function () { return []; } });
4804
+
4805
+ class NotificationUserCollectionStore extends AbstractDbxFirebaseCollectionStore {
4806
+ constructor(collections) {
4807
+ super({ firestoreCollection: collections.notificationUserCollection });
4808
+ }
4809
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationUserCollectionStore, deps: [{ token: i1$3.NotificationFirestoreCollections }], target: i0.ɵɵFactoryTarget.Injectable });
4810
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationUserCollectionStore });
4811
+ }
4812
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationUserCollectionStore, decorators: [{
4813
+ type: Injectable
4814
+ }], ctorParameters: function () { return [{ type: i1$3.NotificationFirestoreCollections }]; } });
4815
+
4816
+ class DbxFirebaseNotificationUserCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
4817
+ constructor(store) {
4818
+ super(store);
4819
+ }
4820
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationUserCollectionStoreDirective, deps: [{ token: NotificationUserCollectionStore }], target: i0.ɵɵFactoryTarget.Directive });
4821
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationUserCollectionStoreDirective, selector: "[dbxFirebaseNotificationUserCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationUserCollectionStoreDirective, NotificationUserCollectionStore), usesInheritance: true, ngImport: i0 });
4822
+ }
4823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationUserCollectionStoreDirective, decorators: [{
4824
+ type: Directive,
4825
+ args: [{
4826
+ selector: '[dbxFirebaseNotificationUserCollection]',
4827
+ providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationUserCollectionStoreDirective, NotificationUserCollectionStore)
4828
+ }]
4829
+ }], ctorParameters: function () { return [{ type: NotificationUserCollectionStore }]; } });
4830
+
4831
+ class NotificationUserDocumentStore extends AbstractDbxFirebaseDocumentStore {
4832
+ notificationFunctions = inject(NotificationFunctions);
4833
+ constructor() {
4834
+ super({ firestoreCollection: inject(NotificationFirestoreCollections).notificationUserCollection });
4835
+ }
4836
+ updateNotificationUser = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationUser.updateNotificationUser.update);
4837
+ resyncNotificationUser = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationUser.updateNotificationUser.resync);
4838
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationUserDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4839
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationUserDocumentStore });
4840
+ }
4841
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationUserDocumentStore, decorators: [{
4842
+ type: Injectable
4843
+ }], ctorParameters: function () { return []; } });
4844
+
4845
+ class DbxFirebaseNotificationUserDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
4846
+ constructor(store) {
4847
+ super(store);
4848
+ }
4849
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationUserDocumentStoreDirective, deps: [{ token: NotificationUserDocumentStore }], target: i0.ɵɵFactoryTarget.Directive });
4850
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationUserDocumentStoreDirective, selector: "[dbxFirebaseNotificationUserDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationUserDocumentStoreDirective, NotificationUserDocumentStore), usesInheritance: true, ngImport: i0 });
4851
+ }
4852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationUserDocumentStoreDirective, decorators: [{
4853
+ type: Directive,
4854
+ args: [{
4855
+ selector: '[dbxFirebaseNotificationUserDocument]',
4856
+ providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationUserDocumentStoreDirective, NotificationUserDocumentStore)
4857
+ }]
4858
+ }], ctorParameters: function () { return [{ type: NotificationUserDocumentStore }]; } });
4859
+
4860
+ class NotificationBoxDocumentStore extends AbstractDbxFirebaseDocumentStore {
4861
+ notificationFunctions = inject(NotificationFunctions);
4862
+ constructor() {
4863
+ super({ firestoreCollection: inject(NotificationFirestoreCollections).notificationBoxCollection });
4864
+ }
4865
+ createdAt$ = this.data$.pipe(map((x) => x.cat), distinctUntilChanged(isSameDate), shareReplay(1));
4866
+ recipients$ = this.data$.pipe(map((x) => x.r), shareReplay(1));
4867
+ updateNotificationBox = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationBox.updateNotificationBox.update);
4868
+ updateNotificationBoxRecipient = firebaseDocumentStoreUpdateFunction(this, this.notificationFunctions.notificationBox.updateNotificationBox.recipient);
4869
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationBoxDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4870
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationBoxDocumentStore });
4871
+ }
4872
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationBoxDocumentStore, decorators: [{
4873
+ type: Injectable
4874
+ }], ctorParameters: function () { return []; } });
4875
+
4876
+ class DbxFirebaseNotificationBoxDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
4877
+ constructor(store) {
4878
+ super(store);
4879
+ }
4880
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationBoxDocumentStoreDirective, deps: [{ token: NotificationBoxDocumentStore }], target: i0.ɵɵFactoryTarget.Directive });
4881
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationBoxDocumentStoreDirective, selector: "[dbxFirebaseNotificationBoxDocument]", providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationBoxDocumentStoreDirective, NotificationBoxDocumentStore), usesInheritance: true, ngImport: i0 });
4882
+ }
4883
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationBoxDocumentStoreDirective, decorators: [{
4884
+ type: Directive,
4885
+ args: [{
4886
+ selector: '[dbxFirebaseNotificationBoxDocument]',
4887
+ providers: provideDbxFirebaseDocumentStoreDirective(DbxFirebaseNotificationBoxDocumentStoreDirective, NotificationBoxDocumentStore)
4888
+ }]
4889
+ }], ctorParameters: function () { return [{ type: NotificationBoxDocumentStore }]; } });
4890
+
4891
+ class NotificationBoxCollectionStore extends AbstractDbxFirebaseCollectionStore {
4892
+ constructor(collections) {
4893
+ super({ firestoreCollection: collections.notificationBoxCollection });
4894
+ }
4895
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationBoxCollectionStore, deps: [{ token: i1$3.NotificationFirestoreCollections }], target: i0.ɵɵFactoryTarget.Injectable });
4896
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationBoxCollectionStore });
4897
+ }
4898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationBoxCollectionStore, decorators: [{
4899
+ type: Injectable
4900
+ }], ctorParameters: function () { return [{ type: i1$3.NotificationFirestoreCollections }]; } });
4901
+
4902
+ class DbxFirebaseNotificationBoxCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
4903
+ constructor(store) {
4904
+ super(store);
4905
+ }
4906
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationBoxCollectionStoreDirective, deps: [{ token: NotificationBoxCollectionStore }], target: i0.ɵɵFactoryTarget.Directive });
4907
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationBoxCollectionStoreDirective, selector: "[dbxFirebaseNotificationBoxCollection]", providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationBoxCollectionStoreDirective, NotificationBoxCollectionStore), usesInheritance: true, ngImport: i0 });
4908
+ }
4909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationBoxCollectionStoreDirective, decorators: [{
4910
+ type: Directive,
4911
+ args: [{
4912
+ selector: '[dbxFirebaseNotificationBoxCollection]',
4913
+ providers: provideDbxFirebaseCollectionStoreDirective(DbxFirebaseNotificationBoxCollectionStoreDirective, NotificationBoxCollectionStore)
4914
+ }]
4915
+ }], ctorParameters: function () { return [{ type: NotificationBoxCollectionStore }]; } });
4916
+
4917
+ const DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY = 'notification-item-store-notifications';
4918
+ class DbxFirebaseNotificationItemStorePopoverComponent extends AbstractPopoverDirective {
4919
+ static openPopover(popupService, { origin, header, icon, emptyText, makeNotificationItemAnchor, notificationItemsLoadingState$ }, popoverKey) {
4920
+ return popupService.open({
4921
+ key: popoverKey ?? DEFAULT_DBX_FIREBASE_NOTIFICATION_ITEM_STORE_POPOVER_KEY,
4922
+ origin,
4923
+ componentClass: DbxFirebaseNotificationItemStorePopoverComponent,
4924
+ data: {
4925
+ header,
4926
+ icon,
4927
+ emptyText,
4928
+ notificationItemsLoadingState$,
4929
+ makeNotificationItemAnchor
4930
+ }
4931
+ });
4932
+ }
4933
+ get params() {
4934
+ return this.popover.data;
4935
+ }
4936
+ get icon() {
4937
+ return this.params.icon ?? 'notifications';
4938
+ }
4939
+ get header() {
4940
+ return this.params.header ?? 'Notifications';
4941
+ }
4942
+ get emptyText() {
4943
+ return this.params.header ?? 'There are no notifications.';
4944
+ }
4945
+ get notificationItemsLoadingState$() {
4946
+ return this.params.notificationItemsLoadingState$;
4947
+ }
4948
+ get makeNotificationItemAnchor() {
4949
+ return this.params.makeNotificationItemAnchor;
4950
+ }
4951
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4952
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemStorePopoverComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-notificationitem-list [state$]=\"notificationItemsLoadingState$\" [dbxListItemModifier] [dbxListItemAnchorModifier]=\"makeNotificationItemAnchor\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-notificationitem-list>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "directive", type: i1.DbxListItemAnchorModifierDirective, selector: "[dbxListItemAnchorModifier]", inputs: ["dbxListItemAnchorModifier"] }, { kind: "component", type: i1.DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: i1.DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "component", type: i1.DbxPopoverScrollContentComponent, selector: "dbx-popover-scroll-content" }, { kind: "component", type: i1.DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }, { kind: "directive", type: i1.DbxValueListItemModifierDirective, selector: "[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "component", type: DbxFirebaseNotificationItemListComponent, selector: "dbx-firebase-notificationitem-list" }] });
4953
+ }
4954
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverComponent, decorators: [{
4955
+ type: Component,
4956
+ args: [{ template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-notificationitem-list [state$]=\"notificationItemsLoadingState$\" [dbxListItemModifier] [dbxListItemAnchorModifier]=\"makeNotificationItemAnchor\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-notificationitem-list>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
4957
+ }] });
4958
+
4959
+ class DbxFirebaseNotificationItemStorePopoverButtonComponent extends AbstractPopoverRefDirective {
4960
+ _dbxPopoverService = inject(DbxPopoverService);
4961
+ _dbxFirebaseNotificationItemStore = inject(DbxFirebaseNotificationItemStore, { optional: true });
4962
+ buttonElement;
4963
+ config;
4964
+ _makePopoverRef(origin) {
4965
+ const config = this.config;
4966
+ const notificationItemsLoadingState$ = config?.notificationItemsLoadingState$ ?? (this._dbxFirebaseNotificationItemStore != null ? loadingStateFromObs(this._dbxFirebaseNotificationItemStore.items$) : undefined);
4967
+ if (!origin) {
4968
+ throw new Error('Missing origin.');
4969
+ }
4970
+ else if (!notificationItemsLoadingState$) {
4971
+ throw new Error('Missing notificationItemsLoadingState$.');
4972
+ }
4973
+ return DbxFirebaseNotificationItemStorePopoverComponent.openPopover(this._dbxPopoverService, {
4974
+ origin,
4975
+ notificationItemsLoadingState$,
4976
+ ...config
4977
+ });
4978
+ }
4979
+ showNotificationsPopover() {
4980
+ const origin = this.buttonElement.nativeElement;
4981
+ this.showPopover(origin);
4982
+ }
4983
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4984
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseNotificationItemStorePopoverButtonComponent, selector: "dbx-firebase-notification-item-store-popover-button", inputs: { config: "config" }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
4985
+ <dbx-icon-button #button (buttonClick)="showNotificationsPopover()" icon="notifications"></dbx-icon-button>
4986
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4987
+ }
4988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationItemStorePopoverButtonComponent, decorators: [{
4989
+ type: Component,
4990
+ args: [{
4991
+ selector: 'dbx-firebase-notification-item-store-popover-button',
4992
+ template: `
4993
+ <dbx-icon-button #button (buttonClick)="showNotificationsPopover()" icon="notifications"></dbx-icon-button>
4994
+ `,
4995
+ changeDetection: ChangeDetectionStrategy.OnPush
4996
+ }]
4997
+ }], propDecorators: { buttonElement: [{
4998
+ type: ViewChild,
4999
+ args: ['button', { read: ElementRef, static: false }]
5000
+ }], config: [{
5001
+ type: Input
5002
+ }] } });
5003
+
5004
+ const declarations$1 = [
5005
+ // components
5006
+ DbxFirebaseNotificationItemListComponent,
5007
+ DbxFirebaseNotificationItemListViewComponent,
5008
+ DbxFirebaseNotificationItemListViewItemComponent,
5009
+ DbxFirebaseNotificationItemContentComponent,
5010
+ DbxFirebaseNotificationItemViewComponent,
5011
+ DbxFirebaseNotificationItemDefaultViewComponent,
5012
+ // container
5013
+ DbxFirebaseNotificationItemStorePopoverButtonComponent,
5014
+ DbxFirebaseNotificationItemStorePopoverComponent,
5015
+ // stores
5016
+ DbxFirebaseNotificationBoxCollectionStoreDirective,
5017
+ DbxFirebaseNotificationBoxDocumentStoreDirective,
5018
+ DbxFirebaseNotificationSummaryCollectionStoreDirective,
5019
+ DbxFirebaseNotificationSummaryDocumentStoreDirective,
5020
+ DbxFirebaseNotificationUserCollectionStoreDirective,
5021
+ DbxFirebaseNotificationUserDocumentStoreDirective
5022
+ ];
5023
+ /**
5024
+ * Used to initialize the DbxFirebaseNotificationModule.
5025
+ */
5026
+ class DbxFirebaseNotificationModule {
5027
+ static forRoot(config) {
5028
+ const { appNotificationTemplateTypeInfoRecordService } = config;
5029
+ const providers = [
5030
+ {
5031
+ provide: AppNotificationTemplateTypeInfoRecordService,
5032
+ useValue: appNotificationTemplateTypeInfoRecordService
5033
+ },
5034
+ {
5035
+ provide: DbxFirebaseNotificationTemplateService,
5036
+ useClass: DbxFirebaseNotificationTemplateService
5037
+ }
5038
+ ];
5039
+ return {
5040
+ ngModule: DbxFirebaseNotificationModule,
5041
+ providers
5042
+ };
5043
+ }
5044
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5045
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationModule, declarations: [
5046
+ // components
5047
+ DbxFirebaseNotificationItemListComponent,
5048
+ DbxFirebaseNotificationItemListViewComponent,
5049
+ DbxFirebaseNotificationItemListViewItemComponent,
5050
+ DbxFirebaseNotificationItemContentComponent,
5051
+ DbxFirebaseNotificationItemViewComponent,
5052
+ DbxFirebaseNotificationItemDefaultViewComponent,
5053
+ // container
5054
+ DbxFirebaseNotificationItemStorePopoverButtonComponent,
5055
+ DbxFirebaseNotificationItemStorePopoverComponent,
5056
+ // stores
5057
+ DbxFirebaseNotificationBoxCollectionStoreDirective,
5058
+ DbxFirebaseNotificationBoxDocumentStoreDirective,
5059
+ DbxFirebaseNotificationSummaryCollectionStoreDirective,
5060
+ DbxFirebaseNotificationSummaryDocumentStoreDirective,
5061
+ DbxFirebaseNotificationUserCollectionStoreDirective,
5062
+ DbxFirebaseNotificationUserDocumentStoreDirective], imports: [CommonModule, DbxButtonModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxSectionLayoutModule, DbxListLayoutModule, DbxWidgetModule, DbxValuePipeModule], exports: [
5063
+ // components
5064
+ DbxFirebaseNotificationItemListComponent,
5065
+ DbxFirebaseNotificationItemListViewComponent,
5066
+ DbxFirebaseNotificationItemListViewItemComponent,
5067
+ DbxFirebaseNotificationItemContentComponent,
5068
+ DbxFirebaseNotificationItemViewComponent,
5069
+ DbxFirebaseNotificationItemDefaultViewComponent,
5070
+ // container
5071
+ DbxFirebaseNotificationItemStorePopoverButtonComponent,
5072
+ DbxFirebaseNotificationItemStorePopoverComponent,
5073
+ // stores
5074
+ DbxFirebaseNotificationBoxCollectionStoreDirective,
5075
+ DbxFirebaseNotificationBoxDocumentStoreDirective,
5076
+ DbxFirebaseNotificationSummaryCollectionStoreDirective,
5077
+ DbxFirebaseNotificationSummaryDocumentStoreDirective,
5078
+ DbxFirebaseNotificationUserCollectionStoreDirective,
5079
+ DbxFirebaseNotificationUserDocumentStoreDirective] });
5080
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationModule, imports: [CommonModule, DbxButtonModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxSectionLayoutModule, DbxListLayoutModule, DbxWidgetModule, DbxValuePipeModule] });
5081
+ }
5082
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseNotificationModule, decorators: [{
5083
+ type: NgModule,
5084
+ args: [{
5085
+ imports: [CommonModule, DbxButtonModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxSectionLayoutModule, DbxListLayoutModule, DbxWidgetModule, DbxValuePipeModule],
5086
+ declarations: declarations$1,
5087
+ exports: declarations$1
5088
+ }]
5089
+ }] });
5090
+
4449
5091
  class FlatFirestoreModelKeyPipe {
4450
5092
  transform(input) {
4451
5093
  if (input != null) {
@@ -4493,6 +5135,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4493
5135
  }]
4494
5136
  }] });
4495
5137
 
5138
+ const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY = 'id';
5139
+ const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY = 'key';
5140
+ const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = '0';
5141
+ function dbxFirebaseKeyRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY) {
5142
+ return dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey);
5143
+ }
5144
+ function dbxFirebaseIdRouteParamRedirect(dbxRouterService, defaultParamKey = DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY) {
5145
+ const _paramReader = dbxRouteParamReaderInstance(dbxRouterService, defaultParamKey);
5146
+ const _paramRedirect = new DbxRouteParamDefaultRedirectInstance(_paramReader);
5147
+ const _useDefaultParamDecider = new BehaviorSubject(DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE);
5148
+ const _useDefaultParam$ = _useDefaultParamDecider.pipe(map((x) => {
5149
+ let result;
5150
+ if (typeof x === 'string') {
5151
+ result = (value) => of(value === x);
5152
+ }
5153
+ else {
5154
+ result = x;
5155
+ }
5156
+ return result;
5157
+ }), shareReplay(1));
5158
+ const setParamKey = (paramKey) => {
5159
+ _paramReader.setParamKey(paramKey || defaultParamKey);
5160
+ };
5161
+ const paramValue$ = _paramReader.paramValue$;
5162
+ const value$ = _paramReader.value$;
5163
+ const result = {
5164
+ paramValue$,
5165
+ defaultValue$: _paramReader.defaultValue$,
5166
+ value$,
5167
+ idFromParams$: paramValue$,
5168
+ id$: value$,
5169
+ init() {
5170
+ _paramRedirect.setUseDefaultFilter((value) => {
5171
+ return _useDefaultParam$.pipe(switchMap((x) => x(value)));
5172
+ });
5173
+ _paramRedirect.init();
5174
+ },
5175
+ destroy() {
5176
+ _paramReader.destroy();
5177
+ _paramRedirect.destroy();
5178
+ _useDefaultParamDecider.complete();
5179
+ },
5180
+ getParamKey() {
5181
+ return _paramReader.getParamKey();
5182
+ },
5183
+ setParamKey,
5184
+ setDefaultValue(defaultValue) {
5185
+ _paramReader.setDefaultValue(defaultValue);
5186
+ },
5187
+ setRedirectEnabled(redirect) {
5188
+ _paramRedirect.enabled = redirect !== false;
5189
+ },
5190
+ setDecider(decider) {
5191
+ _useDefaultParamDecider.next(decider);
5192
+ },
5193
+ setParamValue(value) {
5194
+ _paramReader.setParamValue(value);
5195
+ }
5196
+ };
5197
+ return result;
5198
+ }
5199
+
4496
5200
  /**
4497
5201
  * Token to access the FirebaseStorageContextConfig value.
4498
5202
  */
@@ -4580,5 +5284,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4580
5284
  * Generated bundle index. Do not edit.
4581
5285
  */
4582
5286
 
4583
- export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, 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_OPTIONS_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_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_HISTORY_COMPONENT_POPOVER_KEY, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserEventsListener, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentModuleRootConfig, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelContextService, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryModule, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent, DbxFirebaseModelTypesModule, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePipeModule, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, DbxfirebaseModelViewedEventDirective, FlatFirestoreModelKeyPipe, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageModuleContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, provideSystemStateFirestoreCollections, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction };
5287
+ export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractDbxFirebaseNotificationItemWidgetComponent, AbstractRootSingleItemDbxFirebaseDocument, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, 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_OPTIONS_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_HISTORY_COMPONENT_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, DbxFirebaseAnalyticsUserEventsListener, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentModuleRootConfig, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreIdFromTwoWayModelKeyDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseDocumentStoreRouteKeyDirective, DbxFirebaseDocumentStoreTwoWayKeyProvider, DbxFirebaseDocumentStoreTwoWayModelKeySourceDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelContextService, DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryModule, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModelTrackerService, DbxFirebaseModelTypeInstanceComponent, DbxFirebaseModelTypeInstanceViewComponent, DbxFirebaseModelTypeInstanceViewItemComponent, DbxFirebaseModelTypesModule, DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceConfig, DbxFirebaseModule, DbxFirebaseNotificationItemDefaultViewComponent, DbxFirebaseNotificationItemListComponent, DbxFirebaseNotificationItemListViewComponent, DbxFirebaseNotificationItemListViewItemComponent, DbxFirebaseNotificationItemStore, DbxFirebaseNotificationItemViewComponent, DbxFirebaseNotificationItemWidgetService, DbxFirebaseNotificationModule, DbxFirebaseNotificationSummaryCollectionStoreDirective, DbxFirebaseNotificationSummaryDocumentStoreDirective, DbxFirebaseNotificationTemplateService, DbxFirebaseNotificationUserCollectionStoreDirective, DbxFirebaseNotificationUserDocumentStoreDirective, DbxFirebaseParsedEmulatorsConfig, DbxFirebasePipeModule, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, DbxfirebaseModelViewedEventDirective, FIREBASE_NOTIFICATION_ITEM_WIDGET_TYPE_PREFIX, FlatFirestoreModelKeyPipe, NotificationSummaryCollectionStore, NotificationSummaryDocumentStore, NotificationUserCollectionStore, NotificationUserDocumentStore, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, SystemStateCollectionStore, SystemStateDocumentStore, TwoWayFlatFirestoreModelKeyPipe, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseAuthContextInfo, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseInContextFirebaseModelServiceInstance, dbxFirebaseInContextFirebaseModelServiceInstanceFactory, dbxFirebaseKeyRouteParamRedirect, dbxFirebaseModelContextServiceInfoInstanceFactory, dbxFirebaseModelTypesServiceInstance, dbxFirebaseModelTypesServiceInstancePairForKeysFactory, dbxFirebaseSourceSelectLoadSource, dbxFirebaseStorageModuleContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, dbxWidgetTypeForNotificationTemplateType, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseContextServiceEntityMap, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, provideDbxFirebaseDocumentStoreTwoWayKeyProvider, provideNotificationFirestoreCollections, provideSystemStateFirestoreCollections, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction };
4584
5288
  //# sourceMappingURL=dereekb-dbx-firebase.mjs.map