@dereekb/dbx-firebase 12.0.4 → 12.0.6
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/esm2022/lib/auth/login/login.anonymous.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.apple.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.button.component.mjs +16 -19
- package/esm2022/lib/auth/login/login.context.back.component.mjs +5 -7
- package/esm2022/lib/auth/login/login.email.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.email.content.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.facebook.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.github.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.google.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.microsoft.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.terms.simple.component.mjs +1 -1
- package/esm2022/lib/auth/login/login.twitter.component.mjs +1 -1
- package/esm2022/lib/auth/login/register.component.mjs +9 -15
- package/esm2022/lib/auth/login/register.email.component.mjs +1 -1
- package/esm2022/lib/model/modules/model/model.types.module.mjs +5 -5
- package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +5 -5
- package/esm2022/lib/model/modules/store/store.collection.directive.mjs +26 -21
- package/esm2022/lib/model/modules/store/store.document.directive.mjs +47 -34
- package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +23 -9
- package/fesm2022/dereekb-dbx-firebase.mjs +128 -111
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/auth/login/login.button.component.d.ts +4 -5
- package/lib/auth/login/login.context.back.component.d.ts +1 -2
- package/lib/auth/login/register.component.d.ts +4 -5
- package/lib/model/modules/model/model.types.module.d.ts +2 -2
- package/lib/model/modules/model/model.types.view.directive.d.ts +3 -3
- package/lib/model/modules/store/store.collection.directive.d.ts +11 -5
- package/lib/model/modules/store/store.document.directive.d.ts +17 -6
- package/lib/model/modules/store/store.subcollection.directive.d.ts +9 -4
- package/package.json +1 -1
|
@@ -1,22 +1,37 @@
|
|
|
1
|
-
import { Directive, forwardRef,
|
|
1
|
+
import { Directive, forwardRef, model } from '@angular/core';
|
|
2
2
|
import { BehaviorSubject, shareReplay, switchMap } from 'rxjs';
|
|
3
|
-
import { filterMaybe } from '@dereekb/rxjs';
|
|
3
|
+
import { filterMaybe, skipInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
|
|
4
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Abstract directive that contains a DbxFirebaseCollectionStore and provides an interface for communicating with other directives.
|
|
7
8
|
*/
|
|
8
9
|
export class DbxFirebaseCollectionStoreDirective {
|
|
10
|
+
maxPages = model(undefined);
|
|
11
|
+
itemsPerPage = model(undefined);
|
|
12
|
+
contraints = model(undefined);
|
|
13
|
+
_maxPages = toObservable(this.maxPages).pipe(skipInitialMaybe());
|
|
14
|
+
_itemsPerPage = toObservable(this.itemsPerPage).pipe(skipInitialMaybe());
|
|
15
|
+
_constraints = toObservable(this.contraints).pipe(skipInitialMaybe());
|
|
9
16
|
_store = new BehaviorSubject(undefined);
|
|
17
|
+
_storeSub = new SubscriptionObject();
|
|
10
18
|
store$ = this._store.pipe(filterMaybe(), shareReplay(1));
|
|
11
19
|
pageLoadingState$ = this.store$.pipe(switchMap((x) => x.pageLoadingState$));
|
|
12
20
|
constructor(store) {
|
|
13
21
|
this.replaceStore(store);
|
|
22
|
+
// sync inputs to store any time the store changes
|
|
23
|
+
this._storeSub.subscription = this.store$.subscribe((x) => {
|
|
24
|
+
x.setConstraints(this._constraints);
|
|
25
|
+
x.setMaxPages(this._maxPages);
|
|
26
|
+
x.setItemsPerPage(this._itemsPerPage);
|
|
27
|
+
});
|
|
14
28
|
}
|
|
15
29
|
get store() {
|
|
16
30
|
return this._store.value;
|
|
17
31
|
}
|
|
18
32
|
ngOnDestroy() {
|
|
19
33
|
this._store.complete();
|
|
34
|
+
this._storeSub.destroy();
|
|
20
35
|
}
|
|
21
36
|
/**
|
|
22
37
|
* Replaces the internal store.
|
|
@@ -24,15 +39,14 @@ export class DbxFirebaseCollectionStoreDirective {
|
|
|
24
39
|
replaceStore(store) {
|
|
25
40
|
this._store.next(store);
|
|
26
41
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.store.setMaxPages(maxPages);
|
|
42
|
+
setMaxPages(maxPages) {
|
|
43
|
+
this.maxPages.set(maxPages);
|
|
30
44
|
}
|
|
31
|
-
|
|
32
|
-
this.
|
|
45
|
+
setItemsPerPage(itemsPerPage) {
|
|
46
|
+
this.itemsPerPage.set(itemsPerPage);
|
|
33
47
|
}
|
|
34
|
-
|
|
35
|
-
this.
|
|
48
|
+
setConstraints(constraints) {
|
|
49
|
+
this.contraints.set(constraints);
|
|
36
50
|
}
|
|
37
51
|
next() {
|
|
38
52
|
this.store.next();
|
|
@@ -40,21 +54,12 @@ export class DbxFirebaseCollectionStoreDirective {
|
|
|
40
54
|
restart() {
|
|
41
55
|
this.store.restart();
|
|
42
56
|
}
|
|
43
|
-
setConstraints(constraints) {
|
|
44
|
-
this.store.setConstraints(constraints);
|
|
45
|
-
}
|
|
46
57
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
47
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
58
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseCollectionStoreDirective, inputs: { maxPages: { classPropertyName: "maxPages", publicName: "maxPages", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, contraints: { classPropertyName: "contraints", publicName: "contraints", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { maxPages: "maxPagesChange", itemsPerPage: "itemsPerPageChange", contraints: "contraintsChange" }, ngImport: i0 });
|
|
48
59
|
}
|
|
49
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionStoreDirective, decorators: [{
|
|
50
61
|
type: Directive
|
|
51
|
-
}], ctorParameters: () => [{ type: undefined }]
|
|
52
|
-
type: Input
|
|
53
|
-
}], itemsPerPage: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], constraints: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}] } });
|
|
62
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
58
63
|
export function provideDbxFirebaseCollectionStoreDirective(sourceType, storeType) {
|
|
59
64
|
const providers = [
|
|
60
65
|
{
|
|
@@ -67,4 +72,4 @@ export function provideDbxFirebaseCollectionStoreDirective(sourceType, storeType
|
|
|
67
72
|
}
|
|
68
73
|
return providers;
|
|
69
74
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLmNvbGxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFJeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUUxRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsbUNBQW1DO0lBQzlDLFFBQVEsR0FBRyxLQUFLLENBQWdCLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLFlBQVksR0FBRyxLQUFLLENBQWdCLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLFVBQVUsR0FBRyxLQUFLLENBQWdELFNBQVMsQ0FBQyxDQUFDO0lBRXJFLFNBQVMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDakUsYUFBYSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN6RSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztJQUNsRCxTQUFTLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBRTdDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFFckYsWUFBWSxLQUFRO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEQsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsS0FBUTtRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQXVCO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlLENBQUMsWUFBMkI7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUEwRDtRQUN2RSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7d0dBNURtQixtQ0FBbUM7NEZBQW5DLG1DQUFtQzs7NEZBQW5DLG1DQUFtQztrQkFEeEQsU0FBUzs7QUE0RVYsTUFBTSxVQUFVLDBDQUEwQyxDQUFnSyxVQUFtQixFQUFFLFNBQW1CO0lBQ2hRLE1BQU0sU0FBUyxHQUFlO1FBQzVCO1lBQ0UsT0FBTyxFQUFFLG1DQUFtQztZQUM1QyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztLQUNGLENBQUM7SUFFRixJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgbW9kZWwsIE9uRGVzdHJveSwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50LCBGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBNYXliZSwgQXJyYXlPclZhbHVlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZSB9IGZyb20gJy4vc3RvcmUuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBza2lwSW5pdGlhbE1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlIGFuZCBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIGNvbW11bmljYXRpbmcgd2l0aCBvdGhlciBkaXJlY3RpdmVzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlPFQsIEQ+PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IG1heFBhZ2VzID0gbW9kZWw8TWF5YmU8bnVtYmVyPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaXRlbXNQZXJQYWdlID0gbW9kZWw8TWF5YmU8bnVtYmVyPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgY29udHJhaW50cyA9IG1vZGVsPE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pj4odW5kZWZpbmVkKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXhQYWdlcyA9IHRvT2JzZXJ2YWJsZSh0aGlzLm1heFBhZ2VzKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1zUGVyUGFnZSA9IHRvT2JzZXJ2YWJsZSh0aGlzLml0ZW1zUGVyUGFnZSkucGlwZShza2lwSW5pdGlhbE1heWJlKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25zdHJhaW50cyA9IHRvT2JzZXJ2YWJsZSh0aGlzLmNvbnRyYWludHMpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8Uz4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHN0b3JlJCA9IHRoaXMuX3N0b3JlLnBpcGUoZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBwYWdlTG9hZGluZ1N0YXRlJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnBhZ2VMb2FkaW5nU3RhdGUkKSk7XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFMpIHtcbiAgICB0aGlzLnJlcGxhY2VTdG9yZShzdG9yZSk7XG5cbiAgICAvLyBzeW5jIGlucHV0cyB0byBzdG9yZSBhbnkgdGltZSB0aGUgc3RvcmUgY2hhbmdlc1xuICAgIHRoaXMuX3N0b3JlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmUkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgeC5zZXRDb25zdHJhaW50cyh0aGlzLl9jb25zdHJhaW50cyk7XG4gICAgICB4LnNldE1heFBhZ2VzKHRoaXMuX21heFBhZ2VzKTtcbiAgICAgIHguc2V0SXRlbXNQZXJQYWdlKHRoaXMuX2l0ZW1zUGVyUGFnZSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgc3RvcmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLnZhbHVlIGFzIFM7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N0b3JlU3ViLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgaW50ZXJuYWwgc3RvcmUuXG4gICAqL1xuICByZXBsYWNlU3RvcmUoc3RvcmU6IFMpIHtcbiAgICB0aGlzLl9zdG9yZS5uZXh0KHN0b3JlKTtcbiAgfVxuXG4gIHNldE1heFBhZ2VzKG1heFBhZ2VzOiBNYXliZTxudW1iZXI+KSB7XG4gICAgdGhpcy5tYXhQYWdlcy5zZXQobWF4UGFnZXMpO1xuICB9XG5cbiAgc2V0SXRlbXNQZXJQYWdlKGl0ZW1zUGVyUGFnZTogTWF5YmU8bnVtYmVyPikge1xuICAgIHRoaXMuaXRlbXNQZXJQYWdlLnNldChpdGVtc1BlclBhZ2UpO1xuICB9XG5cbiAgc2V0Q29uc3RyYWludHMoY29uc3RyYWludHM6IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pikge1xuICAgIHRoaXMuY29udHJhaW50cy5zZXQoY29uc3RyYWludHMpO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICB0aGlzLnN0b3JlLm5leHQoKTtcbiAgfVxuXG4gIHJlc3RhcnQoKSB7XG4gICAgdGhpcy5zdG9yZS5yZXN0YXJ0KCk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZS5cbiAqXG4gKiBDYW4gb3B0aW9uYWxseSBhbHNvIHByb3ZpZGUgdGhlIGFjdHVhbCBzdG9yZSB0eXBlIHRvIGluY2x1ZGUgaW4gdGhlIHByb3ZpZGVycyBhcnJheSBzbyBpdCBpcyBpbnN0YW50aWF0ZWQgYnkgQW5ndWxhci5cbiAqXG4gKiBAcGFyYW0gc291cmNlVHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55Pj4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZT86IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8YW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU/OiBUeXBlPFM+KTogUHJvdmlkZXJbXSB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHNvdXJjZVR5cGUpXG4gICAgfVxuICBdO1xuXG4gIGlmIChzdG9yZVR5cGUpIHtcbiAgICBwcm92aWRlcnMucHVzaChzdG9yZVR5cGUpO1xuICB9XG5cbiAgcmV0dXJuIHByb3ZpZGVycztcbn1cbiJdfQ==
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import { Directive, forwardRef,
|
|
1
|
+
import { Directive, forwardRef, model } from '@angular/core';
|
|
2
2
|
import { FirestoreAccessorStreamMode } from '@dereekb/firebase';
|
|
3
|
-
import { BehaviorSubject,
|
|
4
|
-
import { filterMaybe,
|
|
3
|
+
import { BehaviorSubject, shareReplay, switchMap } from 'rxjs';
|
|
4
|
+
import { filterMaybe, skipInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
|
|
5
5
|
import { provideDbxRouteModelIdDirectiveDelegate, provideDbxRouteModelKeyDirectiveDelegate } from '@dereekb/dbx-core';
|
|
6
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
/**
|
|
8
9
|
* Abstract directive that contains a DbxFirebaseDocumentStore and provides an interface for communicating with other directives.
|
|
9
10
|
*/
|
|
10
11
|
export class DbxFirebaseDocumentStoreDirective {
|
|
12
|
+
documentId = model(undefined);
|
|
13
|
+
key = model(undefined);
|
|
14
|
+
flatKey = model(undefined);
|
|
15
|
+
ref = model(undefined);
|
|
16
|
+
streamMode = model(FirestoreAccessorStreamMode.STREAM);
|
|
17
|
+
_documentId$ = toObservable(this.documentId).pipe(skipInitialMaybe());
|
|
18
|
+
_key$ = toObservable(this.key).pipe(skipInitialMaybe());
|
|
19
|
+
_flatKey$ = toObservable(this.flatKey).pipe(skipInitialMaybe());
|
|
20
|
+
_ref$ = toObservable(this.ref).pipe(skipInitialMaybe());
|
|
21
|
+
_streamMode$ = toObservable(this.streamMode).pipe(skipInitialMaybe());
|
|
11
22
|
_store = new BehaviorSubject(undefined);
|
|
23
|
+
_storeSub = new SubscriptionObject();
|
|
12
24
|
store$ = this._store.pipe(filterMaybe(), shareReplay(1));
|
|
13
25
|
exists$ = this.store$.pipe(switchMap((x) => x.exists$));
|
|
14
26
|
document$ = this.store$.pipe(switchMap((x) => x.document$));
|
|
@@ -24,13 +36,40 @@ export class DbxFirebaseDocumentStoreDirective {
|
|
|
24
36
|
loadingState$ = this.store$.pipe(switchMap((x) => x.dataLoadingState$));
|
|
25
37
|
constructor(store) {
|
|
26
38
|
this.replaceStore(store);
|
|
39
|
+
// sync inputs to store any time the store changes
|
|
40
|
+
this._storeSub.subscription = this._store.subscribe((x) => {
|
|
41
|
+
if (x) {
|
|
42
|
+
x.setId(this._documentId$);
|
|
43
|
+
x.setKey(this._key$);
|
|
44
|
+
x.setFlatKey(this._flatKey$);
|
|
45
|
+
x.setRef(this._ref$);
|
|
46
|
+
x.setStreamMode(this._streamMode$);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
27
49
|
}
|
|
28
50
|
ngOnDestroy() {
|
|
29
51
|
this._store.complete();
|
|
52
|
+
this._storeSub.destroy();
|
|
30
53
|
}
|
|
31
54
|
get store() {
|
|
32
55
|
return this._store.value;
|
|
33
56
|
}
|
|
57
|
+
// MARK: Setters
|
|
58
|
+
setDocumentId(documentId) {
|
|
59
|
+
this.documentId.set(documentId);
|
|
60
|
+
}
|
|
61
|
+
setKey(key) {
|
|
62
|
+
this.key.set(key);
|
|
63
|
+
}
|
|
64
|
+
setFlatKey(flatKey) {
|
|
65
|
+
this.flatKey.set(flatKey);
|
|
66
|
+
}
|
|
67
|
+
setRef(ref) {
|
|
68
|
+
this.ref.set(ref);
|
|
69
|
+
}
|
|
70
|
+
setStreamMode(streamMode) {
|
|
71
|
+
this.streamMode.set(streamMode);
|
|
72
|
+
}
|
|
34
73
|
/**
|
|
35
74
|
* Replaces the internal store.
|
|
36
75
|
*/
|
|
@@ -39,45 +78,19 @@ export class DbxFirebaseDocumentStoreDirective {
|
|
|
39
78
|
}
|
|
40
79
|
// MARK: DbxRouteModelIdDirectiveDelegate
|
|
41
80
|
useRouteModelIdParamsObservable(idFromParams) {
|
|
42
|
-
return
|
|
81
|
+
return idFromParams.subscribe((x) => this.setDocumentId(x));
|
|
43
82
|
}
|
|
44
83
|
// MARK: DbxRouteModelKeyDirectiveDelegate
|
|
45
84
|
useRouteModelKeyParamsObservable(keyFromParams) {
|
|
46
85
|
// we assume that the input model key is a TwoWayFlatFirestoreModelKey, since the TwoWayFlatFirestoreModelKey is safe to encode in the url
|
|
47
|
-
return
|
|
48
|
-
}
|
|
49
|
-
// MARK: Inputs
|
|
50
|
-
set documentId(documentId) {
|
|
51
|
-
useFirst(this.store$, (x) => x.setId(documentId));
|
|
52
|
-
}
|
|
53
|
-
set key(key) {
|
|
54
|
-
useFirst(this.store$, (x) => x.setKey(key));
|
|
55
|
-
}
|
|
56
|
-
set flatKey(flatKey) {
|
|
57
|
-
useFirst(this.store$, (x) => x.setFlatKey(flatKey));
|
|
58
|
-
}
|
|
59
|
-
set ref(ref) {
|
|
60
|
-
useFirst(this.store$, (x) => x.setRef(ref));
|
|
61
|
-
}
|
|
62
|
-
set streamMode(streamMode) {
|
|
63
|
-
useFirst(this.store$, (x) => x.setStreamMode(streamMode));
|
|
86
|
+
return keyFromParams.subscribe((x) => this.setFlatKey(x));
|
|
64
87
|
}
|
|
65
88
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
66
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
89
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseDocumentStoreDirective, inputs: { documentId: { classPropertyName: "documentId", publicName: "documentId", isSignal: true, isRequired: false, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, flatKey: { classPropertyName: "flatKey", publicName: "flatKey", isSignal: true, isRequired: false, transformFunction: null }, ref: { classPropertyName: "ref", publicName: "ref", isSignal: true, isRequired: false, transformFunction: null }, streamMode: { classPropertyName: "streamMode", publicName: "streamMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { documentId: "documentIdChange", key: "keyChange", flatKey: "flatKeyChange", ref: "refChange", streamMode: "streamModeChange" }, ngImport: i0 });
|
|
67
90
|
}
|
|
68
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDocumentStoreDirective, decorators: [{
|
|
69
92
|
type: Directive
|
|
70
|
-
}], ctorParameters: () => [{ type: undefined }]
|
|
71
|
-
type: Input
|
|
72
|
-
}], key: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], flatKey: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}], ref: [{
|
|
77
|
-
type: Input
|
|
78
|
-
}], streamMode: [{
|
|
79
|
-
type: Input
|
|
80
|
-
}] } });
|
|
93
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
81
94
|
export function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType) {
|
|
82
95
|
const providers = [
|
|
83
96
|
{
|
|
@@ -92,4 +105,4 @@ export function provideDbxFirebaseDocumentStoreDirective(sourceType, storeType)
|
|
|
92
105
|
}
|
|
93
106
|
return providers;
|
|
94
107
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQXFCLDJCQUEyQixFQUF1RixNQUFNLG1CQUFtQixDQUFDO0FBR3hLLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLFdBQVcsRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBdUUsdUNBQXVDLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHM0w7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLGlDQUFpQztJQUNwQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVcsU0FBUyxDQUFDLENBQUM7SUFFMUQsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpELE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3hELFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzVELHFCQUFxQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUVwRixHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRCxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsRCxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVsRCxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RCxxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFFcEYsY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDdEUsS0FBSyxHQUFH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LFNBQVMsR0FBZTtRQUM1QjtZQUNFLE9BQU8sRUFBRSxpQ0FBaUM7WUFDMUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDMUM7UUFDRCxHQUFHLHVDQUF1QyxDQUFDLFVBQVUsQ0FBQztRQUN0RCxHQUFHLHdDQUF3QyxDQUFDLFVBQVUsQ0FBQztLQUN4RCxDQUFDO0lBRUYsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50UmVmZXJlbmNlLCBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUsIEZpcmVzdG9yZURvY3VtZW50LCBGaXJlc3RvcmVNb2RlbEtleSwgRmlyZXN0b3JlTW9kZWxJZCwgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgTW9kZWxLZXksIHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXksIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJNYXliZSwgdXNlRmlyc3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieFJvdXRlTW9kZWxJZERpcmVjdGl2ZURlbGVnYXRlLCBEYnhSb3V0ZU1vZGVsS2V5RGlyZWN0aXZlRGVsZWdhdGUsIHByb3ZpZGVEYnhSb3V0ZU1vZGVsSWREaXJlY3RpdmVEZWxlZ2F0ZSwgcHJvdmlkZURieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC50d293YXkua2V5LnNvdXJjZSc7XG5cbi8qKlxuICogQWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgY29udGFpbnMgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUgYW5kIHByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGRpcmVjdGl2ZXMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8VCwgRD4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8VCwgRD4+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIsIERieFJvdXRlTW9kZWxJZERpcmVjdGl2ZURlbGVnYXRlLCBEYnhSb3V0ZU1vZGVsS2V5RGlyZWN0aXZlRGVsZWdhdGUsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxTPj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBzdG9yZSQgPSB0aGlzLl9zdG9yZS5waXBlKGZpbHRlck1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBleGlzdHMkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZXhpc3RzJCkpO1xuICByZWFkb25seSBkb2N1bWVudCQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kb2N1bWVudCQpKTtcbiAgcmVhZG9ubHkgZG9jdW1lbnRMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZG9jdW1lbnRMb2FkaW5nU3RhdGUkKSk7XG5cbiAgcmVhZG9ubHkgaWQkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguaWQkKSk7XG4gIHJlYWRvbmx5IGtleSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5rZXkkKSk7XG4gIHJlYWRvbmx5IHR3b1dheUZsYXRLZXkkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgudHdvV2F5RmxhdEtleSQpKTtcbiAgcmVhZG9ubHkgcmVmJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnJlZiQpKTtcblxuICByZWFkb25seSBzbmFwc2hvdCQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdCQpKTtcbiAgcmVhZG9ubHkgc25hcHNob3RMb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguc25hcHNob3RMb2FkaW5nU3RhdGUkKSk7XG5cbiAgcmVhZG9ubHkgbW9kZWxJZGVudGl0eSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5tb2RlbElkZW50aXR5JCkpO1xuICByZWFkb25seSBkYXRhJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmRhdGEkKSk7XG4gIHJlYWRvbmx5IGxvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kYXRhTG9hZGluZ1N0YXRlJCkpO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTKSB7XG4gICAgdGhpcy5yZXBsYWNlU3RvcmUoc3RvcmUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIGdldCBzdG9yZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmUudmFsdWUgYXMgUztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyB0aGUgaW50ZXJuYWwgc3RvcmUuXG4gICAqL1xuICByZXBsYWNlU3RvcmUoc3RvcmU6IFMpIHtcbiAgICB0aGlzLl9zdG9yZS5uZXh0KHN0b3JlKTtcbiAgfVxuXG4gIC8vIE1BUks6IERieFJvdXRlTW9kZWxJZERpcmVjdGl2ZURlbGVnYXRlXG4gIHVzZVJvdXRlTW9kZWxJZFBhcmFtc09ic2VydmFibGUoaWRGcm9tUGFyYW1zOiBPYnNlcnZhYmxlPE1heWJlPE1vZGVsS2V5Pj4pOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoeCkgPT4geC5zZXRJZChpZEZyb21QYXJhbXMpKTtcbiAgfVxuXG4gIC8vIE1BUks6IERieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZVxuICB1c2VSb3V0ZU1vZGVsS2V5UGFyYW1zT2JzZXJ2YWJsZShrZXlGcm9tUGFyYW1zOiBPYnNlcnZhYmxlPE1heWJlPFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleT4+KTogU3Vic2NyaXB0aW9uIHtcbiAgICAvLyB3ZSBhc3N1bWUgdGhhdCB0aGUgaW5wdXQgbW9kZWwga2V5IGlzIGEgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5LCBzaW5jZSB0aGUgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IGlzIHNhZmUgdG8gZW5jb2RlIGluIHRoZSB1cmxcbiAgICByZXR1cm4gdGhpcy5zdG9yZSQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKHgpID0+IHguc2V0RmxhdEtleShrZXlGcm9tUGFyYW1zKSk7XG4gIH1cblxuICAvLyBNQVJLOiBJbnB1dHNcbiAgQElucHV0KClcbiAgc2V0IGRvY3VtZW50SWQoZG9jdW1lbnRJZDogTWF5YmU8RmlyZXN0b3JlTW9kZWxJZD4pIHtcbiAgICB1c2VGaXJzdCh0aGlzLnN0b3JlJCwgKHgpID0+IHguc2V0SWQoZG9jdW1lbnRJZCkpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGtleShrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pikge1xuICAgIHVzZUZpcnN0KHRoaXMuc3RvcmUkLCAoeCkgPT4geC5zZXRLZXkoa2V5KSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZmxhdEtleShmbGF0S2V5OiBNYXliZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+KSB7XG4gICAgdXNlRmlyc3QodGhpcy5zdG9yZSQsICh4KSA9PiB4LnNldEZsYXRLZXkoZmxhdEtleSkpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHJlZihyZWY6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pikge1xuICAgIHVzZUZpcnN0KHRoaXMuc3RvcmUkLCAoeCkgPT4geC5zZXRSZWYocmVmKSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc3RyZWFtTW9kZShzdHJlYW1Nb2RlOiBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUpIHtcbiAgICB1c2VGaXJzdCh0aGlzLnN0b3JlJCwgKHgpID0+IHguc2V0U3RyZWFtTW9kZShzdHJlYW1Nb2RlKSk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUuXG4gKlxuICogQ2FuIG9wdGlvbmFsbHkgYWxzbyBwcm92aWRlIHRoZSBhY3R1YWwgc3RvcmUgdHlwZSB0byBpbmNsdWRlIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgc28gaXQgaXMgaW5zdGFudGlhdGVkIGJ5IEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIHNvdXJjZVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55Pj4oc291cmNlVHlwZTogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlPGFueSwgYW55PiwgQyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW10ge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gc291cmNlVHlwZSlcbiAgICB9LFxuICAgIC4uLnByb3ZpZGVEYnhSb3V0ZU1vZGVsSWREaXJlY3RpdmVEZWxlZ2F0ZShzb3VyY2VUeXBlKSxcbiAgICAuLi5wcm92aWRlRGJ4Um91dGVNb2RlbEtleURpcmVjdGl2ZURlbGVnYXRlKHNvdXJjZVR5cGUpXG4gIF07XG5cbiAgaWYgKHN0b3JlVHlwZSAhPSBudWxsKSB7XG4gICAgcHJvdmlkZXJzLnB1c2goc3RvcmVUeXBlKTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlcnM7XG59XG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZG9jdW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9zdG9yZS9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQXFCLDJCQUEyQixFQUF1RixNQUFNLG1CQUFtQixDQUFDO0FBR3hLLE9BQU8sRUFBRSxlQUFlLEVBQWMsV0FBVyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQXVFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0wsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUUxRDs7R0FFRztBQUVILE1BQU0sT0FBZ0IsaUNBQWlDO0lBQzVDLFVBQVUsR0FBRyxLQUFLLENBQTBCLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELEdBQUcsR0FBRyxLQUFLLENBQTJCLFNBQVMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxLQUFLLENBQXFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELEdBQUcsR0FBRyxLQUFLLENBQThCLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELFVBQVUsR0FBRyxLQUFLLENBQThCLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTVFLFlBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDdEUsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4RCxTQUFTLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLEtBQUssR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDeEQsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUV0RSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQVcsU0FBUyxDQUFDLENBQUM7SUFDbEQsU0FBUyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUU3QyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDeEQsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDNUQscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBRXBGLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hELElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xELGNBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWxELFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzVELHFCQUFxQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUVwRixjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUN0RSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRCxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxD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LElBQUksSUFBSSxFQUFFLENBQUM7UUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgbW9kZWwsIE9uRGVzdHJveSwgUHJvdmlkZXIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvY3VtZW50UmVmZXJlbmNlLCBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUsIEZpcmVzdG9yZURvY3VtZW50LCBGaXJlc3RvcmVNb2RlbEtleSwgRmlyZXN0b3JlTW9kZWxJZCwgVHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgTW9kZWxLZXksIHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZSB9IGZyb20gJy4vc3RvcmUuZG9jdW1lbnQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgU3Vic2NyaXB0aW9uLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBza2lwSW5pdGlhbE1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieFJvdXRlTW9kZWxJZERpcmVjdGl2ZURlbGVnYXRlLCBEYnhSb3V0ZU1vZGVsS2V5RGlyZWN0aXZlRGVsZWdhdGUsIHByb3ZpZGVEYnhSb3V0ZU1vZGVsSWREaXJlY3RpdmVEZWxlZ2F0ZSwgcHJvdmlkZURieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZVR3b1dheUtleVByb3ZpZGVyIH0gZnJvbSAnLi9zdG9yZS5kb2N1bWVudC50d293YXkua2V5LnNvdXJjZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbi8qKlxuICogQWJzdHJhY3QgZGlyZWN0aXZlIHRoYXQgY29udGFpbnMgYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmUgYW5kIHByb3ZpZGVzIGFuIGludGVyZmFjZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIG90aGVyIGRpcmVjdGl2ZXMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8VCwgRD4gPSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8VCwgRD4+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlVHdvV2F5S2V5UHJvdmlkZXIsIERieFJvdXRlTW9kZWxJZERpcmVjdGl2ZURlbGVnYXRlLCBEYnhSb3V0ZU1vZGVsS2V5RGlyZWN0aXZlRGVsZWdhdGUsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGRvY3VtZW50SWQgPSBtb2RlbDxNYXliZTxGaXJlc3RvcmVNb2RlbElkPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkga2V5ID0gbW9kZWw8TWF5YmU8RmlyZXN0b3JlTW9kZWxLZXk+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBmbGF0S2V5ID0gbW9kZWw8TWF5YmU8VHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgcmVmID0gbW9kZWw8TWF5YmU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBzdHJlYW1Nb2RlID0gbW9kZWw8RmlyZXN0b3JlQWNjZXNzb3JTdHJlYW1Nb2RlPihGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUuU1RSRUFNKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudElkJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmRvY3VtZW50SWQpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfa2V5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmtleSkucGlwZShza2lwSW5pdGlhbE1heWJlKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mbGF0S2V5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmZsYXRLZXkpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVmJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnJlZikucGlwZShza2lwSW5pdGlhbE1heWJlKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdHJlYW1Nb2RlJCA9IHRvT2JzZXJ2YWJsZSh0aGlzLnN0cmVhbU1vZGUpLnBpcGUoc2tpcEluaXRpYWxNYXliZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8Uz4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0b3JlU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHN0b3JlJCA9IHRoaXMuX3N0b3JlLnBpcGUoZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGV4aXN0cyQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5leGlzdHMkKSk7XG4gIHJlYWRvbmx5IGRvY3VtZW50JCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmRvY3VtZW50JCkpO1xuICByZWFkb25seSBkb2N1bWVudExvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5kb2N1bWVudExvYWRpbmdTdGF0ZSQpKTtcblxuICByZWFkb25seSBpZCQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5pZCQpKTtcbiAgcmVhZG9ubHkga2V5JCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmtleSQpKTtcbiAgcmVhZG9ubHkgdHdvV2F5RmxhdEtleSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC50d29XYXlGbGF0S2V5JCkpO1xuICByZWFkb25seSByZWYkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgucmVmJCkpO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90JCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnNuYXBzaG90JCkpO1xuICByZWFkb25seSBzbmFwc2hvdExvYWRpbmdTdGF0ZSQgPSB0aGlzLnN0b3JlJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdExvYWRpbmdTdGF0ZSQpKTtcblxuICByZWFkb25seSBtb2RlbElkZW50aXR5JCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Lm1vZGVsSWRlbnRpdHkkKSk7XG4gIHJlYWRvbmx5IGRhdGEkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZGF0YSQpKTtcbiAgcmVhZG9ubHkgbG9hZGluZ1N0YXRlJCA9IHRoaXMuc3RvcmUkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmRhdGFMb2FkaW5nU3RhdGUkKSk7XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFMpIHtcbiAgICB0aGlzLnJlcGxhY2VTdG9yZShzdG9yZSk7XG5cbiAgICAvLyBzeW5jIGlucHV0cyB0byBzdG9yZSBhbnkgdGltZSB0aGUgc3RvcmUgY2hhbmdlc1xuICAgIHRoaXMuX3N0b3JlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX3N0b3JlLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgaWYgKHgpIHtcbiAgICAgICAgeC5zZXRJZCh0aGlzLl9kb2N1bWVudElkJCk7XG4gICAgICAgIHguc2V0S2V5KHRoaXMuX2tleSQpO1xuICAgICAgICB4LnNldEZsYXRLZXkodGhpcy5fZmxhdEtleSQpO1xuICAgICAgICB4LnNldFJlZih0aGlzLl9yZWYkKTtcbiAgICAgICAgeC5zZXRTdHJlYW1Nb2RlKHRoaXMuX3N0cmVhbU1vZGUkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N0b3JlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fc3RvcmVTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgZ2V0IHN0b3JlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdG9yZS52YWx1ZSBhcyBTO1xuICB9XG5cbiAgLy8gTUFSSzogU2V0dGVyc1xuICBzZXREb2N1bWVudElkKGRvY3VtZW50SWQ6IE1heWJlPEZpcmVzdG9yZU1vZGVsSWQ+KSB7XG4gICAgdGhpcy5kb2N1bWVudElkLnNldChkb2N1bWVudElkKTtcbiAgfVxuXG4gIHNldEtleShrZXk6IE1heWJlPEZpcmVzdG9yZU1vZGVsS2V5Pikge1xuICAgIHRoaXMua2V5LnNldChrZXkpO1xuICB9XG5cbiAgc2V0RmxhdEtleShmbGF0S2V5OiBNYXliZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+KSB7XG4gICAgdGhpcy5mbGF0S2V5LnNldChmbGF0S2V5KTtcbiAgfVxuXG4gIHNldFJlZihyZWY6IE1heWJlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pikge1xuICAgIHRoaXMucmVmLnNldChyZWYpO1xuICB9XG5cbiAgc2V0U3RyZWFtTW9kZShzdHJlYW1Nb2RlOiBGaXJlc3RvcmVBY2Nlc3NvclN0cmVhbU1vZGUpIHtcbiAgICB0aGlzLnN0cmVhbU1vZGUuc2V0KHN0cmVhbU1vZGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIHRoZSBpbnRlcm5hbCBzdG9yZS5cbiAgICovXG4gIHJlcGxhY2VTdG9yZShzdG9yZTogUykge1xuICAgIHRoaXMuX3N0b3JlLm5leHQoc3RvcmUpO1xuICB9XG5cbiAgLy8gTUFSSzogRGJ4Um91dGVNb2RlbElkRGlyZWN0aXZlRGVsZWdhdGVcbiAgdXNlUm91dGVNb2RlbElkUGFyYW1zT2JzZXJ2YWJsZShpZEZyb21QYXJhbXM6IE9ic2VydmFibGU8TWF5YmU8TW9kZWxLZXk+Pik6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIGlkRnJvbVBhcmFtcy5zdWJzY3JpYmUoKHgpID0+IHRoaXMuc2V0RG9jdW1lbnRJZCh4KSk7XG4gIH1cblxuICAvLyBNQVJLOiBEYnhSb3V0ZU1vZGVsS2V5RGlyZWN0aXZlRGVsZWdhdGVcbiAgdXNlUm91dGVNb2RlbEtleVBhcmFtc09ic2VydmFibGUoa2V5RnJvbVBhcmFtczogT2JzZXJ2YWJsZTxNYXliZTxUd29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXk+Pik6IFN1YnNjcmlwdGlvbiB7XG4gICAgLy8gd2UgYXNzdW1lIHRoYXQgdGhlIGlucHV0IG1vZGVsIGtleSBpcyBhIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSwgc2luY2UgdGhlIFR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSBpcyBzYWZlIHRvIGVuY29kZSBpbiB0aGUgdXJsXG4gICAgcmV0dXJuIGtleUZyb21QYXJhbXMuc3Vic2NyaWJlKCh4KSA9PiB0aGlzLnNldEZsYXRLZXkoeCkpO1xuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8vIFRoZSB1c2Ugb2YgYW55IGhlcmUgZG9lcyBub3QgZGVncmFkZSB0aGUgdHlwZS1zYWZldHk7IHdlIHdhbnQgdG8gc2ltcGx5IG1hdGNoIHRoYXQgdGhlIFN0b3JlIHR5cGUgUyBpcyB1c2VkIGluIHRoZSBEaXJlY3RpdmUgdHlwZSBDIHRvIHByb3ZpZGUgaXQuXG5cbi8qKlxuICogQ29uZmlndXJlcyBwcm92aWRlcnMgZm9yIGEgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLlxuICpcbiAqIENhbiBvcHRpb25hbGx5IGFsc28gcHJvdmlkZSB0aGUgYWN0dWFsIHN0b3JlIHR5cGUgdG8gaW5jbHVkZSBpbiB0aGUgcHJvdmlkZXJzIGFycmF5IHNvIGl0IGlzIGluc3RhbnRpYXRlZCBieSBBbmd1bGFyLlxuICpcbiAqIEBwYXJhbSBzb3VyY2VUeXBlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueT4+KHNvdXJjZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZTxhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIFM+ID0gRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlOiBUeXBlPFM+KTogUHJvdmlkZXJbXTtcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPFMgZXh0ZW5kcyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmU8YW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBTPiA9IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgUz4+KHNvdXJjZVR5cGU6IFR5cGU8Qz4sIHN0b3JlVHlwZT86IFR5cGU8Uz4pOiBQcm92aWRlcltdIHtcbiAgY29uc3QgcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IHNvdXJjZVR5cGUpXG4gICAgfSxcbiAgICAuLi5wcm92aWRlRGJ4Um91dGVNb2RlbElkRGlyZWN0aXZlRGVsZWdhdGUoc291cmNlVHlwZSksXG4gICAgLi4ucHJvdmlkZURieFJvdXRlTW9kZWxLZXlEaXJlY3RpdmVEZWxlZ2F0ZShzb3VyY2VUeXBlKVxuICBdO1xuXG4gIGlmIChzdG9yZVR5cGUgIT0gbnVsbCkge1xuICAgIHByb3ZpZGVycy5wdXNoKHN0b3JlVHlwZSk7XG4gIH1cblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuIl19
|
|
@@ -1,22 +1,36 @@
|
|
|
1
|
-
import { Directive, forwardRef,
|
|
1
|
+
import { Directive, forwardRef, model } from '@angular/core';
|
|
2
2
|
import { DbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionStoreDirective } from './store.collection.directive';
|
|
3
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { skipInitialMaybe, SubscriptionObject } from '@dereekb/rxjs';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
/**
|
|
5
7
|
* Abstract directive that contains a DbxFirebaseCollectionWithParentStore and provides an interface for communicating with other directives.
|
|
6
8
|
*/
|
|
7
9
|
export class DbxFirebaseCollectionWithParentStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
10
|
+
sourceMode = model(undefined);
|
|
11
|
+
_sourceMode$ = toObservable(this.sourceMode).pipe(skipInitialMaybe());
|
|
12
|
+
_parentSourceModeSub = new SubscriptionObject();
|
|
13
|
+
constructor(store) {
|
|
14
|
+
super(store);
|
|
15
|
+
// sync inputs to store any time the store changes
|
|
16
|
+
this._parentSourceModeSub.subscription = this.store$.subscribe((x) => {
|
|
17
|
+
x.setSourceMode(this._sourceMode$);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
super.ngOnDestroy();
|
|
22
|
+
this._parentSourceModeSub.destroy();
|
|
23
|
+
}
|
|
8
24
|
// MARK: Inputs
|
|
9
|
-
|
|
10
|
-
this.
|
|
25
|
+
setSourceMode(sourceMode) {
|
|
26
|
+
this.sourceMode.set(sourceMode);
|
|
11
27
|
}
|
|
12
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps:
|
|
13
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseCollectionWithParentStoreDirective, inputs: { sourceMode: { classPropertyName: "sourceMode", publicName: "sourceMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sourceMode: "sourceModeChange" }, usesInheritance: true, ngImport: i0 });
|
|
14
30
|
}
|
|
15
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseCollectionWithParentStoreDirective, decorators: [{
|
|
16
32
|
type: Directive
|
|
17
|
-
}],
|
|
18
|
-
type: Input
|
|
19
|
-
}] } });
|
|
33
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
20
34
|
export function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType, storeType) {
|
|
21
35
|
const providers = [
|
|
22
36
|
...provideDbxFirebaseCollectionStoreDirective(sourceType, storeType),
|
|
@@ -27,4 +41,4 @@ export function provideDbxFirebaseCollectionWithParentStoreDirective(sourceType,
|
|
|
27
41
|
];
|
|
28
42
|
return providers;
|
|
29
43
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc3ViY29sbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL3N0b3JlL3N0b3JlLnN1YmNvbGxlY3Rpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFHeEYsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckU7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLDZDQUF5UixTQUFRLG1DQUE0QztJQUN4VixVQUFVLEdBQUcsS0FBSyxDQUF1RCxTQUFTLENBQUMsQ0FBQztJQUU1RSxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLG9CQUFvQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUVqRSxZQUFZLEtBQVE7UUFDbEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWIsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuRSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWU7SUFDZixhQUFhLENBQUMsVUFBZ0U7UUFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0F4Qm1CLDZDQUE2Qzs0RkFBN0MsNkNBQTZDOzs0RkFBN0MsNkNBQTZDO2tCQURsRSxTQUFTOztBQXdDVixNQUFNLFVBQVUsb0RBQW9ELENBQTROLFVBQW1CLEVBQUUsU0FBbUI7SUFDdFUsTUFBTSxTQUFTLEdBQWU7UUFDNUIsR0FBRywwQ0FBMEMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO1FBQ3BFO1lBQ0UsT0FBTyxFQUFFLDZDQUE2QztZQUN0RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUMxQztLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBtb2RlbCwgUHJvdmlkZXIsIFR5cGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZURpcmVjdGl2ZSwgcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlIH0gZnJvbSAnLi9zdG9yZS5jb2xsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmUsIERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZSB9IGZyb20gJy4vc3RvcmUuc3ViY29sbGVjdGlvbic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBza2lwSW5pdGlhbE1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBBYnN0cmFjdCBkaXJlY3RpdmUgdGhhdCBjb250YWlucyBhIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZSBhbmQgcHJvdmlkZXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggb3RoZXIgZGlyZWN0aXZlcy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPFQsIFBULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgUEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxQVD4gPSBGaXJlc3RvcmVEb2N1bWVudDxQVD4sIFMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmU8VCwgUFQsIEQsIFBEPiA9IERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxULCBQVCwgRCwgUEQ+PiBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlRGlyZWN0aXZlPFQsIEQsIFM+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc291cmNlTW9kZSA9IG1vZGVsPE1heWJlPERieEZpcmViYXNlQ29tcG9uZW50U3RvcmVXaXRoUGFyZW50U291cmNlTW9kZT4+KHVuZGVmaW5lZCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc291cmNlTW9kZSQgPSB0b09ic2VydmFibGUodGhpcy5zb3VyY2VNb2RlKS5waXBlKHNraXBJbml0aWFsTWF5YmUoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50U291cmNlTW9kZVN1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogUykge1xuICAgIHN1cGVyKHN0b3JlKTtcblxuICAgIC8vIHN5bmMgaW5wdXRzIHRvIHN0b3JlIGFueSB0aW1lIHRoZSBzdG9yZSBjaGFuZ2VzXG4gICAgdGhpcy5fcGFyZW50U291cmNlTW9kZVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnN0b3JlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIHguc2V0U291cmNlTW9kZSh0aGlzLl9zb3VyY2VNb2RlJCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3BhcmVudFNvdXJjZU1vZGVTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gTUFSSzogSW5wdXRzXG4gIHNldFNvdXJjZU1vZGUoc291cmNlTW9kZTogTWF5YmU8RGJ4RmlyZWJhc2VDb21wb25lbnRTdG9yZVdpdGhQYXJlbnRTb3VyY2VNb2RlPikge1xuICAgIHRoaXMuc291cmNlTW9kZS5zZXQoc291cmNlTW9kZSk7XG4gIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLy8gVGhlIHVzZSBvZiBhbnkgaGVyZSBkb2VzIG5vdCBkZWdyYWRlIHRoZSB0eXBlLXNhZmV0eTsgd2Ugd2FudCB0byBzaW1wbHkgbWF0Y2ggdGhhdCB0aGUgU3RvcmUgdHlwZSBTIGlzIHVzZWQgaW4gdGhlIERpcmVjdGl2ZSB0eXBlIEMgdG8gcHJvdmlkZSBpdC5cblxuLyoqXG4gKiBDb25maWd1cmVzIHByb3ZpZGVycyBmb3IgYSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmUuXG4gKlxuICogQ2FuIG9wdGlvbmFsbHkgYWxzbyBwcm92aWRlIHRoZSBhY3R1YWwgc3RvcmUgdHlwZSB0byBpbmNsdWRlIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgc28gaXQgaXMgaW5zdGFudGlhdGVkIGJ5IEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIHNvdXJjZVR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIGFueT4+KHNvdXJjZVR5cGU6IFR5cGU8Uz4pOiBQcm92aWRlcltdO1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8UyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZTxhbnksIGFueSwgYW55LCBhbnk+LCBDIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlRGlyZWN0aXZlPGFueSwgYW55LCBhbnksIGFueSwgUz4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPj4oc291cmNlVHlwZTogVHlwZTxDPiwgc3RvcmVUeXBlPzogVHlwZTxTPik6IFByb3ZpZGVyW107XG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxTIGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uV2l0aFBhcmVudFN0b3JlPGFueSwgYW55LCBhbnksIGFueT4sIEMgZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmU8YW55LCBhbnksIGFueSwgYW55LCBTPiA9IERieEZpcmViYXNlQ29sbGVjdGlvbldpdGhQYXJlbnRTdG9yZURpcmVjdGl2ZTxhbnksIGFueSwgYW55LCBhbnksIFM+Pihzb3VyY2VUeXBlOiBUeXBlPEM+LCBzdG9yZVR5cGU/OiBUeXBlPFM+KTogUHJvdmlkZXJbXSB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtcbiAgICAuLi5wcm92aWRlRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVEaXJlY3RpdmUoc291cmNlVHlwZSwgc3RvcmVUeXBlKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25XaXRoUGFyZW50U3RvcmVEaXJlY3RpdmUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBzb3VyY2VUeXBlKVxuICAgIH1cbiAgXTtcblxuICByZXR1cm4gcHJvdmlkZXJzO1xufVxuIl19
|