@dereekb/dbx-firebase 2.1.0 → 3.0.0

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 (149) hide show
  1. package/_index.scss +18 -0
  2. package/esm2020/lib/auth/auth.mjs +10 -0
  3. package/esm2020/lib/auth/error.mjs +28 -0
  4. package/esm2020/lib/auth/firebase.auth.module.mjs +34 -0
  5. package/esm2020/lib/auth/index.mjs +6 -0
  6. package/esm2020/lib/auth/login/firebase.login.module.mjs +274 -0
  7. package/esm2020/lib/auth/login/index.mjs +26 -0
  8. package/esm2020/lib/auth/login/login.anonymous.component.mjs +22 -0
  9. package/esm2020/lib/auth/login/login.apple.component.mjs +22 -0
  10. package/esm2020/lib/auth/login/login.button.component.mjs +139 -0
  11. package/esm2020/lib/auth/login/login.component.mjs +43 -0
  12. package/esm2020/lib/auth/login/login.context.back.component.mjs +27 -0
  13. package/esm2020/lib/auth/login/login.context.directive.mjs +25 -0
  14. package/esm2020/lib/auth/login/login.context.mjs +7 -0
  15. package/esm2020/lib/auth/login/login.email.component.mjs +23 -0
  16. package/esm2020/lib/auth/login/login.email.content.component.mjs +105 -0
  17. package/esm2020/lib/auth/login/login.email.form.component.mjs +35 -0
  18. package/esm2020/lib/auth/login/login.email.recovery.form.component.mjs +21 -0
  19. package/esm2020/lib/auth/login/login.facebook.component.mjs +22 -0
  20. package/esm2020/lib/auth/login/login.github.component.mjs +22 -0
  21. package/esm2020/lib/auth/login/login.google.component.mjs +22 -0
  22. package/esm2020/lib/auth/login/login.list.component.mjs +87 -0
  23. package/esm2020/lib/auth/login/login.microsoft.component.mjs +22 -0
  24. package/esm2020/lib/auth/login/login.mjs +3 -0
  25. package/esm2020/lib/auth/login/login.password.mjs +4 -0
  26. package/esm2020/lib/auth/login/login.service.mjs +134 -0
  27. package/esm2020/lib/auth/login/login.terms.component.mjs +26 -0
  28. package/esm2020/lib/auth/login/login.terms.mjs +3 -0
  29. package/esm2020/lib/auth/login/login.terms.simple.component.mjs +39 -0
  30. package/esm2020/lib/auth/login/login.twitter.component.mjs +22 -0
  31. package/esm2020/lib/auth/login/register.component.mjs +24 -0
  32. package/esm2020/lib/auth/login/register.email.component.mjs +21 -0
  33. package/esm2020/lib/auth/service/firebase.auth.rxjs.mjs +39 -0
  34. package/esm2020/lib/auth/service/firebase.auth.service.mjs +99 -0
  35. package/esm2020/lib/auth/service/index.mjs +3 -0
  36. package/esm2020/lib/firebase/emulators.mjs +3 -0
  37. package/esm2020/lib/firebase/firebase.emulator.module.mjs +36 -0
  38. package/esm2020/lib/firebase/firebase.module.mjs +188 -0
  39. package/esm2020/lib/firebase/index.mjs +5 -0
  40. package/esm2020/lib/firebase/options.mjs +2 -0
  41. package/esm2020/lib/firestore/firebase.firestore.context.service.mjs +23 -0
  42. package/esm2020/lib/firestore/firebase.firestore.mjs +6 -0
  43. package/esm2020/lib/firestore/firebase.firestore.module.mjs +31 -0
  44. package/esm2020/lib/firestore/index.mjs +4 -0
  45. package/esm2020/lib/function/firebase.function.module.mjs +47 -0
  46. package/esm2020/lib/function/index.mjs +2 -0
  47. package/esm2020/lib/index.mjs +7 -2
  48. package/esm2020/lib/model/error.mjs +6 -0
  49. package/esm2020/lib/model/index.mjs +5 -0
  50. package/esm2020/lib/model/loader/collection.loader.instance.mjs +101 -0
  51. package/esm2020/lib/model/loader/collection.loader.mjs +2 -0
  52. package/esm2020/lib/model/loader/index.mjs +3 -0
  53. package/esm2020/lib/model/model.module.mjs +17 -0
  54. package/esm2020/lib/model/store/index.mjs +14 -0
  55. package/esm2020/lib/model/store/model.store.module.mjs +41 -0
  56. package/esm2020/lib/model/store/store.collection.change.directive.mjs +54 -0
  57. package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +57 -0
  58. package/esm2020/lib/model/store/store.collection.directive.mjs +52 -0
  59. package/esm2020/lib/model/store/store.collection.list.directive.mjs +27 -0
  60. package/esm2020/lib/model/store/store.collection.mjs +50 -0
  61. package/esm2020/lib/model/store/store.document.auth.directive.mjs +33 -0
  62. package/esm2020/lib/model/store/store.document.directive.mjs +46 -0
  63. package/esm2020/lib/model/store/store.document.mjs +81 -0
  64. package/esm2020/lib/model/store/store.document.router.directive.mjs +53 -0
  65. package/esm2020/lib/model/store/store.subcollection.document.mjs +37 -0
  66. package/esm2020/lib/model/store/store.subcollection.mjs +37 -0
  67. package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +42 -0
  68. package/esm2020/lib/module.mjs +17 -0
  69. package/fesm2015/dereekb-dbx-firebase.mjs +2266 -2
  70. package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
  71. package/fesm2020/dereekb-dbx-firebase.mjs +2247 -2
  72. package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
  73. package/lib/auth/auth.d.ts +4 -0
  74. package/lib/auth/error.d.ts +9 -0
  75. package/lib/auth/firebase.auth.module.d.ts +12 -0
  76. package/lib/auth/index.d.ts +5 -0
  77. package/lib/auth/login/_login.scss +72 -0
  78. package/lib/auth/login/firebase.login.module.d.ts +48 -0
  79. package/lib/auth/login/index.d.ts +25 -0
  80. package/lib/auth/login/login.anonymous.component.d.ts +8 -0
  81. package/lib/auth/login/login.apple.component.d.ts +8 -0
  82. package/lib/auth/login/login.button.component.d.ts +51 -0
  83. package/lib/auth/login/login.component.d.ts +14 -0
  84. package/lib/auth/login/login.context.back.component.d.ts +9 -0
  85. package/lib/auth/login/login.context.d.ts +6 -0
  86. package/lib/auth/login/login.context.directive.d.ts +10 -0
  87. package/lib/auth/login/login.d.ts +7 -0
  88. package/lib/auth/login/login.email.component.d.ts +8 -0
  89. package/lib/auth/login/login.email.content.component.d.ts +39 -0
  90. package/lib/auth/login/login.email.form.component.d.ts +21 -0
  91. package/lib/auth/login/login.email.recovery.form.component.d.ts +11 -0
  92. package/lib/auth/login/login.facebook.component.d.ts +8 -0
  93. package/lib/auth/login/login.github.component.d.ts +8 -0
  94. package/lib/auth/login/login.google.component.d.ts +8 -0
  95. package/lib/auth/login/login.list.component.d.ts +28 -0
  96. package/lib/auth/login/login.microsoft.component.d.ts +8 -0
  97. package/lib/auth/login/login.password.d.ts +4 -0
  98. package/lib/auth/login/login.service.d.ts +115 -0
  99. package/lib/auth/login/login.terms.component.d.ts +10 -0
  100. package/lib/auth/login/login.terms.d.ts +4 -0
  101. package/lib/auth/login/login.terms.simple.component.d.ts +11 -0
  102. package/lib/auth/login/login.twitter.component.d.ts +8 -0
  103. package/lib/auth/login/register.component.d.ts +13 -0
  104. package/lib/auth/login/register.email.component.d.ts +8 -0
  105. package/lib/auth/service/firebase.auth.rxjs.d.ts +21 -0
  106. package/lib/auth/service/firebase.auth.service.d.ts +49 -0
  107. package/lib/auth/service/index.d.ts +2 -0
  108. package/lib/firebase/emulators.d.ts +52 -0
  109. package/lib/firebase/firebase.emulator.module.d.ts +12 -0
  110. package/lib/firebase/firebase.module.d.ts +50 -0
  111. package/lib/firebase/index.d.ts +4 -0
  112. package/lib/firebase/options.d.ts +6 -0
  113. package/lib/firestore/firebase.firestore.context.service.d.ts +11 -0
  114. package/lib/firestore/firebase.firestore.d.ts +5 -0
  115. package/lib/firestore/firebase.firestore.module.d.ts +17 -0
  116. package/lib/firestore/index.d.ts +3 -0
  117. package/lib/function/firebase.function.module.d.ts +24 -0
  118. package/lib/function/index.d.ts +1 -0
  119. package/lib/index.d.ts +6 -1
  120. package/lib/model/error.d.ts +5 -0
  121. package/lib/model/index.d.ts +4 -0
  122. package/lib/model/loader/collection.loader.d.ts +38 -0
  123. package/lib/model/loader/collection.loader.instance.d.ts +52 -0
  124. package/lib/model/loader/index.d.ts +2 -0
  125. package/lib/model/model.module.d.ts +7 -0
  126. package/lib/model/store/index.d.ts +13 -0
  127. package/lib/model/store/model.store.module.d.ts +11 -0
  128. package/lib/model/store/store.collection.change.directive.d.ts +30 -0
  129. package/lib/model/store/store.collection.change.if.directive.d.ts +24 -0
  130. package/lib/model/store/store.collection.d.ts +47 -0
  131. package/lib/model/store/store.collection.directive.d.ts +30 -0
  132. package/lib/model/store/store.collection.list.directive.d.ts +13 -0
  133. package/lib/model/store/store.document.auth.directive.d.ts +19 -0
  134. package/lib/model/store/store.document.d.ts +69 -0
  135. package/lib/model/store/store.document.directive.d.ts +34 -0
  136. package/lib/model/store/store.document.router.directive.d.ts +25 -0
  137. package/lib/model/store/store.subcollection.d.ts +31 -0
  138. package/lib/model/store/store.subcollection.document.d.ts +31 -0
  139. package/lib/model/store/store.subcollection.rxjs.d.ts +23 -0
  140. package/lib/module.d.ts +7 -0
  141. package/lib/style/_all-core.scss +6 -0
  142. package/lib/style/_all-theme.scss +6 -0
  143. package/lib/style/_all-typography.scss +6 -0
  144. package/lib/style/_config.scss +20 -0
  145. package/lib/style/_core.scss +9 -0
  146. package/lib/style/_mixin.scss +3 -0
  147. package/lib/style/_theming.scss +19 -0
  148. package/lib/style/_variables.scss +1 -0
  149. package/package.json +21 -12
@@ -0,0 +1,50 @@
1
+ import { ModuleWithProviders, InjectionToken } from '@angular/core';
2
+ import { FirebaseOptions } from 'firebase/app';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/fire/firestore";
5
+ import * as i2 from "@angular/fire/auth";
6
+ import * as i3 from "@angular/fire/storage";
7
+ import * as i4 from "@angular/fire/functions";
8
+ import * as i5 from "@angular/fire/app";
9
+ /**
10
+ * Default firebase firestore provider module.
11
+ */
12
+ export declare class DbxFirebaseDefaultFirestoreProviderModule {
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDefaultFirestoreProviderModule, never>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseDefaultFirestoreProviderModule, never, [typeof i1.FirestoreModule], never>;
15
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseDefaultFirestoreProviderModule>;
16
+ }
17
+ /**
18
+ * Default firebase auth provider module.
19
+ */
20
+ export declare class DbxFirebaseDefaultAuthProviderModule {
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDefaultAuthProviderModule, never>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseDefaultAuthProviderModule, never, [typeof i2.AuthModule], never>;
23
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseDefaultAuthProviderModule>;
24
+ }
25
+ /**
26
+ * Default firebase storage provider module.
27
+ */
28
+ export declare class DbxFirebaseDefaultStorageProviderModule {
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDefaultStorageProviderModule, never>;
30
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseDefaultStorageProviderModule, never, [typeof i3.StorageModule], never>;
31
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseDefaultStorageProviderModule>;
32
+ }
33
+ /**
34
+ * Default firebase functions provider module.
35
+ */
36
+ export declare class DbxFirebaseDefaultFunctionsProviderModule {
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDefaultFunctionsProviderModule, never>;
38
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseDefaultFunctionsProviderModule, never, [typeof i4.FunctionsModule], never>;
39
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseDefaultFunctionsProviderModule>;
40
+ }
41
+ export declare const DBX_FIREBASE_OPTIONS_TOKEN: InjectionToken<unknown>;
42
+ /**
43
+ * Default provider module.
44
+ */
45
+ export declare class DbxFirebaseDefaultFirebaseProvidersModule {
46
+ static forRoot(firebaseOptions: FirebaseOptions): ModuleWithProviders<DbxFirebaseDefaultFirebaseProvidersModule>;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDefaultFirebaseProvidersModule, never>;
48
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseDefaultFirebaseProvidersModule, never, [typeof DbxFirebaseDefaultFirestoreProviderModule, typeof DbxFirebaseDefaultAuthProviderModule, typeof DbxFirebaseDefaultStorageProviderModule, typeof DbxFirebaseDefaultFunctionsProviderModule, typeof i5.FirebaseAppModule], never>;
49
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseDefaultFirebaseProvidersModule>;
50
+ }
@@ -0,0 +1,4 @@
1
+ export * from './emulators';
2
+ export * from './firebase.module';
3
+ export * from './firebase.emulator.module';
4
+ export * from './options';
@@ -0,0 +1,6 @@
1
+ import { FirebaseOptions } from "firebase/app";
2
+ import { DbxFirebaseLoginModuleRootConfig } from "../auth/login/firebase.login.module";
3
+ import { DbxFirebaseEmulatorsConfig } from "./emulators";
4
+ export interface DbxFirebaseOptions extends FirebaseOptions, Pick<DbxFirebaseLoginModuleRootConfig, 'enabledLoginMethods'> {
5
+ emulators: DbxFirebaseEmulatorsConfig;
6
+ }
@@ -0,0 +1,11 @@
1
+ import { FirestoreContext } from '@dereekb/firebase';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Service that provides access to the app's FirestoreContext.
5
+ */
6
+ export declare class DbxFirestoreContextService {
7
+ readonly firestoreContext: FirestoreContext;
8
+ constructor(firestoreContext: FirestoreContext);
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirestoreContextService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirestoreContextService>;
11
+ }
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Token to access the FirestoreContext value.
4
+ */
5
+ export declare const DBX_FIRESTORE_CONTEXT_TOKEN: InjectionToken<unknown>;
@@ -0,0 +1,17 @@
1
+ import { ModuleWithProviders } from "@angular/core";
2
+ import { FirestoreContext } from "@dereekb/firebase";
3
+ import { ClassLikeType } from "@dereekb/util";
4
+ import * as i0 from "@angular/core";
5
+ export interface DbxFirebaseFirestoreCollectionModuleConfig<T> {
6
+ appCollectionClass: ClassLikeType<T>;
7
+ collectionFactory: (context: FirestoreContext) => T;
8
+ }
9
+ /**
10
+ * Used to initialize the FirestoreCollection for a DbxFirebase app.
11
+ */
12
+ export declare class DbxFirebaseFirestoreCollectionModule {
13
+ static forRoot<T>(config: DbxFirebaseFirestoreCollectionModuleConfig<T>): ModuleWithProviders<DbxFirebaseFirestoreCollectionModule>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseFirestoreCollectionModule, never>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseFirestoreCollectionModule, never, never, never>;
16
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseFirestoreCollectionModule>;
17
+ }
@@ -0,0 +1,3 @@
1
+ export * from './firebase.firestore';
2
+ export * from './firebase.firestore.module';
3
+ export * from './firebase.firestore.context.service';
@@ -0,0 +1,24 @@
1
+ import { ModuleWithProviders } from "@angular/core";
2
+ import { Functions } from "@angular/fire/functions";
3
+ import { FirebaseFunctionsConfigMap } from "@dereekb/firebase";
4
+ import { ClassLikeType } from "@dereekb/util";
5
+ import * as i0 from "@angular/core";
6
+ export interface DbxFirebaseFunctionsModuleConfig<T> {
7
+ functionsGetterToken: ClassLikeType<T>;
8
+ functionsGetterFactory: (functions: Functions) => T;
9
+ /**
10
+ * Optional functions config map to provide.
11
+ *
12
+ * If provided, will inject all the types with factory functions so they can be injected into the app.
13
+ */
14
+ functionsConfigMap?: FirebaseFunctionsConfigMap<any>;
15
+ }
16
+ /**
17
+ * Used to initialize the LazyFirebaseFunctions type for a DbxFirebase app.
18
+ */
19
+ export declare class DbxFirebaseFunctionsModule {
20
+ static forRoot<T>(config: DbxFirebaseFunctionsModuleConfig<T>): ModuleWithProviders<DbxFirebaseFunctionsModule>;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseFunctionsModule, never>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseFunctionsModule, never, never, never>;
23
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseFunctionsModule>;
24
+ }
@@ -0,0 +1 @@
1
+ export * from './firebase.function.module';
package/lib/index.d.ts CHANGED
@@ -1 +1,6 @@
1
- export declare const test = "";
1
+ export * from './auth';
2
+ export * from './firebase';
3
+ export * from './firestore';
4
+ export * from './function';
5
+ export * from './model';
6
+ export * from './module';
@@ -0,0 +1,5 @@
1
+ export declare const DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR = "DOES_NOT_EXIST";
2
+ export declare function modelDoesNotExistError(): {
3
+ code: string;
4
+ message: string | undefined;
5
+ };
@@ -0,0 +1,4 @@
1
+ export * from './loader';
2
+ export * from './store';
3
+ export * from './error';
4
+ export * from './model.module';
@@ -0,0 +1,38 @@
1
+ import { FirestoreItemPageIterationInstance, FirestoreQueryConstraint } from "@dereekb/firebase";
2
+ import { PageListLoadingState } from "@dereekb/rxjs";
3
+ import { Maybe, ArrayOrValue } from "@dereekb/util";
4
+ import { Observable } from "rxjs";
5
+ /**
6
+ * Abstract type that loads models from a configured collection.
7
+ */
8
+ export interface DbxFirebaseCollectionLoader<T = any> {
9
+ readonly constraints$: Observable<Maybe<ArrayOrValue<FirestoreQueryConstraint>>>;
10
+ readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
11
+ readonly pageLoadingState$: Observable<PageListLoadingState<T>>;
12
+ /**
13
+ * Maximum number of pages to load from the interation.
14
+ *
15
+ * Changing this updates the iteration, but does not reset it.
16
+ */
17
+ maxPages: Maybe<number>;
18
+ /**
19
+ * Number of items to load per page.
20
+ *
21
+ * Changing this will reset the iteration.
22
+ */
23
+ itemsPerPage: Maybe<number>;
24
+ /**
25
+ * Sets the constraints on the model loader.
26
+ *
27
+ * @param constraints
28
+ */
29
+ setConstraints(constraints: Maybe<ArrayOrValue<FirestoreQueryConstraint>>): void;
30
+ /**
31
+ * Loads more items.
32
+ */
33
+ next(): void;
34
+ /**
35
+ * Resets/restarts the list.
36
+ */
37
+ restart(): void;
38
+ }
@@ -0,0 +1,52 @@
1
+ import { PageListLoadingState } from '@dereekb/rxjs';
2
+ import { BehaviorSubject, Subject, Observable } from 'rxjs';
3
+ import { FirebaseQueryItemAccumulator, FirestoreCollection, FirestoreDocument, FirestoreItemPageIterationInstance, FirestoreItemPageIteratorFilter, FirestoreQueryConstraint, IterationQueryDocChangeWatcher } from '@dereekb/firebase';
4
+ import { ArrayOrValue, Destroyable, Initialized, Maybe } from '@dereekb/util';
5
+ import { DbxFirebaseCollectionLoader } from './collection.loader';
6
+ export interface DbxFirebaseCollectionLoaderInstanceInitConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
7
+ collection?: Maybe<FirestoreCollection<T, D>>;
8
+ maxPages?: Maybe<number>;
9
+ itemsPerPage?: Maybe<number>;
10
+ constraints?: Maybe<ArrayOrValue<FirestoreQueryConstraint<T>>>;
11
+ }
12
+ export interface DbxFirebaseCollectionLoaderInstanceData<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
13
+ readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
14
+ readonly accumulator$: Observable<FirebaseQueryItemAccumulator<T>>;
15
+ readonly pageLoadingState$: Observable<PageListLoadingState<T>>;
16
+ }
17
+ /**
18
+ * DbxFirebaseModelLoader implementation within an instance.
19
+ */
20
+ export declare class DbxFirebaseCollectionLoaderInstance<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> implements DbxFirebaseCollectionLoader<T>, DbxFirebaseCollectionLoaderInstanceData<T, D>, Initialized, Destroyable {
21
+ private readonly _initConfig?;
22
+ protected readonly _collection: BehaviorSubject<Maybe<FirestoreCollection<T, D>>>;
23
+ protected readonly _maxPages: BehaviorSubject<Maybe<number>>;
24
+ protected readonly _itemsPerPage: BehaviorSubject<Maybe<number>>;
25
+ protected readonly _constraints: BehaviorSubject<Maybe<ArrayOrValue<FirestoreQueryConstraint<T>>>>;
26
+ protected readonly _restart: Subject<void>;
27
+ private readonly _maxPagesSub;
28
+ readonly collection$: Observable<Maybe<FirestoreCollection<T, D>>>;
29
+ readonly constraints$: Observable<Maybe<ArrayOrValue<FirestoreQueryConstraint<T>>>>;
30
+ readonly iteratorFilter$: Observable<FirestoreItemPageIteratorFilter>;
31
+ readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
32
+ readonly queryChangeWatcher$: Observable<IterationQueryDocChangeWatcher<T>>;
33
+ readonly accumulator$: Observable<FirebaseQueryItemAccumulator<T>>;
34
+ readonly pageLoadingState$: Observable<PageListLoadingState<T>>;
35
+ constructor(_initConfig?: DbxFirebaseCollectionLoaderInstanceInitConfig<T, D> | undefined);
36
+ init(): void;
37
+ destroy(): void;
38
+ get maxPages(): Maybe<number>;
39
+ set maxPages(maxPages: Maybe<number>);
40
+ get itemsPerPage(): Maybe<number>;
41
+ set itemsPerPage(itemsPerPage: Maybe<number>);
42
+ get constraints(): Maybe<ArrayOrValue<FirestoreQueryConstraint>>;
43
+ set constraints(constraints: Maybe<ArrayOrValue<FirestoreQueryConstraint>>);
44
+ get collection(): Maybe<FirestoreCollection<T, D>>;
45
+ set collection(collection: Maybe<FirestoreCollection<T, D>>);
46
+ next(): void;
47
+ restart(): void;
48
+ setConstraints(constraints: Maybe<ArrayOrValue<FirestoreQueryConstraint>>): void;
49
+ setCollection(firestoreCollection: Maybe<FirestoreCollection<T, D>>): void;
50
+ }
51
+ export declare function dbxFirebaseCollectionLoaderInstance<T, D extends FirestoreDocument<T> = FirestoreDocument<T>>(config: DbxFirebaseCollectionLoaderInstanceInitConfig<T, D>): DbxFirebaseCollectionLoaderInstance<T, D>;
52
+ export declare function dbxFirebaseCollectionLoaderInstanceWithCollection<T, D extends FirestoreDocument<T> = FirestoreDocument<T>>(collection: Maybe<FirestoreCollection<T, D>>): DbxFirebaseCollectionLoaderInstance<T, D>;
@@ -0,0 +1,2 @@
1
+ export * from './collection.loader.instance';
2
+ export * from './collection.loader';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./store/model.store.module";
3
+ export declare class DbxFirebaseModelModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseModelModule, never, never, [typeof i1.DbxFirebaseModelStoreModule]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseModelModule>;
7
+ }
@@ -0,0 +1,13 @@
1
+ export * from './model.store.module';
2
+ export * from './store.collection';
3
+ export * from './store.collection.change.directive';
4
+ export * from './store.collection.change.if.directive';
5
+ export * from './store.collection.directive';
6
+ export * from './store.collection.list.directive';
7
+ export * from './store.document';
8
+ export * from './store.document.auth.directive';
9
+ export * from './store.document.directive';
10
+ export * from './store.document.router.directive';
11
+ export * from './store.subcollection';
12
+ export * from './store.subcollection.document';
13
+ export * from './store.subcollection.rxjs';
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./store.collection.list.directive";
3
+ import * as i2 from "./store.collection.change.directive";
4
+ import * as i3 from "./store.collection.change.if.directive";
5
+ import * as i4 from "./store.document.router.directive";
6
+ import * as i5 from "./store.document.auth.directive";
7
+ export declare class DbxFirebaseModelStoreModule {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelStoreModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseModelStoreModule, [typeof i1.DbxFirebaseCollectionListDirective, typeof i2.DbxFirebaseCollectionChangeDirective, typeof i3.DbxFirebaseCollectionHasChangeDirective, typeof i4.DbxFirebaseDocumentStoreRouteIdDirective, typeof i5.DbxFirebaseDocumentAuthIdDirective], never, [typeof i1.DbxFirebaseCollectionListDirective, typeof i2.DbxFirebaseCollectionChangeDirective, typeof i3.DbxFirebaseCollectionHasChangeDirective, typeof i4.DbxFirebaseDocumentStoreRouteIdDirective, typeof i5.DbxFirebaseDocumentAuthIdDirective]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseModelStoreModule>;
11
+ }
@@ -0,0 +1,30 @@
1
+ import { Observable } from 'rxjs';
2
+ import { FirestoreDocument, IterationQueryDocChangeWatcherEvent } from "@dereekb/firebase";
3
+ import { Maybe } from '@dereekb/util';
4
+ import { DbxFirebaseCollectionStore } from "./store.collection";
5
+ import { DbxFirebaseCollectionStoreDirective } from './store.collection.directive';
6
+ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Refresh mode
10
+ */
11
+ export declare type DbxFirebaseCollectionChangeDirectiveMode = 'auto' | 'manual';
12
+ export declare type DbxFirebaseCollectionChangeDirectiveEvent = Pick<IterationQueryDocChangeWatcherEvent<any>, 'time' | 'type'>;
13
+ /**
14
+ * Used to watch query doc changes and respond to them accordingly.
15
+ */
16
+ export declare class DbxFirebaseCollectionChangeDirective<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseCollectionStore<T, D> = DbxFirebaseCollectionStore<T, D>> extends AbstractSubscriptionDirective {
17
+ readonly dbxFirebaseCollectionStoreDirective: DbxFirebaseCollectionStoreDirective<T, D, S>;
18
+ private _mode;
19
+ readonly mode$: Observable<DbxFirebaseCollectionChangeDirectiveMode>;
20
+ readonly event$: Observable<DbxFirebaseCollectionChangeDirectiveEvent>;
21
+ readonly hasChangeAvailable$: Observable<boolean>;
22
+ constructor(dbxFirebaseCollectionStoreDirective: DbxFirebaseCollectionStoreDirective<T, D, S>);
23
+ ngOnInit(): void;
24
+ ngOnDestroy(): void;
25
+ get mode(): DbxFirebaseCollectionChangeDirectiveMode;
26
+ set mode(mode: Maybe<DbxFirebaseCollectionChangeDirectiveMode | ''>);
27
+ restart(): void;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseCollectionChangeDirective<any, any, any>, never>;
29
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseCollectionChangeDirective<any, any, any>, "[dbxFirebaseCollectionChange]", never, { "mode": "dbxFirebaseCollectionChange"; }, {}, never>;
30
+ }
@@ -0,0 +1,24 @@
1
+ import { OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { AbstractIfDirective } from '@dereekb/dbx-core';
3
+ import { Observable } from 'rxjs';
4
+ import { DbxFirebaseCollectionChangeDirective } from './store.collection.change.directive';
5
+ import { IterationQueryDocChangeWatcherChangeType } from '@dereekb/firebase';
6
+ import { Maybe } from '@dereekb/util';
7
+ import * as i0 from "@angular/core";
8
+ export declare type DbxFirebaseCollectionHasChangeDirectiveMode = 'all' | IterationQueryDocChangeWatcherChangeType;
9
+ /**
10
+ * Structural directive that displays the content when the target change is detected.
11
+ *
12
+ * Can specify which changes to appear on.
13
+ */
14
+ export declare class DbxFirebaseCollectionHasChangeDirective extends AbstractIfDirective implements OnDestroy {
15
+ readonly directive: DbxFirebaseCollectionChangeDirective<any>;
16
+ private _mode;
17
+ readonly show$: Observable<boolean>;
18
+ constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef, directive: DbxFirebaseCollectionChangeDirective<any>);
19
+ get mode(): DbxFirebaseCollectionHasChangeDirectiveMode;
20
+ set mode(mode: Maybe<DbxFirebaseCollectionHasChangeDirectiveMode | ''>);
21
+ ngOnDestroy(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseCollectionHasChangeDirective, never>;
23
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseCollectionHasChangeDirective, "[dbxFirebaseCollectionHasChange]", never, { "mode": "dbxFirebaseCollectionHasChange"; }, {}, never>;
24
+ }
@@ -0,0 +1,47 @@
1
+ import { Observable, Subscription } from 'rxjs';
2
+ import { FirebaseQueryItemAccumulator, FirestoreCollection, FirestoreDocument, FirestoreItemPageIterationInstance, FirestoreQueryConstraint, IterationQueryDocChangeWatcher } from '@dereekb/firebase';
3
+ import { ObservableOrValue, PageListLoadingState } from '@dereekb/rxjs';
4
+ import { ArrayOrValue, Maybe } from '@dereekb/util';
5
+ import { LockSetComponentStore } from '@dereekb/dbx-core';
6
+ import { DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionLoaderInstanceData } from '../loader/collection.loader.instance';
7
+ import * as i0 from "@angular/core";
8
+ export interface DbxFirebaseCollectionStore<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends DbxFirebaseCollectionLoaderInstanceData<T, D> {
9
+ readonly firestoreCollection$: Observable<Maybe<FirestoreCollection<T, D>>>;
10
+ readonly loader$: Observable<DbxFirebaseCollectionLoaderInstance<T, D>>;
11
+ readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
12
+ readonly queryChangeWatcher$: Observable<IterationQueryDocChangeWatcher<T>>;
13
+ readonly accumulator$: Observable<FirebaseQueryItemAccumulator<T>>;
14
+ readonly pageLoadingState$: Observable<PageListLoadingState<T>>;
15
+ setMaxPages(observableOrValue: ObservableOrValue<Maybe<number>>): Subscription;
16
+ setItemsPerPage(observableOrValue: ObservableOrValue<Maybe<number>>): Subscription;
17
+ setConstraints(observableOrValue: ObservableOrValue<Maybe<ArrayOrValue<FirestoreQueryConstraint<T>>>>): Subscription;
18
+ next(observableOrValue: ObservableOrValue<void>): void;
19
+ restart(observableOrValue: ObservableOrValue<void>): void;
20
+ readonly setFirestoreCollection: (() => void) | ((observableOrValue: ObservableOrValue<Maybe<FirestoreCollection<T, D>>>) => Subscription);
21
+ }
22
+ export interface DbxFirebaseCollectionStoreContextState<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
23
+ readonly firestoreCollection?: Maybe<FirestoreCollection<T, D>>;
24
+ readonly maxPages?: Maybe<number>;
25
+ readonly itemsPerPage?: Maybe<number>;
26
+ readonly constraints?: Maybe<ArrayOrValue<FirestoreQueryConstraint<T>>>;
27
+ }
28
+ /**
29
+ * Used for storing the state of a Person and related email threads.
30
+ */
31
+ export declare class AbstractDbxFirebaseCollectionStore<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, C extends DbxFirebaseCollectionStoreContextState<T, D> = DbxFirebaseCollectionStoreContextState<T, D>> extends LockSetComponentStore<C> implements DbxFirebaseCollectionStore<T, D> {
32
+ readonly setMaxPages: (observableOrValue: Maybe<number> | Observable<Maybe<number>>) => Subscription;
33
+ readonly setItemsPerPage: (observableOrValue: Maybe<number> | Observable<Maybe<number>>) => Subscription;
34
+ readonly setConstraints: (observableOrValue: Maybe<ArrayOrValue<FirestoreQueryConstraint<T>>> | Observable<Maybe<ArrayOrValue<FirestoreQueryConstraint<T>>>>) => Subscription;
35
+ readonly next: () => void;
36
+ readonly restart: () => void;
37
+ readonly currentFirestoreCollection$: Observable<Maybe<FirestoreCollection<T, D>>>;
38
+ readonly firestoreCollection$: Observable<FirestoreCollection<T, D>>;
39
+ readonly loader$: Observable<DbxFirebaseCollectionLoaderInstance<T, D>>;
40
+ readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
41
+ readonly queryChangeWatcher$: Observable<IterationQueryDocChangeWatcher<T>>;
42
+ readonly accumulator$: Observable<FirebaseQueryItemAccumulator<T>>;
43
+ readonly pageLoadingState$: Observable<PageListLoadingState<T>>;
44
+ readonly setFirestoreCollection: (() => void) | ((observableOrValue: FirestoreCollection<T, D> | Observable<FirestoreCollection<T, D> | null | undefined> | null | undefined) => Subscription);
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxFirebaseCollectionStore<any, any, any>, never>;
46
+ static ɵprov: i0.ɵɵInjectableDeclaration<AbstractDbxFirebaseCollectionStore<any, any, any>>;
47
+ }
@@ -0,0 +1,30 @@
1
+ import { Provider, Type } from '@angular/core';
2
+ import { FirestoreDocument, FirestoreQueryConstraint } from "@dereekb/firebase";
3
+ import { Maybe, ArrayOrValue } from '@dereekb/util';
4
+ import { DbxFirebaseCollectionStore } from "./store.collection";
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Abstract directive that contains a DbxFirebaseCollectionStore and provides an interface for communicating with other directives.
8
+ */
9
+ export declare abstract class DbxFirebaseCollectionStoreDirective<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseCollectionStore<T, D> = DbxFirebaseCollectionStore<T, D>> {
10
+ readonly store: S;
11
+ constructor(store: S);
12
+ readonly pageLoadingState$: import("rxjs").Observable<import("../../../../../../dist/packages/rxjs/src").PageListLoadingState<T>>;
13
+ set maxPages(maxPages: Maybe<number>);
14
+ set itemsPerPage(itemsPerPage: Maybe<number>);
15
+ set constraints(constraints: Maybe<ArrayOrValue<FirestoreQueryConstraint>>);
16
+ next(): void;
17
+ restart(): void;
18
+ setConstraints(constraints: Maybe<ArrayOrValue<FirestoreQueryConstraint>>): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseCollectionStoreDirective<any, any, any>, never>;
20
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseCollectionStoreDirective<any, any, any>, never, never, { "maxPages": "maxPages"; "itemsPerPage": "itemsPerPage"; "constraints": "constraints"; }, {}, never>;
21
+ }
22
+ /**
23
+ * Configures providers for a DbxFirebaseCollectionStoreDirective.
24
+ *
25
+ * Can optionally also provide the actual store type to include in the providers array so it is instantiated by Angular.
26
+ *
27
+ * @param sourceType
28
+ */
29
+ export declare function provideDbxFirebaseCollectionStoreDirective<S extends DbxFirebaseCollectionStoreDirective<any, any, any>>(sourceType: Type<S>): Provider[];
30
+ export declare function provideDbxFirebaseCollectionStoreDirective<S extends DbxFirebaseCollectionStore<any, any>, C extends DbxFirebaseCollectionStoreDirective<any, any, S> = DbxFirebaseCollectionStoreDirective<any, any, S>>(sourceType: Type<C>, storeType: Type<S>): Provider[];
@@ -0,0 +1,13 @@
1
+ import { DbxListViewWrapper } from '@dereekb/dbx-web';
2
+ import { DbxFirebaseCollectionStoreDirective } from './store.collection.directive';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Directive that connects a host DbxListView to a DbxFirebaseCollectionStoreDirective to pass data for rendering items from a collection and query parameters.
6
+ */
7
+ export declare class DbxFirebaseCollectionListDirective<T> {
8
+ readonly dbxFirebaseCollectionStoreDirective: DbxFirebaseCollectionStoreDirective<T>;
9
+ readonly dbxListViewWrapper: DbxListViewWrapper<T>;
10
+ constructor(dbxFirebaseCollectionStoreDirective: DbxFirebaseCollectionStoreDirective<T>, dbxListViewWrapper: DbxListViewWrapper<T>);
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseCollectionListDirective<any>, [null, { host: true; }]>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseCollectionListDirective<any>, "[dbxFirebaseCollectionList]", never, {}, {}, never>;
13
+ }
@@ -0,0 +1,19 @@
1
+ import { OnInit } from "@angular/core";
2
+ import { FirestoreDocument } from "@dereekb/firebase";
3
+ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
+ import { DbxFirebaseAuthService } from "../../auth/service/firebase.auth.service";
5
+ import { DbxFirebaseDocumentStoreDirective } from "./store.document.directive";
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Utility directive for a host DbxFirebaseDocumentStoreDirective that sets the document's ID to match the ID of the current user.
9
+ *
10
+ * This is useful for cases where each document is keyed by the user (I.E. implements UserRelatedById).
11
+ */
12
+ export declare class DbxFirebaseDocumentAuthIdDirective<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends AbstractSubscriptionDirective implements OnInit {
13
+ readonly dbxFirebaseAuthService: DbxFirebaseAuthService;
14
+ readonly dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<T, D>;
15
+ constructor(dbxFirebaseAuthService: DbxFirebaseAuthService, dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<T, D>);
16
+ ngOnInit(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDocumentAuthIdDirective<any, any>, [null, { host: true; }]>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseDocumentAuthIdDirective<any, any>, "[dbxFirebaseDocumentAuthId]", never, {}, {}, never>;
19
+ }
@@ -0,0 +1,69 @@
1
+ import { Observable, Subscription } from 'rxjs';
2
+ import { DocumentSnapshot, DocumentReference, FirestoreCollection, FirestoreDocument, DocumentDataWithId } from '@dereekb/firebase';
3
+ import { LoadingState, ObservableOrValue } from '@dereekb/rxjs';
4
+ import { Maybe, ModelKey } from '@dereekb/util';
5
+ import { LockSetComponent, LockSetComponentStore } from '@dereekb/dbx-core';
6
+ import * as i0 from "@angular/core";
7
+ export interface DbxFirebaseDocumentStore<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends LockSetComponent {
8
+ readonly firestoreCollection$: Observable<FirestoreCollection<T, D>>;
9
+ readonly currentInputId$: Observable<Maybe<ModelKey>>;
10
+ readonly inputId$: Observable<ModelKey>;
11
+ readonly currentInputRef$: Observable<Maybe<DocumentReference<T>>>;
12
+ readonly inputRef$: Observable<DocumentReference<T>>;
13
+ readonly currentDocument$: Observable<Maybe<D>>;
14
+ readonly document$: Observable<D>;
15
+ readonly id$: Observable<ModelKey>;
16
+ readonly ref$: Observable<DocumentReference<T>>;
17
+ readonly documentLoadingState$: Observable<LoadingState<D>>;
18
+ readonly snapshot$: Observable<DocumentSnapshot<T>>;
19
+ readonly snapshotLoadingState$: Observable<LoadingState<DocumentSnapshot<T>>>;
20
+ readonly currentData$: Observable<Maybe<DocumentDataWithId<T>>>;
21
+ readonly data$: Observable<DocumentDataWithId<T>>;
22
+ readonly dataLoadingState$: Observable<LoadingState<DocumentDataWithId<T>>>;
23
+ readonly exists$: Observable<boolean>;
24
+ setId: (observableOrValue: ObservableOrValue<string>) => Subscription;
25
+ setRef: (observableOrValue: ObservableOrValue<DocumentReference<T>>) => Subscription;
26
+ /**
27
+ * Sets the firestore collection to retrieve document from.
28
+ */
29
+ readonly setFirestoreCollection: (() => void) | ((observableOrValue: ObservableOrValue<Maybe<FirestoreCollection<T, D>>>) => Subscription);
30
+ }
31
+ export interface DbxFirebaseDocumentStoreContextState<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
32
+ readonly firestoreCollection?: Maybe<FirestoreCollection<T, D>>;
33
+ readonly id?: Maybe<ModelKey>;
34
+ readonly ref?: Maybe<DocumentReference<T>>;
35
+ }
36
+ /**
37
+ * Used for storing the state of a Person and related email threads.
38
+ */
39
+ export declare class AbstractDbxFirebaseDocumentStore<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, C extends DbxFirebaseDocumentStoreContextState<T, D> = DbxFirebaseDocumentStoreContextState<T, D>> extends LockSetComponentStore<C> implements DbxFirebaseDocumentStore<T, D> {
40
+ readonly currentFirestoreCollection$: Observable<Maybe<FirestoreCollection<T, D>>>;
41
+ readonly firestoreCollection$: Observable<FirestoreCollection<T, D>>;
42
+ readonly currentInputId$: Observable<Maybe<ModelKey>>;
43
+ readonly inputId$: Observable<ModelKey>;
44
+ readonly currentInputRef$: Observable<Maybe<DocumentReference<T>>>;
45
+ readonly inputRef$: Observable<DocumentReference<T>>;
46
+ readonly currentDocument$: Observable<Maybe<D>>;
47
+ readonly document$: Observable<D>;
48
+ readonly documentLoadingState$: Observable<LoadingState<D>>;
49
+ readonly id$: Observable<ModelKey>;
50
+ readonly ref$: Observable<DocumentReference<T>>;
51
+ readonly snapshot$: Observable<DocumentSnapshot<T>>;
52
+ readonly snapshotLoadingState$: Observable<LoadingState<DocumentSnapshot<T>>>;
53
+ readonly currentData$: Observable<Maybe<DocumentDataWithId<T>>>;
54
+ readonly data$: Observable<DocumentDataWithId<T>>;
55
+ readonly dataLoadingState$: Observable<LoadingState<DocumentDataWithId<T>>>;
56
+ readonly exists$: Observable<boolean>;
57
+ readonly doesNotExist$: Observable<boolean>;
58
+ /**
59
+ * Sets the id of the document to load.
60
+ */
61
+ readonly setId: (observableOrValue: string | Observable<string>) => Subscription;
62
+ /**
63
+ * Sets the ref of the document to load.
64
+ */
65
+ readonly setRef: (observableOrValue: DocumentReference<T> | Observable<DocumentReference<T>>) => Subscription;
66
+ readonly setFirestoreCollection: (() => void) | ((observableOrValue: Maybe<FirestoreCollection<T, D>> | Observable<Maybe<FirestoreCollection<T, D>>>) => Subscription);
67
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractDbxFirebaseDocumentStore<any, any, any>, never>;
68
+ static ɵprov: i0.ɵɵInjectableDeclaration<AbstractDbxFirebaseDocumentStore<any, any, any>>;
69
+ }
@@ -0,0 +1,34 @@
1
+ import { Provider, Type } from '@angular/core';
2
+ import { DocumentReference, FirestoreDocument } from "@dereekb/firebase";
3
+ import { ModelKey } from '@dereekb/util';
4
+ import { DbxFirebaseDocumentStore } from "./store.document";
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Abstract directive that contains a DbxFirebaseDocumentStore and provides an interface for communicating with other directives.
8
+ */
9
+ export declare abstract class DbxFirebaseDocumentStoreDirective<T, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseDocumentStore<T, D> = DbxFirebaseDocumentStore<T, D>> {
10
+ readonly store: S;
11
+ constructor(store: S);
12
+ readonly exists$: import("rxjs").Observable<boolean>;
13
+ readonly document$: import("rxjs").Observable<D>;
14
+ readonly documentLoadingState$: import("rxjs").Observable<import("../../../../../../dist/packages/rxjs/src").LoadingState<D>>;
15
+ readonly id$: import("rxjs").Observable<string>;
16
+ readonly ref$: import("rxjs").Observable<DocumentReference<T>>;
17
+ readonly snapshot$: import("rxjs").Observable<import("@dereekb/firebase").DocumentSnapshot<T>>;
18
+ readonly snapshotLoadingState$: import("rxjs").Observable<import("../../../../../../dist/packages/rxjs/src").LoadingState<import("@dereekb/firebase").DocumentSnapshot<T>>>;
19
+ readonly data$: import("rxjs").Observable<import("@dereekb/firebase").DocumentDataWithId<T>>;
20
+ readonly loadingState$: import("rxjs").Observable<import("../../../../../../dist/packages/rxjs/src").LoadingState<import("@dereekb/firebase").DocumentDataWithId<T>>>;
21
+ set id(id: ModelKey);
22
+ set ref(ref: DocumentReference<T>);
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDocumentStoreDirective<any, any, any>, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseDocumentStoreDirective<any, any, any>, never, never, { "id": "id"; "ref": "ref"; }, {}, never>;
25
+ }
26
+ /**
27
+ * Configures providers for a DbxFirebaseDocumentStoreDirective.
28
+ *
29
+ * Can optionally also provide the actual store type to include in the providers array so it is instantiated by Angular.
30
+ *
31
+ * @param sourceType
32
+ */
33
+ export declare function provideDbxFirebaseDocumentStoreDirective<S extends DbxFirebaseDocumentStoreDirective<any, any, any>>(sourceType: Type<S>): Provider[];
34
+ export declare function provideDbxFirebaseDocumentStoreDirective<S extends DbxFirebaseDocumentStore<any, any>, C extends DbxFirebaseDocumentStoreDirective<any, any, S> = DbxFirebaseDocumentStoreDirective<any, any, S>>(sourceType: Type<C>, storeType: Type<S>): Provider[];
@@ -0,0 +1,25 @@
1
+ import { Observable } from 'rxjs';
2
+ import { OnDestroy } from '@angular/core';
3
+ import { OnInit } from '@angular/core';
4
+ import { DbxRouterService, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
5
+ import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
6
+ import { ModelKey } from '@dereekb/util';
7
+ import * as i0 from "@angular/core";
8
+ export declare const DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY = "id";
9
+ /**
10
+ * Used for synchronizing the document store id to the param of the route.
11
+ */
12
+ export declare class DbxFirebaseDocumentStoreRouteIdDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {
13
+ readonly dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<any>;
14
+ readonly dbxRouterService: DbxRouterService;
15
+ private _idParamKey;
16
+ readonly idParamKey$: Observable<string>;
17
+ readonly idFromParams$: Observable<ModelKey>;
18
+ constructor(dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<any>, dbxRouterService: DbxRouterService);
19
+ ngOnInit(): void;
20
+ ngOnDestroy(): void;
21
+ get idParam(): string;
22
+ set idParam(idParam: string);
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDocumentStoreRouteIdDirective, [{ host: true; }, null]>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseDocumentStoreRouteIdDirective, "[dbxFirebaseDocumentStoreRouteId]", never, { "idParam": "dbxFirebaseDocumentStoreRouteId"; }, {}, never>;
25
+ }