@dereekb/dbx-firebase 9.19.4 → 9.20.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 (91) hide show
  1. package/esm2020/lib/model/index.mjs +2 -2
  2. package/esm2020/lib/model/model.module.mjs +6 -5
  3. package/esm2020/lib/model/modules/index.mjs +3 -0
  4. package/esm2020/lib/model/modules/model/index.mjs +6 -0
  5. package/esm2020/lib/model/modules/model/model.tracker.service.mjs +30 -0
  6. package/esm2020/lib/model/modules/model/model.types.list.component.mjs +67 -0
  7. package/esm2020/lib/model/modules/model/model.types.module.mjs +21 -0
  8. package/esm2020/lib/model/modules/model/model.types.service.mjs +114 -0
  9. package/esm2020/lib/model/modules/model/model.types.view.directive.mjs +48 -0
  10. package/esm2020/lib/model/modules/store/index.mjs +17 -0
  11. package/esm2020/lib/model/modules/store/model.store.module.mjs +23 -0
  12. package/esm2020/lib/model/modules/store/store.collection.change.directive.mjs +52 -0
  13. package/esm2020/lib/model/modules/store/store.collection.change.if.directive.mjs +57 -0
  14. package/esm2020/lib/model/modules/store/store.collection.directive.mjs +54 -0
  15. package/esm2020/lib/model/{store → modules/store}/store.collection.list.directive.mjs +1 -1
  16. package/esm2020/lib/model/modules/store/store.collection.mjs +55 -0
  17. package/esm2020/lib/model/modules/store/store.document.auth.directive.mjs +33 -0
  18. package/esm2020/lib/model/modules/store/store.document.crud.mjs +80 -0
  19. package/esm2020/lib/model/modules/store/store.document.directive.mjs +61 -0
  20. package/esm2020/lib/model/modules/store/store.document.mjs +109 -0
  21. package/esm2020/lib/model/modules/store/store.document.router.directive.mjs +67 -0
  22. package/esm2020/lib/model/modules/store/store.document.router.key.directive.mjs +67 -0
  23. package/esm2020/lib/model/modules/store/store.subcollection.directive.mjs +30 -0
  24. package/esm2020/lib/model/modules/store/store.subcollection.document.mjs +98 -0
  25. package/esm2020/lib/model/modules/store/store.subcollection.mjs +79 -0
  26. package/esm2020/lib/model/modules/store/store.subcollection.rxjs.mjs +23 -0
  27. package/esm2020/lib/model/service/index.mjs +3 -1
  28. package/esm2020/lib/model/service/model.context.instance.mjs +54 -0
  29. package/esm2020/lib/model/service/model.context.mjs +2 -35
  30. package/esm2020/lib/model/service/model.context.service.mjs +38 -0
  31. package/esm2020/lib/model/system/systemstate.collection.store.directive.mjs +2 -2
  32. package/esm2020/lib/model/system/systemstate.collection.store.mjs +2 -2
  33. package/esm2020/lib/model/system/systemstate.document.store.directive.mjs +2 -2
  34. package/esm2020/lib/model/system/systemstate.document.store.mjs +2 -2
  35. package/esm2020/lib/router/id.param.redirect.mjs +11 -6
  36. package/fesm2015/dereekb-dbx-firebase.mjs +439 -74
  37. package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
  38. package/fesm2020/dereekb-dbx-firebase.mjs +438 -74
  39. package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
  40. package/lib/model/index.d.ts +1 -1
  41. package/lib/model/model.module.d.ts +3 -2
  42. package/lib/model/modules/index.d.ts +2 -0
  43. package/lib/model/modules/model/index.d.ts +5 -0
  44. package/lib/model/modules/model/model.tracker.service.d.ts +13 -0
  45. package/lib/model/modules/model/model.types.list.component.d.ts +22 -0
  46. package/lib/model/modules/model/model.types.module.d.ts +10 -0
  47. package/lib/model/modules/model/model.types.service.d.ts +88 -0
  48. package/lib/model/modules/model/model.types.view.directive.d.ts +18 -0
  49. package/lib/model/{store → modules/store}/index.d.ts +1 -0
  50. package/lib/model/modules/store/model.store.module.d.ts +12 -0
  51. package/lib/model/{store → modules/store}/store.collection.change.directive.d.ts +1 -1
  52. package/lib/model/{store → modules/store}/store.collection.change.if.directive.d.ts +0 -0
  53. package/lib/model/{store → modules/store}/store.collection.d.ts +2 -2
  54. package/lib/model/{store → modules/store}/store.collection.directive.d.ts +1 -1
  55. package/lib/model/{store → modules/store}/store.collection.list.directive.d.ts +0 -0
  56. package/lib/model/{store → modules/store}/store.document.auth.directive.d.ts +1 -1
  57. package/lib/model/{store → modules/store}/store.document.crud.d.ts +0 -0
  58. package/lib/model/{store → modules/store}/store.document.d.ts +6 -1
  59. package/lib/model/{store → modules/store}/store.document.directive.d.ts +5 -3
  60. package/lib/model/{store → modules/store}/store.document.router.directive.d.ts +0 -0
  61. package/lib/model/modules/store/store.document.router.key.directive.d.ts +31 -0
  62. package/lib/model/{store → modules/store}/store.subcollection.d.ts +0 -0
  63. package/lib/model/{store → modules/store}/store.subcollection.directive.d.ts +0 -0
  64. package/lib/model/{store → modules/store}/store.subcollection.document.d.ts +0 -0
  65. package/lib/model/{store → modules/store}/store.subcollection.rxjs.d.ts +0 -0
  66. package/lib/model/service/index.d.ts +2 -0
  67. package/lib/model/service/model.context.d.ts +16 -16
  68. package/lib/model/service/model.context.instance.d.ts +31 -0
  69. package/lib/model/service/model.context.service.d.ts +31 -0
  70. package/lib/model/system/systemstate.collection.store.d.ts +1 -1
  71. package/lib/model/system/systemstate.collection.store.directive.d.ts +1 -1
  72. package/lib/model/system/systemstate.document.store.d.ts +1 -1
  73. package/lib/model/system/systemstate.document.store.directive.d.ts +1 -1
  74. package/lib/router/id.param.redirect.d.ts +11 -2
  75. package/package.json +5 -5
  76. package/esm2020/lib/model/store/index.mjs +0 -16
  77. package/esm2020/lib/model/store/model.store.module.mjs +0 -21
  78. package/esm2020/lib/model/store/store.collection.change.directive.mjs +0 -52
  79. package/esm2020/lib/model/store/store.collection.change.if.directive.mjs +0 -57
  80. package/esm2020/lib/model/store/store.collection.directive.mjs +0 -54
  81. package/esm2020/lib/model/store/store.collection.mjs +0 -55
  82. package/esm2020/lib/model/store/store.document.auth.directive.mjs +0 -33
  83. package/esm2020/lib/model/store/store.document.crud.mjs +0 -80
  84. package/esm2020/lib/model/store/store.document.directive.mjs +0 -59
  85. package/esm2020/lib/model/store/store.document.mjs +0 -108
  86. package/esm2020/lib/model/store/store.document.router.directive.mjs +0 -67
  87. package/esm2020/lib/model/store/store.subcollection.directive.mjs +0 -30
  88. package/esm2020/lib/model/store/store.subcollection.document.mjs +0 -98
  89. package/esm2020/lib/model/store/store.subcollection.mjs +0 -79
  90. package/esm2020/lib/model/store/store.subcollection.rxjs.mjs +0 -23
  91. package/lib/model/store/model.store.module.d.ts +0 -11
@@ -1,6 +1,6 @@
1
1
  export * from './loader';
2
2
  export * from './service';
3
- export * from './store';
3
+ export * from './modules';
4
4
  export * from './system';
5
5
  export * from './error';
6
6
  export * from './model.module';
@@ -1,7 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./store/model.store.module";
2
+ import * as i1 from "./modules/store/model.store.module";
3
+ import * as i2 from "./modules/model/model.types.module";
3
4
  export declare class DbxFirebaseModelModule {
4
5
  static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseModelModule, never, never, [typeof i1.DbxFirebaseModelStoreModule]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseModelModule, never, never, [typeof i1.DbxFirebaseModelStoreModule, typeof i2.DbxFirebaseModelTypesModule]>;
6
7
  static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseModelModule>;
7
8
  }
@@ -0,0 +1,2 @@
1
+ export * from './model';
2
+ export * from './store';
@@ -0,0 +1,5 @@
1
+ export * from './model.tracker.service';
2
+ export * from './model.types.service';
3
+ export * from './model.types.module';
4
+ export * from './model.types.list.component';
5
+ export * from './model.types.view.directive';
@@ -0,0 +1,13 @@
1
+ import { Observable } from 'rxjs';
2
+ import { DbxModelTrackerService } from '@dereekb/dbx-web';
3
+ import { DbxFirebaseModelTypesService, DbxFirebaseModelTypesServiceInstancePair } from './model.types.service';
4
+ import * as i0 from "@angular/core";
5
+ export declare class DbxFirebaseModelTrackerService {
6
+ readonly dbxModelTrackerService: DbxModelTrackerService;
7
+ readonly dbxFirebaseModelTypesService: DbxFirebaseModelTypesService;
8
+ loadHistoryKeys(): Observable<string[]>;
9
+ loadHistoryPairs(): Observable<DbxFirebaseModelTypesServiceInstancePair[]>;
10
+ constructor(dbxModelTrackerService: DbxModelTrackerService, dbxFirebaseModelTypesService: DbxFirebaseModelTypesService);
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelTrackerService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseModelTrackerService>;
13
+ }
@@ -0,0 +1,22 @@
1
+ import { AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListViewItemComponent, AbstractDbxSelectionListViewDirective, DbxSelectionValueListViewConfig, DbxValueAsListItem } from '@dereekb/dbx-web';
2
+ import { DbxFirebaseModelTypesServiceInstancePair } from './model.types.service';
3
+ import * as i0 from "@angular/core";
4
+ export declare type DbxFirestoreModelTypeInstanceItem = DbxValueAsListItem<DbxFirebaseModelTypesServiceInstancePair>;
5
+ /**
6
+ * Renders an item as configured from the DbxFirebaseModelTypesServiceInstancePair.
7
+ */
8
+ export declare class DbxFirebaseModelTypeInstanceComponent extends AbstractDbxSelectionListWrapperDirective<DbxFirebaseModelTypesServiceInstancePair> {
9
+ constructor();
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelTypeInstanceComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelTypeInstanceComponent, "dbx-firebase-model-type-instance-list", never, {}, {}, never, ["[top]", "[bottom]", "[empty]"], false>;
12
+ }
13
+ export declare class DbxFirebaseModelTypeInstanceViewComponent extends AbstractDbxSelectionListViewDirective<DbxFirebaseModelTypesServiceInstancePair> {
14
+ readonly config: DbxSelectionValueListViewConfig<DbxFirestoreModelTypeInstanceItem>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelTypeInstanceViewComponent, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelTypeInstanceViewComponent, "ng-component", never, {}, {}, never, never, false>;
17
+ }
18
+ export declare class DbxFirebaseModelTypeInstanceViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxFirebaseModelTypesServiceInstancePair> {
19
+ get title(): string;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelTypeInstanceViewItemComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<DbxFirebaseModelTypeInstanceViewItemComponent, "ng-component", never, {}, {}, never, never, false>;
22
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./model.types.view.directive";
3
+ import * as i2 from "./model.types.list.component";
4
+ import * as i3 from "@angular/common";
5
+ import * as i4 from "@dereekb/dbx-web";
6
+ export declare class DbxFirebaseModelTypesModule {
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelTypesModule, never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseModelTypesModule, [typeof i1.DbxfirebaseModelViewedEventDirective, typeof i2.DbxFirebaseModelTypeInstanceComponent, typeof i2.DbxFirebaseModelTypeInstanceViewComponent, typeof i2.DbxFirebaseModelTypeInstanceViewItemComponent], [typeof i3.CommonModule, typeof i4.DbxModelInfoModule, typeof i4.DbxListLayoutModule], [typeof i1.DbxfirebaseModelViewedEventDirective, typeof i2.DbxFirebaseModelTypeInstanceComponent, typeof i2.DbxFirebaseModelTypeInstanceViewComponent, typeof i2.DbxFirebaseModelTypeInstanceViewItemComponent]>;
9
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseModelTypesModule>;
10
+ }
@@ -0,0 +1,88 @@
1
+ import { Observable } from 'rxjs';
2
+ import { FirestoreCollectionType, FirestoreDocument, FirestoreModelIdentity, FirestoreModelKey } from '@dereekb/firebase';
3
+ import { DbxModelTypeInfo, DbxModelTypesMap, DbxModelTypesService } from '@dereekb/dbx-web';
4
+ import { ArrayOrValue, FactoryWithRequiredInput, Maybe, ModelTypeString } from '@dereekb/util';
5
+ import { ClickableAnchorLinkSegueRef, IconAndTitle, SegueRef } from '@dereekb/dbx-core';
6
+ import { ObservableOrValue } from '@dereekb/rxjs';
7
+ import { GrantedRole } from '@dereekb/model';
8
+ import { DbxFirebaseModelContextService } from '../../service/model.context.service';
9
+ import { DbxFirebaseInContextFirebaseModelInfoServiceInstance } from '../../service/model.context';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * Configuration provided in the root module for configuring entries.
13
+ */
14
+ export declare abstract class DbxFirebaseModelTypesServiceConfig {
15
+ abstract entries: DbxFirebaseModelTypesServiceEntry[];
16
+ }
17
+ export interface DbxFirebaseModelTypesServiceEntry<T = unknown> extends Omit<DbxModelTypeInfo, 'canSegueToView' | 'modelType'> {
18
+ /**
19
+ * Identity of the item being registered.
20
+ */
21
+ readonly identity: FirestoreModelIdentity;
22
+ /**
23
+ * Creates the DbxFirebaseModelDisplayInfo for the input data.
24
+ *
25
+ * If no icon is provided, it uses the default icon configured in this entry.
26
+ *
27
+ * @param value
28
+ * @returns
29
+ */
30
+ readonly displayInfoFactory: FactoryWithRequiredInput<DbxFirebaseModelDisplayInfo, T>;
31
+ }
32
+ export interface DbxFirebaseModelDisplayInfo extends IconAndTitle {
33
+ }
34
+ export interface DbxFirebaseModelTypeInfo<T = unknown> extends DbxModelTypeInfo, Pick<DbxFirebaseModelTypesServiceEntry<T>, 'identity' | 'displayInfoFactory'> {
35
+ }
36
+ export declare type DbxFirebaseModelTypesMap = DbxModelTypesMap<DbxFirebaseModelTypeInfo>;
37
+ /**
38
+ * Provides model type information about models registered within Firebase.
39
+ *
40
+ * Automatically configures the DbxModelTypesService.
41
+ */
42
+ export declare class DbxFirebaseModelTypesService {
43
+ readonly dbxFirebaseModelContextService: DbxFirebaseModelContextService;
44
+ readonly dbxModelTypesService: DbxModelTypesService<DbxFirebaseModelTypeInfo>;
45
+ constructor(dbxFirebaseModelContextService: DbxFirebaseModelContextService, dbxModelTypesService: DbxModelTypesService<DbxFirebaseModelTypeInfo>, config?: DbxFirebaseModelTypesServiceConfig);
46
+ getDisplayInfo<T>(typeInfo: DbxFirebaseModelTypeInfo<T>, data: T): DbxFirebaseModelDisplayInfo;
47
+ getDefaultDisplayInfo<T = unknown>(typeInfo: DbxFirebaseModelTypeInfo<T>): {
48
+ title: string;
49
+ icon: string;
50
+ };
51
+ register(entries: ArrayOrValue<DbxFirebaseModelTypesServiceEntry>): void;
52
+ currentInfoForType(type: ModelTypeString | FirestoreCollectionType): Observable<Maybe<DbxFirebaseModelTypeInfo>>;
53
+ infoForType(type: ModelTypeString | FirestoreCollectionType): Observable<DbxFirebaseModelTypeInfo>;
54
+ instanceForKey<D extends FirestoreDocument<any> = any, R extends GrantedRole = GrantedRole>(key$: ObservableOrValue<FirestoreModelKey>): DbxFirebaseModelTypesServiceInstance<D, R>;
55
+ instancePairsForKeys(keys: ArrayOrValue<ObservableOrValue<FirestoreModelKey>>): Observable<DbxFirebaseModelTypesServiceInstancePair<any, string>[]>;
56
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelTypesService, [null, null, { optional: true; }]>;
57
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbxFirebaseModelTypesService>;
58
+ }
59
+ /**
60
+ * Information pair for an instance.
61
+ */
62
+ export interface DbxFirebaseModelTypesServiceInstancePair<D extends FirestoreDocument<any> = any, R extends GrantedRole = GrantedRole> {
63
+ readonly key: FirestoreModelKey;
64
+ readonly instance: DbxFirebaseModelTypesServiceInstance<D, R>;
65
+ readonly displayInfo: DbxFirebaseModelDisplayInfo;
66
+ readonly segueRef: Maybe<ClickableAnchorLinkSegueRef>;
67
+ }
68
+ export declare type DbxFirebaseModelTypesServiceInstancePairForKeysFactory = (keys: ArrayOrValue<ObservableOrValue<FirestoreModelKey>>) => Observable<DbxFirebaseModelTypesServiceInstancePair[]>;
69
+ export declare function dbxFirebaseModelTypesServiceInstancePairForKeysFactory(service: DbxFirebaseModelTypesService): DbxFirebaseModelTypesServiceInstancePairForKeysFactory;
70
+ /**
71
+ * DbxFirebaseModelTypesService instance
72
+ */
73
+ export declare class DbxFirebaseModelTypesServiceInstance<D extends FirestoreDocument<any> = any, R extends GrantedRole = GrantedRole> {
74
+ readonly modelInfoInstance$: Observable<DbxFirebaseInContextFirebaseModelInfoServiceInstance<D, R>>;
75
+ readonly dbxFirebaseModelTypesService: DbxFirebaseModelTypesService;
76
+ readonly key$: Observable<string>;
77
+ readonly modelType$: Observable<string>;
78
+ readonly snapshotData$: Observable<import("@dereekb/firebase").FirestoreDocumentData<D>>;
79
+ readonly typeInfo$: Observable<DbxFirebaseModelTypeInfo<unknown>>;
80
+ readonly identity$: Observable<import("@dereekb/firebase").FirestoreModelTypeRef<string> & import("@dereekb/firebase").FirestoreCollectionNameRef<string> & import("@dereekb/firebase").FirestoreCollectionTypeRef & {
81
+ readonly type: import("@dereekb/firebase").FirestoreModelIdentityType;
82
+ }>;
83
+ readonly segueRef$: Observable<Maybe<SegueRef>>;
84
+ readonly displayInfo$: Observable<DbxFirebaseModelDisplayInfo>;
85
+ readonly clickableSegueRef$: Observable<Maybe<ClickableAnchorLinkSegueRef>>;
86
+ readonly instancePair$: Observable<DbxFirebaseModelTypesServiceInstancePair>;
87
+ constructor(modelInfoInstance$: Observable<DbxFirebaseInContextFirebaseModelInfoServiceInstance<D, R>>, dbxFirebaseModelTypesService: DbxFirebaseModelTypesService);
88
+ }
@@ -0,0 +1,18 @@
1
+ import { DbxModelObjectStateService } from '@dereekb/dbx-web';
2
+ import { OnInit } from '@angular/core';
3
+ import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
+ import { DbxFirebaseDocumentStoreDirective } from '../store/store.document.directive';
5
+ import { DbxFirebaseModelTypesService } from './model.types.service';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Used with a DbxFirebaseDocumentStoreDirective to emit model viewed events.
9
+ */
10
+ export declare class DbxfirebaseModelViewedEventDirective extends AbstractSubscriptionDirective implements OnInit {
11
+ readonly dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective;
12
+ readonly dbxModelObjectStateService: DbxModelObjectStateService;
13
+ readonly dbxFirebaseModelTypesService: DbxFirebaseModelTypesService;
14
+ constructor(dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective, dbxModelObjectStateService: DbxModelObjectStateService, dbxFirebaseModelTypesService: DbxFirebaseModelTypesService);
15
+ ngOnInit(): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxfirebaseModelViewedEventDirective, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxfirebaseModelViewedEventDirective, "[dbxFirebaseModelViewedEvent]", never, {}, {}, never, never, false>;
18
+ }
@@ -9,6 +9,7 @@ export * from './store.document.crud';
9
9
  export * from './store.document.auth.directive';
10
10
  export * from './store.document.directive';
11
11
  export * from './store.document.router.directive';
12
+ export * from './store.document.router.key.directive';
12
13
  export * from './store.subcollection';
13
14
  export * from './store.subcollection.document';
14
15
  export * from './store.subcollection.directive';
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./store.document.router.key.directive";
3
+ import * as i2 from "./store.collection.list.directive";
4
+ import * as i3 from "./store.collection.change.directive";
5
+ import * as i4 from "./store.collection.change.if.directive";
6
+ import * as i5 from "./store.document.router.directive";
7
+ import * as i6 from "./store.document.auth.directive";
8
+ export declare class DbxFirebaseModelStoreModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseModelStoreModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFirebaseModelStoreModule, [typeof i1.DbxFirebaseDocumentStoreRouteKeyDirective, typeof i2.DbxFirebaseCollectionListDirective, typeof i3.DbxFirebaseCollectionChangeDirective, typeof i4.DbxFirebaseCollectionHasChangeDirective, typeof i5.DbxFirebaseDocumentStoreRouteIdDirective, typeof i6.DbxFirebaseDocumentAuthIdDirective], never, [typeof i1.DbxFirebaseDocumentStoreRouteKeyDirective, typeof i2.DbxFirebaseCollectionListDirective, typeof i3.DbxFirebaseCollectionChangeDirective, typeof i4.DbxFirebaseCollectionHasChangeDirective, typeof i5.DbxFirebaseDocumentStoreRouteIdDirective, typeof i6.DbxFirebaseDocumentAuthIdDirective]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<DbxFirebaseModelStoreModule>;
12
+ }
@@ -3,7 +3,7 @@ import { FirestoreDocument } from '@dereekb/firebase';
3
3
  import { Maybe } from '@dereekb/util';
4
4
  import { DbxFirebaseCollectionStore } from './store.collection';
5
5
  import { DbxFirebaseCollectionStoreDirective } from './store.collection.directive';
6
- import { DbxFirebaseCollectionChangeWatcher, DbxFirebaseCollectionChangeWatcherEvent, DbxFirebaseCollectionChangeWatcherTriggerMode } from '../loader/collection.change.watcher';
6
+ import { DbxFirebaseCollectionChangeWatcher, DbxFirebaseCollectionChangeWatcherEvent, DbxFirebaseCollectionChangeWatcherTriggerMode } from '../../loader/collection.change.watcher';
7
7
  import { Observable } from 'rxjs';
8
8
  import * as i0 from "@angular/core";
9
9
  /**
@@ -3,8 +3,8 @@ import { FirebaseQueryItemAccumulator, FirestoreCollectionLike, FirestoreDocumen
3
3
  import { ObservableOrValue, PageListLoadingState } from '@dereekb/rxjs';
4
4
  import { ArrayOrValue, Maybe } from '@dereekb/util';
5
5
  import { LockSetComponentStore } from '@dereekb/dbx-core';
6
- import { DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionLoaderInstanceData } from '../loader/collection.loader.instance';
7
- import { DbxFirebaseCollectionLoaderAccessor } from '../loader/collection.loader';
6
+ import { DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionLoaderInstanceData } from '../../loader/collection.loader.instance';
7
+ import { DbxFirebaseCollectionLoaderAccessor } from '../../loader/collection.loader';
8
8
  import * as i0 from "@angular/core";
9
9
  export interface DbxFirebaseCollectionStore<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends DbxFirebaseCollectionLoaderAccessor<T>, DbxFirebaseCollectionLoaderInstanceData<T, D> {
10
10
  readonly firestoreCollection$: Observable<Maybe<FirestoreCollectionLike<T, D>>>;
@@ -9,7 +9,7 @@ import * as i0 from "@angular/core";
9
9
  export declare abstract class DbxFirebaseCollectionStoreDirective<T = unknown, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseCollectionStore<T, D> = DbxFirebaseCollectionStore<T, D>> {
10
10
  readonly store: S;
11
11
  constructor(store: S);
12
- readonly pageLoadingState$: import("rxjs").Observable<import("../../../../../../dist/packages/rxjs/src").PageListLoadingState<import("@dereekb/firebase").DocumentDataWithIdAndKey<T>>>;
12
+ readonly pageLoadingState$: import("rxjs").Observable<import("../../../../../../../dist/packages/rxjs/src").PageListLoadingState<import("@dereekb/firebase").DocumentDataWithIdAndKey<T>>>;
13
13
  set maxPages(maxPages: Maybe<number>);
14
14
  set itemsPerPage(itemsPerPage: Maybe<number>);
15
15
  set constraints(constraints: Maybe<ArrayOrValue<FirestoreQueryConstraint>>);
@@ -1,7 +1,7 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { FirestoreDocument } from '@dereekb/firebase';
3
3
  import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
- import { DbxFirebaseAuthService } from '../../auth/service/firebase.auth.service';
4
+ import { DbxFirebaseAuthService } from '../../../auth/service/firebase.auth.service';
5
5
  import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
@@ -1,5 +1,5 @@
1
1
  import { Observable, Subscription } from 'rxjs';
2
- import { DocumentSnapshot, DocumentReference, FirestoreCollection, FirestoreDocument, DocumentDataWithIdAndKey, FirestoreModelId, FirestoreModelKey, FirestoreCollectionLike, FirestoreModelIdentity, FirestoreModelCollectionAndIdPair, FirestoreModelCollectionAndIdPairObject, FirestoreAccessorStreamMode } from '@dereekb/firebase';
2
+ import { DocumentSnapshot, DocumentReference, FirestoreCollection, FirestoreDocument, DocumentDataWithIdAndKey, FirestoreModelId, FirestoreModelKey, FirestoreCollectionLike, FirestoreModelIdentity, FirestoreModelCollectionAndIdPair, FirestoreModelCollectionAndIdPairObject, FirestoreAccessorStreamMode, TwoWayFlatFirestoreModelKey } from '@dereekb/firebase';
3
3
  import { LoadingState, ObservableOrValue } from '@dereekb/rxjs';
4
4
  import { Maybe } from '@dereekb/util';
5
5
  import { LockSetComponent, LockSetComponentStore } from '@dereekb/dbx-core';
@@ -40,6 +40,10 @@ export interface DbxFirebaseDocumentStore<T, D extends FirestoreDocument<T> = Fi
40
40
  * Sets the key of the document to load.
41
41
  */
42
42
  readonly setKey: (observableOrValue: ObservableOrValue<Maybe<FirestoreModelKey>>) => Subscription;
43
+ /**
44
+ * Sets the key of the document to load using a TwoWayFlatFirestoreModelKey.
45
+ */
46
+ readonly setFlatKey: (observableOrValue: ObservableOrValue<Maybe<TwoWayFlatFirestoreModelKey>>) => Subscription;
43
47
  /**
44
48
  * Sets the ref of the document to load.
45
49
  */
@@ -111,6 +115,7 @@ export declare class AbstractDbxFirebaseDocumentStore<T, D extends FirestoreDocu
111
115
  readonly modelIdentity$: Observable<FirestoreModelIdentity>;
112
116
  readonly setId: (observableOrValue: Maybe<string> | Observable<Maybe<string>>) => Subscription;
113
117
  readonly setKey: (observableOrValue: Maybe<string> | Observable<Maybe<string>>) => Subscription;
118
+ readonly setFlatKey: (observableOrValue: Maybe<string> | Observable<Maybe<string>>) => Subscription;
114
119
  readonly setRef: (observableOrValue: Maybe<DocumentReference<T>> | Observable<Maybe<DocumentReference<T>>>) => Subscription;
115
120
  readonly setStreamMode: (observableOrValue: FirestoreAccessorStreamMode | Observable<FirestoreAccessorStreamMode>) => Subscription;
116
121
  readonly clearRefs: () => void;
@@ -11,13 +11,15 @@ export declare abstract class DbxFirebaseDocumentStoreDirective<T = unknown, D e
11
11
  constructor(store: S);
12
12
  readonly exists$: import("rxjs").Observable<boolean>;
13
13
  readonly document$: import("rxjs").Observable<D>;
14
- readonly documentLoadingState$: import("rxjs").Observable<import("../../../../../../dist/packages/rxjs/src").LoadingState<D>>;
14
+ readonly documentLoadingState$: import("rxjs").Observable<import("../../../../../../../dist/packages/rxjs/src").LoadingState<D>>;
15
15
  readonly id$: import("rxjs").Observable<string>;
16
+ readonly key$: import("rxjs").Observable<string>;
16
17
  readonly ref$: import("rxjs").Observable<DocumentReference<T>>;
17
18
  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 snapshotLoadingState$: import("rxjs").Observable<import("../../../../../../../dist/packages/rxjs/src").LoadingState<import("@dereekb/firebase").DocumentSnapshot<T>>>;
20
+ readonly modelIdentity$: import("rxjs").Observable<import("@dereekb/firebase").FirestoreModelIdentity<string, string>>;
19
21
  readonly data$: import("rxjs").Observable<import("@dereekb/firebase").DocumentDataWithIdAndKey<T>>;
20
- readonly loadingState$: import("rxjs").Observable<import("../../../../../../dist/packages/rxjs/src").LoadingState<import("@dereekb/firebase").DocumentDataWithIdAndKey<T>>>;
22
+ readonly loadingState$: import("rxjs").Observable<import("../../../../../../../dist/packages/rxjs/src").LoadingState<import("@dereekb/firebase").DocumentDataWithIdAndKey<T>>>;
21
23
  set id(id: Maybe<FirestoreModelId>);
22
24
  set key(key: Maybe<FirestoreModelKey>);
23
25
  set ref(ref: Maybe<DocumentReference<T>>);
@@ -0,0 +1,31 @@
1
+ import { Observable } from 'rxjs';
2
+ import { OnDestroy, OnInit } from '@angular/core';
3
+ import { DbxRouterService, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
+ import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
5
+ import { Maybe, ModelKey } from '@dereekb/util';
6
+ import { MaybeObservableOrValueGetter, SwitchMapToDefaultFilterFunction } from '@dereekb/rxjs';
7
+ import { TwoWayFlatFirestoreModelKey } from '@dereekb/firebase';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Used for synchronizing the document store key to the param of the route. The param is interpreted as a TwoWayFlatFirestoreModelKey.
11
+ */
12
+ export declare class DbxFirebaseDocumentStoreRouteKeyDirective<T = unknown> extends AbstractSubscriptionDirective implements OnInit, OnDestroy {
13
+ readonly dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<T>;
14
+ readonly dbxRouterService: DbxRouterService;
15
+ private _redirectInstance;
16
+ readonly keyFromParams$: Observable<Maybe<ModelKey>>;
17
+ readonly key$: Observable<Maybe<TwoWayFlatFirestoreModelKey>>;
18
+ constructor(dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<T>, dbxRouterService: DbxRouterService);
19
+ ngOnInit(): void;
20
+ ngOnDestroy(): void;
21
+ get keyParam(): string;
22
+ set keyParam(keyParam: string);
23
+ set dbxFirebaseDocumentStoreRouteKeyDefault(defaultValue: MaybeObservableOrValueGetter<ModelKey>);
24
+ /**
25
+ * Whether or not to enable the redirection. Is enabled by default.
26
+ */
27
+ set dbxFirebaseDocumentStoreRouteKeyDefaultRedirect(redirect: Maybe<boolean> | '');
28
+ set dbxFirebaseDocumentStoreRouteKeyDefaultDecision(decider: string | SwitchMapToDefaultFilterFunction<ModelKey>);
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbxFirebaseDocumentStoreRouteKeyDirective<any>, [{ host: true; }, null]>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DbxFirebaseDocumentStoreRouteKeyDirective<any>, "[dbxFirebaseDocumentStoreRouteKey]", never, { "keyParam": "dbxFirebaseDocumentStoreRouteKey"; "dbxFirebaseDocumentStoreRouteKeyDefault": "dbxFirebaseDocumentStoreRouteKeyDefault"; "dbxFirebaseDocumentStoreRouteKeyDefaultRedirect": "dbxFirebaseDocumentStoreRouteKeyDefaultRedirect"; "dbxFirebaseDocumentStoreRouteKeyDefaultDecision": "dbxFirebaseDocumentStoreRouteKeyDefaultDecision"; }, {}, never, never, false>;
31
+ }
@@ -1 +1,3 @@
1
+ export * from './model.context.instance';
2
+ export * from './model.context.service';
1
3
  export * from './model.context';
@@ -1,8 +1,12 @@
1
- import { FirestoreDocument, FirebasePermissionErrorContext, InModelContextFirebaseModelService, FirestoreDocumentData } from '@dereekb/firebase';
1
+ import { FirestoreDocument, FirestoreDocumentData, DocumentSnapshot, FirestoreAccessorStreamMode, SnapshotOptions, FirestoreModelKey, FirestoreModelType } from '@dereekb/firebase';
2
2
  import { GrantedRole, GrantedRoleMap, GrantedRoleMapReader, GrantedRoleTruthMap, GrantedRoleTruthMapObject } from '@dereekb/model';
3
3
  import { SetIncludesMode, IterableOrValue } from '@dereekb/util';
4
4
  import { Observable } from 'rxjs';
5
- export interface DbxFirebaseInContextFirebaseModelRolesService<R extends GrantedRole = GrantedRole> {
5
+ /**
6
+ * Service instance that exposes roles for a specific model.
7
+ */
8
+ export interface DbxFirebaseInContextFirebaseModelRolesServiceInstance<R extends GrantedRole = GrantedRole> {
9
+ readonly key$: Observable<FirestoreModelKey>;
6
10
  readonly roleReader$: Observable<GrantedRoleMapReader<R>>;
7
11
  readonly roleMap$: Observable<GrantedRoleMap<R>>;
8
12
  readonly hasNoAccess$: Observable<boolean>;
@@ -15,19 +19,15 @@ export interface DbxFirebaseInContextFirebaseModelRolesService<R extends Granted
15
19
  containsRoles(setIncludes: SetIncludesMode, roles: IterableOrValue<R>): Observable<boolean>;
16
20
  }
17
21
  /**
18
- * Wraps an InModelContextFirebaseModelService observable and provides different piped observables.
22
+ * DbxFirebaseInContextFirebaseModelRolesServiceInstance extension that provides access to the underlying model.
19
23
  */
20
- export declare class DbxFirebaseInContextFirebaseModelServiceInstance<D extends FirestoreDocument<any>, R extends GrantedRole = GrantedRole, C extends FirebasePermissionErrorContext = FirebasePermissionErrorContext> implements DbxFirebaseInContextFirebaseModelRolesService<R> {
21
- readonly modelService$: Observable<InModelContextFirebaseModelService<C, FirestoreDocumentData<D>, D, R>>;
22
- constructor(modelService$: Observable<InModelContextFirebaseModelService<C, FirestoreDocumentData<D>, D, R>>);
23
- readonly roleReader$: Observable<import("@dereekb/firebase").ContextGrantedModelRolesReader<C, FirestoreDocumentData<D>, D, R>>;
24
- readonly roleMap$: Observable<GrantedRoleMap<R>>;
25
- readonly hasNoAccess$: Observable<boolean>;
26
- truthMap<M extends GrantedRoleTruthMapObject<any, R>>(input: M): Observable<GrantedRoleTruthMap<M>>;
27
- hasAnyRoles(roles: IterableOrValue<R>): Observable<boolean>;
28
- hasAllRoles(roles: IterableOrValue<R>): Observable<boolean>;
29
- hasRoles(setIncludes: SetIncludesMode, roles: IterableOrValue<R>): Observable<boolean>;
30
- containsAnyRoles(roles: IterableOrValue<R>): Observable<boolean>;
31
- containsAllRoles(roles: IterableOrValue<R>): Observable<boolean>;
32
- containsRoles(setIncludes: SetIncludesMode, roles: IterableOrValue<R>): Observable<boolean>;
24
+ export interface DbxFirebaseInContextFirebaseModelInfoServiceInstance<D extends FirestoreDocument<any>, R extends GrantedRole = GrantedRole> extends DbxFirebaseInContextFirebaseModelRolesServiceInstance<R> {
25
+ readonly modelType$: Observable<FirestoreModelType>;
26
+ readonly model$: Observable<D>;
27
+ /**
28
+ * Reads the data from the model once and returns the current state without streaming.
29
+ */
30
+ readonly snapshotData$: Observable<FirestoreDocumentData<D>>;
31
+ snapshotStream(mode: FirestoreAccessorStreamMode): Observable<DocumentSnapshot<FirestoreDocumentData<D>>>;
32
+ snapshotDataStream(mode: FirestoreAccessorStreamMode, options?: SnapshotOptions): Observable<FirestoreDocumentData<D>>;
33
33
  }
@@ -0,0 +1,31 @@
1
+ import { FirestoreDocument, FirebasePermissionErrorContext, InModelContextFirebaseModelService, FirestoreDocumentData, DocumentSnapshot, FirestoreAccessorStreamMode, SnapshotOptions, InContextFirebaseModelsService, FirebaseModelsService } from '@dereekb/firebase';
2
+ import { GrantedRole, GrantedRoleTruthMap, GrantedRoleTruthMapObject } from '@dereekb/model';
3
+ import { ObservableOrValue } from '@dereekb/rxjs';
4
+ import { SetIncludesMode, IterableOrValue, ModelKey } from '@dereekb/util';
5
+ import { Observable } from 'rxjs';
6
+ import { DbxFirebaseInContextFirebaseModelInfoServiceInstance } from './model.context';
7
+ export declare type DbxFirebaseInContextFirebaseModelServiceInstanceFactory<S extends InContextFirebaseModelsService<any>, C extends FirebasePermissionErrorContext = FirebasePermissionErrorContext> = <D extends FirestoreDocument<any>, R extends GrantedRole = GrantedRole>(type: S extends InContextFirebaseModelsService<infer Y> ? (Y extends FirebaseModelsService<infer X, infer C> ? keyof X : never) : never, keyObs: ObservableOrValue<ModelKey>) => DbxFirebaseInContextFirebaseModelServiceInstance<D, R, C>;
8
+ export declare function dbxFirebaseInContextFirebaseModelServiceInstanceFactory<S extends InContextFirebaseModelsService<any>, C extends FirebasePermissionErrorContext = FirebasePermissionErrorContext>(context$: Observable<S>): DbxFirebaseInContextFirebaseModelServiceInstanceFactory<S, C>;
9
+ /**
10
+ * Wraps an InModelContextFirebaseModelService observable and provides different piped observables.
11
+ */
12
+ export declare class DbxFirebaseInContextFirebaseModelServiceInstance<D extends FirestoreDocument<any>, R extends GrantedRole = GrantedRole, C extends FirebasePermissionErrorContext = FirebasePermissionErrorContext> implements DbxFirebaseInContextFirebaseModelInfoServiceInstance<D, R> {
13
+ readonly modelService$: Observable<InModelContextFirebaseModelService<C, FirestoreDocumentData<D>, D, R>>;
14
+ constructor(modelService$: Observable<InModelContextFirebaseModelService<C, FirestoreDocumentData<D>, D, R>>);
15
+ readonly key$: Observable<string>;
16
+ readonly modelType$: Observable<string>;
17
+ readonly model$: Observable<D>;
18
+ readonly snapshotData$: Observable<any>;
19
+ snapshotStream(mode: FirestoreAccessorStreamMode): Observable<DocumentSnapshot<FirestoreDocumentData<D>>>;
20
+ snapshotDataStream(mode: FirestoreAccessorStreamMode, options?: SnapshotOptions): Observable<FirestoreDocumentData<D>>;
21
+ readonly roleReader$: Observable<import("@dereekb/firebase").ContextGrantedModelRolesReader<C, FirestoreDocumentData<D>, D, R>>;
22
+ readonly roleMap$: Observable<import("@dereekb/model").GrantedRoleMap<R>>;
23
+ readonly hasNoAccess$: Observable<boolean>;
24
+ truthMap<M extends GrantedRoleTruthMapObject<any, R>>(input: M): Observable<GrantedRoleTruthMap<M>>;
25
+ hasAnyRoles(roles: IterableOrValue<R>): Observable<boolean>;
26
+ hasAllRoles(roles: IterableOrValue<R>): Observable<boolean>;
27
+ hasRoles(setIncludes: SetIncludesMode, roles: IterableOrValue<R>): Observable<boolean>;
28
+ containsAnyRoles(roles: IterableOrValue<R>): Observable<boolean>;
29
+ containsAllRoles(roles: IterableOrValue<R>): Observable<boolean>;
30
+ containsRoles(setIncludes: SetIncludesMode, roles: IterableOrValue<R>): Observable<boolean>;
31
+ }
@@ -0,0 +1,31 @@
1
+ import { FirebasePermissionErrorContext, FirestoreDocument, FirestoreModelIdentityTypeMap, FirestoreModelKey, InContextFirebaseModelsService } from '@dereekb/firebase';
2
+ import { ObservableOrValue } from '@dereekb/rxjs';
3
+ import { GrantedRole } from '@dereekb/model';
4
+ import { Observable, OperatorFunction } from 'rxjs';
5
+ import { DbxFirebaseInContextFirebaseModelInfoServiceInstance } from './model.context';
6
+ import { DbxFirebaseInContextFirebaseModelServiceInstanceFactory } from './model.context.instance';
7
+ /**
8
+ * Used for retrieving contexts for a specific model type/identity.
9
+ */
10
+ export declare abstract class DbxFirebaseModelContextService {
11
+ /**
12
+ * Creates a new DbxFirebaseInContextFirebaseModelInfoServiceInstance for the input model key.
13
+ *
14
+ * @param key$
15
+ */
16
+ abstract modelInfoInstance<D extends FirestoreDocument<any> = any, R extends GrantedRole = GrantedRole>(keyObs: ObservableOrValue<FirestoreModelKey>): Observable<DbxFirebaseInContextFirebaseModelInfoServiceInstance<D, R>>;
17
+ }
18
+ export declare type DbxFirebaseModelContextServiceInfoInstanceFactory = <D extends FirestoreDocument<any>, R extends GrantedRole = GrantedRole>(keyObs: ObservableOrValue<FirestoreModelKey>) => Observable<DbxFirebaseInContextFirebaseModelInfoServiceInstance<D, R>>;
19
+ export interface DbxFirebaseModelContextServiceInfoInstanceFactoryConfig<S extends InContextFirebaseModelsService<any>, C extends FirebasePermissionErrorContext = FirebasePermissionErrorContext> {
20
+ readonly modelService: DbxFirebaseInContextFirebaseModelServiceInstanceFactory<S, C>;
21
+ readonly entityMap$: Observable<FirestoreModelIdentityTypeMap>;
22
+ }
23
+ export declare function dbxFirebaseModelContextServiceInfoInstanceFactory<S extends InContextFirebaseModelsService<any>, C extends FirebasePermissionErrorContext = FirebasePermissionErrorContext>(config: DbxFirebaseModelContextServiceInfoInstanceFactoryConfig<S, C>): DbxFirebaseModelContextServiceInfoInstanceFactory;
24
+ /**
25
+ * Operator function that builds a FirestoreModelIdentityTypeMap from the input context and shares the replay.
26
+ *
27
+ * Since the output won't change with different contexts, the map is built once and then shared.
28
+ *
29
+ * @returns
30
+ */
31
+ export declare function firebaseContextServiceEntityMap<T extends InContextFirebaseModelsService<any>>(): OperatorFunction<T, FirestoreModelIdentityTypeMap>;
@@ -1,5 +1,5 @@
1
1
  import { SystemState, SystemStateDocument, SystemStateFirestoreCollections } from '@dereekb/firebase';
2
- import { AbstractDbxFirebaseCollectionStore } from '../store/store.collection';
2
+ import { AbstractDbxFirebaseCollectionStore } from '../modules/store/store.collection';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SystemStateCollectionStore extends AbstractDbxFirebaseCollectionStore<SystemState, SystemStateDocument> {
5
5
  readonly collections: SystemStateFirestoreCollections;
@@ -1,5 +1,5 @@
1
1
  import { SystemState, SystemStateDocument } from '@dereekb/firebase';
2
- import { DbxFirebaseCollectionStoreDirective } from '../store/store.collection.directive';
2
+ import { DbxFirebaseCollectionStoreDirective } from '../modules/store/store.collection.directive';
3
3
  import { SystemStateCollectionStore } from './systemstate.collection.store';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class DbxFirebaseSystemStateCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective<SystemState, SystemStateDocument, SystemStateCollectionStore> {
@@ -1,5 +1,5 @@
1
1
  import { SystemState, SystemStateDocument, SystemStateFirestoreCollections, SystemStateStoredData } from '@dereekb/firebase';
2
- import { AbstractDbxFirebaseDocumentStore } from '../store/store.document';
2
+ import { AbstractDbxFirebaseDocumentStore } from '../modules/store/store.document';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SystemStateDocumentStore<T extends SystemStateStoredData = SystemStateStoredData> extends AbstractDbxFirebaseDocumentStore<SystemState<T>, SystemStateDocument<T>> {
5
5
  readonly collections: SystemStateFirestoreCollections;
@@ -1,5 +1,5 @@
1
1
  import { SystemState, SystemStateDocument, SystemStateStoredData } from '@dereekb/firebase';
2
- import { DbxFirebaseDocumentStoreDirective } from '../store/store.document.directive';
2
+ import { DbxFirebaseDocumentStoreDirective } from '../modules/store/store.document.directive';
3
3
  import { SystemStateDocumentStore } from './systemstate.document.store';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class DbxFirebaseSystemStateDocumentStoreDirective<T extends SystemStateStoredData = SystemStateStoredData> extends DbxFirebaseDocumentStoreDirective<SystemState<T>, SystemStateDocument<T>, SystemStateDocumentStore<T>> {
@@ -3,6 +3,7 @@ import { DbxRouterService, DbxRouteParamReader } from '@dereekb/dbx-core';
3
3
  import { Destroyable, Initialized, Maybe, ModelKey } from '@dereekb/util';
4
4
  import { MaybeObservableOrValueGetter, SwitchMapToDefaultFilterFunction } from '@dereekb/rxjs';
5
5
  export declare const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY = "id";
6
+ export declare const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_KEY_PARAM_KEY = "key";
6
7
  export declare const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = "0";
7
8
  /**
8
9
  * Used to read an id with a specific key from the current route.
@@ -10,7 +11,13 @@ export declare const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = "0";
10
11
  * Can be configured to redirect to a default route if a specific value is seen.
11
12
  */
12
13
  export interface DbxFirebaseIdRouteParamRedirect extends DbxRouteParamReader<ModelKey> {
14
+ /**
15
+ * The id value as it is from the current state's params.
16
+ */
13
17
  readonly idFromParams$: Observable<Maybe<ModelKey>>;
18
+ /**
19
+ * The id value as it is when considering the default value.
20
+ */
14
21
  readonly id$: Observable<Maybe<ModelKey>>;
15
22
  setRedirectEnabled(redirect: Maybe<boolean>): void;
16
23
  setDecider(decider: string | SwitchMapToDefaultFilterFunction<ModelKey>): void;
@@ -20,6 +27,7 @@ export interface DbxFirebaseIdRouteParamRedirect extends DbxRouteParamReader<Mod
20
27
  */
21
28
  export declare class DbxFirebaseIdRouteParamRedirectInstance implements DbxFirebaseIdRouteParamRedirect, DbxRouteParamReader<ModelKey>, Initialized, Destroyable {
22
29
  readonly dbxRouterService: DbxRouterService;
30
+ private readonly defaultParamKey;
23
31
  private _paramReader;
24
32
  private _paramRedirect;
25
33
  private _useDefaultParamDecider;
@@ -29,7 +37,7 @@ export declare class DbxFirebaseIdRouteParamRedirectInstance implements DbxFireb
29
37
  readonly value$: Observable<Maybe<string>>;
30
38
  readonly idFromParams$: Observable<Maybe<ModelKey>>;
31
39
  readonly id$: Observable<Maybe<ModelKey>>;
32
- constructor(dbxRouterService: DbxRouterService);
40
+ constructor(dbxRouterService: DbxRouterService, defaultParamKey?: string);
33
41
  init(): void;
34
42
  destroy(): void;
35
43
  get paramKey(): string;
@@ -39,4 +47,5 @@ export declare class DbxFirebaseIdRouteParamRedirectInstance implements DbxFireb
39
47
  setDecider(decider: string | SwitchMapToDefaultFilterFunction<ModelKey>): void;
40
48
  setParamValue(value: MaybeObservableOrValueGetter<string>): void;
41
49
  }
42
- export declare function dbxFirebaseIdRouteParamRedirect(dbxRouterService: DbxRouterService): DbxFirebaseIdRouteParamRedirectInstance;
50
+ export declare function dbxFirebaseIdRouteParamRedirect(dbxRouterService: DbxRouterService, defaultParamKey?: string): DbxFirebaseIdRouteParamRedirectInstance;
51
+ export declare function dbxFirebaseKeyRouteParamRedirect(dbxRouterService: DbxRouterService, defaultParamKey?: string): DbxFirebaseIdRouteParamRedirectInstance;
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-firebase",
3
- "version": "9.19.4",
3
+ "version": "9.20.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^14.0.0",
6
6
  "@angular/core": "^14.0.0",
7
- "@dereekb/dbx-analytics": "9.19.4",
7
+ "@dereekb/dbx-analytics": "9.20.0",
8
8
  "firebase": "^9.9.2",
9
9
  "@angular/fire": "^7.4.1",
10
- "@dereekb/firebase": "9.19.4",
10
+ "@dereekb/firebase": "9.20.0",
11
11
  "@angular/material": "^14.2.0",
12
- "@dereekb/dbx-web": "9.19.4",
13
- "@dereekb/dbx-form": "9.19.4"
12
+ "@dereekb/dbx-web": "9.20.0",
13
+ "@dereekb/dbx-form": "9.20.0"
14
14
  },
15
15
  "dependencies": {
16
16
  "tslib": "^2.3.0"
@@ -1,16 +0,0 @@
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.crud';
9
- export * from './store.document.auth.directive';
10
- export * from './store.document.directive';
11
- export * from './store.document.router.directive';
12
- export * from './store.subcollection';
13
- export * from './store.subcollection.document';
14
- export * from './store.subcollection.directive';
15
- export * from './store.subcollection.rxjs';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWwuc3RvcmUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24uY2hhbmdlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24uY2hhbmdlLmlmLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbi5saXN0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmRvY3VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUuZG9jdW1lbnQuY3J1ZCc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLmRvY3VtZW50LmF1dGguZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUuZG9jdW1lbnQucm91dGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0b3JlLnN1YmNvbGxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5zdWJjb2xsZWN0aW9uLmRvY3VtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS5zdWJjb2xsZWN0aW9uLnJ4anMnO1xuIl19