@dereekb/dbx-firebase 10.1.30 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/analytics/analytics.user.events.mjs +10 -15
- package/esm2022/lib/analytics/analytics.user.source.mjs +20 -23
- package/esm2022/lib/auth/appcheck/appcheck.interceptor.mjs +13 -17
- package/esm2022/lib/auth/firebase.auth.module.mjs +4 -4
- package/esm2022/lib/auth/login/firebase.login.module.mjs +14 -11
- package/esm2022/lib/auth/login/login.anonymous.component.mjs +4 -7
- package/esm2022/lib/auth/login/login.apple.component.mjs +4 -7
- package/esm2022/lib/auth/login/login.button.component.mjs +23 -28
- package/esm2022/lib/auth/login/login.component.mjs +8 -7
- package/esm2022/lib/auth/login/login.context.back.component.mjs +8 -10
- package/esm2022/lib/auth/login/login.context.directive.mjs +4 -4
- package/esm2022/lib/auth/login/login.email.component.mjs +4 -7
- package/esm2022/lib/auth/login/login.email.content.component.mjs +53 -57
- package/esm2022/lib/auth/login/login.email.form.component.mjs +9 -12
- package/esm2022/lib/auth/login/login.email.recovery.form.component.mjs +5 -8
- package/esm2022/lib/auth/login/login.facebook.component.mjs +4 -7
- package/esm2022/lib/auth/login/login.github.component.mjs +4 -7
- package/esm2022/lib/auth/login/login.google.component.mjs +4 -7
- package/esm2022/lib/auth/login/login.list.component.mjs +31 -34
- package/esm2022/lib/auth/login/login.microsoft.component.mjs +4 -7
- package/esm2022/lib/auth/login/login.service.mjs +11 -15
- package/esm2022/lib/auth/login/login.terms.component.mjs +11 -14
- package/esm2022/lib/auth/login/login.terms.simple.component.mjs +16 -19
- package/esm2022/lib/auth/login/login.twitter.component.mjs +4 -7
- package/esm2022/lib/auth/login/register.component.mjs +7 -4
- package/esm2022/lib/auth/login/register.email.component.mjs +4 -7
- package/esm2022/lib/auth/service/firebase.auth.service.mjs +52 -52
- package/esm2022/lib/development/development.module.mjs +10 -11
- package/esm2022/lib/development/development.popup.component.mjs +13 -15
- package/esm2022/lib/development/development.popup.content.component.mjs +41 -46
- package/esm2022/lib/development/development.popup.content.form.component.mjs +17 -20
- package/esm2022/lib/development/development.popup.directive.mjs +9 -13
- package/esm2022/lib/development/development.scheduler.list.component.mjs +22 -32
- package/esm2022/lib/development/development.scheduler.service.mjs +26 -36
- package/esm2022/lib/development/development.scheduler.widget.component.mjs +10 -13
- package/esm2022/lib/development/development.service.mjs +4 -3
- package/esm2022/lib/development/development.widget.service.mjs +8 -9
- package/esm2022/lib/firebase/emulators.mjs +12 -1
- package/esm2022/lib/firebase/firebase.emulator.module.mjs +4 -4
- package/esm2022/lib/firebase/firebase.emulator.service.mjs +6 -9
- package/esm2022/lib/firebase/firebase.module.mjs +25 -25
- package/esm2022/lib/firestore/firebase.firestore.context.service.mjs +6 -11
- package/esm2022/lib/firestore/firebase.firestore.module.mjs +4 -4
- package/esm2022/lib/function/firebase.function.module.mjs +4 -4
- package/esm2022/lib/model/loader/collection.change.trigger.mjs +5 -3
- package/esm2022/lib/model/loader/collection.change.watcher.mjs +30 -32
- package/esm2022/lib/model/loader/collection.loader.instance.mjs +48 -43
- package/esm2022/lib/model/loader/document.loader.instance.mjs +22 -20
- package/esm2022/lib/model/model.module.mjs +4 -4
- package/esm2022/lib/model/modules/model/model.history.component.mjs +14 -16
- package/esm2022/lib/model/modules/model/model.history.module.mjs +4 -4
- package/esm2022/lib/model/modules/model/model.history.popover.button.component.mjs +10 -11
- package/esm2022/lib/model/modules/model/model.history.popover.component.mjs +5 -8
- package/esm2022/lib/model/modules/model/model.tracker.service.mjs +11 -15
- package/esm2022/lib/model/modules/model/model.types.list.component.mjs +12 -15
- package/esm2022/lib/model/modules/model/model.types.module.mjs +4 -4
- package/esm2022/lib/model/modules/model/model.types.service.mjs +48 -40
- package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +10 -15
- package/esm2022/lib/model/modules/store/model.store.module.mjs +4 -4
- package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +14 -20
- package/esm2022/lib/model/modules/store/store.collection.change.if.directive.mjs +23 -27
- package/esm2022/lib/model/modules/store/store.collection.directive.mjs +5 -4
- package/esm2022/lib/model/modules/store/store.collection.list.directive.mjs +8 -12
- package/esm2022/lib/model/modules/store/store.collection.mjs +39 -42
- package/esm2022/lib/model/modules/store/store.document.auth.directive.mjs +7 -14
- package/esm2022/lib/model/modules/store/store.document.directive.mjs +15 -14
- package/esm2022/lib/model/modules/store/store.document.mjs +125 -128
- package/esm2022/lib/model/modules/store/store.document.router.directive.mjs +12 -19
- package/esm2022/lib/model/modules/store/store.document.router.key.directive.mjs +13 -20
- package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.subcollection.document.mjs +76 -82
- package/esm2022/lib/model/modules/store/store.subcollection.mjs +51 -51
- package/esm2022/lib/model/service/model.context.instance.mjs +11 -10
- package/esm2022/lib/model/system/systemstate.collection.store.directive.mjs +3 -3
- package/esm2022/lib/model/system/systemstate.collection.store.mjs +4 -3
- package/esm2022/lib/model/system/systemstate.document.store.accessor.mjs +18 -9
- package/esm2022/lib/model/system/systemstate.document.store.directive.mjs +3 -3
- package/esm2022/lib/model/system/systemstate.document.store.mjs +4 -3
- package/esm2022/lib/module.mjs +4 -4
- package/esm2022/lib/pipe/key.pipe.mjs +5 -5
- package/esm2022/lib/pipe/pipe.module.mjs +4 -4
- package/esm2022/lib/router/id.param.redirect.mjs +58 -62
- package/esm2022/lib/storage/firebase.storage.module.mjs +4 -4
- package/esm2022/lib/storage/firebase.storage.service.mjs +6 -11
- package/fesm2022/dereekb-dbx-firebase.mjs +1189 -1289
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/analytics/analytics.user.events.d.ts +0 -1
- package/lib/analytics/analytics.user.source.d.ts +0 -1
- package/lib/auth/appcheck/appcheck.interceptor.d.ts +1 -5
- package/lib/auth/login/firebase.login.module.d.ts +2 -1
- package/lib/auth/login/login.button.component.d.ts +0 -1
- package/lib/auth/login/login.email.content.component.d.ts +0 -1
- package/lib/auth/login/login.list.component.d.ts +0 -1
- package/lib/auth/login/login.service.d.ts +2 -2
- package/lib/auth/login/login.terms.component.d.ts +0 -1
- package/lib/auth/login/login.terms.simple.component.d.ts +0 -1
- package/lib/auth/service/firebase.auth.service.d.ts +2 -2
- package/lib/development/development.module.d.ts +1 -1
- package/lib/development/development.popup.component.d.ts +1 -2
- package/lib/development/development.popup.content.component.d.ts +0 -1
- package/lib/development/development.popup.directive.d.ts +0 -1
- package/lib/development/development.scheduler.list.component.d.ts +1 -2
- package/lib/development/development.scheduler.service.d.ts +1 -3
- package/lib/development/development.scheduler.widget.component.d.ts +0 -1
- package/lib/development/development.widget.service.d.ts +2 -2
- package/lib/firebase/firebase.emulator.service.d.ts +0 -1
- package/lib/firestore/firebase.firestore.context.service.d.ts +1 -2
- package/lib/model/loader/collection.change.trigger.d.ts +1 -1
- package/lib/model/loader/collection.change.watcher.d.ts +8 -18
- package/lib/model/modules/model/model.history.component.d.ts +0 -1
- package/lib/model/modules/model/model.history.popover.button.component.d.ts +2 -3
- package/lib/model/modules/model/model.history.popover.component.d.ts +1 -2
- package/lib/model/modules/model/model.tracker.service.d.ts +0 -1
- package/lib/model/modules/model/model.types.service.d.ts +8 -10
- package/lib/model/modules/model/model.types.view.directive.d.ts +1 -2
- package/lib/model/modules/store/store.collection.change.directive.d.ts +2 -4
- package/lib/model/modules/store/store.collection.change.if.directive.d.ts +2 -3
- package/lib/model/modules/store/store.collection.list.directive.d.ts +4 -4
- package/lib/model/modules/store/store.document.auth.directive.d.ts +2 -3
- package/lib/model/modules/store/store.document.router.directive.d.ts +3 -4
- package/lib/model/modules/store/store.document.router.key.directive.d.ts +4 -5
- package/lib/model/system/systemstate.document.store.accessor.d.ts +5 -2
- package/lib/router/id.param.redirect.d.ts +3 -13
- package/lib/storage/firebase.storage.service.d.ts +1 -2
- package/package.json +1 -1
|
@@ -6,50 +6,55 @@ import { countAllInNestedArray } from '@dereekb/util';
|
|
|
6
6
|
* DbxFirebaseModelLoader implementation within an instance.
|
|
7
7
|
*/
|
|
8
8
|
export class DbxFirebaseCollectionLoaderInstance {
|
|
9
|
+
_initConfig;
|
|
10
|
+
_collection = new BehaviorSubject(undefined);
|
|
11
|
+
_maxPages = new BehaviorSubject(undefined);
|
|
12
|
+
_itemsPerPage = new BehaviorSubject(undefined);
|
|
13
|
+
_constraints = new BehaviorSubject(undefined);
|
|
14
|
+
_restart = new Subject();
|
|
15
|
+
_maxPagesSub = new SubscriptionObject();
|
|
16
|
+
collection$ = this._collection.pipe(distinctUntilChanged());
|
|
17
|
+
constraints$ = this._constraints.pipe(distinctUntilChanged());
|
|
18
|
+
iteratorFilter$ = combineLatest([this._itemsPerPage.pipe(distinctUntilChanged()), this.constraints$]).pipe(map(([limit, constraints]) => ({ limit, constraints, maxPageLoadLimit: this.maxPages })), shareReplay(1));
|
|
19
|
+
firestoreIteration$ = this.collection$.pipe(switchMap((collection) => {
|
|
20
|
+
if (collection) {
|
|
21
|
+
return combineLatest([this.iteratorFilter$, this._restart.pipe(startWith(undefined))]).pipe(throttleTime(100, undefined, { trailing: true }), // prevent rapid changes and executing filters too quickly.
|
|
22
|
+
map(([iteratorFilter]) => collection.firestoreIteration(iteratorFilter)), cleanupDestroyable(), // cleanup the iteration
|
|
23
|
+
shareReplay(1));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return NEVER; // don't emit anything until collection is provided.
|
|
27
|
+
}
|
|
28
|
+
}), cleanupDestroyable(), // cleanup the iteration
|
|
29
|
+
shareReplay(1));
|
|
30
|
+
queryChangeWatcher$ = this.firestoreIteration$.pipe(map((instance) => iterationQueryDocChangeWatcher({ instance })), shareReplay(1));
|
|
31
|
+
snapshotAccumulator$ = this.firestoreIteration$.pipe(map((x) => firebaseQuerySnapshotAccumulator(x)), cleanupDestroyable(), shareReplay(1));
|
|
32
|
+
snapshotAccumulatorDocumentRefs$ = this.snapshotAccumulator$.pipe(switchMap((x) => x.allItems$.pipe(map((y) => y.map((z) => z.map((zz) => zz.ref))))), shareReplay(1));
|
|
33
|
+
snapshotAccumulatorDocuments$ = combineLatest([this.collection$.pipe(filterMaybe()), this.snapshotAccumulatorDocumentRefs$]).pipe(map(([collection, documentRefs]) => {
|
|
34
|
+
const accessor = collection.documentAccessor();
|
|
35
|
+
return documentRefs.map((y) => y.map((z) => accessor.loadDocument(z)));
|
|
36
|
+
}), shareReplay(1));
|
|
37
|
+
accumulator$ = this.firestoreIteration$.pipe(map((x) => firebaseQueryItemAccumulator(x)), cleanupDestroyable(), shareReplay(1));
|
|
38
|
+
accumulatorPage$ = this.accumulator$.pipe(switchMap((x) => pageItemAccumulatorCurrentPage(x)), shareReplay(1));
|
|
39
|
+
/**
|
|
40
|
+
* Passthrough for currentAllItems$ from the accumulator.
|
|
41
|
+
*/
|
|
42
|
+
currentAccumulatorItems$ = this.accumulator$.pipe(switchMap((x) => x.currentAllItems$), shareReplay(1));
|
|
43
|
+
/**
|
|
44
|
+
* Passthrough for allItems$ from the accumulator.
|
|
45
|
+
*/
|
|
46
|
+
accumulatorItems$ = this.accumulator$.pipe(switchMap((x) => x.allItems$), shareReplay(1));
|
|
47
|
+
hasDocuments$ = this.firestoreIteration$.pipe(switchMap((x) => x.firstState$.pipe(map((x) => Boolean(x.value?.length)))), shareReplay(1));
|
|
48
|
+
allDocumentRefs$ = this.snapshotAccumulatorDocumentRefs$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
49
|
+
allDocuments$ = this.snapshotAccumulatorDocuments$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
50
|
+
allDocumentData$ = this.accumulatorItems$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
51
|
+
pageLoadingState$ = this.accumulator$.pipe(switchMap((x) => accumulatorFlattenPageListLoadingState(x)), shareReplay(1));
|
|
9
52
|
constructor(_initConfig) {
|
|
10
53
|
this._initConfig = _initConfig;
|
|
11
|
-
this._collection
|
|
12
|
-
this._maxPages
|
|
13
|
-
this._itemsPerPage
|
|
14
|
-
this._constraints
|
|
15
|
-
this._restart = new Subject();
|
|
16
|
-
this._maxPagesSub = new SubscriptionObject();
|
|
17
|
-
this.collection$ = this._collection.pipe(distinctUntilChanged());
|
|
18
|
-
this.constraints$ = this._constraints.pipe(distinctUntilChanged());
|
|
19
|
-
this.iteratorFilter$ = combineLatest([this._itemsPerPage.pipe(distinctUntilChanged()), this.constraints$]).pipe(map(([limit, constraints]) => ({ limit, constraints, maxPageLoadLimit: this.maxPages })), shareReplay(1));
|
|
20
|
-
this.firestoreIteration$ = this.collection$.pipe(switchMap((collection) => {
|
|
21
|
-
if (collection) {
|
|
22
|
-
return combineLatest([this.iteratorFilter$, this._restart.pipe(startWith(undefined))]).pipe(throttleTime(100, undefined, { trailing: true }), // prevent rapid changes and executing filters too quickly.
|
|
23
|
-
map(([iteratorFilter]) => collection.firestoreIteration(iteratorFilter)), cleanupDestroyable(), // cleanup the iteration
|
|
24
|
-
shareReplay(1));
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
return NEVER; // don't emit anything until collection is provided.
|
|
28
|
-
}
|
|
29
|
-
}), cleanupDestroyable(), // cleanup the iteration
|
|
30
|
-
shareReplay(1));
|
|
31
|
-
this.queryChangeWatcher$ = this.firestoreIteration$.pipe(map((instance) => iterationQueryDocChangeWatcher({ instance })), shareReplay(1));
|
|
32
|
-
this.snapshotAccumulator$ = this.firestoreIteration$.pipe(map((x) => firebaseQuerySnapshotAccumulator(x)), cleanupDestroyable(), shareReplay(1));
|
|
33
|
-
this.snapshotAccumulatorDocumentRefs$ = this.snapshotAccumulator$.pipe(switchMap((x) => x.allItems$.pipe(map((y) => y.map((z) => z.map((zz) => zz.ref))))), shareReplay(1));
|
|
34
|
-
this.snapshotAccumulatorDocuments$ = combineLatest([this.collection$.pipe(filterMaybe()), this.snapshotAccumulatorDocumentRefs$]).pipe(map(([collection, documentRefs]) => {
|
|
35
|
-
const accessor = collection.documentAccessor();
|
|
36
|
-
return documentRefs.map((y) => y.map((z) => accessor.loadDocument(z)));
|
|
37
|
-
}), shareReplay(1));
|
|
38
|
-
this.accumulator$ = this.firestoreIteration$.pipe(map((x) => firebaseQueryItemAccumulator(x)), cleanupDestroyable(), shareReplay(1));
|
|
39
|
-
this.accumulatorPage$ = this.accumulator$.pipe(switchMap((x) => pageItemAccumulatorCurrentPage(x)), shareReplay(1));
|
|
40
|
-
/**
|
|
41
|
-
* Passthrough for currentAllItems$ from the accumulator.
|
|
42
|
-
*/
|
|
43
|
-
this.currentAccumulatorItems$ = this.accumulator$.pipe(switchMap((x) => x.currentAllItems$), shareReplay(1));
|
|
44
|
-
/**
|
|
45
|
-
* Passthrough for allItems$ from the accumulator.
|
|
46
|
-
*/
|
|
47
|
-
this.accumulatorItems$ = this.accumulator$.pipe(switchMap((x) => x.allItems$), shareReplay(1));
|
|
48
|
-
this.hasDocuments$ = this.firestoreIteration$.pipe(switchMap((x) => x.firstState$.pipe(map((x) => Boolean(x.value?.length)))), shareReplay(1));
|
|
49
|
-
this.allDocumentRefs$ = this.snapshotAccumulatorDocumentRefs$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
50
|
-
this.allDocuments$ = this.snapshotAccumulatorDocuments$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
51
|
-
this.allDocumentData$ = this.accumulatorItems$.pipe(map((x) => x.flat()), shareReplay(1));
|
|
52
|
-
this.pageLoadingState$ = this.accumulator$.pipe(switchMap((x) => accumulatorFlattenPageListLoadingState(x)), shareReplay(1));
|
|
54
|
+
this._collection.next(this._initConfig?.collection);
|
|
55
|
+
this._maxPages.next(this._initConfig?.maxPages);
|
|
56
|
+
this._itemsPerPage.next(this._initConfig?.itemsPerPage);
|
|
57
|
+
this._constraints.next(this._initConfig?.constraints);
|
|
53
58
|
}
|
|
54
59
|
init() {
|
|
55
60
|
// When max pages changes, update the iteration's max page limit.
|
|
@@ -131,4 +136,4 @@ export function dbxFirebaseCollectionLoaderInstance(config) {
|
|
|
131
136
|
export function dbxFirebaseCollectionLoaderInstanceWithCollection(collection) {
|
|
132
137
|
return new DbxFirebaseCollectionLoaderInstance({ collection });
|
|
133
138
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLHNDQUFzQyxFQUFvRCx3Q0FBd0MsRUFBRSx5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSw4QkFBOEIsRUFBa0QsTUFBTSxlQUFlLENBQUM7QUFDMVksT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuSyxPQUFPLEVBQTZFLDRCQUE0QixFQUFtRyxnQ0FBZ0MsRUFBNkssOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxZCxPQUFPLEVBQTRFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWWhJOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1DQUFtQztJQStHOUMsWUFBNkIsV0FBaUU7UUFBakUsZ0JBQVcsR0FBWCxXQUFXLENBQXNEO1FBOUczRSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUF1QyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXRHLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRSxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ25GLGlCQUFZLEdBQUcsSUFB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Q0FBQyxJQUFJLENBQzNCLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ3hCLHdDQUF3QyxDQUFDO1lBQ3ZDLFdBQVc7WUFDWCxlQUFlO1lBQ2Ysb0JBQW9CLEVBQUUsb0JBQW9CLElBQUksU0FBUztTQUN4RCxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMscUNBQXFDLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5SCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsbUNBQW1DLENBQTJELE1BQTJEO0lBQ3ZLLE9BQU8sSUFBSSxtQ0FBbUMsQ0FBTyxNQUFNLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlEQUFpRCxDQUEyRCxVQUFnRDtJQUMxSyxPQUFPLElBQUksbUNBQW1DLENBQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlTGlzdExvYWRpbmdTdGF0ZSwgY2xlYW51cERlc3Ryb3lhYmxlLCBmaWx0ZXJNYXliZSwgdXNlRmlyc3QsIFN1YnNjcmlwdGlvbk9iamVjdCwgYWNjdW11bGF0b3JGbGF0dGVuUGFnZUxpc3RMb2FkaW5nU3RhdGUsIEl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRGdW5jdGlvbiwgaXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudCwgaXRlcmF0b3JOZXh0UGFnZVVudGlsUGFnZSwgaXRlcmF0b3JOZXh0UGFnZVVudGlsTWF4UGFnZUxvYWRMaW1pdCwgcGFnZUl0ZW1BY2N1bXVsYXRvckN1cnJlbnRQYWdlLCBJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50UmVzdWx0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJqZWN0LCB0aHJvdHRsZVRpbWUsIHN3aXRjaE1hcCwgT2JzZXJ2YWJsZSwgdGFwLCBzdGFydFdpdGgsIE5FVkVSIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEb2N1bWVudERhdGFXaXRoSWRBbmRLZXksIERvY3VtZW50UmVmZXJlbmNlLCBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yLCBmaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yLCBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uLCBGaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvciwgZmlyZWJhc2VRdWVyeVNuYXBzaG90QWNjdW11bGF0b3IsIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZSwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRvckZpbHRlciwgRmlyZXN0b3JlUXVlcnlDb25zdHJhaW50LCBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIsIGl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlciB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgRGVzdHJveWFibGUsIEdldHRlck9yVmFsdWUsIEluaXRpYWxpemVkLCBNYXliZSwgUGFnZU51bWJlciwgY291bnRBbGxJbk5lc3RlZEFycmF5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvciwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyV2l0aEFjY3VtdWxhdG9yIH0gZnJvbSAnLi9jb2xsZWN0aW9uLmxvYWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiB7XG4gIGNvbGxlY3Rpb24/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj47XG4gIG1heFBhZ2VzPzogTWF5YmU8bnVtYmVyPjtcbiAgaXRlbXNQZXJQYWdlPzogTWF5YmU8bnVtYmVyPjtcbiAgY29uc3RyYWludHM/OiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj47XG59XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlRGF0YTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcjxUPjtcblxuLyoqXG4gKiBEYnhGaXJlYmFzZU1vZGVsTG9hZGVyIGltcGxlbWVudGF0aW9uIHdpdGhpbiBhbiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJXaXRoQWNjdW11bGF0b3I8VD4sIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlRGF0YTxULCBEPiwgSW5pdGlhbGl6ZWQsIERlc3Ryb3lhYmxlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb2xsZWN0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+KHRoaXMuX2luaXRDb25maWc/LmNvbGxlY3Rpb24pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfbWF4UGFnZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPG51bWJlcj4+KHRoaXMuX2luaXRDb25maWc/Lm1heFBhZ2VzKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pdGVtc1BlclBhZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPG51bWJlcj4+KHRoaXMuX2luaXRDb25maWc/Lml0ZW1zUGVyUGFnZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfY29uc3RyYWludHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pj4odGhpcy5faW5pdENvbmZpZz8uY29uc3RyYWludHMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3Jlc3RhcnQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21heFBhZ2VzU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGNvbGxlY3Rpb24kID0gdGhpcy5fY29sbGVjdGlvbi5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBjb25zdHJhaW50cyQgPSB0aGlzLl9jb25zdHJhaW50cy5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gIHJlYWRvbmx5IGl0ZXJhdG9yRmlsdGVyJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdG9yRmlsdGVyPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2l0ZW1zUGVyUGFnZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCB0aGlzLmNvbnN0cmFpbnRzJF0pLnBpcGUoXG4gICAgbWFwKChbbGltaXQsIGNvbnN0cmFpbnRzXSkgPT4gKHsgbGltaXQsIGNvbnN0cmFpbnRzLCBtYXhQYWdlTG9hZExpbWl0OiB0aGlzLm1heFBhZ2VzIH0gYXMgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRvckZpbHRlcikpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PiA9IHRoaXMuY29sbGVjdGlvbiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgIGlmIChjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLml0ZXJhdG9yRmlsdGVyJCwgdGhpcy5fcmVzdGFydC5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKV0pLnBpcGUoXG4gICAgICAgICAgdGhyb3R0bGVUaW1lKDEwMCwgdW5kZWZpbmVkLCB7IHRyYWlsaW5nOiB0cnVlIH0pLCAvLyBwcmV2ZW50IHJhcGlkIGNoYW5nZXMgYW5kIGV4ZWN1dGluZyBmaWx0ZXJzIHRvbyBxdWlja2x5LlxuICAgICAgICAgIG1hcCgoW2l0ZXJhdG9yRmlsdGVyXSkgPT4gY29sbGVjdGlvbi5maXJlc3RvcmVJdGVyYXRpb24oaXRlcmF0b3JGaWx0ZXIpKSxcbiAgICAgICAgICBjbGVhbnVwRGVzdHJveWFibGUoKSwgLy8gY2xlYW51cCB0aGUgaXRlcmF0aW9uXG4gICAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBORVZFUjsgLy8gZG9uJ3QgZW1pdCBhbnl0aGluZyB1bnRpbCBjb2xsZWN0aW9uIGlzIHByb3ZpZGVkLlxuICAgICAgfVxuICAgIH0pLFxuICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLCAvLyBjbGVhbnVwIHRoZSBpdGVyYXRpb25cbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHF1ZXJ5Q2hhbmdlV2F0Y2hlciQ6IE9ic2VydmFibGU8SXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyPFQ+PiA9IHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgIG1hcCgoaW5zdGFuY2UpID0+IGl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlcih7IGluc3RhbmNlIH0pKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90QWNjdW11bGF0b3IkOiBPYnNlcnZhYmxlPEZpcmViYXNlUXVlcnlTbmFwc2hvdEFjY3VtdWxhdG9yPFQ+PiA9IHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gZmlyZWJhc2VRdWVyeVNuYXBzaG90QWNjdW11bGF0b3I8VD4oeCkpLFxuICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RBY2N1bXVsYXRvckRvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXVtdPiA9IHRoaXMuc25hcHNob3RBY2N1bXVsYXRvciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguYWxsSXRlbXMkLnBpcGUobWFwKCh5KSA9PiB5Lm1hcCgoeikgPT4gei5tYXAoKHp6KSA9PiB6ei5yZWYpKSkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudHMkOiBPYnNlcnZhYmxlPERbXVtdPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY29sbGVjdGlvbiQucGlwZShmaWx0ZXJNYXliZSgpKSwgdGhpcy5zbmFwc2hvdEFjY3VtdWxhdG9yRG9jdW1lbnRSZWZzJF0pLnBpcGUoXG4gICAgbWFwKChbY29sbGVjdGlvbiwgZG9jdW1lbnRSZWZzXSkgPT4ge1xuICAgICAgY29uc3QgYWNjZXNzb3IgPSBjb2xsZWN0aW9uLmRvY3VtZW50QWNjZXNzb3IoKTtcbiAgICAgIHJldHVybiBkb2N1bWVudFJlZnMubWFwKCh5KSA9PiB5Lm1hcCgoeikgPT4gYWNjZXNzb3IubG9hZERvY3VtZW50KHopKSk7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPj4gPSB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICBtYXAoKHgpID0+IGZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3I8VD4oeCkpLFxuICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWNjdW11bGF0b3JQYWdlJDogT2JzZXJ2YWJsZTxQYWdlTnVtYmVyPiA9IHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiBwYWdlSXRlbUFjY3VtdWxhdG9yQ3VycmVudFBhZ2UoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFBhc3N0aHJvdWdoIGZvciBjdXJyZW50QWxsSXRlbXMkIGZyb20gdGhlIGFjY3VtdWxhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VycmVudEFjY3VtdWxhdG9ySXRlbXMkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdW10+ID0gdGhpcy5hY2N1bXVsYXRvciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguY3VycmVudEFsbEl0ZW1zJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogUGFzc3Rocm91Z2ggZm9yIGFsbEl0ZW1zJCBmcm9tIHRoZSBhY2N1bXVsYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9ySXRlbXMkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdW10+ID0gdGhpcy5hY2N1bXVsYXRvciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguYWxsSXRlbXMkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGhhc0RvY3VtZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguZmlyc3RTdGF0ZSQucGlwZShtYXAoKHgpID0+IEJvb2xlYW4oeC52YWx1ZT8ubGVuZ3RoKSkpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbERvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT4gPSB0aGlzLnNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudFJlZnMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZsYXQoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxEb2N1bWVudHMkOiBPYnNlcnZhYmxlPERbXT4gPSB0aGlzLnNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudHMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZsYXQoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxEb2N1bWVudERhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPiA9IHRoaXMuYWNjdW11bGF0b3JJdGVtcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmxhdCgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5hY2N1bXVsYXRvciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IGFjY3VtdWxhdG9yRmxhdHRlblBhZ2VMaXN0TG9hZGluZ1N0YXRlKHgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2luaXRDb25maWc/OiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRD4pIHt9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXaGVuIG1heCBwYWdlcyBjaGFuZ2VzLCB1cGRhdGUgdGhlIGl0ZXJhdGlvbidzIG1heCBwYWdlIGxpbWl0LlxuICAgIHRoaXMuX21heFBhZ2VzU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuX21heFBhZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgZmlsdGVyTWF5YmUoKSwgLy8gZG8gbm90IHBhc3MgbnVsbC91bmRlZmluZWQgdmFsdWVzXG4gICAgICAgIHN3aXRjaE1hcCgobWF4UGFnZUxvYWRMaW1pdCkgPT5cbiAgICAgICAgICB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICAgICAgICAgIHRhcCgoaXRlcmF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIGl0ZXJhdGlvbi5tYXhQYWdlTG9hZExpbWl0ID0gbWF4UGFnZUxvYWRMaW1pdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21heFBhZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29sbGVjdGlvbi5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvbnN0cmFpbnRzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5faXRlbXNQZXJQYWdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcmVzdGFydC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX21heFBhZ2VzU3ViLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8vIE1BUks6IElucHV0c1xuICBnZXQgbWF4UGFnZXMoKTogTWF5YmU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX21heFBhZ2VzLnZhbHVlO1xuICB9XG5cbiAgc2V0IG1heFBhZ2VzKG1heFBhZ2VzOiBNYXliZTxudW1iZXI+KSB7XG4gICAgaWYgKHRoaXMubWF4UGFnZXMgIT0gbWF4UGFnZXMpIHtcbiAgICAgIHRoaXMuX21heFBhZ2VzLm5leHQobWF4UGFnZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpdGVtc1BlclBhZ2UoKTogTWF5YmU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZS52YWx1ZTtcbiAgfVxuXG4gIHNldCBpdGVtc1BlclBhZ2UoaXRlbXNQZXJQYWdlOiBNYXliZTxudW1iZXI+KSB7XG4gICAgaWYgKHRoaXMuaXRlbXNQZXJQYWdlICE9IGl0ZW1zUGVyUGFnZSkge1xuICAgICAgdGhpcy5faXRlbXNQZXJQYWdlLm5leHQoaXRlbXNQZXJQYWdlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29uc3RyYWludHMoKTogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uc3RyYWludHMudmFsdWU7XG4gIH1cblxuICBzZXQgY29uc3RyYWludHMoY29uc3RyYWludHM6IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pikge1xuICAgIHRoaXMuX2NvbnN0cmFpbnRzLm5leHQoY29uc3RyYWludHMpO1xuICB9XG5cbiAgZ2V0IGNvbGxlY3Rpb24oKTogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+IHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbi52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb2xsZWN0aW9uKGNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pikge1xuICAgIHRoaXMuX2NvbGxlY3Rpb24ubmV4dChjb2xsZWN0aW9uKTtcbiAgfVxuXG4gIC8vIE1BUks6IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlclxuICBuZXh0KCkge1xuICAgIHVzZUZpcnN0KHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJCwgKHgpID0+IHgubmV4dCgpKTtcbiAgfVxuXG4gIHJlc3RhcnQoKSB7XG4gICAgdGhpcy5fcmVzdGFydC5uZXh0KCk7XG4gIH1cblxuICBzZXRDb25zdHJhaW50cyhjb25zdHJhaW50czogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+KSB7XG4gICAgdGhpcy5jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzO1xuICB9XG5cbiAgc2V0Q29sbGVjdGlvbihmaXJlc3RvcmVDb2xsZWN0aW9uOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4pIHtcbiAgICB0aGlzLmNvbGxlY3Rpb24gPSBmaXJlc3RvcmVDb2xsZWN0aW9uO1xuICB9XG5cbiAgbG9hZFBhZ2VzVW50aWxSZXN1bHRzQ291bnQobWF4UmVzdWx0c0xpbWl0OiBHZXR0ZXJPclZhbHVlPG51bWJlcj4sIGNvdW50UmVzdWx0c0Z1bmN0aW9uPzogRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRGdW5jdGlvbjxUPiB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudFJlc3VsdD4ge1xuICAgIGNvbnN0IGRlZmF1bHRGbjogSXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPiA9IGNvdW50QWxsSW5OZXN0ZWRBcnJheTtcbiAgICByZXR1cm4gdGhpcy5hY2N1bXVsYXRvciQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoYWNjdW11bGF0b3IpID0+XG4gICAgICAgIGl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnQoe1xuICAgICAgICAgIGFjY3VtdWxhdG9yLFxuICAgICAgICAgIG1heFJlc3VsdHNMaW1pdCxcbiAgICAgICAgICBjb3VudFJlc3VsdHNGdW5jdGlvbjogY291bnRSZXN1bHRzRnVuY3Rpb24gPz8gZGVmYXVsdEZuXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGxvYWRUb1BhZ2UocGFnZTogUGFnZU51bWJlcik6IE9ic2VydmFibGU8UGFnZU51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKHN3aXRjaE1hcCgoYWNjdW11bGF0b3IpID0+IGl0ZXJhdG9yTmV4dFBhZ2VVbnRpbFBhZ2UoYWNjdW11bGF0b3IuaXRlbUl0ZXJhdGlvbiwgcGFnZSkpKTtcbiAgfVxuXG4gIGxvYWRBbGxSZXN1bHRzKCk6IE9ic2VydmFibGU8UGFnZU51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKHN3aXRjaE1hcCgoYWNjdW11bGF0b3IpID0+IGl0ZXJhdG9yTmV4dFBhZ2VVbnRpbE1heFBhZ2VMb2FkTGltaXQoYWNjdW11bGF0b3IuaXRlbUl0ZXJhdGlvbikpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+KGNvbmZpZzogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQ+KTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRD4ge1xuICByZXR1cm4gbmV3IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+KGNvbmZpZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZVdpdGhDb2xsZWN0aW9uPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+Pihjb2xsZWN0aW9uOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4pOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPiB7XG4gIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRD4oeyBjb2xsZWN0aW9uIH0pO1xufVxuIl19
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLHNDQUFzQyxFQUFvRCx3Q0FBd0MsRUFBRSx5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSw4QkFBOEIsRUFBa0QsTUFBTSxlQUFlLENBQUM7QUFDMVksT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuSyxPQUFPLEVBQTZFLDRCQUE0QixFQUFtRyxnQ0FBZ0MsRUFBNkssOEJBQThCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxZCxPQUFPLEVBQTRFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWWhJOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1DQUFtQztJQStHakI7SUE5R1YsV0FBVyxHQUFHLElBQUksZUFBZSxDQUF1QyxTQUFTLENBQUMsQ0FBQztJQUVuRixTQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO0lBQzFELGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUM7SUFDOUQsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFnRCxTQUFTLENBQUMsQ0FBQztJQUM3RixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVqQyxZQUFZLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lB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YW51cERlc3Ryb3lhYmxlLCBmaWx0ZXJNYXliZSwgdXNlRmlyc3QsIFN1YnNjcmlwdGlvbk9iamVjdCwgYWNjdW11bGF0b3JGbGF0dGVuUGFnZUxpc3RMb2FkaW5nU3RhdGUsIEl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRGdW5jdGlvbiwgaXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudCwgaXRlcmF0b3JOZXh0UGFnZVVudGlsUGFnZSwgaXRlcmF0b3JOZXh0UGFnZVVudGlsTWF4UGFnZUxvYWRMaW1pdCwgcGFnZUl0ZW1BY2N1bXVsYXRvckN1cnJlbnRQYWdlLCBJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50UmVzdWx0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJqZWN0LCB0aHJvdHRsZVRpbWUsIHN3aXRjaE1hcCwgT2JzZXJ2YWJsZSwgdGFwLCBzdGFydFdpdGgsIE5FVkVSIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEb2N1bWVudERhdGFXaXRoSWRBbmRLZXksIERvY3VtZW50UmVmZXJlbmNlLCBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yLCBmaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yLCBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uLCBGaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvciwgZmlyZWJhc2VRdWVyeVNuYXBzaG90QWNjdW11bGF0b3IsIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZSwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRvckZpbHRlciwgRmlyZXN0b3JlUXVlcnlDb25zdHJhaW50LCBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIsIGl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlciB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgRGVzdHJveWFibGUsIEdldHRlck9yVmFsdWUsIEluaXRpYWxpemVkLCBNYXliZSwgUGFnZU51bWJlciwgY291bnRBbGxJbk5lc3RlZEFycmF5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvciwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyV2l0aEFjY3VtdWxhdG9yIH0gZnJvbSAnLi9jb2xsZWN0aW9uLmxvYWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiB7XG4gIGNvbGxlY3Rpb24/OiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj47XG4gIG1heFBhZ2VzPzogTWF5YmU8bnVtYmVyPjtcbiAgaXRlbXNQZXJQYWdlPzogTWF5YmU8bnVtYmVyPjtcbiAgY29uc3RyYWludHM/OiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj47XG59XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlRGF0YTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gPSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcjxUPjtcblxuLyoqXG4gKiBEYnhGaXJlYmFzZU1vZGVsTG9hZGVyIGltcGxlbWVudGF0aW9uIHdpdGhpbiBhbiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJXaXRoQWNjdW11bGF0b3I8VD4sIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlRGF0YTxULCBEPiwgSW5pdGlhbGl6ZWQsIERlc3Ryb3lhYmxlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb2xsZWN0aW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4+KHVuZGVmaW5lZCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tYXhQYWdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8bnVtYmVyPj4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pdGVtc1BlclBhZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPG51bWJlcj4+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfY29uc3RyYWludHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pj4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yZXN0YXJ0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXhQYWdlc1N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBjb2xsZWN0aW9uJCA9IHRoaXMuX2NvbGxlY3Rpb24ucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgY29uc3RyYWludHMkID0gdGhpcy5fY29uc3RyYWludHMucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSBpdGVyYXRvckZpbHRlciQ6IE9ic2VydmFibGU8RmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRvckZpbHRlcj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9pdGVtc1BlclBhZ2UucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSwgdGhpcy5jb25zdHJhaW50cyRdKS5waXBlKFxuICAgIG1hcCgoW2xpbWl0LCBjb25zdHJhaW50c10pID0+ICh7IGxpbWl0LCBjb25zdHJhaW50cywgbWF4UGFnZUxvYWRMaW1pdDogdGhpcy5tYXhQYWdlcyB9IGFzIEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0b3JGaWx0ZXIpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZpcmVzdG9yZUl0ZXJhdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZTxUPj4gPSB0aGlzLmNvbGxlY3Rpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICBpZiAoY29sbGVjdGlvbikge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5pdGVyYXRvckZpbHRlciQsIHRoaXMuX3Jlc3RhcnQucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSldKS5waXBlKFxuICAgICAgICAgIHRocm90dGxlVGltZSgxMDAsIHVuZGVmaW5lZCwgeyB0cmFpbGluZzogdHJ1ZSB9KSwgLy8gcHJldmVudCByYXBpZCBjaGFuZ2VzIGFuZCBleGVjdXRpbmcgZmlsdGVycyB0b28gcXVpY2tseS5cbiAgICAgICAgICBtYXAoKFtpdGVyYXRvckZpbHRlcl0pID0+IGNvbGxlY3Rpb24uZmlyZXN0b3JlSXRlcmF0aW9uKGl0ZXJhdG9yRmlsdGVyKSksXG4gICAgICAgICAgY2xlYW51cERlc3Ryb3lhYmxlKCksIC8vIGNsZWFudXAgdGhlIGl0ZXJhdGlvblxuICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gTkVWRVI7IC8vIGRvbid0IGVtaXQgYW55dGhpbmcgdW50aWwgY29sbGVjdGlvbiBpcyBwcm92aWRlZC5cbiAgICAgIH1cbiAgICB9KSxcbiAgICBjbGVhbnVwRGVzdHJveWFibGUoKSwgLy8gY2xlYW51cCB0aGUgaXRlcmF0aW9uXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBxdWVyeUNoYW5nZVdhdGNoZXIkOiBPYnNlcnZhYmxlPEl0ZXJhdGlvblF1ZXJ5RG9jQ2hhbmdlV2F0Y2hlcjxUPj4gPSB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICBtYXAoKGluc3RhbmNlKSA9PiBpdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIoeyBpbnN0YW5jZSB9KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdEFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvcjxUPj4gPSB0aGlzLmZpcmVzdG9yZUl0ZXJhdGlvbiQucGlwZShcbiAgICBtYXAoKHgpID0+IGZpcmViYXNlUXVlcnlTbmFwc2hvdEFjY3VtdWxhdG9yPFQ+KHgpKSxcbiAgICBjbGVhbnVwRGVzdHJveWFibGUoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudFJlZnMkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+W11bXT4gPSB0aGlzLnNuYXBzaG90QWNjdW11bGF0b3IkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmFsbEl0ZW1zJC5waXBlKG1hcCgoeSkgPT4geS5tYXAoKHopID0+IHoubWFwKCh6eikgPT4genoucmVmKSkpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdEFjY3VtdWxhdG9yRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxEW11bXT4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNvbGxlY3Rpb24kLnBpcGUoZmlsdGVyTWF5YmUoKSksIHRoaXMuc25hcHNob3RBY2N1bXVsYXRvckRvY3VtZW50UmVmcyRdKS5waXBlKFxuICAgIG1hcCgoW2NvbGxlY3Rpb24sIGRvY3VtZW50UmVmc10pID0+IHtcbiAgICAgIGNvbnN0IGFjY2Vzc29yID0gY29sbGVjdGlvbi5kb2N1bWVudEFjY2Vzc29yKCk7XG4gICAgICByZXR1cm4gZG9jdW1lbnRSZWZzLm1hcCgoeSkgPT4geS5tYXAoKHopID0+IGFjY2Vzc29yLmxvYWREb2N1bWVudCh6KSkpO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWNjdW11bGF0b3IkOiBPYnNlcnZhYmxlPEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3I8VD4+ID0gdGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBmaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yPFQ+KHgpKSxcbiAgICBjbGVhbnVwRGVzdHJveWFibGUoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9yUGFnZSQ6IE9ic2VydmFibGU8UGFnZU51bWJlcj4gPSB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4gcGFnZUl0ZW1BY2N1bXVsYXRvckN1cnJlbnRQYWdlKHgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBQYXNzdGhyb3VnaCBmb3IgY3VycmVudEFsbEl0ZW1zJCBmcm9tIHRoZSBhY2N1bXVsYXRvci5cbiAgICovXG4gIHJlYWRvbmx5IGN1cnJlbnRBY2N1bXVsYXRvckl0ZW1zJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXVtdPiA9IHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmN1cnJlbnRBbGxJdGVtcyQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFBhc3N0aHJvdWdoIGZvciBhbGxJdGVtcyQgZnJvbSB0aGUgYWNjdW11bGF0b3IuXG4gICAqL1xuICByZWFkb25seSBhY2N1bXVsYXRvckl0ZW1zJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXVtdPiA9IHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmFsbEl0ZW1zJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNEb2N1bWVudHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmZpcnN0U3RhdGUkLnBpcGUobWFwKCh4KSA9PiBCb29sZWFuKHgudmFsdWU/Lmxlbmd0aCkpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxEb2N1bWVudFJlZnMkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+W10+ID0gdGhpcy5zbmFwc2hvdEFjY3VtdWxhdG9yRG9jdW1lbnRSZWZzJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5mbGF0KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxEW10+ID0gdGhpcy5zbmFwc2hvdEFjY3VtdWxhdG9yRG9jdW1lbnRzJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5mbGF0KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnREYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT4gPSB0aGlzLmFjY3VtdWxhdG9ySXRlbXMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmZsYXQoKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBwYWdlTG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxQYWdlTGlzdExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PiA9IHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiBhY2N1bXVsYXRvckZsYXR0ZW5QYWdlTGlzdExvYWRpbmdTdGF0ZSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9pbml0Q29uZmlnPzogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQ+KSB7XG4gICAgdGhpcy5fY29sbGVjdGlvbi5uZXh0KHRoaXMuX2luaXRDb25maWc/LmNvbGxlY3Rpb24pO1xuICAgIHRoaXMuX21heFBhZ2VzLm5leHQodGhpcy5faW5pdENvbmZpZz8ubWF4UGFnZXMpO1xuICAgIHRoaXMuX2l0ZW1zUGVyUGFnZS5uZXh0KHRoaXMuX2luaXRDb25maWc/Lml0ZW1zUGVyUGFnZSk7XG4gICAgdGhpcy5fY29uc3RyYWludHMubmV4dCh0aGlzLl9pbml0Q29uZmlnPy5jb25zdHJhaW50cyk7XG4gIH1cblxuICBpbml0KCk6IHZvaWQge1xuICAgIC8vIFdoZW4gbWF4IHBhZ2VzIGNoYW5nZXMsIHVwZGF0ZSB0aGUgaXRlcmF0aW9uJ3MgbWF4IHBhZ2UgbGltaXQuXG4gICAgdGhpcy5fbWF4UGFnZXNTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5fbWF4UGFnZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXJNYXliZSgpLCAvLyBkbyBub3QgcGFzcyBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgICAgICAgc3dpdGNoTWFwKChtYXhQYWdlTG9hZExpbWl0KSA9PlxuICAgICAgICAgIHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgICAgICAgICAgdGFwKChpdGVyYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgaXRlcmF0aW9uLm1heFBhZ2VMb2FkTGltaXQgPSBtYXhQYWdlTG9hZExpbWl0O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWF4UGFnZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb2xsZWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29uc3RyYWludHMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLl9yZXN0YXJ0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbWF4UGFnZXNTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gTUFSSzogSW5wdXRzXG4gIGdldCBtYXhQYWdlcygpOiBNYXliZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fbWF4UGFnZXMudmFsdWU7XG4gIH1cblxuICBzZXQgbWF4UGFnZXMobWF4UGFnZXM6IE1heWJlPG51bWJlcj4pIHtcbiAgICBpZiAodGhpcy5tYXhQYWdlcyAhPSBtYXhQYWdlcykge1xuICAgICAgdGhpcy5fbWF4UGFnZXMubmV4dChtYXhQYWdlcyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSgpOiBNYXliZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNQZXJQYWdlLnZhbHVlO1xuICB9XG5cbiAgc2V0IGl0ZW1zUGVyUGFnZShpdGVtc1BlclBhZ2U6IE1heWJlPG51bWJlcj4pIHtcbiAgICBpZiAodGhpcy5pdGVtc1BlclBhZ2UgIT0gaXRlbXNQZXJQYWdlKSB7XG4gICAgICB0aGlzLl9pdGVtc1BlclBhZ2UubmV4dChpdGVtc1BlclBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb25zdHJhaW50cygpOiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4ge1xuICAgIHJldHVybiB0aGlzLl9jb25zdHJhaW50cy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb25zdHJhaW50cyhjb25zdHJhaW50czogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+KSB7XG4gICAgdGhpcy5fY29uc3RyYWludHMubmV4dChjb25zdHJhaW50cyk7XG4gIH1cblxuICBnZXQgY29sbGVjdGlvbigpOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4ge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+KSB7XG4gICAgdGhpcy5fY29sbGVjdGlvbi5uZXh0KGNvbGxlY3Rpb24pO1xuICB9XG5cbiAgLy8gTUFSSzogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyXG4gIG5leHQoKSB7XG4gICAgdXNlRmlyc3QodGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLCAoeCkgPT4geC5uZXh0KCkpO1xuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLl9yZXN0YXJ0Lm5leHQoKTtcbiAgfVxuXG4gIHNldENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzOiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4pIHtcbiAgICB0aGlzLmNvbnN0cmFpbnRzID0gY29uc3RyYWludHM7XG4gIH1cblxuICBzZXRDb2xsZWN0aW9uKGZpcmVzdG9yZUNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pikge1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IGZpcmVzdG9yZUNvbGxlY3Rpb247XG4gIH1cblxuICBsb2FkUGFnZXNVbnRpbFJlc3VsdHNDb3VudChtYXhSZXN1bHRzTGltaXQ6IEdldHRlck9yVmFsdWU8bnVtYmVyPiwgY291bnRSZXN1bHRzRnVuY3Rpb24/OiBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uPFQ+IHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50UmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdEZuOiBJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50RnVuY3Rpb248RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gY291bnRBbGxJbk5lc3RlZEFycmF5O1xuICAgIHJldHVybiB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChhY2N1bXVsYXRvcikgPT5cbiAgICAgICAgaXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudCh7XG4gICAgICAgICAgYWNjdW11bGF0b3IsXG4gICAgICAgICAgbWF4UmVzdWx0c0xpbWl0LFxuICAgICAgICAgIGNvdW50UmVzdWx0c0Z1bmN0aW9uOiBjb3VudFJlc3VsdHNGdW5jdGlvbiA/PyBkZWZhdWx0Rm5cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgbG9hZFRvUGFnZShwYWdlOiBQYWdlTnVtYmVyKTogT2JzZXJ2YWJsZTxQYWdlTnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoc3dpdGNoTWFwKChhY2N1bXVsYXRvcikgPT4gaXRlcmF0b3JOZXh0UGFnZVVudGlsUGFnZShhY2N1bXVsYXRvci5pdGVtSXRlcmF0aW9uLCBwYWdlKSkpO1xuICB9XG5cbiAgbG9hZEFsbFJlc3VsdHMoKTogT2JzZXJ2YWJsZTxQYWdlTnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjdW11bGF0b3IkLnBpcGUoc3dpdGNoTWFwKChhY2N1bXVsYXRvcikgPT4gaXRlcmF0b3JOZXh0UGFnZVVudGlsTWF4UGFnZUxvYWRMaW1pdChhY2N1bXVsYXRvci5pdGVtSXRlcmF0aW9uKSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4oY29uZmlnOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRD4pOiBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPiB7XG4gIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRD4oY29uZmlnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlV2l0aENvbGxlY3Rpb248VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+KGNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pik6IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+IHtcbiAgcmV0dXJuIG5ldyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPih7IGNvbGxlY3Rpb24gfSk7XG59XG4iXX0=
|
|
@@ -6,28 +6,30 @@ import { asArray } from '@dereekb/util';
|
|
|
6
6
|
* DbxLimitedFirebaseDocumentLoader implementation within an instance.
|
|
7
7
|
*/
|
|
8
8
|
export class DbxLimitedFirebaseDocumentLoaderInstance {
|
|
9
|
+
_initConfig;
|
|
10
|
+
accessor;
|
|
11
|
+
_documents = new BehaviorSubject(undefined);
|
|
12
|
+
_restart = new Subject();
|
|
13
|
+
_sub = new SubscriptionObject();
|
|
14
|
+
documents$ = this._documents.pipe(filterMaybe(), distinctUntilChanged());
|
|
15
|
+
keys$ = this.documents$.pipe(map(firestoreModelKeysFromDocuments));
|
|
16
|
+
ids$ = this.documents$.pipe(map(firestoreModelIdsFromDocuments));
|
|
17
|
+
refs$ = this.documents$.pipe(map(documentReferencesFromDocuments));
|
|
18
|
+
snapshots$ = this.documents$.pipe(switchMap((docs) => this._restart.pipe(startWith(null), exhaustMap(() => getDocumentSnapshots(docs)))), shareReplay(1));
|
|
19
|
+
data$ = this.snapshots$.pipe(map((snapshots) => getDataFromDocumentSnapshots(snapshots, true)), shareReplay(1));
|
|
20
|
+
/**
|
|
21
|
+
* Snapshot stream of the documents
|
|
22
|
+
*/
|
|
23
|
+
snapshotsStream$ = this.documents$.pipe(switchMap((docs) => latestSnapshotsFromDocuments(docs)), shareReplay(1));
|
|
24
|
+
/**
|
|
25
|
+
* Data streamd of the documents.
|
|
26
|
+
*/
|
|
27
|
+
dataStream$ = this.snapshotsStream$.pipe(dataFromDocumentSnapshots(), shareReplay(1));
|
|
28
|
+
pageLoadingState$ = pageLoadingStateFromObs(this.data$, false);
|
|
29
|
+
pageLoadingStateStream$ = pageLoadingStateFromObs(this.dataStream$, false);
|
|
9
30
|
constructor(_initConfig) {
|
|
10
31
|
this._initConfig = _initConfig;
|
|
11
32
|
this.accessor = this._initConfig.accessor;
|
|
12
|
-
this._documents = new BehaviorSubject(undefined);
|
|
13
|
-
this._restart = new Subject();
|
|
14
|
-
this._sub = new SubscriptionObject();
|
|
15
|
-
this.documents$ = this._documents.pipe(filterMaybe(), distinctUntilChanged());
|
|
16
|
-
this.keys$ = this.documents$.pipe(map(firestoreModelKeysFromDocuments));
|
|
17
|
-
this.ids$ = this.documents$.pipe(map(firestoreModelIdsFromDocuments));
|
|
18
|
-
this.refs$ = this.documents$.pipe(map(documentReferencesFromDocuments));
|
|
19
|
-
this.snapshots$ = this.documents$.pipe(switchMap((docs) => this._restart.pipe(startWith(null), exhaustMap(() => getDocumentSnapshots(docs)))), shareReplay(1));
|
|
20
|
-
this.data$ = this.snapshots$.pipe(map((snapshots) => getDataFromDocumentSnapshots(snapshots, true)), shareReplay(1));
|
|
21
|
-
/**
|
|
22
|
-
* Snapshot stream of the documents
|
|
23
|
-
*/
|
|
24
|
-
this.snapshotsStream$ = this.documents$.pipe(switchMap((docs) => latestSnapshotsFromDocuments(docs)), shareReplay(1));
|
|
25
|
-
/**
|
|
26
|
-
* Data streamd of the documents.
|
|
27
|
-
*/
|
|
28
|
-
this.dataStream$ = this.snapshotsStream$.pipe(dataFromDocumentSnapshots(), shareReplay(1));
|
|
29
|
-
this.pageLoadingState$ = pageLoadingStateFromObs(this.data$, false);
|
|
30
|
-
this.pageLoadingStateStream$ = pageLoadingStateFromObs(this.dataStream$, false);
|
|
31
33
|
}
|
|
32
34
|
destroy() {
|
|
33
35
|
this._documents.complete();
|
|
@@ -65,4 +67,4 @@ export function dbxFirebaseDocumentLoaderInstance(config) {
|
|
|
65
67
|
export function dbxFirebaseDocumentLoaderInstanceWithAccessor(accessor) {
|
|
66
68
|
return new DbxFirebaseDocumentLoaderInstance({ accessor });
|
|
67
69
|
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQubG9hZGVyLmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbG9hZGVyL2RvY3VtZW50LmxvYWRlci5pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGVBQWUsRUFBd0IsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSyxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSx5QkFBeUIsRUFBK0MsK0JBQStCLEVBQWtFLDhCQUE4QixFQUFxQiwrQkFBK0IsRUFBRSw0QkFBNEIsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBb0Msa0NBQWtDLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuZSxPQUFPLEVBQWdCLE9BQU8sRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFPMUU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0NBQXdDO0lBMkNuRCxZQUE2QixXQUFpRTtRQUFqRSxnQkFBVyxHQUFYLFdBQVcsQ0FBc0Q7UUExQ3JGLGFBQVEsR0FBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUU5QixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQWEsU0FBUyxDQUFDLENBQUM7UUFDeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsU0FBSSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUUxQyxlQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVB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SSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLHdDQUF3QyxDQUFzSixNQUE0RDtJQUN4USxPQUFPLElBQUksd0NBQXdDLENBQVUsTUFBTSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVELE1BQU0sVUFBVSxvREFBb0QsQ0FBc0osUUFBVztJQUNuTyxPQUFPLElBQUksd0NBQXdDLENBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCwrQ0FBK0M7QUFDL0MsTUFBTSxPQUFPLGlDQUFtTCxTQUFRLHdDQUFpRDtJQUN2UCxNQUFNLENBQUMsR0FBOEQ7UUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQXdJLE1BQTREO0lBQ25QLE9BQU8sSUFBSSxpQ0FBaUMsQ0FBVSxNQUFNLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsTUFBTSxVQUFVLDZDQUE2QyxDQUF3SSxRQUFXO0lBQzlNLE9BQU8sSUFBSSxpQ0FBaUMsQ0FBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDdEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlLCB1c2VBc09ic2VydmFibGUsIFBhZ2VMaXN0TG9hZGluZ1N0YXRlLCBmaWx0ZXJNYXliZSwgU3Vic2NyaXB0aW9uT2JqZWN0LCBhc09ic2VydmFibGUsIHBhZ2VMb2FkaW5nU3RhdGVGcm9tT2JzIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgc2hhcmVSZXBsYXksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgZXhoYXVzdE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGF0YUZyb21Eb2N1bWVudFNuYXBzaG90cywgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LCBEb2N1bWVudFJlZmVyZW5jZSwgZG9jdW1lbnRSZWZlcmVuY2VzRnJvbURvY3VtZW50cywgRG9jdW1lbnRTbmFwc2hvdCwgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3IsIGZpcmVzdG9yZU1vZGVsSWRzRnJvbURvY3VtZW50cywgRmlyZXN0b3JlTW9kZWxLZXksIGZpcmVzdG9yZU1vZGVsS2V5c0Zyb21Eb2N1bWVudHMsIGdldERhdGFGcm9tRG9jdW1lbnRTbmFwc2hvdHMsIGdldERvY3VtZW50U25hcHNob3RzLCBsYXRlc3RTbmFwc2hvdHNGcm9tRG9jdW1lbnRzLCBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvciwgbG9hZERvY3VtZW50c0ZvckRvY3VtZW50UmVmZXJlbmNlcywgbG9hZERvY3VtZW50c0ZvcklkcywgbG9hZERvY3VtZW50c0ZvcktleXMgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBBcnJheU9yVmFsdWUsIGFzQXJyYXksIERlc3Ryb3lhYmxlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlciwgRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXIgfSBmcm9tICcuL2RvY3VtZW50LmxvYWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlSW5pdENvbmZpZzxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4+IHtcbiAgcmVhZG9ubHkgYWNjZXNzb3I6IEE7XG59XG5cbi8qKlxuICogRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXIgaW1wbGVtZW50YXRpb24gd2l0aGluIGFuIGluc3RhbmNlLlxuICovXG5leHBvcnQgY2xhc3MgRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEEgZXh0ZW5kcyBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPiA9IExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+PiBpbXBsZW1lbnRzIERieExpbWl0ZWRGaXJlYmFzZURvY3VtZW50TG9hZGVyPFQ+LCBEZXN0cm95YWJsZSB7XG4gIHJlYWRvbmx5IGFjY2Vzc29yOiBBID0gdGhpcy5faW5pdENvbmZpZy5hY2Nlc3NvcjtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RvY3VtZW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RFtdPj4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yZXN0YXJ0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcmVhZG9ubHkgZG9jdW1lbnRzJCA9IHRoaXMuX2RvY3VtZW50cy5waXBlKGZpbHRlck1heWJlKCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICByZWFkb25seSBrZXlzJCA9IHRoaXMuZG9jdW1lbnRzJC5waXBlKG1hcChmaXJlc3RvcmVNb2RlbEtleXNGcm9tRG9jdW1lbnRzKSk7XG4gIHJlYWRvbmx5IGlkcyQgPSB0aGlzLmRvY3VtZW50cyQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxJZHNGcm9tRG9jdW1lbnRzKSk7XG4gIHJlYWRvbmx5IHJlZnMkID0gdGhpcy5kb2N1bWVudHMkLnBpcGUobWFwKGRvY3VtZW50UmVmZXJlbmNlc0Zyb21Eb2N1bWVudHMpKTtcblxuICByZWFkb25seSBzbmFwc2hvdHMkOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD5bXT4gPSB0aGlzLmRvY3VtZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGRvY3MpID0+XG4gICAgICB0aGlzLl9yZXN0YXJ0LnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgZXhoYXVzdE1hcCgoKSA9PiBnZXREb2N1bWVudFNuYXBzaG90czxEPihkb2NzKSlcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gdGhpcy5zbmFwc2hvdHMkLnBpcGUoXG4gICAgbWFwKChzbmFwc2hvdHMpID0+IGdldERhdGFGcm9tRG9jdW1lbnRTbmFwc2hvdHMoc25hcHNob3RzLCB0cnVlKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogU25hcHNob3Qgc3RyZWFtIG9mIHRoZSBkb2N1bWVudHNcbiAgICovXG4gIHJlYWRvbmx5IHNuYXBzaG90c1N0cmVhbSQ6IE9ic2VydmFibGU8RG9jdW1lbnRTbmFwc2hvdDxUPltdPiA9IHRoaXMuZG9jdW1lbnRzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoZG9jcykgPT4gbGF0ZXN0U25hcHNob3RzRnJvbURvY3VtZW50cyhkb2NzKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogRGF0YSBzdHJlYW1kIG9mIHRoZSBkb2N1bWVudHMuXG4gICAqL1xuICByZWFkb25seSBkYXRhU3RyZWFtJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT4gPSB0aGlzLnNuYXBzaG90c1N0cmVhbSQucGlwZShkYXRhRnJvbURvY3VtZW50U25hcHNob3RzKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBwYWdlTG9hZGluZ1N0YXRlJDogT2JzZXJ2YWJsZTxQYWdlTGlzdExvYWRpbmdTdGF0ZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD4+PiA9IHBhZ2VMb2FkaW5nU3RhdGVGcm9tT2JzKHRoaXMuZGF0YSQsIGZhbHNlKTtcbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZVN0cmVhbSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSBwYWdlTG9hZGluZ1N0YXRlRnJvbU9icyh0aGlzLmRhdGFTdHJlYW0kLCBmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfaW5pdENvbmZpZzogRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlSW5pdENvbmZpZzxULCBELCBBPikge31cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RvY3VtZW50cy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3Jlc3RhcnQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLl9yZXN0YXJ0Lm5leHQoKTtcbiAgfVxuXG4gIHNldEtleXMoa2V5czogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZU1vZGVsS2V5Pj4+KTogdm9pZCB7XG4gICAgdGhpcy5zZXREb2N1bWVudHMoYXNPYnNlcnZhYmxlKGtleXMpLnBpcGUobWFwKCh4KSA9PiBsb2FkRG9jdW1lbnRzRm9yS2V5cyh0aGlzLmFjY2Vzc29yLCBhc0FycmF5KHgpKSkpKTtcbiAgfVxuXG4gIHNldFJlZnMocmVmczogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPERvY3VtZW50UmVmZXJlbmNlPFQ+Pj4+KTogdm9pZCB7XG4gICAgdGhpcy5zZXREb2N1bWVudHMoYXNPYnNlcnZhYmxlKHJlZnMpLnBpcGUobWFwKCh4KSA9PiBsb2FkRG9jdW1lbnRzRm9yRG9jdW1lbnRSZWZlcmVuY2VzKHRoaXMuYWNjZXNzb3IsIGFzQXJyYXkoeCkpKSkpO1xuICB9XG5cbiAgc2V0RG9jdW1lbnRzKGRvY3M6IE1heWJlPE9ic2VydmFibGVPclZhbHVlPEFycmF5T3JWYWx1ZTxEPj4+KTogdm9pZCB7XG4gICAgdGhpcy5fc3ViLnN1YnNjcmlwdGlvbiA9IHVzZUFzT2JzZXJ2YWJsZShkb2NzLCAoeCkgPT4gdGhpcy5fZG9jdW1lbnRzLm5leHQoYXNBcnJheSh4KSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBBIGV4dGVuZHMgTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4oY29uZmlnOiBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQsIEE+KTogRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPiB7XG4gIHJldHVybiBuZXcgRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPihjb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZVdpdGhBY2Nlc3NvcjxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4+KGFjY2Vzc29yOiBBKTogRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPiB7XG4gIHJldHVybiBuZXcgRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPih7IGFjY2Vzc29yIH0pO1xufVxuXG4vLyBNQVJLOiBGdWxsIERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxUID0gdW5rbm93biwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEEgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4gZXh0ZW5kcyBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlcjxUPiwgRGVzdHJveWFibGUge1xuICBzZXRJZHMoaWRzOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlTW9kZWxLZXk+Pj4pOiB2b2lkIHtcbiAgICB0aGlzLnNldERvY3VtZW50cyhhc09ic2VydmFibGUoaWRzKS5waXBlKG1hcCgoeCkgPT4gbG9hZERvY3VtZW50c0Zvcklkcyh0aGlzLmFjY2Vzc29yLCBhc0FycmF5KHgpKSkpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBBIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPiA9IEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4+KGNvbmZpZzogRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlSW5pdENvbmZpZzxULCBELCBBPik6IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPiB7XG4gIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+KGNvbmZpZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2VXaXRoQWNjZXNzb3I8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEEgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4oYWNjZXNzb3I6IEEpOiBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCwgQT4ge1xuICByZXR1cm4gbmV3IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPih7IGFjY2Vzc29yIH0pO1xufVxuIl19
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQubG9hZGVyLmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbG9hZGVyL2RvY3VtZW50LmxvYWRlci5pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGVBQWUsRUFBd0IsV0FBVyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSyxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSx5QkFBeUIsRUFBK0MsK0JBQStCLEVBQWtFLDhCQUE4QixFQUFxQiwrQkFBK0IsRUFBRSw0QkFBNEIsRUFBRSxvQkFBb0IsRUFBRSw0QkFBNEIsRUFBb0Msa0NBQWtDLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuZSxPQUFPLEVBQWdCLE9BQU8sRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFPMUU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0NBQXdDO0lBMkN0QjtJQTFDcEIsUUFBUSxDQUFJO0lBRUYsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFhLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQy9CLElBQUksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFMUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUN6RSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMs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LENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsd0NBQXdDLENBQXNKLE1BQTREO0lBQ3hRLE9BQU8sSUFBSSx3Q0FBd0MsQ0FBVSxNQUFNLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsTUFBTSxVQUFVLG9EQUFvRCxDQUFzSixRQUFXO0lBQ25PLE9BQU8sSUFBSSx3Q0FBd0MsQ0FBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELCtDQUErQztBQUMvQyxNQUFNLE9BQU8saUNBQW1MLFNBQVEsd0NBQWlEO0lBQ3ZQLE1BQU0sQ0FBQyxHQUE4RDtRQUNuRSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxpQ0FBaUMsQ0FBd0ksTUFBNEQ7SUFDblAsT0FBTyxJQUFJLGlDQUFpQyxDQUFVLE1BQU0sQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsNkNBQTZDLENBQXdJLFFBQVc7SUFDOU0sT0FBTyxJQUFJLGlDQUFpQyxDQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN0RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZU9yVmFsdWUsIHVzZUFzT2JzZXJ2YWJsZSwgUGFnZUxpc3RMb2FkaW5nU3RhdGUsIGZpbHRlck1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QsIGFzT2JzZXJ2YWJsZSwgcGFnZUxvYWRpbmdTdGF0ZUZyb21PYnMgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YmplY3QsIHN3aXRjaE1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBleGhhdXN0TWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkYXRhRnJvbURvY3VtZW50U25hcHNob3RzLCBEb2N1bWVudERhdGFXaXRoSWRBbmRLZXksIERvY3VtZW50UmVmZXJlbmNlLCBkb2N1bWVudFJlZmVyZW5jZXNGcm9tRG9jdW1lbnRzLCBEb2N1bWVudFNuYXBzaG90LCBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvciwgZmlyZXN0b3JlTW9kZWxJZHNGcm9tRG9jdW1lbnRzLCBGaXJlc3RvcmVNb2RlbEtleSwgZmlyZXN0b3JlTW9kZWxLZXlzRnJvbURvY3VtZW50cywgZ2V0RGF0YUZyb21Eb2N1bWVudFNuYXBzaG90cywgZ2V0RG9jdW1lbnRTbmFwc2hvdHMsIGxhdGVzdFNuYXBzaG90c0Zyb21Eb2N1bWVudHMsIExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yLCBsb2FkRG9jdW1lbnRzRm9yRG9jdW1lbnRSZWZlcmVuY2VzLCBsb2FkRG9jdW1lbnRzRm9ySWRzLCBsb2FkRG9jdW1lbnRzRm9yS2V5cyB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgYXNBcnJheSwgRGVzdHJveWFibGUsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVyLCBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlciB9IGZyb20gJy4vZG9jdW1lbnQubG9hZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBBIGV4dGVuZHMgTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4ge1xuICByZWFkb25seSBhY2Nlc3NvcjogQTtcbn1cblxuLyoqXG4gKiBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlciBpbXBsZW1lbnRhdGlvbiB3aXRoaW4gYW4gaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4+IGltcGxlbWVudHMgRGJ4TGltaXRlZEZpcmViYXNlRG9jdW1lbnRMb2FkZXI8VD4sIERlc3Ryb3lhYmxlIHtcbiAgcmVhZG9ubHkgYWNjZXNzb3I6IEE7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kb2N1bWVudHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERbXT4+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVzdGFydCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfc3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IGRvY3VtZW50cyQgPSB0aGlzLl9kb2N1bWVudHMucGlwZShmaWx0ZXJNYXliZSgpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkga2V5cyQgPSB0aGlzLmRvY3VtZW50cyQucGlwZShtYXAoZmlyZXN0b3JlTW9kZWxLZXlzRnJvbURvY3VtZW50cykpO1xuICByZWFkb25seSBpZHMkID0gdGhpcy5kb2N1bWVudHMkLnBpcGUobWFwKGZpcmVzdG9yZU1vZGVsSWRzRnJvbURvY3VtZW50cykpO1xuICByZWFkb25seSByZWZzJCA9IHRoaXMuZG9jdW1lbnRzJC5waXBlKG1hcChkb2N1bWVudFJlZmVyZW5jZXNGcm9tRG9jdW1lbnRzKSk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFNuYXBzaG90PFQ+W10+ID0gdGhpcy5kb2N1bWVudHMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChkb2NzKSA9PlxuICAgICAgdGhpcy5fcmVzdGFydC5waXBlKFxuICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgIGV4aGF1c3RNYXAoKCkgPT4gZ2V0RG9jdW1lbnRTbmFwc2hvdHM8RD4oZG9jcykpXG4gICAgICApXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPiA9IHRoaXMuc25hcHNob3RzJC5waXBlKFxuICAgIG1hcCgoc25hcHNob3RzKSA9PiBnZXREYXRhRnJvbURvY3VtZW50U25hcHNob3RzKHNuYXBzaG90cywgdHJ1ZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIFNuYXBzaG90IHN0cmVhbSBvZiB0aGUgZG9jdW1lbnRzXG4gICAqL1xuICByZWFkb25seSBzbmFwc2hvdHNTdHJlYW0kOiBPYnNlcnZhYmxlPERvY3VtZW50U25hcHNob3Q8VD5bXT4gPSB0aGlzLmRvY3VtZW50cyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGRvY3MpID0+IGxhdGVzdFNuYXBzaG90c0Zyb21Eb2N1bWVudHMoZG9jcykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLyoqXG4gICAqIERhdGEgc3RyZWFtZCBvZiB0aGUgZG9jdW1lbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YVN0cmVhbSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gdGhpcy5zbmFwc2hvdHNTdHJlYW0kLnBpcGUoZGF0YUZyb21Eb2N1bWVudFNuYXBzaG90cygpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSBwYWdlTG9hZGluZ1N0YXRlRnJvbU9icyh0aGlzLmRhdGEkLCBmYWxzZSk7XG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGVTdHJlYW0kOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gcGFnZUxvYWRpbmdTdGF0ZUZyb21PYnModGhpcy5kYXRhU3RyZWFtJCwgZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2luaXRDb25maWc6IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRCwgQT4pIHtcbiAgICB0aGlzLmFjY2Vzc29yID0gdGhpcy5faW5pdENvbmZpZy5hY2Nlc3NvcjtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZG9jdW1lbnRzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcmVzdGFydC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N1Yi5kZXN0cm95KCk7XG4gIH1cblxuICByZXN0YXJ0KCkge1xuICAgIHRoaXMuX3Jlc3RhcnQubmV4dCgpO1xuICB9XG5cbiAgc2V0S2V5cyhrZXlzOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlTW9kZWxLZXk+Pj4pOiB2b2lkIHtcbiAgICB0aGlzLnNldERvY3VtZW50cyhhc09ic2VydmFibGUoa2V5cykucGlwZShtYXAoKHgpID0+IGxvYWREb2N1bWVudHNGb3JLZXlzKHRoaXMuYWNjZXNzb3IsIGFzQXJyYXkoeCkpKSkpO1xuICB9XG5cbiAgc2V0UmVmcyhyZWZzOiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxBcnJheU9yVmFsdWU8RG9jdW1lbnRSZWZlcmVuY2U8VD4+Pj4pOiB2b2lkIHtcbiAgICB0aGlzLnNldERvY3VtZW50cyhhc09ic2VydmFibGUocmVmcykucGlwZShtYXAoKHgpID0+IGxvYWREb2N1bWVudHNGb3JEb2N1bWVudFJlZmVyZW5jZXModGhpcy5hY2Nlc3NvciwgYXNBcnJheSh4KSkpKSk7XG4gIH1cblxuICBzZXREb2N1bWVudHMoZG9jczogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPEQ+Pj4pOiB2b2lkIHtcbiAgICB0aGlzLl9zdWIuc3Vic2NyaXB0aW9uID0gdXNlQXNPYnNlcnZhYmxlKGRvY3MsICh4KSA9PiB0aGlzLl9kb2N1bWVudHMubmV4dChhc0FycmF5KHgpKSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieExpbWl0ZWRGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEEgZXh0ZW5kcyBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPiA9IExpbWl0ZWRGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+Pihjb25maWc6IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRCwgQT4pOiBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+IHtcbiAgcmV0dXJuIG5ldyBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+KGNvbmZpZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlV2l0aEFjY2Vzc29yPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+LCBBIGV4dGVuZHMgTGltaXRlZEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBMaW1pdGVkRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4oYWNjZXNzb3I6IEEpOiBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+IHtcbiAgcmV0dXJuIG5ldyBEYnhMaW1pdGVkRmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+KHsgYWNjZXNzb3IgfSk7XG59XG5cbi8vIE1BUks6IEZ1bGwgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQgPSB1bmtub3duLCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+PiBleHRlbmRzIERieExpbWl0ZWRGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCwgQT4gaW1wbGVtZW50cyBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVyPFQ+LCBEZXN0cm95YWJsZSB7XG4gIHNldElkcyhpZHM6IE1heWJlPE9ic2VydmFibGVPclZhbHVlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVNb2RlbEtleT4+Pik6IHZvaWQge1xuICAgIHRoaXMuc2V0RG9jdW1lbnRzKGFzT2JzZXJ2YWJsZShpZHMpLnBpcGUobWFwKCh4KSA9PiBsb2FkRG9jdW1lbnRzRm9ySWRzKHRoaXMuYWNjZXNzb3IsIGFzQXJyYXkoeCkpKSkpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4sIEEgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+ID0gRmlyZXN0b3JlRG9jdW1lbnRBY2Nlc3NvcjxULCBEPj4oY29uZmlnOiBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2VJbml0Q29uZmlnPFQsIEQsIEE+KTogRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+IHtcbiAgcmV0dXJuIG5ldyBEYnhGaXJlYmFzZURvY3VtZW50TG9hZGVySW5zdGFuY2U8VCwgRCwgQT4oY29uZmlnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZVdpdGhBY2Nlc3NvcjxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQSBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50QWNjZXNzb3I8VCwgRD4gPSBGaXJlc3RvcmVEb2N1bWVudEFjY2Vzc29yPFQsIEQ+PihhY2Nlc3NvcjogQSk6IERieEZpcmViYXNlRG9jdW1lbnRMb2FkZXJJbnN0YW5jZTxULCBELCBBPiB7XG4gIHJldHVybiBuZXcgRGJ4RmlyZWJhc2VEb2N1bWVudExvYWRlckluc3RhbmNlPFQsIEQsIEE+KHsgYWNjZXNzb3IgfSk7XG59XG4iXX0=
|
|
@@ -4,9 +4,9 @@ import { DbxFirebaseModelTypesModule } from './modules/model/model.types.module'
|
|
|
4
4
|
import { DbxFirebaseModelStoreModule } from './modules/store/model.store.module';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class DbxFirebaseModelModule {
|
|
7
|
-
static
|
|
8
|
-
static
|
|
9
|
-
static
|
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelModule, exports: [DbxFirebaseModelStoreModule, DbxFirebaseModelHistoryModule, DbxFirebaseModelTypesModule] });
|
|
9
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelModule, imports: [DbxFirebaseModelStoreModule, DbxFirebaseModelHistoryModule, DbxFirebaseModelTypesModule] });
|
|
10
10
|
}
|
|
11
11
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
@@ -14,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
14
14
|
exports: [DbxFirebaseModelStoreModule, DbxFirebaseModelHistoryModule, DbxFirebaseModelTypesModule]
|
|
15
15
|
}]
|
|
16
16
|
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBS2pGLE1BQU0sT0FBTyxzQkFBc0I7d0dBQXRCLHNCQUFzQjt5R0FBdEIsc0JBQXNCLFlBRnZCLDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLDJCQUEyQjt5R0FFdEYsc0JBQXNCLFlBRnZCLDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLDJCQUEyQjs7NEZBRXRGLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSw2QkFBNkIsRUFBRSwyQkFBMkIsQ0FBQztpQkFDbkciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEhpc3RvcnlNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvbW9kZWwvbW9kZWwuaGlzdG9yeS5tb2R1bGUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLm1vZHVsZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsU3RvcmVNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvc3RvcmUvbW9kZWwuc3RvcmUubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW0RieEZpcmViYXNlTW9kZWxTdG9yZU1vZHVsZSwgRGJ4RmlyZWJhc2VNb2RlbEhpc3RvcnlNb2R1bGUsIERieEZpcmViYXNlTW9kZWxUeXBlc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbE1vZHVsZSB7fVxuIl19
|
|
@@ -1,34 +1,32 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, Input, inject } from '@angular/core';
|
|
2
2
|
import { loadingStateFromObs } from '@dereekb/rxjs';
|
|
3
3
|
import { BehaviorSubject, switchMap, shareReplay } from 'rxjs';
|
|
4
4
|
import { DbxFirebaseModelTrackerService } from './model.tracker.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "
|
|
8
|
-
import * as i3 from "./model.types.list.component";
|
|
6
|
+
import * as i1 from "@dereekb/dbx-web";
|
|
7
|
+
import * as i2 from "./model.types.list.component";
|
|
9
8
|
export class DbxFirebaseModelHistoryComponent {
|
|
9
|
+
dbxFirebaseModelTrackerService = inject(DbxFirebaseModelTrackerService);
|
|
10
|
+
_historyFilter = new BehaviorSubject(undefined);
|
|
11
|
+
anchorForItem;
|
|
10
12
|
get historyFilter() {
|
|
11
13
|
return this._historyFilter.value;
|
|
12
14
|
}
|
|
13
15
|
set historyFilter(historyFilter) {
|
|
14
16
|
this._historyFilter.next(historyFilter);
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.historyFilter$ = this._historyFilter.asObservable();
|
|
20
|
-
this.historyPairs$ = this.historyFilter$.pipe(switchMap((x) => this.dbxFirebaseModelTrackerService.filterHistoryPairs(x)), shareReplay(1));
|
|
21
|
-
this.state$ = loadingStateFromObs(this.historyPairs$);
|
|
22
|
-
}
|
|
18
|
+
historyFilter$ = this._historyFilter.asObservable();
|
|
19
|
+
historyPairs$ = this.historyFilter$.pipe(switchMap((x) => this.dbxFirebaseModelTrackerService.filterHistoryPairs(x)), shareReplay(1));
|
|
20
|
+
state$ = loadingStateFromObs(this.historyPairs$);
|
|
23
21
|
ngOnDestroy() {
|
|
24
22
|
this._historyFilter.complete();
|
|
25
23
|
}
|
|
26
|
-
static
|
|
27
|
-
static
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseModelHistoryComponent, selector: "dbx-firebase-model-history", inputs: { anchorForItem: "anchorForItem", historyFilter: "historyFilter" }, ngImport: i0, template: `
|
|
28
26
|
<dbx-firebase-model-type-instance-list [state$]="state$" [dbxListItemModifier] [dbxListItemAnchorModifier]="anchorForItem">
|
|
29
27
|
<ng-content empty select="[empty]"></ng-content>
|
|
30
28
|
</dbx-firebase-model-type-instance-list>
|
|
31
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
29
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.DbxListItemAnchorModifierDirective, selector: "[dbxListItemAnchorModifier]", inputs: ["dbxListItemAnchorModifier"] }, { kind: "directive", type: i1.DbxValueListItemModifierDirective, selector: "[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "component", type: i2.DbxFirebaseModelTypeInstanceComponent, selector: "dbx-firebase-model-type-instance-list" }] });
|
|
32
30
|
}
|
|
33
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryComponent, decorators: [{
|
|
34
32
|
type: Component,
|
|
@@ -40,9 +38,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
40
38
|
</dbx-firebase-model-type-instance-list>
|
|
41
39
|
`
|
|
42
40
|
}]
|
|
43
|
-
}],
|
|
41
|
+
}], propDecorators: { anchorForItem: [{
|
|
44
42
|
type: Input
|
|
45
43
|
}], historyFilter: [{
|
|
46
44
|
type: Input
|
|
47
45
|
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLmhpc3RvcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBd0MsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQVcvRyxNQUFNLE9BQU8sZ0NBQWdDO0lBQ2xDLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBRXpFLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBOEMsU0FBUyxDQUFDLENBQUM7SUFHckcsYUFBYSxDQUEyRTtJQUV4RixJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxhQUEwRDtRQUMxRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRVEsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFcEQsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUMvQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMzRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFMUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzt3R0E1QlUsZ0NBQWdDOzRGQUFoQyxnQ0FBZ0MsOElBTmpDOzs7O0dBSVQ7OzRGQUVVLGdDQUFnQztrQkFSNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxRQUFRLEVBQUU7Ozs7R0FJVDtpQkFDRjs4QkFPQyxhQUFhO3NCQURaLEtBQUs7Z0JBSUYsYUFBYTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmNob3JGb3JWYWx1ZUZ1bmN0aW9uIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBsb2FkaW5nU3RhdGVGcm9tT2JzIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBzd2l0Y2hNYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHJhY2tlckhpc3RvcnlGaWx0ZXIsIERieEZpcmViYXNlTW9kZWxUcmFja2VyU2VydmljZSB9IGZyb20gJy4vbW9kZWwudHJhY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2VJbnN0YW5jZVBhaXIgfSBmcm9tICcuL21vZGVsLnR5cGVzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwtaGlzdG9yeScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1maXJlYmFzZS1tb2RlbC10eXBlLWluc3RhbmNlLWxpc3QgW3N0YXRlJF09XCJzdGF0ZSRcIiBbZGJ4TGlzdEl0ZW1Nb2RpZmllcl0gW2RieExpc3RJdGVtQW5jaG9yTW9kaWZpZXJdPVwiYW5jaG9yRm9ySXRlbVwiPlxuICAgICAgPG5nLWNvbnRlbnQgZW1wdHkgc2VsZWN0PVwiW2VtcHR5XVwiPjwvbmctY29udGVudD5cbiAgICA8L2RieC1maXJlYmFzZS1tb2RlbC10eXBlLWluc3RhbmNlLWxpc3Q+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEhpc3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHJhY2tlclNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VNb2RlbFRyYWNrZXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIF9oaXN0b3J5RmlsdGVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYnhGaXJlYmFzZU1vZGVsVHJhY2tlckhpc3RvcnlGaWx0ZXI+Pih1bmRlZmluZWQpO1xuXG4gIEBJbnB1dCgpXG4gIGFuY2hvckZvckl0ZW0/OiBNYXliZTxBbmNob3JGb3JWYWx1ZUZ1bmN0aW9uPERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2VJbnN0YW5jZVBhaXI+PjtcblxuICBASW5wdXQoKVxuICBnZXQgaGlzdG9yeUZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5faGlzdG9yeUZpbHRlci52YWx1ZTtcbiAgfVxuXG4gIHNldCBoaXN0b3J5RmlsdGVyKGhpc3RvcnlGaWx0ZXI6IE1heWJlPERieEZpcmViYXNlTW9kZWxUcmFja2VySGlzdG9yeUZpbHRlcj4pIHtcbiAgICB0aGlzLl9oaXN0b3J5RmlsdGVyLm5leHQoaGlzdG9yeUZpbHRlcik7XG4gIH1cblxuICByZWFkb25seSBoaXN0b3J5RmlsdGVyJCA9IHRoaXMuX2hpc3RvcnlGaWx0ZXIuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcmVhZG9ubHkgaGlzdG9yeVBhaXJzJCA9IHRoaXMuaGlzdG9yeUZpbHRlciQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMuZGJ4RmlyZWJhc2VNb2RlbFRyYWNrZXJTZXJ2aWNlLmZpbHRlckhpc3RvcnlQYWlycyh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzdGF0ZSQgPSBsb2FkaW5nU3RhdGVGcm9tT2JzKHRoaXMuaGlzdG9yeVBhaXJzJCk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5faGlzdG9yeUZpbHRlci5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -8,9 +8,9 @@ import { DbxFirebaseModelTypesModule } from './model.types.module';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
const declarations = [DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent];
|
|
10
10
|
export class DbxFirebaseModelHistoryModule {
|
|
11
|
-
static
|
|
12
|
-
static
|
|
13
|
-
static
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryModule, declarations: [DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent], imports: [CommonModule, DbxButtonModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxModelInfoModule, DbxListLayoutModule, DbxFirebaseModelTypesModule], exports: [DbxFirebaseModelHistoryComponent, DbxFirebaseModelHistoryPopoverButtonComponent, DbxFirebaseModelHistoryPopoverComponent] });
|
|
13
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryModule, imports: [CommonModule, DbxButtonModule, DbxRouterListModule, DbxPopoverInteractionModule, DbxModelInfoModule, DbxListLayoutModule, DbxFirebaseModelTypesModule] });
|
|
14
14
|
}
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20
20
|
exports: declarations
|
|
21
21
|
}]
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuaGlzdG9yeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLmhpc3RvcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5SSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFbkUsTUFBTSxZQUFZLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSw2Q0FBNkMsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO0FBT2hKLE1BQU0sT0FBTyw2QkFBNkI7d0dBQTdCLDZCQUE2Qjt5R0FBN0IsNkJBQTZCLGlCQVBwQixnQ0FBZ0MsRUFBRSw2Q0FBNkMsRUFBRSx1Q0FBdUMsYUFHbEksWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsYUFIM0ksZ0NBQWdDLEVBQUUsNkNBQTZDLEVBQUUsdUNBQXVDO3lHQU9qSSw2QkFBNkIsWUFKOUIsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkI7OzRGQUlwSiw2QkFBNkI7a0JBTHpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsQ0FBQztvQkFDaEssWUFBWTtvQkFDWixPQUFPLEVBQUUsWUFBWTtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEJ1dHRvbk1vZHVsZSwgRGJ4TGlzdExheW91dE1vZHVsZSwgRGJ4TW9kZWxJbmZvTW9kdWxlLCBEYnhQb3BvdmVySW50ZXJhY3Rpb25Nb2R1bGUsIERieFJvdXRlckxpc3RNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxIaXN0b3J5Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5oaXN0b3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeVBvcG92ZXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL21vZGVsLmhpc3RvcnkucG9wb3Zlci5idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vbW9kZWwuaGlzdG9yeS5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNNb2R1bGUgfSBmcm9tICcuL21vZGVsLnR5cGVzLm1vZHVsZSc7XG5cbmNvbnN0IGRlY2xhcmF0aW9ucyA9IFtEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeUNvbXBvbmVudCwgRGJ4RmlyZWJhc2VNb2RlbEhpc3RvcnlQb3BvdmVyQnV0dG9uQ29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeVBvcG92ZXJDb21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieFJvdXRlckxpc3RNb2R1bGUsIERieFBvcG92ZXJJbnRlcmFjdGlvbk1vZHVsZSwgRGJ4TW9kZWxJbmZvTW9kdWxlLCBEYnhMaXN0TGF5b3V0TW9kdWxlLCBEYnhGaXJlYmFzZU1vZGVsVHlwZXNNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnMsXG4gIGV4cG9ydHM6IGRlY2xhcmF0aW9uc1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeU1vZHVsZSB7fVxuIl19
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, inject } from '@angular/core';
|
|
2
2
|
import { AbstractPopoverRefDirective, DbxPopoverService } from '@dereekb/dbx-web';
|
|
3
3
|
import { DbxFirebaseModelHistoryPopoverComponent } from './model.history.popover.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@dereekb/dbx-web";
|
|
6
6
|
export class DbxFirebaseModelHistoryPopoverButtonComponent extends AbstractPopoverRefDirective {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
7
|
+
_dbxPopoverService = inject(DbxPopoverService);
|
|
8
|
+
buttonElement;
|
|
9
|
+
config;
|
|
11
10
|
_makePopoverRef(origin) {
|
|
12
11
|
const config = this.config;
|
|
13
12
|
if (!origin) {
|
|
14
13
|
throw new Error('Missing origin.');
|
|
15
14
|
}
|
|
16
|
-
return DbxFirebaseModelHistoryPopoverComponent.openPopover(this.
|
|
15
|
+
return DbxFirebaseModelHistoryPopoverComponent.openPopover(this._dbxPopoverService, {
|
|
17
16
|
origin,
|
|
18
17
|
...config
|
|
19
18
|
});
|
|
@@ -22,10 +21,10 @@ export class DbxFirebaseModelHistoryPopoverButtonComponent extends AbstractPopov
|
|
|
22
21
|
const origin = this.buttonElement.nativeElement;
|
|
23
22
|
this.showPopover(origin);
|
|
24
23
|
}
|
|
25
|
-
static
|
|
26
|
-
static
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryPopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseModelHistoryPopoverButtonComponent, selector: "dbx-firebase-model-history-popover-button", inputs: { config: "config" }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
|
|
27
26
|
<dbx-icon-button #button (buttonClick)="showHistoryPopover()" icon="history"></dbx-icon-button>
|
|
28
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i1.DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
27
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i1.DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
29
28
|
}
|
|
30
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryPopoverButtonComponent, decorators: [{
|
|
31
30
|
type: Component,
|
|
@@ -36,10 +35,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
36
35
|
`,
|
|
37
36
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
38
37
|
}]
|
|
39
|
-
}],
|
|
38
|
+
}], propDecorators: { buttonElement: [{
|
|
40
39
|
type: ViewChild,
|
|
41
40
|
args: ['button', { read: ElementRef, static: false }]
|
|
42
41
|
}], config: [{
|
|
43
42
|
type: Input
|
|
44
43
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuaGlzdG9yeS5wb3BvdmVyLmJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLmhpc3RvcnkucG9wb3Zlci5idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxGLE9BQU8sRUFBRSx1Q0FBdUMsRUFBd0MsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBV2xJLE1BQU0sT0FBTyw2Q0FBOEMsU0FBUSwyQkFBNkM7SUFDN0Ysa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFHaEUsYUFBYSxDQUFjO0lBRzNCLE1BQU0sQ0FBOEM7SUFFakMsZUFBZSxDQUFDLE1BQW1CO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFM0IsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwQztRQUVELE9BQU8sdUNBQXVDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNsRixNQUFNO1lBQ04sR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBekJVLDZDQUE2Qzs0RkFBN0MsNkNBQTZDLG1NQUczQixVQUFVLG9EQVI3Qjs7R0FFVDs7NEZBR1UsNkNBQTZDO2tCQVB6RCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQ0FBMkM7b0JBQ3JELFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBS0MsYUFBYTtzQkFEWixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJeEQsTUFBTTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFBvcG92ZXJSZWZEaXJlY3RpdmUsIERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBOZ1BvcG92ZXJSZWYgfSBmcm9tICduZy1vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeVBvcG92ZXJDb21wb25lbnQsIERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlclBhcmFtcyB9IGZyb20gJy4vbW9kZWwuaGlzdG9yeS5wb3BvdmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlckJ1dHRvbkNvbmZpZyA9IERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlclBhcmFtcztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWhpc3RvcnktcG9wb3Zlci1idXR0b24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtaWNvbi1idXR0b24gI2J1dHRvbiAoYnV0dG9uQ2xpY2spPVwic2hvd0hpc3RvcnlQb3BvdmVyKClcIiBpY29uPVwiaGlzdG9yeVwiPjwvZGJ4LWljb24tYnV0dG9uPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeVBvcG92ZXJCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBvcG92ZXJSZWZEaXJlY3RpdmU8dW5rbm93biwgdW5rbm93bj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kYnhQb3BvdmVyU2VydmljZSA9IGluamVjdChEYnhQb3BvdmVyU2VydmljZSk7XG5cbiAgQFZpZXdDaGlsZCgnYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIGJ1dHRvbkVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmZpZz86IERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlckJ1dHRvbkNvbmZpZztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX21ha2VQb3BvdmVyUmVmKG9yaWdpbj86IEVsZW1lbnRSZWYpOiBOZ1BvcG92ZXJSZWY8dW5rbm93biwgdW5rbm93bj4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnO1xuXG4gICAgaWYgKCFvcmlnaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBvcmlnaW4uJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlckNvbXBvbmVudC5vcGVuUG9wb3Zlcih0aGlzLl9kYnhQb3BvdmVyU2VydmljZSwge1xuICAgICAgb3JpZ2luLFxuICAgICAgLi4uY29uZmlnXG4gICAgfSk7XG4gIH1cblxuICBzaG93SGlzdG9yeVBvcG92ZXIoKTogdm9pZCB7XG4gICAgY29uc3Qgb3JpZ2luID0gdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5zaG93UG9wb3ZlcihvcmlnaW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
|
-
import { AbstractPopoverDirective
|
|
2
|
+
import { AbstractPopoverDirective } from '@dereekb/dbx-web';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@dereekb/dbx-web";
|
|
5
5
|
import * as i2 from "./model.history.component";
|
|
@@ -19,9 +19,6 @@ export class DbxFirebaseModelHistoryPopoverComponent extends AbstractPopoverDire
|
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
constructor(popover) {
|
|
23
|
-
super(popover);
|
|
24
|
-
}
|
|
25
22
|
get params() {
|
|
26
23
|
return this.popover.data;
|
|
27
24
|
}
|
|
@@ -40,11 +37,11 @@ export class DbxFirebaseModelHistoryPopoverComponent extends AbstractPopoverDire
|
|
|
40
37
|
get anchorForItem() {
|
|
41
38
|
return this.params.anchorForItem;
|
|
42
39
|
}
|
|
43
|
-
static
|
|
44
|
-
static
|
|
40
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFirebaseModelHistoryPopoverComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-history [historyFilter]=\"historyFilter\" [anchorForItem]=\"anchorForItem\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-model-history>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "component", type: i1.DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: i1.DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "component", type: i1.DbxPopoverScrollContentComponent, selector: "dbx-popover-scroll-content" }, { kind: "component", type: i1.DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }, { kind: "component", type: i2.DbxFirebaseModelHistoryComponent, selector: "dbx-firebase-model-history", inputs: ["anchorForItem", "historyFilter"] }] });
|
|
45
42
|
}
|
|
46
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseModelHistoryPopoverComponent, decorators: [{
|
|
47
44
|
type: Component,
|
|
48
45
|
args: [{ template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\"></dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-firebase-model-history [historyFilter]=\"historyFilter\" [anchorForItem]=\"anchorForItem\">\n <dbx-list-empty-content empty>\n <p>{{ emptyText }}</p>\n </dbx-list-empty-content>\n </dbx-firebase-model-history>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
|
|
49
|
-
}]
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuaGlzdG9yeS5wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvbW9kZWwuaGlzdG9yeS5wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvbW9kZWwuaGlzdG9yeS5wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLHdCQUF3QixFQUE0RCxNQUFNLGtCQUFrQixDQUFDOzs7O0FBb0N0SCxNQUFNLENBQUMsTUFBTSw4Q0FBOEMsR0FBRyxTQUFTLENBQUM7QUFLeEUsTUFBTSxPQUFPLHVDQUF3QyxTQUFRLHdCQUF1RTtJQUNsSSxNQUFNLENBQUMsV0FBVyxDQUFDLFlBQStCLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBd0MsRUFBRSxVQUEwQjtRQUNyTCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDdkIsR0FBRyxFQUFFLFVBQVUsSUFBSSw4Q0FBOEM7WUFDakUsTUFBTTtZQUNOLGNBQWMsRUFBRSx1Q0FBdUM7WUFDdkQsSUFBSSxFQUFFO2dCQUNKLE1BQU07Z0JBQ04sSUFBSTtnQkFDSixTQUFTO2dCQUNULGFBQWE7Z0JBQ2IsYUFBYTthQUMwQjtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQTRDLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUNuQyxDQUFDO3dHQXRDVSx1Q0FBdUM7NEZBQXZDLHVDQUF1QywyRUMzQ3BELDBkQVlBOzs0RkQrQmEsdUNBQXVDO2tCQUhuRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ1BvcG92ZXJSZWYgfSBmcm9tICduZy1vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBBYnN0cmFjdFBvcG92ZXJEaXJlY3RpdmUsIEFuY2hvckZvclZhbHVlRnVuY3Rpb24sIERieFBvcG92ZXJLZXksIERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZUluc3RhbmNlUGFpciB9IGZyb20gJy4vbW9kZWwudHlwZXMuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHJhY2tlckhpc3RvcnlGaWx0ZXIgfSBmcm9tICcuL21vZGVsLnRyYWNrZXIuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbEhpc3RvcnlQb3BvdmVyUGFyYW1zIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBpY29uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiaGlzdG9yeVwiXG4gICAqL1xuICBpY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGhlYWRlciB0ZXh0XG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiSGlzdG9yeVwiXG4gICAqL1xuICBoZWFkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gZW1wdHkgdGV4dCB3aGVuIG5vIGl0ZW1zIGV4aXN0LlxuICAgKi9cbiAgZW1wdHlUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogT3JpZ2luIHRvIGFkZCB0aGUgcG9wb3ZlciB0by5cbiAgICovXG4gIG9yaWdpbjogRWxlbWVudFJlZjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmZpZyB0byBwYXNzIHRvIHRoZSBEYnhGaXJlYmFzZUhpc3RvcnlDb21wb25lbnRcbiAgICovXG4gIGhpc3RvcnlGaWx0ZXI/OiBNYXliZTxEYnhGaXJlYmFzZU1vZGVsVHJhY2tlckhpc3RvcnlGaWx0ZXI+O1xuICAvKipcbiAgICogQW5jaG9yXG4gICAqL1xuICBhbmNob3JGb3JJdGVtPzogTWF5YmU8QW5jaG9yRm9yVmFsdWVGdW5jdGlvbjxEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlSW5zdGFuY2VQYWlyPj47XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZJUkVCQVNFX0hJU1RPUllfQ09NUE9ORU5UX1BPUE9WRVJfS0VZID0gJ2hpc3RvcnknO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGVsLmhpc3RvcnkucG9wb3Zlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEhpc3RvcnlQb3BvdmVyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQb3BvdmVyRGlyZWN0aXZlPHVua25vd24sIERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlclBhcmFtcz4ge1xuICBzdGF0aWMgb3BlblBvcG92ZXIocG9wdXBTZXJ2aWNlOiBEYnhQb3BvdmVyU2VydmljZSwgeyBvcmlnaW4sIGhlYWRlciwgaWNvbiwgZW1wdHlUZXh0LCBoaXN0b3J5RmlsdGVyLCBhbmNob3JGb3JJdGVtIH06IERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlclBhcmFtcywgcG9wb3ZlcktleT86IERieFBvcG92ZXJLZXkpOiBOZ1BvcG92ZXJSZWYge1xuICAgIHJldHVybiBwb3B1cFNlcnZpY2Uub3Blbih7XG4gICAgICBrZXk6IHBvcG92ZXJLZXkgPz8gREVGQVVMVF9GSVJFQkFTRV9ISVNUT1JZX0NPTVBPTkVOVF9QT1BPVkVSX0tFWSxcbiAgICAgIG9yaWdpbixcbiAgICAgIGNvbXBvbmVudENsYXNzOiBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeVBvcG92ZXJDb21wb25lbnQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGhlYWRlcixcbiAgICAgICAgaWNvbixcbiAgICAgICAgZW1wdHlUZXh0LFxuICAgICAgICBoaXN0b3J5RmlsdGVyLFxuICAgICAgICBhbmNob3JGb3JJdGVtXG4gICAgICB9IGFzIERieEZpcmViYXNlTW9kZWxIaXN0b3J5UG9wb3ZlclBhcmFtc1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHBhcmFtcygpOiBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeVBvcG92ZXJQYXJhbXMge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXIuZGF0YSBhcyBEYnhGaXJlYmFzZU1vZGVsSGlzdG9yeVBvcG92ZXJQYXJhbXM7XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuaWNvbiA/PyAnaGlzdG9yeSc7XG4gIH1cblxuICBnZXQgaGVhZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcy5oZWFkZXIgPz8gJ0hpc3RvcnknO1xuICB9XG5cbiAgZ2V0IGVtcHR5VGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuaGVhZGVyID8/ICdIaXN0b3J5IGlzIGVtcHR5Lic7XG4gIH1cblxuICBnZXQgaGlzdG9yeUZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbXMuaGlzdG9yeUZpbHRlcjtcbiAgfVxuXG4gIGdldCBhbmNob3JGb3JJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtcy5hbmNob3JGb3JJdGVtO1xuICB9XG59XG4iLCI8ZGJ4LXBvcG92ZXItY29udGVudD5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkYngtcG9wb3Zlci1oZWFkZXIgW2ljb25dPVwiaWNvblwiIFtoZWFkZXJdPVwiaGVhZGVyXCI+PC9kYngtcG9wb3Zlci1oZWFkZXI+XG4gIDwhLS0gQ29udGVudCAtLT5cbiAgPGRieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuICAgIDxkYngtZmlyZWJhc2UtbW9kZWwtaGlzdG9yeSBbaGlzdG9yeUZpbHRlcl09XCJoaXN0b3J5RmlsdGVyXCIgW2FuY2hvckZvckl0ZW1dPVwiYW5jaG9yRm9ySXRlbVwiPlxuICAgICAgPGRieC1saXN0LWVtcHR5LWNvbnRlbnQgZW1wdHk+XG4gICAgICAgIDxwPnt7IGVtcHR5VGV4dCB9fTwvcD5cbiAgICAgIDwvZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICA8L2RieC1maXJlYmFzZS1tb2RlbC1oaXN0b3J5PlxuICA8L2RieC1wb3BvdmVyLXNjcm9sbC1jb250ZW50PlxuPC9kYngtcG9wb3Zlci1jb250ZW50PlxuIl19
|