@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.
- package/esm2020/lib/index.mjs +2 -1
- package/esm2020/lib/model/loader/collection.change.trigger.mjs +81 -0
- package/esm2020/lib/model/loader/collection.change.watcher.mjs +6 -5
- package/esm2020/lib/model/loader/collection.loader.instance.mjs +1 -1
- package/esm2020/lib/model/loader/collection.loader.mjs +1 -1
- package/esm2020/lib/model/loader/index.mjs +2 -1
- package/esm2020/lib/model/store/store.collection.change.directive.mjs +10 -9
- package/esm2020/lib/model/store/store.collection.mjs +2 -1
- package/esm2020/lib/model/store/store.document.mjs +11 -8
- package/esm2020/lib/model/store/store.document.router.directive.mjs +13 -33
- package/esm2020/lib/router/id.param.redirect.mjs +60 -0
- package/esm2020/lib/router/index.mjs +2 -0
- package/fesm2015/dereekb-dbx-firebase.mjs +169 -45
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +167 -45
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/model/loader/collection.change.trigger.d.ts +64 -0
- package/lib/model/loader/collection.change.watcher.d.ts +11 -9
- package/lib/model/loader/collection.loader.d.ts +12 -9
- package/lib/model/loader/collection.loader.instance.d.ts +2 -6
- package/lib/model/loader/index.d.ts +1 -0
- package/lib/model/store/store.collection.change.directive.d.ts +3 -2
- package/lib/model/store/store.collection.d.ts +3 -1
- package/lib/model/store/store.document.d.ts +7 -1
- package/lib/model/store/store.document.router.directive.d.ts +1 -7
- package/lib/router/id.param.redirect.d.ts +41 -0
- package/lib/router/index.d.ts +1 -0
- package/package.json +6 -6
package/lib/index.d.ts
CHANGED
|
@@ -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 {
|
|
1
|
+
import { IterationQueryDocChangeWatcherEvent } from '@dereekb/firebase';
|
|
2
2
|
import { Destroyable } from '@dereekb/util';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
import {
|
|
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
|
|
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<
|
|
39
|
+
export declare class DbxFirebaseCollectionChangeWatcherInstance<S extends DbxFirebaseCollectionLoaderAccessor<any>> implements Destroyable {
|
|
39
40
|
readonly store: S;
|
|
40
|
-
private
|
|
41
|
-
private
|
|
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<
|
|
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
|
|
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
|
*/
|
|
@@ -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>>
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
12
|
-
"@dereekb/dbx-core": "8.
|
|
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.
|
|
15
|
-
"@dereekb/dbx-form": "8.
|
|
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"
|