@dereekb/dbx-firebase 8.5.2 → 8.5.3
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/model/loader/collection.change.trigger.mjs +68 -0
- package/esm2020/lib/model/loader/collection.change.watcher.mjs +6 -5
- package/esm2020/lib/model/loader/index.mjs +2 -1
- package/esm2020/lib/model/store/store.collection.change.directive.mjs +10 -9
- package/fesm2015/dereekb-dbx-firebase.mjs +84 -15
- package/fesm2015/dereekb-dbx-firebase.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-firebase.mjs +82 -15
- package/fesm2020/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/model/loader/collection.change.trigger.d.ts +53 -0
- package/lib/model/loader/collection.change.watcher.d.ts +7 -5
- package/lib/model/loader/index.d.ts +1 -0
- package/lib/model/store/store.collection.change.directive.d.ts +3 -2
- package/package.json +6 -6
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { SubscriptionObject, asObservable } from '@dereekb/rxjs';
|
|
2
|
+
import { BehaviorSubject, filter, switchMap, exhaustMap, EMPTY } from 'rxjs';
|
|
3
|
+
import { dbxFirebaseCollectionChangeWatcher } from './collection.change.watcher';
|
|
4
|
+
/**
|
|
5
|
+
* Restarts the store.
|
|
6
|
+
*
|
|
7
|
+
* @param instance
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export const DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION = (instance) => instance.watcher.store.restart();
|
|
11
|
+
export class DbxFirebaseCollectionChangeTriggerInstance {
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this._triggerFunction = new BehaviorSubject(undefined);
|
|
15
|
+
this._sub = new SubscriptionObject();
|
|
16
|
+
this.watcher = config.watcher;
|
|
17
|
+
this.triggerFunction = config.triggerFunction ?? DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION;
|
|
18
|
+
}
|
|
19
|
+
init() {
|
|
20
|
+
this._sub.subscription = this._triggerFunction
|
|
21
|
+
.pipe(switchMap((triggerFunction) => {
|
|
22
|
+
if (triggerFunction) {
|
|
23
|
+
return this.watcher.triggered$.pipe(filter((triggered) => triggered), exhaustMap(() => asObservable(triggerFunction(this))));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return EMPTY;
|
|
27
|
+
}
|
|
28
|
+
}))
|
|
29
|
+
.subscribe();
|
|
30
|
+
}
|
|
31
|
+
destroy() {
|
|
32
|
+
this._triggerFunction.complete();
|
|
33
|
+
if (this.config.destroyWatcherOnDestroy === true) {
|
|
34
|
+
this.watcher?.destroy();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
get triggerFunction() {
|
|
38
|
+
return this._triggerFunction.value;
|
|
39
|
+
}
|
|
40
|
+
set triggerFunction(triggerFunction) {
|
|
41
|
+
this._triggerFunction.next(triggerFunction);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates a new DbxFirebaseCollectionChangeWatcher, set the modes to "auto", and creates a new DbxFirebaseCollectionChangeTriggerInstance.
|
|
46
|
+
*
|
|
47
|
+
* @param store
|
|
48
|
+
* @param triggerFunction
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
export function dbxFirebaseCollectionChangeTriggerInstanceForStore(store, triggerFunction) {
|
|
52
|
+
return dbxFirebaseCollectionChangeTriggerInstance({
|
|
53
|
+
watcher: dbxFirebaseCollectionChangeWatcher(store, 'auto'),
|
|
54
|
+
destroyWatcherOnDestroy: true,
|
|
55
|
+
triggerFunction
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
export function dbxFirebaseCollectionChangeTriggerInstanceForWatcher(watcher, triggerFunction) {
|
|
59
|
+
return dbxFirebaseCollectionChangeTriggerInstance({
|
|
60
|
+
watcher,
|
|
61
|
+
destroyWatcherOnDestroy: false,
|
|
62
|
+
triggerFunction
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
export function dbxFirebaseCollectionChangeTriggerInstance(config) {
|
|
66
|
+
return new DbxFirebaseCollectionChangeTriggerInstance(config);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5jaGFuZ2UudHJpZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL2xvYWRlci9jb2xsZWN0aW9uLmNoYW5nZS50cmlnZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsa0JBQWtCLEVBQWtDLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLEVBQWUsU0FBUyxFQUFFLFVBQVUsRUFBMkMsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBSTlKLE9BQU8sRUFBc0Msa0NBQWtDLEVBQThDLE1BQU0sNkJBQTZCLENBQUM7QUFJaks7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtREFBbUQsR0FBeUQsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBdUJ4SyxNQUFNLE9BQU8sMENBQTBDO0lBTXJELFlBQXFCLE1BQWlFO1FBQWpFLFdBQU0sR0FBTixNQUFNLENBQTJEO1FBSDlFLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUE2RCxTQUFTLENBQUMsQ0FBQztRQUM5RyxTQUFJLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBR3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLElBQUksbURBQW1ELENBQUM7SUFDdkcsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2FBQzNDLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM1QixJQUFJLGVBQWUsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2pDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQ2hDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDdEQsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsS0FBSyxJQUFJLEVBQUU7WUFDL0MsSUFBSSxDQUFDLE9BQWtDLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDckQ7SUFDSCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsZUFBMkU7UUFDN0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsa0RBQWtELENBQTBJLEtBQVEsRUFBRSxlQUE0RTtJQUNoUyxPQUFPLDBDQUEwQyxDQUFVO1FBQ3pELE9BQU8sRUFBRSxrQ0FBa0MsQ0FBVSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ25FLHVCQUF1QixFQUFFLElBQUk7UUFDN0IsZUFBZTtLQUNoQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9EQUFvRCxDQUEwSSxPQUFvRCxFQUFFLGVBQTRFO0lBQzlVLE9BQU8sMENBQTBDLENBQVU7UUFDekQsT0FBTztRQUNQLHVCQUF1QixFQUFFLEtBQUs7UUFDOUIsZUFBZTtLQUNoQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLDBDQUEwQyxDQUEwSSxNQUFpRTtJQUNuUSxPQUFPLElBQUksMENBQTBDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9uRmFsc2VUb1RydWUsIHNjYW5Db3VudCwgU3Vic2NyaXB0aW9uT2JqZWN0LCBmaWx0ZXJNYXliZSwgT2JzZXJ2YWJsZU9yVmFsdWUsIGFzT2JzZXJ2YWJsZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIGV4aGF1c3RNYXAsIGNvbWJpbmVMYXRlc3RXaXRoLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUsIE1heWJlLCBJbml0aWFsaXplZCB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyLCBkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyLCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVySW5zdGFuY2UgfSBmcm9tICcuL2NvbGxlY3Rpb24uY2hhbmdlLndhdGNoZXInO1xuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VyRnVuY3Rpb248VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PiA9IChpbnN0YW5jZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckluc3RhbmNlPFQsIEQsIFM+KSA9PiBPYnNlcnZhYmxlT3JWYWx1ZTx2b2lkPjtcblxuLyoqXG4gKiBSZXN0YXJ0cyB0aGUgc3RvcmUuXG4gKlxuICogQHBhcmFtIGluc3RhbmNlXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9GSVJFQkFTRV9DT0xMRUNUSU9OX0NIQU5HRV9UUklHR0VSX0ZVTkNUSU9OOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VyRnVuY3Rpb248YW55LCBhbnk+ID0gKGluc3RhbmNlKSA9PiBpbnN0YW5jZS53YXRjaGVyLnN0b3JlLnJlc3RhcnQoKTtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VySW5zdGFuY2VDb25maWc8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PiB7XG4gIHJlYWRvbmx5IHdhdGNoZXI6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXI8VCwgRCwgUz4gJiBQYXJ0aWFsPERlc3Ryb3lhYmxlPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsc28gZGVzdHJveSB0aGUgd2F0Y2hlciB3aGVuIHRoZSB0cmlnZ2VyIGluc3RhbmNlIGlzIGRlc3Ryb3llZC5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBkZXN0cm95V2F0Y2hlck9uRGVzdHJveT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbml0aWFsIHRyaWdnZXIgZnVuY3Rpb24gdG8gdXNlLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IHJlc3RhcnRzIHRoZSBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXJGdW5jdGlvbj86IE1heWJlPERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJGdW5jdGlvbjxULCBELCBTPj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlcjxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4+IHtcbiAgcmVhZG9ubHkgd2F0Y2hlcjogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlcjxULCBELCBTPjtcbiAgdHJpZ2dlckZ1bmN0aW9uPzogTWF5YmU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckZ1bmN0aW9uPFQsIEQsIFM+Pjtcbn1cblxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJJbnN0YW5jZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlcjxULCBELCBTPiwgSW5pdGlhbGl6ZWQsIERlc3Ryb3lhYmxlIHtcbiAgcmVhZG9ubHkgd2F0Y2hlcjogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlcjxULCBELCBTPjtcblxuICBwcml2YXRlIF90cmlnZ2VyRnVuY3Rpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJGdW5jdGlvbjxULCBELCBTPj4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgX3N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb25maWc6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJJbnN0YW5jZUNvbmZpZzxULCBELCBTPikge1xuICAgIHRoaXMud2F0Y2hlciA9IGNvbmZpZy53YXRjaGVyO1xuICAgIHRoaXMudHJpZ2dlckZ1bmN0aW9uID0gY29uZmlnLnRyaWdnZXJGdW5jdGlvbiA/PyBERUZBVUxUX0ZJUkVCQVNFX0NPTExFQ1RJT05fQ0hBTkdFX1RSSUdHRVJfRlVOQ1RJT047XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLl90cmlnZ2VyRnVuY3Rpb25cbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHRyaWdnZXJGdW5jdGlvbikgPT4ge1xuICAgICAgICAgIGlmICh0cmlnZ2VyRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndhdGNoZXIudHJpZ2dlcmVkJC5waXBlKFxuICAgICAgICAgICAgICBmaWx0ZXIoKHRyaWdnZXJlZCkgPT4gdHJpZ2dlcmVkKSxcbiAgICAgICAgICAgICAgZXhoYXVzdE1hcCgoKSA9PiBhc09ic2VydmFibGUodHJpZ2dlckZ1bmN0aW9uKHRoaXMpKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3RyaWdnZXJGdW5jdGlvbi5jb21wbGV0ZSgpO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRlc3Ryb3lXYXRjaGVyT25EZXN0cm95ID09PSB0cnVlKSB7XG4gICAgICAodGhpcy53YXRjaGVyIGFzIHVua25vd24gYXMgRGVzdHJveWFibGUpPy5kZXN0cm95KCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHRyaWdnZXJGdW5jdGlvbigpOiBNYXliZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VyRnVuY3Rpb248VCwgRCwgUz4+IHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlckZ1bmN0aW9uLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRyaWdnZXJGdW5jdGlvbih0cmlnZ2VyRnVuY3Rpb246IE1heWJlPERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJGdW5jdGlvbjxULCBELCBTPj4pIHtcbiAgICB0aGlzLl90cmlnZ2VyRnVuY3Rpb24ubmV4dCh0cmlnZ2VyRnVuY3Rpb24pO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyLCBzZXQgdGhlIG1vZGVzIHRvIFwiYXV0b1wiLCBhbmQgY3JlYXRlcyBhIG5ldyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VySW5zdGFuY2UuXG4gKlxuICogQHBhcmFtIHN0b3JlXG4gKiBAcGFyYW0gdHJpZ2dlckZ1bmN0aW9uXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckluc3RhbmNlRm9yU3RvcmU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PihzdG9yZTogUywgdHJpZ2dlckZ1bmN0aW9uPzogTWF5YmU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckZ1bmN0aW9uPFQsIEQsIFM+Pik6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJJbnN0YW5jZTxULCBELCBTPiB7XG4gIHJldHVybiBkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VySW5zdGFuY2U8VCwgRCwgUz4oe1xuICAgIHdhdGNoZXI6IGRieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXI8VCwgRCwgUz4oc3RvcmUsICdhdXRvJyksXG4gICAgZGVzdHJveVdhdGNoZXJPbkRlc3Ryb3k6IHRydWUsXG4gICAgdHJpZ2dlckZ1bmN0aW9uXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckluc3RhbmNlRm9yV2F0Y2hlcjxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4+KHdhdGNoZXI6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXI8VCwgRCwgUz4sIHRyaWdnZXJGdW5jdGlvbj86IE1heWJlPERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJGdW5jdGlvbjxULCBELCBTPj4pOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VySW5zdGFuY2U8VCwgRCwgUz4ge1xuICByZXR1cm4gZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckluc3RhbmNlPFQsIEQsIFM+KHtcbiAgICB3YXRjaGVyLFxuICAgIGRlc3Ryb3lXYXRjaGVyT25EZXN0cm95OiBmYWxzZSxcbiAgICB0cmlnZ2VyRnVuY3Rpb25cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VySW5zdGFuY2U8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+Pihjb25maWc6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJJbnN0YW5jZUNvbmZpZzxULCBELCBTPik6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVRyaWdnZXJJbnN0YW5jZTxULCBELCBTPiB7XG4gIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckluc3RhbmNlKGNvbmZpZyk7XG59XG4iXX0=
|
|
@@ -4,9 +4,10 @@ import { filter, take, map, BehaviorSubject, distinctUntilChanged, switchMap, st
|
|
|
4
4
|
* DbxFirebaseCollectionChangeWatcher instance
|
|
5
5
|
*/
|
|
6
6
|
export class DbxFirebaseCollectionChangeWatcherInstance {
|
|
7
|
-
constructor(store) {
|
|
7
|
+
constructor(store, _initialMode = 'off') {
|
|
8
8
|
this.store = store;
|
|
9
|
-
this.
|
|
9
|
+
this._initialMode = _initialMode;
|
|
10
|
+
this._mode = new BehaviorSubject(this._initialMode);
|
|
10
11
|
this._sub = new SubscriptionObject();
|
|
11
12
|
this.mode$ = this._mode.pipe(distinctUntilChanged());
|
|
12
13
|
this.event$ = this.store.queryChangeWatcher$.pipe(switchMap((x) => x.event$.pipe(filter((x) => x.type !== 'none'), // do not share 'none' events.
|
|
@@ -30,7 +31,7 @@ export class DbxFirebaseCollectionChangeWatcherInstance {
|
|
|
30
31
|
this._mode.next(mode);
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
|
-
export function dbxFirebaseCollectionChangeWatcher(store) {
|
|
34
|
-
return new DbxFirebaseCollectionChangeWatcherInstance(store);
|
|
34
|
+
export function dbxFirebaseCollectionChangeWatcher(store, mode) {
|
|
35
|
+
return new DbxFirebaseCollectionChangeWatcherInstance(store, mode);
|
|
35
36
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5jaGFuZ2Uud2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL2xvYWRlci9jb2xsZWN0aW9uLmNoYW5nZS53YXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFjLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQW9DOUk7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMENBQTBDO0lBZ0NyRCxZQUFxQixLQUFRLEVBQVUsZUFBOEQsS0FBSztRQUFyRixVQUFLLEdBQUwsS0FBSyxDQUFHO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXVEO1FBL0J6RixVQUFLLEdBQUcsSUFBSSxlQUFlLENBQWdELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RixTQUFJLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRXhDLFVBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFFaEQsV0FBTSxHQUF3RCxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDeEcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDZCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQUUsOEJBQThCO1FBQ2hFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxzREFBc0Q7UUFDL0QsU0FBUyxDQUFDO1lBQ1IsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1lBQ2hCLElBQUksRUFBRSxNQUFrRDtTQUN6RCxDQUFDLENBQ0gsQ0FDRixFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sd0JBQW1CLEdBQXdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNsRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQzdCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sZUFBVSxHQUF3QixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdkosYUFBUSxHQUFxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDeEQsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFDaEMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUNyQixDQUFDO0lBRTJHLENBQUM7SUFFOUcsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBbUQ7UUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLGtDQUFrQyxDQUEwSSxLQUFRLEVBQUUsSUFBb0Q7SUFDeFAsT0FBTyxJQUFJLDBDQUEwQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQsIEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlckNoYW5nZVR5cGUsIEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlckV2ZW50IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCBtYXAsIEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIE9ic2VydmFibGUsIHN3aXRjaE1hcCwgc3RhcnRXaXRoLCBzaGFyZVJlcGxheSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUgfSBmcm9tICcuLi9zdG9yZS9zdG9yZS5jb2xsZWN0aW9uJztcblxuLyoqXG4gKiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyIHRyaWdnZXIgbW9kZXNcbiAqIC0gYXV0bzogd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGwgdHJpZ2dlclxuICogLSBvZmY6IHdpbGwgbmV2ZXIgY2FsbCB0cmlnZ2VyXG4gKi9cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXJUcmlnZ2VyTW9kZSA9ICdhdXRvJyB8ICdvZmYnO1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlckV2ZW50ID0gUGljazxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXJFdmVudDx1bmtub3duPiwgJ3RpbWUnIHwgJ3R5cGUnPjtcblxuLyoqXG4gKiBVc2VkIHRvIHdhdGNoIGEgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUgZm9yIHdoZW4gdGhlIHF1ZXJ5IGNoYW5nZXMgYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlcjxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PiB7XG4gIHJlYWRvbmx5IHN0b3JlOiBTO1xuICAvKipcbiAgICogQ3VycmVudCBtb2RlXG4gICAqL1xuICByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyVHJpZ2dlck1vZGU+O1xuICAvKipcbiAgICogU3RyZWFtIG9mIGV2ZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnQkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXJFdmVudD47XG4gIHJlYWRvbmx5IGhhc0NoYW5nZUF2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBDdXJyZW50IHRyaWdnZXIgc3RhdGUuIEJhc2VkIG9uIHRoZSBoYXNDaGFuZ2VBdmFpbGFibGUkIHN0YXRlIGFuZCBjdXJyZW50IG1vZGUuXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAvKipcbiAgICogVHJpZ2dlciBlbWl0dGVyLiBPbmx5IGVtaXRzIHdoZW4gdHJpZ2dlcmVkJCBpcy9iZWNvbWVzIHRydWUuXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyJDogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgbW9kZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlO1xufVxuXG4vKipcbiAqIERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXIgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXJJbnN0YW5jZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PiBpbXBsZW1lbnRzIERlc3Ryb3lhYmxlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfbW9kZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlPih0aGlzLl9pbml0aWFsTW9kZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBtb2RlJCA9IHRoaXMuX21vZGUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSBldmVudCQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlckV2ZW50PiA9IHRoaXMuc3RvcmUucXVlcnlDaGFuZ2VXYXRjaGVyJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT5cbiAgICAgIHguZXZlbnQkLnBpcGUoXG4gICAgICAgIGZpbHRlcigoeCkgPT4geC50eXBlICE9PSAnbm9uZScpLCAvLyBkbyBub3Qgc2hhcmUgJ25vbmUnIGV2ZW50cy5cbiAgICAgICAgdGFrZSgxKSwgLy8gb25seSBuZWVkIG9uZSBldmVudCB0byBtYXJrIGFzIGNoYW5nZSBpcyBhdmFpbGFibGUuXG4gICAgICAgIHN0YXJ0V2l0aCh7XG4gICAgICAgICAgdGltZTogbmV3IERhdGUoKSxcbiAgICAgICAgICB0eXBlOiAnbm9uZScgYXMgSXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyQ2hhbmdlVHlwZVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNDaGFuZ2VBdmFpbGFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5ldmVudCQucGlwZShcbiAgICBtYXAoKHgpID0+IHgudHlwZSAhPT0gJ25vbmUnKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHRyaWdnZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm1vZGUkLCB0aGlzLmhhc0NoYW5nZUF2YWlsYWJsZSRdKS5waXBlKG1hcCgoW21vZGUsIGhhc0NoYW5nZV0pID0+IG1vZGUgPT09ICdhdXRvJyAmJiBoYXNDaGFuZ2UpKTtcblxuICByZWFkb25seSB0cmlnZ2VyJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMudHJpZ2dlcmVkJC5waXBlKFxuICAgIGZpbHRlcigodHJpZ2dlcmVkKSA9PiB0cmlnZ2VyZWQpLFxuICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgc3RvcmU6IFMsIHByaXZhdGUgX2luaXRpYWxNb2RlOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyVHJpZ2dlck1vZGUgPSAnb2ZmJykge31cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fbW9kZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZ2V0IG1vZGUoKTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZS52YWx1ZTtcbiAgfVxuXG4gIHNldCBtb2RlKG1vZGU6IERieEZpcmViYXNlQ29sbGVjdGlvbkNoYW5nZVdhdGNoZXJUcmlnZ2VyTW9kZSkge1xuICAgIHRoaXMuX21vZGUubmV4dChtb2RlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlcjxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4+KHN0b3JlOiBTLCBtb2RlPzogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlKTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlckluc3RhbmNlPFQsIEQsIFM+IHtcbiAgcmV0dXJuIG5ldyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVySW5zdGFuY2Uoc3RvcmUsIG1vZGUpO1xufVxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
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';
|
|
5
6
|
export * from './document.loader';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb24uY2hhbmdlLndhdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9uLmNoYW5nZS50cmlnZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb2xsZWN0aW9uLmxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50LmxvYWRlci5pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2RvY3VtZW50LmxvYWRlcic7XG4iXX0=
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { Directive, Input } from '@angular/core';
|
|
2
2
|
import { DbxFirebaseCollectionStoreDirective } from './store.collection.directive';
|
|
3
|
-
import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
|
|
4
3
|
import { dbxFirebaseCollectionChangeWatcher } from '../loader/collection.change.watcher';
|
|
4
|
+
import { dbxFirebaseCollectionChangeTriggerInstanceForWatcher } from '../loader/collection.change.trigger';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "./store.collection.directive";
|
|
7
7
|
/**
|
|
8
8
|
* Used to watch query doc changes and respond to them accordingly.
|
|
9
9
|
*/
|
|
10
|
-
export class DbxFirebaseCollectionChangeDirective
|
|
10
|
+
export class DbxFirebaseCollectionChangeDirective {
|
|
11
11
|
constructor(dbxFirebaseCollectionStoreDirective) {
|
|
12
|
-
super();
|
|
13
12
|
this.dbxFirebaseCollectionStoreDirective = dbxFirebaseCollectionStoreDirective;
|
|
14
13
|
this._watcher = dbxFirebaseCollectionChangeWatcher(this.dbxFirebaseCollectionStoreDirective.store);
|
|
14
|
+
this._trigger = dbxFirebaseCollectionChangeTriggerInstanceForWatcher(this._watcher, () => this.restart());
|
|
15
15
|
this.mode$ = this._watcher.mode$;
|
|
16
16
|
this.event$ = this._watcher.event$;
|
|
17
17
|
this.hasChangeAvailable$ = this._watcher.hasChangeAvailable$;
|
|
18
18
|
this.triggered$ = this._watcher.triggered$;
|
|
19
19
|
this.trigger$ = this._watcher.trigger$;
|
|
20
20
|
}
|
|
21
|
+
get store() {
|
|
22
|
+
return this._watcher.store;
|
|
23
|
+
}
|
|
21
24
|
ngOnInit() {
|
|
22
|
-
this.
|
|
23
|
-
this.restart();
|
|
24
|
-
});
|
|
25
|
+
this._trigger.init();
|
|
25
26
|
}
|
|
26
27
|
ngOnDestroy() {
|
|
27
|
-
super.ngOnDestroy();
|
|
28
28
|
this._watcher.destroy();
|
|
29
|
+
this._trigger.destroy();
|
|
29
30
|
}
|
|
30
31
|
get mode() {
|
|
31
32
|
return this._watcher.mode;
|
|
@@ -38,7 +39,7 @@ export class DbxFirebaseCollectionChangeDirective extends AbstractSubscriptionDi
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
DbxFirebaseCollectionChangeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, deps: [{ token: i1.DbxFirebaseCollectionStoreDirective }], target: i0.ɵɵFactoryTarget.Directive });
|
|
41
|
-
DbxFirebaseCollectionChangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseCollectionChangeDirective, selector: "[dbxFirebaseCollectionChange]", inputs: { mode: ["dbxFirebaseCollectionChange", "mode"] },
|
|
42
|
+
DbxFirebaseCollectionChangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseCollectionChangeDirective, selector: "[dbxFirebaseCollectionChange]", inputs: { mode: ["dbxFirebaseCollectionChange", "mode"] }, ngImport: i0 });
|
|
42
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, decorators: [{
|
|
43
44
|
type: Directive,
|
|
44
45
|
args: [{
|
|
@@ -48,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
48
49
|
type: Input,
|
|
49
50
|
args: ['dbxFirebaseCollectionChange']
|
|
50
51
|
}] } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5jaGFuZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi5jaGFuZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUlwRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRixPQUFPLEVBQXNDLGtDQUFrQyxFQUEwRixNQUFNLHFDQUFxQyxDQUFDO0FBRXJOLE9BQU8sRUFBc0Qsb0RBQW9ELEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRS9KOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9DQUFvQztJQWMvQyxZQUFxQixtQ0FBaUY7UUFBakYsd0NBQW1DLEdBQW5DLG1DQUFtQyxDQUE4QztRQWI5RixhQUFRLEdBQUcsa0NBQWtDLENBQVUsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZHLGFBQVEsR0FBRyxvREFBb0QsQ0FBVSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRTdHLFVBQUssR0FBOEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDdkYsV0FBTSxHQUF3RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUNuRix3QkFBbUIsR0FBd0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztRQUM3RSxlQUFVLEdBQXdCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQzNELGFBQVEsR0FBcUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFNNEMsQ0FBQztJQUoxRyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFJRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsSUFBK0Q7UUFDdEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0QsQ0FBQzs7aUlBcENVLG9DQUFvQztxSEFBcEMsb0NBQW9DOzJGQUFwQyxvQ0FBb0M7a0JBSGhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtpQkFDMUM7MEhBMkJLLElBQUk7c0JBRFAsS0FBSzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmUgfSBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUgfSBmcm9tICcuL3N0b3JlLmNvbGxlY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlciwgZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlciwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlckV2ZW50LCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyVHJpZ2dlck1vZGUgfSBmcm9tICcuLi9sb2FkZXIvY29sbGVjdGlvbi5jaGFuZ2Uud2F0Y2hlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VUcmlnZ2VySW5zdGFuY2VGb3JTdG9yZSwgZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckluc3RhbmNlRm9yV2F0Y2hlciB9IGZyb20gJy4uL2xvYWRlci9jb2xsZWN0aW9uLmNoYW5nZS50cmlnZ2VyJztcblxuLyoqXG4gKiBVc2VkIHRvIHdhdGNoIHF1ZXJ5IGRvYyBjaGFuZ2VzIGFuZCByZXNwb25kIHRvIHRoZW0gYWNjb3JkaW5nbHkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VEaXJlY3RpdmU8VCA9IHVua25vd24sIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPj4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyPFQsIEQsIFM+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3dhdGNoZXIgPSBkYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyPFQsIEQsIFM+KHRoaXMuZGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUuc3RvcmUpO1xuICBwcml2YXRlIF90cmlnZ2VyID0gZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlVHJpZ2dlckluc3RhbmNlRm9yV2F0Y2hlcjxULCBELCBTPih0aGlzLl93YXRjaGVyLCAoKSA9PiB0aGlzLnJlc3RhcnQoKSk7XG5cbiAgcmVhZG9ubHkgbW9kZSQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlPiA9IHRoaXMuX3dhdGNoZXIubW9kZSQ7XG4gIHJlYWRvbmx5IGV2ZW50JDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25DaGFuZ2VXYXRjaGVyRXZlbnQ+ID0gdGhpcy5fd2F0Y2hlci5ldmVudCQ7XG4gIHJlYWRvbmx5IGhhc0NoYW5nZUF2YWlsYWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl93YXRjaGVyLmhhc0NoYW5nZUF2YWlsYWJsZSQ7XG4gIHJlYWRvbmx5IHRyaWdnZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl93YXRjaGVyLnRyaWdnZXJlZCQ7XG4gIHJlYWRvbmx5IHRyaWdnZXIkOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5fd2F0Y2hlci50cmlnZ2VyJDtcblxuICBnZXQgc3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dhdGNoZXIuc3RvcmU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmU8VCwgRCwgUz4pIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdHJpZ2dlci5pbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl93YXRjaGVyLmRlc3Ryb3koKTtcbiAgICB0aGlzLl90cmlnZ2VyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIEBJbnB1dCgnZGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlJylcbiAgZ2V0IG1vZGUoKTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5fd2F0Y2hlci5tb2RlO1xuICB9XG5cbiAgc2V0IG1vZGUobW9kZTogTWF5YmU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uQ2hhbmdlV2F0Y2hlclRyaWdnZXJNb2RlIHwgJyc+KSB7XG4gICAgdGhpcy5fd2F0Y2hlci5tb2RlID0gbW9kZSB8fCAnb2ZmJztcbiAgfVxuXG4gIHJlc3RhcnQoKSB7XG4gICAgdGhpcy5kYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZS5zdG9yZS5yZXN0YXJ0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { urlWithoutParameters, AUTH_ADMIN_ROLE, cachedGetter, addToSet, removeFr
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, Injectable, Inject, Optional, Component, Input, Directive, EventEmitter, Output, NgModule, Injector, forwardRef, Host } from '@angular/core';
|
|
4
4
|
import { getToken, initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
|
|
5
|
-
import { switchMap, from, first, map, of, shareReplay, distinctUntilChanged, firstValueFrom, BehaviorSubject, combineLatest, tap, filter, take, startWith, Subject, throttleTime, NEVER
|
|
5
|
+
import { switchMap, from, first, map, of, shareReplay, distinctUntilChanged, firstValueFrom, BehaviorSubject, combineLatest, tap, filter, take, startWith, exhaustMap, EMPTY, Subject, throttleTime, NEVER } from 'rxjs';
|
|
6
6
|
import * as i1 from '@angular/fire/app-check';
|
|
7
7
|
import { provideAppCheck } from '@angular/fire/app-check';
|
|
8
8
|
import * as i4 from '@angular/material/button';
|
|
@@ -14,9 +14,9 @@ import { CommonModule } from '@angular/common';
|
|
|
14
14
|
import * as i3 from '@dereekb/dbx-web';
|
|
15
15
|
import { DbxRouterAnchorModule, DbxReadableErrorModule, DbxActionModule, DbxButtonModule } from '@dereekb/dbx-web';
|
|
16
16
|
import * as i3$1 from '@dereekb/dbx-core';
|
|
17
|
-
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService,
|
|
17
|
+
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, AbstractIfDirective, AbstractSubscriptionDirective, DbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance, LockSetComponentStore } from '@dereekb/dbx-core';
|
|
18
18
|
import { __awaiter } from 'tslib';
|
|
19
|
-
import { timeoutStartWith, filterMaybe, isNot, SubscriptionObject, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, pageLoadingStateFromObs,
|
|
19
|
+
import { timeoutStartWith, filterMaybe, isNot, SubscriptionObject, asObservable, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, pageLoadingStateFromObs, useAsObservable, successResult, beginLoading, loadingStateFromObs, errorResult, lazyFrom, cleanup } from '@dereekb/rxjs';
|
|
20
20
|
import * as i1$1 from '@angular/fire/auth';
|
|
21
21
|
import { authState, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
22
22
|
import { sendPasswordResetEmail } from 'firebase/auth';
|
|
@@ -1899,9 +1899,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
1899
1899
|
* DbxFirebaseCollectionChangeWatcher instance
|
|
1900
1900
|
*/
|
|
1901
1901
|
class DbxFirebaseCollectionChangeWatcherInstance {
|
|
1902
|
-
constructor(store) {
|
|
1902
|
+
constructor(store, _initialMode = 'off') {
|
|
1903
1903
|
this.store = store;
|
|
1904
|
-
this.
|
|
1904
|
+
this._initialMode = _initialMode;
|
|
1905
|
+
this._mode = new BehaviorSubject(this._initialMode);
|
|
1905
1906
|
this._sub = new SubscriptionObject();
|
|
1906
1907
|
this.mode$ = this._mode.pipe(distinctUntilChanged());
|
|
1907
1908
|
this.event$ = this.store.queryChangeWatcher$.pipe(switchMap((x) => x.event$.pipe(filter((x) => x.type !== 'none'), // do not share 'none' events.
|
|
@@ -1925,8 +1926,75 @@ class DbxFirebaseCollectionChangeWatcherInstance {
|
|
|
1925
1926
|
this._mode.next(mode);
|
|
1926
1927
|
}
|
|
1927
1928
|
}
|
|
1928
|
-
function dbxFirebaseCollectionChangeWatcher(store) {
|
|
1929
|
-
return new DbxFirebaseCollectionChangeWatcherInstance(store);
|
|
1929
|
+
function dbxFirebaseCollectionChangeWatcher(store, mode) {
|
|
1930
|
+
return new DbxFirebaseCollectionChangeWatcherInstance(store, mode);
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1933
|
+
/**
|
|
1934
|
+
* Restarts the store.
|
|
1935
|
+
*
|
|
1936
|
+
* @param instance
|
|
1937
|
+
* @returns
|
|
1938
|
+
*/
|
|
1939
|
+
const DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION = (instance) => instance.watcher.store.restart();
|
|
1940
|
+
class DbxFirebaseCollectionChangeTriggerInstance {
|
|
1941
|
+
constructor(config) {
|
|
1942
|
+
var _a;
|
|
1943
|
+
this.config = config;
|
|
1944
|
+
this._triggerFunction = new BehaviorSubject(undefined);
|
|
1945
|
+
this._sub = new SubscriptionObject();
|
|
1946
|
+
this.watcher = config.watcher;
|
|
1947
|
+
this.triggerFunction = (_a = config.triggerFunction) !== null && _a !== void 0 ? _a : DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION;
|
|
1948
|
+
}
|
|
1949
|
+
init() {
|
|
1950
|
+
this._sub.subscription = this._triggerFunction
|
|
1951
|
+
.pipe(switchMap((triggerFunction) => {
|
|
1952
|
+
if (triggerFunction) {
|
|
1953
|
+
return this.watcher.triggered$.pipe(filter((triggered) => triggered), exhaustMap(() => asObservable(triggerFunction(this))));
|
|
1954
|
+
}
|
|
1955
|
+
else {
|
|
1956
|
+
return EMPTY;
|
|
1957
|
+
}
|
|
1958
|
+
}))
|
|
1959
|
+
.subscribe();
|
|
1960
|
+
}
|
|
1961
|
+
destroy() {
|
|
1962
|
+
var _a;
|
|
1963
|
+
this._triggerFunction.complete();
|
|
1964
|
+
if (this.config.destroyWatcherOnDestroy === true) {
|
|
1965
|
+
(_a = this.watcher) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
1966
|
+
}
|
|
1967
|
+
}
|
|
1968
|
+
get triggerFunction() {
|
|
1969
|
+
return this._triggerFunction.value;
|
|
1970
|
+
}
|
|
1971
|
+
set triggerFunction(triggerFunction) {
|
|
1972
|
+
this._triggerFunction.next(triggerFunction);
|
|
1973
|
+
}
|
|
1974
|
+
}
|
|
1975
|
+
/**
|
|
1976
|
+
* Creates a new DbxFirebaseCollectionChangeWatcher, set the modes to "auto", and creates a new DbxFirebaseCollectionChangeTriggerInstance.
|
|
1977
|
+
*
|
|
1978
|
+
* @param store
|
|
1979
|
+
* @param triggerFunction
|
|
1980
|
+
* @returns
|
|
1981
|
+
*/
|
|
1982
|
+
function dbxFirebaseCollectionChangeTriggerInstanceForStore(store, triggerFunction) {
|
|
1983
|
+
return dbxFirebaseCollectionChangeTriggerInstance({
|
|
1984
|
+
watcher: dbxFirebaseCollectionChangeWatcher(store, 'auto'),
|
|
1985
|
+
destroyWatcherOnDestroy: true,
|
|
1986
|
+
triggerFunction
|
|
1987
|
+
});
|
|
1988
|
+
}
|
|
1989
|
+
function dbxFirebaseCollectionChangeTriggerInstanceForWatcher(watcher, triggerFunction) {
|
|
1990
|
+
return dbxFirebaseCollectionChangeTriggerInstance({
|
|
1991
|
+
watcher,
|
|
1992
|
+
destroyWatcherOnDestroy: false,
|
|
1993
|
+
triggerFunction
|
|
1994
|
+
});
|
|
1995
|
+
}
|
|
1996
|
+
function dbxFirebaseCollectionChangeTriggerInstance(config) {
|
|
1997
|
+
return new DbxFirebaseCollectionChangeTriggerInstance(config);
|
|
1930
1998
|
}
|
|
1931
1999
|
|
|
1932
2000
|
/**
|
|
@@ -2146,25 +2214,26 @@ function provideDbxFirebaseCollectionStoreDirective(sourceType, storeType) {
|
|
|
2146
2214
|
/**
|
|
2147
2215
|
* Used to watch query doc changes and respond to them accordingly.
|
|
2148
2216
|
*/
|
|
2149
|
-
class DbxFirebaseCollectionChangeDirective
|
|
2217
|
+
class DbxFirebaseCollectionChangeDirective {
|
|
2150
2218
|
constructor(dbxFirebaseCollectionStoreDirective) {
|
|
2151
|
-
super();
|
|
2152
2219
|
this.dbxFirebaseCollectionStoreDirective = dbxFirebaseCollectionStoreDirective;
|
|
2153
2220
|
this._watcher = dbxFirebaseCollectionChangeWatcher(this.dbxFirebaseCollectionStoreDirective.store);
|
|
2221
|
+
this._trigger = dbxFirebaseCollectionChangeTriggerInstanceForWatcher(this._watcher, () => this.restart());
|
|
2154
2222
|
this.mode$ = this._watcher.mode$;
|
|
2155
2223
|
this.event$ = this._watcher.event$;
|
|
2156
2224
|
this.hasChangeAvailable$ = this._watcher.hasChangeAvailable$;
|
|
2157
2225
|
this.triggered$ = this._watcher.triggered$;
|
|
2158
2226
|
this.trigger$ = this._watcher.trigger$;
|
|
2159
2227
|
}
|
|
2228
|
+
get store() {
|
|
2229
|
+
return this._watcher.store;
|
|
2230
|
+
}
|
|
2160
2231
|
ngOnInit() {
|
|
2161
|
-
this.
|
|
2162
|
-
this.restart();
|
|
2163
|
-
});
|
|
2232
|
+
this._trigger.init();
|
|
2164
2233
|
}
|
|
2165
2234
|
ngOnDestroy() {
|
|
2166
|
-
super.ngOnDestroy();
|
|
2167
2235
|
this._watcher.destroy();
|
|
2236
|
+
this._trigger.destroy();
|
|
2168
2237
|
}
|
|
2169
2238
|
get mode() {
|
|
2170
2239
|
return this._watcher.mode;
|
|
@@ -2177,7 +2246,7 @@ class DbxFirebaseCollectionChangeDirective extends AbstractSubscriptionDirective
|
|
|
2177
2246
|
}
|
|
2178
2247
|
}
|
|
2179
2248
|
DbxFirebaseCollectionChangeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, deps: [{ token: DbxFirebaseCollectionStoreDirective }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2180
|
-
DbxFirebaseCollectionChangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseCollectionChangeDirective, selector: "[dbxFirebaseCollectionChange]", inputs: { mode: ["dbxFirebaseCollectionChange", "mode"] },
|
|
2249
|
+
DbxFirebaseCollectionChangeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DbxFirebaseCollectionChangeDirective, selector: "[dbxFirebaseCollectionChange]", inputs: { mode: ["dbxFirebaseCollectionChange", "mode"] }, ngImport: i0 });
|
|
2181
2250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DbxFirebaseCollectionChangeDirective, decorators: [{
|
|
2182
2251
|
type: Directive,
|
|
2183
2252
|
args: [{
|
|
@@ -2803,5 +2872,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
2803
2872
|
* Generated bundle index. Do not edit.
|
|
2804
2873
|
*/
|
|
2805
2874
|
|
|
2806
|
-
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ROUTER_SYNC_USE_DEFAULT_PARAM_VALUE, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthService, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, enableAppCheckDebugTokenGeneration, firebaseAuthErrorToReadableError, firebaseAuthTokenFromUser, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, readValueFromIdToken, setParentStoreEffect };
|
|
2875
|
+
export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_ROUTER_SYNC_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ROUTER_SYNC_USE_DEFAULT_PARAM_VALUE, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, FIREBASE_AUTH_NETWORK_REQUEST_ERROR, FIREBASE_AUTH_USER_NOT_FOUND_ERROR, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthService, dbxFirebaseCollectionChangeTriggerInstance, dbxFirebaseCollectionChangeTriggerInstanceForStore, dbxFirebaseCollectionChangeTriggerInstanceForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, enableAppCheckDebugTokenGeneration, firebaseAuthErrorToReadableError, firebaseAuthTokenFromUser, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, readValueFromIdToken, setParentStoreEffect };
|
|
2807
2876
|
//# sourceMappingURL=dereekb-dbx-firebase.mjs.map
|