@dereekb/dbx-firebase 8.5.2 → 8.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/esm2020/lib/index.mjs +2 -1
  2. package/esm2020/lib/model/loader/collection.change.trigger.mjs +81 -0
  3. package/esm2020/lib/model/loader/collection.change.watcher.mjs +6 -5
  4. package/esm2020/lib/model/loader/collection.loader.instance.mjs +1 -1
  5. package/esm2020/lib/model/loader/collection.loader.mjs +1 -1
  6. package/esm2020/lib/model/loader/index.mjs +2 -1
  7. package/esm2020/lib/model/store/store.collection.change.directive.mjs +10 -9
  8. package/esm2020/lib/model/store/store.collection.mjs +2 -1
  9. package/esm2020/lib/model/store/store.document.mjs +11 -8
  10. package/esm2020/lib/model/store/store.document.router.directive.mjs +13 -33
  11. package/esm2020/lib/router/id.param.redirect.mjs +60 -0
  12. package/esm2020/lib/router/index.mjs +2 -0
  13. package/fesm2015/dereekb-dbx-firebase.mjs +169 -45
  14. package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
  15. package/fesm2020/dereekb-dbx-firebase.mjs +167 -45
  16. package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
  17. package/lib/index.d.ts +1 -0
  18. package/lib/model/loader/collection.change.trigger.d.ts +64 -0
  19. package/lib/model/loader/collection.change.watcher.d.ts +11 -9
  20. package/lib/model/loader/collection.loader.d.ts +12 -9
  21. package/lib/model/loader/collection.loader.instance.d.ts +2 -6
  22. package/lib/model/loader/index.d.ts +1 -0
  23. package/lib/model/store/store.collection.change.directive.d.ts +3 -2
  24. package/lib/model/store/store.collection.d.ts +3 -1
  25. package/lib/model/store/store.document.d.ts +7 -1
  26. package/lib/model/store/store.document.router.directive.d.ts +1 -7
  27. package/lib/router/id.param.redirect.d.ts +41 -0
  28. package/lib/router/index.d.ts +1 -0
  29. package/package.json +6 -6
package/lib/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export * from './firebase';
3
3
  export * from './firestore';
4
4
  export * from './function';
5
5
  export * from './model';
6
+ export * from './router';
6
7
  export * from './module';
@@ -0,0 +1,64 @@
1
+ import { ObservableOrValue } from '@dereekb/rxjs';
2
+ import { Destroyable, Maybe, Initialized } from '@dereekb/util';
3
+ import { DbxFirebaseCollectionChangeWatcher } from './collection.change.watcher';
4
+ import { DbxFirebaseCollectionLoaderAccessor } from './collection.loader';
5
+ export declare type DbxFirebaseCollectionChangeTriggerFunction<S extends DbxFirebaseCollectionLoaderAccessor<any>> = (instance: DbxFirebaseCollectionChangeTriggerInstance<S>) => ObservableOrValue<void>;
6
+ /**
7
+ * Restarts the store.
8
+ *
9
+ * @param instance
10
+ * @returns
11
+ */
12
+ export declare const DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION: DbxFirebaseCollectionChangeTriggerFunction<any>;
13
+ export interface DbxFirebaseCollectionChangeTriggerInstanceConfig<S extends DbxFirebaseCollectionLoaderAccessor<any>> {
14
+ readonly watcher: DbxFirebaseCollectionChangeWatcher<S> & Partial<Destroyable>;
15
+ /**
16
+ * Whether or not to also destroy the watcher when the trigger instance is destroyed.
17
+ *
18
+ * Defaults to false.
19
+ */
20
+ readonly destroyWatcherOnDestroy?: boolean;
21
+ /**
22
+ * Initial trigger function to use.
23
+ *
24
+ * By default restarts the store.
25
+ */
26
+ readonly triggerFunction?: Maybe<DbxFirebaseCollectionChangeTriggerFunction<S>>;
27
+ }
28
+ export interface DbxFirebaseCollectionChangeTrigger<S extends DbxFirebaseCollectionLoaderAccessor<any>> {
29
+ readonly watcher: DbxFirebaseCollectionChangeWatcher<S>;
30
+ triggerFunction?: Maybe<DbxFirebaseCollectionChangeTriggerFunction<S>>;
31
+ }
32
+ export declare class DbxFirebaseCollectionChangeTriggerInstance<S extends DbxFirebaseCollectionLoaderAccessor<any>> implements DbxFirebaseCollectionChangeTrigger<S>, Initialized, Destroyable {
33
+ readonly config: DbxFirebaseCollectionChangeTriggerInstanceConfig<S>;
34
+ readonly watcher: DbxFirebaseCollectionChangeWatcher<S>;
35
+ private _triggerFunction;
36
+ private _sub;
37
+ constructor(config: DbxFirebaseCollectionChangeTriggerInstanceConfig<S>);
38
+ init(): void;
39
+ destroy(): void;
40
+ get triggerFunction(): Maybe<DbxFirebaseCollectionChangeTriggerFunction<S>>;
41
+ set triggerFunction(triggerFunction: Maybe<DbxFirebaseCollectionChangeTriggerFunction<S>>);
42
+ }
43
+ /**
44
+ * Creates a new DbxFirebaseCollectionChangeWatcher, set the modes to "auto", and creates a new DbxFirebaseCollectionChangeTriggerInstance.
45
+ *
46
+ * @param store
47
+ * @param triggerFunction
48
+ * @returns
49
+ */
50
+ export declare function dbxFirebaseCollectionChangeTriggerForStore<S extends DbxFirebaseCollectionLoaderAccessor<any>>(store: S, triggerFunction?: Maybe<DbxFirebaseCollectionChangeTriggerFunction<S>>): DbxFirebaseCollectionChangeTriggerInstance<S>;
51
+ export declare function dbxFirebaseCollectionChangeTriggerForWatcher<S extends DbxFirebaseCollectionLoaderAccessor<any>>(watcher: DbxFirebaseCollectionChangeWatcher<S>, triggerFunction?: Maybe<DbxFirebaseCollectionChangeTriggerFunction<S>>): DbxFirebaseCollectionChangeTriggerInstance<S>;
52
+ export declare function dbxFirebaseCollectionChangeTrigger<S extends DbxFirebaseCollectionLoaderAccessor<any>>(config: DbxFirebaseCollectionChangeTriggerInstanceConfig<S>): DbxFirebaseCollectionChangeTriggerInstance<S>;
53
+ /**
54
+ * @deprecated
55
+ */
56
+ export declare const dbxFirebaseCollectionChangeTriggerInstance: typeof dbxFirebaseCollectionChangeTrigger;
57
+ /**
58
+ * @deprecated
59
+ */
60
+ export declare const dbxFirebaseCollectionChangeTriggerInstanceForStore: typeof dbxFirebaseCollectionChangeTriggerForStore;
61
+ /**
62
+ * @deprecated
63
+ */
64
+ export declare const dbxFirebaseCollectionChangeTriggerInstanceForWatcher: typeof dbxFirebaseCollectionChangeTriggerForWatcher;
@@ -1,7 +1,7 @@
1
- import { FirestoreDocument, IterationQueryDocChangeWatcherEvent } from '@dereekb/firebase';
1
+ import { IterationQueryDocChangeWatcherEvent } from '@dereekb/firebase';
2
2
  import { Destroyable } from '@dereekb/util';
3
3
  import { Observable } from 'rxjs';
4
- import { DbxFirebaseCollectionStore } from '../store/store.collection';
4
+ import { DbxFirebaseCollectionLoaderAccessor } from './collection.loader';
5
5
  /**
6
6
  * DbxFirebaseCollectionChangeWatcher trigger modes
7
7
  * - auto: will automatically call trigger
@@ -10,9 +10,10 @@ import { DbxFirebaseCollectionStore } from '../store/store.collection';
10
10
  export declare type DbxFirebaseCollectionChangeWatcherTriggerMode = 'auto' | 'off';
11
11
  export declare type DbxFirebaseCollectionChangeWatcherEvent = Pick<IterationQueryDocChangeWatcherEvent<unknown>, 'time' | 'type'>;
12
12
  /**
13
- * Used to watch a DbxFirebaseCollectionStore for when the query changes and
13
+ * Used to watch a DbxFirebaseCollectionLoaderAccessor for when the query changes and
14
14
  */
15
- export interface DbxFirebaseCollectionChangeWatcher {
15
+ export interface DbxFirebaseCollectionChangeWatcher<S extends DbxFirebaseCollectionLoaderAccessor<any>> {
16
+ readonly store: S;
16
17
  /**
17
18
  * Current mode
18
19
  */
@@ -35,18 +36,19 @@ export interface DbxFirebaseCollectionChangeWatcher {
35
36
  /**
36
37
  * DbxFirebaseCollectionChangeWatcher instance
37
38
  */
38
- export declare class DbxFirebaseCollectionChangeWatcherInstance<T = unknown, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseCollectionStore<T, D> = DbxFirebaseCollectionStore<T, D>> implements Destroyable {
39
+ export declare class DbxFirebaseCollectionChangeWatcherInstance<S extends DbxFirebaseCollectionLoaderAccessor<any>> implements Destroyable {
39
40
  readonly store: S;
40
- private _mode;
41
- private _sub;
41
+ private _initialMode;
42
+ private readonly _mode;
43
+ private readonly _sub;
42
44
  readonly mode$: Observable<DbxFirebaseCollectionChangeWatcherTriggerMode>;
43
45
  readonly event$: Observable<DbxFirebaseCollectionChangeWatcherEvent>;
44
46
  readonly hasChangeAvailable$: Observable<boolean>;
45
47
  readonly triggered$: Observable<boolean>;
46
48
  readonly trigger$: Observable<void>;
47
- constructor(store: S);
49
+ constructor(store: S, _initialMode?: DbxFirebaseCollectionChangeWatcherTriggerMode);
48
50
  destroy(): void;
49
51
  get mode(): DbxFirebaseCollectionChangeWatcherTriggerMode;
50
52
  set mode(mode: DbxFirebaseCollectionChangeWatcherTriggerMode);
51
53
  }
52
- export declare function dbxFirebaseCollectionChangeWatcher<T = unknown, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseCollectionStore<T, D> = DbxFirebaseCollectionStore<T, D>>(store: S): DbxFirebaseCollectionChangeWatcherInstance<T, D, S>;
54
+ export declare function dbxFirebaseCollectionChangeWatcher<S extends DbxFirebaseCollectionLoaderAccessor<any>>(store: S, mode?: DbxFirebaseCollectionChangeWatcherTriggerMode): DbxFirebaseCollectionChangeWatcherInstance<S>;
@@ -1,14 +1,21 @@
1
- import { DocumentDataWithId, FirestoreItemPageIterationInstance, FirestoreQueryConstraint } from '@dereekb/firebase';
1
+ import { DocumentDataWithId, FirestoreItemPageIterationInstance, FirestoreQueryConstraint, IterationQueryDocChangeWatcher } from '@dereekb/firebase';
2
2
  import { PageListLoadingState } from '@dereekb/rxjs';
3
3
  import { Maybe, ArrayOrValue } from '@dereekb/util';
4
4
  import { Observable } from 'rxjs';
5
- /**
6
- * Abstract type that loads models from a configured collection.
7
- */
8
- export interface DbxFirebaseCollectionLoader<T = unknown> {
5
+ export interface DbxFirebaseCollectionLoaderAccessor<T = unknown> {
9
6
  readonly constraints$: Observable<Maybe<ArrayOrValue<FirestoreQueryConstraint>>>;
10
7
  readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
11
8
  readonly pageLoadingState$: Observable<PageListLoadingState<DocumentDataWithId<T>>>;
9
+ readonly queryChangeWatcher$: Observable<IterationQueryDocChangeWatcher<T>>;
10
+ /**
11
+ * Restarts the loader and refreshes items from the beginning.
12
+ */
13
+ restart(): void;
14
+ }
15
+ /**
16
+ * Abstract type that loads models from a configured collection.
17
+ */
18
+ export interface DbxFirebaseCollectionLoader<T = unknown> extends DbxFirebaseCollectionLoaderAccessor<T> {
12
19
  /**
13
20
  * Maximum number of pages to load from the interation.
14
21
  *
@@ -31,8 +38,4 @@ export interface DbxFirebaseCollectionLoader<T = unknown> {
31
38
  * Loads more items.
32
39
  */
33
40
  next(): void;
34
- /**
35
- * Resets/restarts the list.
36
- */
37
- restart(): void;
38
41
  }
@@ -2,18 +2,14 @@ import { PageListLoadingState } from '@dereekb/rxjs';
2
2
  import { BehaviorSubject, Subject, Observable } from 'rxjs';
3
3
  import { DocumentDataWithId, FirebaseQueryItemAccumulator, FirestoreCollectionLike, FirestoreDocument, FirestoreItemPageIterationInstance, FirestoreItemPageIteratorFilter, FirestoreQueryConstraint, IterationQueryDocChangeWatcher } from '@dereekb/firebase';
4
4
  import { ArrayOrValue, Destroyable, Initialized, Maybe } from '@dereekb/util';
5
- import { DbxFirebaseCollectionLoader } from './collection.loader';
5
+ import { DbxFirebaseCollectionLoader, DbxFirebaseCollectionLoaderAccessor } from './collection.loader';
6
6
  export interface DbxFirebaseCollectionLoaderInstanceInitConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
7
7
  collection?: Maybe<FirestoreCollectionLike<T, D>>;
8
8
  maxPages?: Maybe<number>;
9
9
  itemsPerPage?: Maybe<number>;
10
10
  constraints?: Maybe<ArrayOrValue<FirestoreQueryConstraint>>;
11
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
- }
12
+ export declare type DbxFirebaseCollectionLoaderInstanceData<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> = DbxFirebaseCollectionLoaderAccessor<T>;
17
13
  /**
18
14
  * DbxFirebaseModelLoader implementation within an instance.
19
15
  */
@@ -1,4 +1,5 @@
1
1
  export * from './collection.change.watcher';
2
+ export * from './collection.change.trigger';
2
3
  export * from './collection.loader.instance';
3
4
  export * from './collection.loader';
4
5
  export * from './document.loader.instance';
@@ -3,21 +3,22 @@ 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 { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
7
6
  import { DbxFirebaseCollectionChangeWatcher, DbxFirebaseCollectionChangeWatcherEvent, DbxFirebaseCollectionChangeWatcherTriggerMode } from '../loader/collection.change.watcher';
8
7
  import { Observable } from 'rxjs';
9
8
  import * as i0 from "@angular/core";
10
9
  /**
11
10
  * Used to watch query doc changes and respond to them accordingly.
12
11
  */
13
- export declare class DbxFirebaseCollectionChangeDirective<T = unknown, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseCollectionStore<T, D> = DbxFirebaseCollectionStore<T, D>> extends AbstractSubscriptionDirective implements DbxFirebaseCollectionChangeWatcher, OnInit, OnDestroy {
12
+ export declare class DbxFirebaseCollectionChangeDirective<T = unknown, D extends FirestoreDocument<T> = FirestoreDocument<T>, S extends DbxFirebaseCollectionStore<T, D> = DbxFirebaseCollectionStore<T, D>> implements DbxFirebaseCollectionChangeWatcher<S>, OnInit, OnDestroy {
14
13
  readonly dbxFirebaseCollectionStoreDirective: DbxFirebaseCollectionStoreDirective<T, D, S>;
15
14
  private _watcher;
15
+ private _trigger;
16
16
  readonly mode$: Observable<DbxFirebaseCollectionChangeWatcherTriggerMode>;
17
17
  readonly event$: Observable<DbxFirebaseCollectionChangeWatcherEvent>;
18
18
  readonly hasChangeAvailable$: Observable<boolean>;
19
19
  readonly triggered$: Observable<boolean>;
20
20
  readonly trigger$: Observable<void>;
21
+ get store(): S;
21
22
  constructor(dbxFirebaseCollectionStoreDirective: DbxFirebaseCollectionStoreDirective<T, D, S>);
22
23
  ngOnInit(): void;
23
24
  ngOnDestroy(): void;
@@ -4,8 +4,9 @@ import { ObservableOrValue, PageListLoadingState } from '@dereekb/rxjs';
4
4
  import { ArrayOrValue, Maybe } from '@dereekb/util';
5
5
  import { LockSetComponentStore } from '@dereekb/dbx-core';
6
6
  import { DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionLoaderInstanceData } from '../loader/collection.loader.instance';
7
+ import { DbxFirebaseCollectionLoaderAccessor } from '../loader/collection.loader';
7
8
  import * as i0 from "@angular/core";
8
- export interface DbxFirebaseCollectionStore<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends DbxFirebaseCollectionLoaderInstanceData<T, D> {
9
+ export interface DbxFirebaseCollectionStore<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends DbxFirebaseCollectionLoaderAccessor<T>, DbxFirebaseCollectionLoaderInstanceData<T, D> {
9
10
  readonly firestoreCollection$: Observable<Maybe<FirestoreCollectionLike<T, D>>>;
10
11
  readonly loader$: Observable<DbxFirebaseCollectionLoaderInstance<T, D>>;
11
12
  readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
@@ -37,6 +38,7 @@ export declare class AbstractDbxFirebaseCollectionStore<T, D extends FirestoreDo
37
38
  readonly currentFirestoreCollection$: Observable<Maybe<FirestoreCollectionLike<T, D>>>;
38
39
  readonly firestoreCollection$: Observable<FirestoreCollectionLike<T, D>>;
39
40
  readonly loader$: Observable<DbxFirebaseCollectionLoaderInstance<T, D>>;
41
+ readonly constraints$: Observable<Maybe<ArrayOrValue<FirestoreQueryConstraint>>>;
40
42
  readonly firestoreIteration$: Observable<FirestoreItemPageIterationInstance<T>>;
41
43
  readonly queryChangeWatcher$: Observable<IterationQueryDocChangeWatcher<T>>;
42
44
  readonly accumulator$: Observable<FirebaseQueryItemAccumulator<T>>;
@@ -1,5 +1,5 @@
1
1
  import { Observable, Subscription } from 'rxjs';
2
- import { DocumentSnapshot, DocumentReference, FirestoreCollection, FirestoreDocument, DocumentDataWithId, FirestoreModelId, FirestoreModelKey, FirestoreCollectionLike, FirestoreModelIdentity } from '@dereekb/firebase';
2
+ import { DocumentSnapshot, DocumentReference, FirestoreCollection, FirestoreDocument, DocumentDataWithId, FirestoreModelId, FirestoreModelKey, FirestoreCollectionLike, FirestoreModelIdentity, FirestoreModelCollectionAndIdPair, FirestoreModelKeyPairObject } 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';
@@ -18,6 +18,9 @@ export interface DbxFirebaseDocumentStore<T, D extends FirestoreDocument<T> = Fi
18
18
  readonly id$: Observable<FirestoreModelId>;
19
19
  readonly key$: Observable<FirestoreModelKey>;
20
20
  readonly ref$: Observable<DocumentReference<T>>;
21
+ readonly keyModelIds$: Observable<FirestoreModelId[]>;
22
+ readonly keyPairs$: Observable<FirestoreModelCollectionAndIdPair[]>;
23
+ readonly keyPairObject$: Observable<FirestoreModelKeyPairObject>;
21
24
  readonly documentLoadingState$: Observable<LoadingState<D>>;
22
25
  readonly snapshot$: Observable<DocumentSnapshot<T>>;
23
26
  readonly snapshotLoadingState$: Observable<LoadingState<DocumentSnapshot<T>>>;
@@ -68,6 +71,9 @@ export declare class AbstractDbxFirebaseDocumentStore<T, D extends FirestoreDocu
68
71
  readonly documentLoadingState$: Observable<LoadingState<D>>;
69
72
  readonly id$: Observable<FirestoreModelId>;
70
73
  readonly key$: Observable<FirestoreModelKey>;
74
+ readonly keyModelIds$: Observable<FirestoreModelId[]>;
75
+ readonly keyPairs$: Observable<FirestoreModelCollectionAndIdPair[]>;
76
+ readonly keyPairObject$: Observable<FirestoreModelKeyPairObject>;
71
77
  readonly ref$: Observable<DocumentReference<T>>;
72
78
  readonly snapshot$: Observable<DocumentSnapshot<T>>;
73
79
  readonly snapshotLoadingState$: Observable<LoadingState<DocumentSnapshot<T>>>;
@@ -5,19 +5,13 @@ import { DbxFirebaseDocumentStoreDirective } from './store.document.directive';
5
5
  import { Maybe, ModelKey } from '@dereekb/util';
6
6
  import { MaybeObservableOrValueGetter, SwitchMapToDefaultFilterFunction } from '@dereekb/rxjs';
7
7
  import * as i0 from "@angular/core";
8
- export declare const DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY = "id";
9
- export declare const DBX_FIREBASE_ROUTER_SYNC_USE_DEFAULT_PARAM_VALUE = "0";
10
8
  /**
11
9
  * Used for synchronizing the document store id to the param of the route.
12
10
  */
13
11
  export declare class DbxFirebaseDocumentStoreRouteIdDirective<T = unknown> extends AbstractSubscriptionDirective implements OnInit, OnDestroy {
14
12
  readonly dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<T>;
15
13
  readonly dbxRouterService: DbxRouterService;
16
- private _paramReader;
17
- private _paramRedirect;
18
- private _useDefaultParam;
19
- private _useDefaultParam$;
20
- readonly idParamKey$: Observable<string>;
14
+ private _redirectInstance;
21
15
  readonly idFromParams$: Observable<Maybe<ModelKey>>;
22
16
  readonly id$: Observable<Maybe<ModelKey>>;
23
17
  constructor(dbxFirebaseDocumentStoreDirective: DbxFirebaseDocumentStoreDirective<T>, dbxRouterService: DbxRouterService);
@@ -0,0 +1,41 @@
1
+ import { Observable } from 'rxjs';
2
+ import { DbxRouterService, DbxRouteParamReader } from '@dereekb/dbx-core';
3
+ import { Destroyable, Initialized, Maybe, ModelKey } from '@dereekb/util';
4
+ import { MaybeObservableOrValueGetter, SwitchMapToDefaultFilterFunction } from '@dereekb/rxjs';
5
+ export declare const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY = "id";
6
+ export declare const DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE = "0";
7
+ /**
8
+ * Used to read an id with a specific key from the current route.
9
+ *
10
+ * Can be configured to redirect to a default route if a specific value is seen.
11
+ */
12
+ export interface DbxFirebaseIdRouteParamRedirect extends DbxRouteParamReader<ModelKey> {
13
+ readonly idFromParams$: Observable<Maybe<ModelKey>>;
14
+ readonly id$: Observable<Maybe<ModelKey>>;
15
+ setRedirectEnabled(redirect: Maybe<boolean>): void;
16
+ setDecider(decider: string | SwitchMapToDefaultFilterFunction<ModelKey>): void;
17
+ }
18
+ /**
19
+ * DbxFirebaseIdRouteParamRedirect instance
20
+ */
21
+ export declare class DbxFirebaseIdRouteParamRedirectInstance implements DbxFirebaseIdRouteParamRedirect, DbxRouteParamReader<ModelKey>, Initialized, Destroyable {
22
+ readonly dbxRouterService: DbxRouterService;
23
+ private _paramReader;
24
+ private _paramRedirect;
25
+ private _useDefaultParamDecider;
26
+ private _useDefaultParam$;
27
+ readonly paramValue$: Observable<Maybe<string>>;
28
+ readonly defaultValue$: Observable<Maybe<string>>;
29
+ readonly value$: Observable<Maybe<string>>;
30
+ readonly idFromParams$: Observable<Maybe<ModelKey>>;
31
+ readonly id$: Observable<Maybe<ModelKey>>;
32
+ constructor(dbxRouterService: DbxRouterService);
33
+ init(): void;
34
+ destroy(): void;
35
+ get paramKey(): string;
36
+ set paramKey(paramKey: string);
37
+ setDefaultValue(defaultValue: MaybeObservableOrValueGetter<string>): void;
38
+ setRedirectEnabled(redirect: Maybe<boolean>): void;
39
+ setDecider(decider: string | SwitchMapToDefaultFilterFunction<ModelKey>): void;
40
+ }
41
+ export declare function dbxFirebaseIdRouteParamRedirect(dbxRouterService: DbxRouterService): DbxFirebaseIdRouteParamRedirectInstance;
@@ -0,0 +1 @@
1
+ export * from './id.param.redirect';
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-firebase",
3
- "version": "8.5.2",
3
+ "version": "8.6.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0",
7
- "@dereekb/util": "8.5.2",
7
+ "@dereekb/util": "8.6.1",
8
8
  "firebase": "^9.8.0",
9
9
  "rxjs": "^7.0.0",
10
10
  "@angular/fire": "^7.4.1",
11
- "@dereekb/firebase": "8.5.2",
12
- "@dereekb/dbx-core": "8.5.2",
11
+ "@dereekb/firebase": "8.6.1",
12
+ "@dereekb/dbx-core": "8.6.1",
13
13
  "@angular/material": "^13.0.0",
14
- "@dereekb/dbx-web": "8.5.2",
15
- "@dereekb/dbx-form": "8.5.2"
14
+ "@dereekb/dbx-web": "8.6.1",
15
+ "@dereekb/dbx-form": "8.6.1"
16
16
  },
17
17
  "dependencies": {
18
18
  "tslib": "^2.3.0"