@dereekb/dbx-firebase 10.0.20 → 10.0.21
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/model/loader/collection.loader.instance.mjs +18 -2
- package/esm2022/lib/model/loader/collection.loader.mjs +1 -1
- package/esm2022/lib/model/modules/store/store.collection.mjs +12 -2
- package/fesm2022/dereekb-dbx-firebase.mjs +28 -3
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/model/loader/collection.loader.d.ts +23 -3
- package/lib/model/loader/collection.loader.instance.d.ts +9 -5
- package/lib/model/modules/store/store.collection.d.ts +19 -10
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { cleanupDestroyable, filterMaybe, useFirst, SubscriptionObject, accumulatorFlattenPageListLoadingState } from '@dereekb/rxjs';
|
|
1
|
+
import { cleanupDestroyable, filterMaybe, useFirst, SubscriptionObject, accumulatorFlattenPageListLoadingState, itemAccumulatorNextPageUntilResultsCount, iteratorNextPageUntilPage, iteratorNextPageUntilMaxPageLoadLimit, pageItemAccumulatorCurrentPage } from '@dereekb/rxjs';
|
|
2
2
|
import { BehaviorSubject, combineLatest, map, shareReplay, distinctUntilChanged, Subject, throttleTime, switchMap, tap, startWith, NEVER } from 'rxjs';
|
|
3
3
|
import { firebaseQueryItemAccumulator, firebaseQuerySnapshotAccumulator, iterationQueryDocChangeWatcher } from '@dereekb/firebase';
|
|
4
|
+
import { countAllInNestedArray } from '@dereekb/util';
|
|
4
5
|
/**
|
|
5
6
|
* DbxFirebaseModelLoader implementation within an instance.
|
|
6
7
|
*/
|
|
@@ -35,6 +36,7 @@ export class DbxFirebaseCollectionLoaderInstance {
|
|
|
35
36
|
return documentRefs.map((y) => y.map((z) => accessor.loadDocument(z)));
|
|
36
37
|
}), shareReplay(1));
|
|
37
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));
|
|
38
40
|
/**
|
|
39
41
|
* Passthrough for currentAllItems$ from the accumulator.
|
|
40
42
|
*/
|
|
@@ -108,6 +110,20 @@ export class DbxFirebaseCollectionLoaderInstance {
|
|
|
108
110
|
setCollection(firestoreCollection) {
|
|
109
111
|
this.collection = firestoreCollection;
|
|
110
112
|
}
|
|
113
|
+
loadPagesUntilResultsCount(maxResultsLimit, countResultsFunction) {
|
|
114
|
+
const defaultFn = countAllInNestedArray;
|
|
115
|
+
return this.accumulator$.pipe(switchMap((accumulator) => itemAccumulatorNextPageUntilResultsCount({
|
|
116
|
+
accumulator,
|
|
117
|
+
maxResultsLimit,
|
|
118
|
+
countResultsFunction: countResultsFunction ?? defaultFn
|
|
119
|
+
})));
|
|
120
|
+
}
|
|
121
|
+
loadToPage(page) {
|
|
122
|
+
return this.accumulator$.pipe(switchMap((accumulator) => iteratorNextPageUntilPage(accumulator.itemIteration, page)));
|
|
123
|
+
}
|
|
124
|
+
loadAllResults() {
|
|
125
|
+
return this.accumulator$.pipe(switchMap((accumulator) => iteratorNextPageUntilMaxPageLoadLimit(accumulator.itemIteration)));
|
|
126
|
+
}
|
|
111
127
|
}
|
|
112
128
|
export function dbxFirebaseCollectionLoaderInstance(config) {
|
|
113
129
|
return new DbxFirebaseCollectionLoaderInstance(config);
|
|
@@ -115,4 +131,4 @@ export function dbxFirebaseCollectionLoaderInstance(config) {
|
|
|
115
131
|
export function dbxFirebaseCollectionLoaderInstanceWithCollection(collection) {
|
|
116
132
|
return new DbxFirebaseCollectionLoaderInstance({ collection });
|
|
117
133
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXIuaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLHNDQUFzQyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVKLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkssT0FBTyxFQUE2RSw0QkFBNEIsRUFBb0MsZ0NBQWdDLEVBQTZLLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFhM1o7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUNBQW1DO0lBMEc5QyxZQUE2QixXQUFpRTtRQUFqRSxnQkFBVyxHQUFYLFdBQVcsQ0FBc0Q7UUF6RzNFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQXVDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFdEcsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNFLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbkYsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBZ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNqSCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVqQyxpQkFBWSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUVoRCxnQkFBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUM1RCxpQkFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUU5RCxvQkFBZSxHQUFnRCxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5SixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBc0MsQ0FBQSxDQUFDLEVBQzNILFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sd0JBQW1CLEdBQXNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUNyRyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN2QixJQUFJLFVBQVUsRUFBRTtnQkFDZCxPQUFPLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDekYsWUFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSwyREFBMkQ7Z0JBQzdHLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUN4RSxrQkFBa0IsRUFBRSxFQUFFLHdCQUF3QjtnQkFDOUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQyxDQUFDLG9EQUFvRDthQUNuRTtRQUNILENBQUMsQ0FBQyxFQUNGLGtCQUFrQixFQUFFLEVBQUUsd0JBQXdCO1FBQzlDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sd0JBQW1CLEdBQWtELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3pHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsOEJBQThCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQy9ELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8seUJBQW9CLEdBQW9ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzVHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsZ0NBQWdDLENBQUksQ0FBQyxDQUFDLENBQUMsRUFDbEQsa0JBQWtCLEVBQUUsRUFDcEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxxQ0FBZ0MsR0FBeUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FDOUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNuRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGtDQUE2QixHQUFzQixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzSixHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9DLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxpQkFBWSxHQUFnRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUNoRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDRCQUE0QixDQUFJLENBQUMsQ0FBQyxDQUFDLEVBQzlDLGtCQUFrQixFQUFFLEVBQ3BCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRUY7O1dBRUc7UUFDTSw2QkFBd0IsR0FBZ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3JHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQ3BDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRUY7O1dBRUc7UUFDTSxzQkFBaUIsR0FBZ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzlGLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUM3QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGtCQUFhLEdBQXdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQ3pFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDMUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxxQkFBZ0IsR0FBdUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FDeEcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFDcEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxrQkFBYSxHQUFvQixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUMvRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUNwQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLHFCQUFnQixHQUE4QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUNoRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUNwQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLHNCQUFpQixHQUFrRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDaEgsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMzRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUUrRixDQUFDO0lBRWxHLElBQUk7UUFDRixpRUFBaUU7UUFDakUsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVM7YUFDNUMsSUFBSSxDQUNILG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsRUFBRSxFQUFFLG9DQUFvQztRQUNuRCxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQzNCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2hCLFNBQVMsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0Y7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlO0lBQ2YsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsUUFBdUI7UUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUEyQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFdBQTBEO1FBQ3hFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxVQUFnRDtRQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsb0NBQW9DO0lBQ3BDLElBQUk7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUEwRDtRQUN2RSxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsYUFBYSxDQUFDLG1CQUF5RDtRQUNyRSxJQUFJLENBQUMsVUFBVSxHQUFHLG1CQUFtQixDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxtQ0FBbUMsQ0FBMkQsTUFBMkQ7SUFDdkssT0FBTyxJQUFJLG1DQUFtQyxDQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsaURBQWlELENBQTJELFVBQWdEO0lBQzFLLE9BQU8sSUFBSSxtQ0FBbUMsQ0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VMaXN0TG9hZGluZ1N0YXRlLCBjbGVhbnVwRGVzdHJveWFibGUsIGZpbHRlck1heWJlLCB1c2VGaXJzdCwgU3Vic2NyaXB0aW9uT2JqZWN0LCBhY2N1bXVsYXRvckZsYXR0ZW5QYWdlTGlzdExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCwgdGhyb3R0bGVUaW1lLCBzd2l0Y2hNYXAsIE9ic2VydmFibGUsIHRhcCwgc3RhcnRXaXRoLCBORVZFUiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG9jdW1lbnREYXRhV2l0aElkQW5kS2V5LCBEb2N1bWVudFJlZmVyZW5jZSwgRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvciwgZmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvciwgRmlyZWJhc2VRdWVyeVNuYXBzaG90QWNjdW11bGF0b3IsIGZpcmViYXNlUXVlcnlTbmFwc2hvdEFjY3VtdWxhdG9yLCBGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZSwgRmlyZXN0b3JlRG9jdW1lbnQsIEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0aW9uSW5zdGFuY2UsIEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0b3JGaWx0ZXIsIEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludCwgSXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyLCBpdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBBcnJheU9yVmFsdWUsIERlc3Ryb3lhYmxlLCBJbml0aWFsaXplZCwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlciwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyQWNjZXNzb3IgfSBmcm9tICcuL2NvbGxlY3Rpb24ubG9hZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZUluaXRDb25maWc8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IHtcbiAgY29sbGVjdGlvbj86IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+PjtcbiAgbWF4UGFnZXM/OiBNYXliZTxudW1iZXI+O1xuICBpdGVtc1BlclBhZ2U/OiBNYXliZTxudW1iZXI+O1xuICBjb25zdHJhaW50cz86IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiA9IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yPFQ+O1xuXG4vKipcbiAqIERieEZpcmViYXNlTW9kZWxMb2FkZXIgaW1wbGVtZW50YXRpb24gd2l0aGluIGFuIGluc3RhbmNlLlxuICovXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCA9IHVua25vd24sIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+PiBpbXBsZW1lbnRzIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlcjxUPiwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhPFQsIEQ+LCBJbml0aWFsaXplZCwgRGVzdHJveWFibGUge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbGxlY3Rpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pj4odGhpcy5faW5pdENvbmZpZz8uY29sbGVjdGlvbik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tYXhQYWdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8bnVtYmVyPj4odGhpcy5faW5pdENvbmZpZz8ubWF4UGFnZXMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2l0ZW1zUGVyUGFnZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8bnVtYmVyPj4odGhpcy5faW5pdENvbmZpZz8uaXRlbXNQZXJQYWdlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jb25zdHJhaW50cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+Pih0aGlzLl9pbml0Q29uZmlnPy5jb25zdHJhaW50cyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVzdGFydCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWF4UGFnZXNTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcmVhZG9ubHkgY29sbGVjdGlvbiQgPSB0aGlzLl9jb2xsZWN0aW9uLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzJCA9IHRoaXMuX2NvbnN0cmFpbnRzLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgaXRlcmF0b3JGaWx0ZXIkOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0b3JGaWx0ZXI+ID0gY29tYmluZUxhdGVzdChbdGhpcy5faXRlbXNQZXJQYWdlLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIHRoaXMuY29uc3RyYWludHMkXSkucGlwZShcbiAgICBtYXAoKFtsaW1pdCwgY29uc3RyYWludHNdKSA9PiAoeyBsaW1pdCwgY29uc3RyYWludHMsIG1heFBhZ2VMb2FkTGltaXQ6IHRoaXMubWF4UGFnZXMgfSBhcyBGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdG9yRmlsdGVyKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBmaXJlc3RvcmVJdGVyYXRpb24kOiBPYnNlcnZhYmxlPEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0aW9uSW5zdGFuY2U8VD4+ID0gdGhpcy5jb2xsZWN0aW9uJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoY29sbGVjdGlvbikgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW3RoaXMuaXRlcmF0b3JGaWx0ZXIkLCB0aGlzLl9yZXN0YXJ0LnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpXSkucGlwZShcbiAgICAgICAgICB0aHJvdHRsZVRpbWUoMTAwLCB1bmRlZmluZWQsIHsgdHJhaWxpbmc6IHRydWUgfSksIC8vIHByZXZlbnQgcmFwaWQgY2hhbmdlcyBhbmQgZXhlY3V0aW5nIGZpbHRlcnMgdG9vIHF1aWNrbHkuXG4gICAgICAgICAgbWFwKChbaXRlcmF0b3JGaWx0ZXJdKSA9PiBjb2xsZWN0aW9uLmZpcmVzdG9yZUl0ZXJhdGlvbihpdGVyYXRvckZpbHRlcikpLFxuICAgICAgICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLCAvLyBjbGVhbnVwIHRoZSBpdGVyYXRpb25cbiAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIE5FVkVSOyAvLyBkb24ndCBlbWl0IGFueXRoaW5nIHVudGlsIGNvbGxlY3Rpb24gaXMgcHJvdmlkZWQuXG4gICAgICB9XG4gICAgfSksXG4gICAgY2xlYW51cERlc3Ryb3lhYmxlKCksIC8vIGNsZWFudXAgdGhlIGl0ZXJhdGlvblxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VXYXRjaGVyJDogT2JzZXJ2YWJsZTxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXI8VD4+ID0gdGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLnBpcGUoXG4gICAgbWFwKChpbnN0YW5jZSkgPT4gaXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyKHsgaW5zdGFuY2UgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RBY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeVNuYXBzaG90QWNjdW11bGF0b3I8VD4+ID0gdGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBmaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvcjxUPih4KSksXG4gICAgY2xlYW51cERlc3Ryb3lhYmxlKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzbmFwc2hvdEFjY3VtdWxhdG9yRG9jdW1lbnRSZWZzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdW10+ID0gdGhpcy5zbmFwc2hvdEFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5hbGxJdGVtcyQucGlwZShtYXAoKHkpID0+IHkubWFwKCh6KSA9PiB6Lm1hcCgoenopID0+IHp6LnJlZikpKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc25hcHNob3RBY2N1bXVsYXRvckRvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdW10+ID0gY29tYmluZUxhdGVzdChbdGhpcy5jb2xsZWN0aW9uJC5waXBlKGZpbHRlck1heWJlKCkpLCB0aGlzLnNuYXBzaG90QWNjdW11bGF0b3JEb2N1bWVudFJlZnMkXSkucGlwZShcbiAgICBtYXAoKFtjb2xsZWN0aW9uLCBkb2N1bWVudFJlZnNdKSA9PiB7XG4gICAgICBjb25zdCBhY2Nlc3NvciA9IGNvbGxlY3Rpb24uZG9jdW1lbnRBY2Nlc3NvcigpO1xuICAgICAgcmV0dXJuIGRvY3VtZW50UmVmcy5tYXAoKHkpID0+IHkubWFwKCh6KSA9PiBhY2Nlc3Nvci5sb2FkRG9jdW1lbnQoeikpKTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yPFQ+PiA9IHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gZmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPih4KSksXG4gICAgY2xlYW51cERlc3Ryb3lhYmxlKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogUGFzc3Rocm91Z2ggZm9yIGN1cnJlbnRBbGxJdGVtcyQgZnJvbSB0aGUgYWNjdW11bGF0b3IuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50QWNjdW11bGF0b3JJdGVtcyQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W11bXT4gPSB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5jdXJyZW50QWxsSXRlbXMkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8qKlxuICAgKiBQYXNzdGhyb3VnaCBmb3IgYWxsSXRlbXMkIGZyb20gdGhlIGFjY3VtdWxhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjdW11bGF0b3JJdGVtcyQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W11bXT4gPSB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5hbGxJdGVtcyQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5maXJzdFN0YXRlJC5waXBlKG1hcCgoeCkgPT4gQm9vbGVhbih4LnZhbHVlPy5sZW5ndGgpKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnRSZWZzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdPiA9IHRoaXMuc25hcHNob3RBY2N1bXVsYXRvckRvY3VtZW50UmVmcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmxhdCgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbERvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdPiA9IHRoaXMuc25hcHNob3RBY2N1bXVsYXRvckRvY3VtZW50cyQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZmxhdCgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbERvY3VtZW50RGF0YSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gdGhpcy5hY2N1bXVsYXRvckl0ZW1zJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5mbGF0KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSB0aGlzLmFjY3VtdWxhdG9yJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4gYWNjdW11bGF0b3JGbGF0dGVuUGFnZUxpc3RMb2FkaW5nU3RhdGUoeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfaW5pdENvbmZpZz86IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlSW5pdENvbmZpZzxULCBEPikge31cblxuICBpbml0KCk6IHZvaWQge1xuICAgIC8vIFdoZW4gbWF4IHBhZ2VzIGNoYW5nZXMsIHVwZGF0ZSB0aGUgaXRlcmF0aW9uJ3MgbWF4IHBhZ2UgbGltaXQuXG4gICAgdGhpcy5fbWF4UGFnZXNTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5fbWF4UGFnZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXJNYXliZSgpLCAvLyBkbyBub3QgcGFzcyBudWxsL3VuZGVmaW5lZCB2YWx1ZXNcbiAgICAgICAgc3dpdGNoTWFwKChtYXhQYWdlTG9hZExpbWl0KSA9PlxuICAgICAgICAgIHRoaXMuZmlyZXN0b3JlSXRlcmF0aW9uJC5waXBlKFxuICAgICAgICAgICAgdGFwKChpdGVyYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgaXRlcmF0aW9uLm1heFBhZ2VMb2FkTGltaXQgPSBtYXhQYWdlTG9hZExpbWl0O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWF4UGFnZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9jb2xsZWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29uc3RyYWludHMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9pdGVtc1BlclBhZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLl9yZXN0YXJ0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbWF4UGFnZXNTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgLy8gTUFSSzogSW5wdXRzXG4gIGdldCBtYXhQYWdlcygpOiBNYXliZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fbWF4UGFnZXMudmFsdWU7XG4gIH1cblxuICBzZXQgbWF4UGFnZXMobWF4UGFnZXM6IE1heWJlPG51bWJlcj4pIHtcbiAgICBpZiAodGhpcy5tYXhQYWdlcyAhPSBtYXhQYWdlcykge1xuICAgICAgdGhpcy5fbWF4UGFnZXMubmV4dChtYXhQYWdlcyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSgpOiBNYXliZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNQZXJQYWdlLnZhbHVlO1xuICB9XG5cbiAgc2V0IGl0ZW1zUGVyUGFnZShpdGVtc1BlclBhZ2U6IE1heWJlPG51bWJlcj4pIHtcbiAgICBpZiAodGhpcy5pdGVtc1BlclBhZ2UgIT0gaXRlbXNQZXJQYWdlKSB7XG4gICAgICB0aGlzLl9pdGVtc1BlclBhZ2UubmV4dChpdGVtc1BlclBhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb25zdHJhaW50cygpOiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4ge1xuICAgIHJldHVybiB0aGlzLl9jb25zdHJhaW50cy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjb25zdHJhaW50cyhjb25zdHJhaW50czogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+KSB7XG4gICAgdGhpcy5fY29uc3RyYWludHMubmV4dChjb25zdHJhaW50cyk7XG4gIH1cblxuICBnZXQgY29sbGVjdGlvbigpOiBNYXliZTxGaXJlc3RvcmVDb2xsZWN0aW9uTGlrZTxULCBEPj4ge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uLnZhbHVlO1xuICB9XG5cbiAgc2V0IGNvbGxlY3Rpb24oY29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+KSB7XG4gICAgdGhpcy5fY29sbGVjdGlvbi5uZXh0KGNvbGxlY3Rpb24pO1xuICB9XG5cbiAgLy8gTUFSSzogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyXG4gIG5leHQoKSB7XG4gICAgdXNlRmlyc3QodGhpcy5maXJlc3RvcmVJdGVyYXRpb24kLCAoeCkgPT4geC5uZXh0KCkpO1xuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLl9yZXN0YXJ0Lm5leHQoKTtcbiAgfVxuXG4gIHNldENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzOiBNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4pIHtcbiAgICB0aGlzLmNvbnN0cmFpbnRzID0gY29uc3RyYWludHM7XG4gIH1cblxuICBzZXRDb2xsZWN0aW9uKGZpcmVzdG9yZUNvbGxlY3Rpb246IE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pikge1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IGZpcmVzdG9yZUNvbGxlY3Rpb247XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudDxUPiA9IEZpcmVzdG9yZURvY3VtZW50PFQ+Pihjb25maWc6IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlSW5pdENvbmZpZzxULCBEPik6IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+IHtcbiAgcmV0dXJuIG5ldyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPihjb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VXaXRoQ29sbGVjdGlvbjxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4oY29sbGVjdGlvbjogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+KTogRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRD4ge1xuICByZXR1cm4gbmV3IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+KHsgY29sbGVjdGlvbiB9KTtcbn1cbiJdfQ==
|
|
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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9sb2FkZXIvY29sbGVjdGlvbi5sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvY3VtZW50RGF0YVdpdGhJZEFuZEtleSwgRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvciwgRmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRGdW5jdGlvbiwgRmlyZWJhc2VRdWVyeVNuYXBzaG90QWNjdW11bGF0b3IsIEZpcmVzdG9yZUl0ZW1QYWdlSXRlcmF0aW9uSW5zdGFuY2UsIEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludCwgSXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgSXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudFJlc3VsdCwgUGFnZUxpc3RMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1heWJlLCBBcnJheU9yVmFsdWUsIFBhZ2VOdW1iZXIgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcjxUID0gdW5rbm93bj4ge1xuICByZWFkb25seSBjb25zdHJhaW50cyQ6IE9ic2VydmFibGU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+PjtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PjtcbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj47XG4gIHJlYWRvbmx5IHF1ZXJ5Q2hhbmdlV2F0Y2hlciQ6IE9ic2VydmFibGU8SXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyPFQ+PjtcblxuICAvKipcbiAgICogUmVzdGFydHMgdGhlIGxvYWRlciBhbmQgcmVmcmVzaGVzIGl0ZW1zIGZyb20gdGhlIGJlZ2lubmluZy5cbiAgICovXG4gIHJlc3RhcnQoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCB0eXBlIHRoYXQgbG9hZHMgbW9kZWxzIGZyb20gYSBjb25maWd1cmVkIGNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyPFQgPSB1bmtub3duPiBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yPFQ+IHtcbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHBhZ2VzIHRvIGxvYWQgZnJvbSB0aGUgaW50ZXJhdGlvbi5cbiAgICpcbiAgICogQ2hhbmdpbmcgdGhpcyB1cGRhdGVzIHRoZSBpdGVyYXRpb24sIGJ1dCBkb2VzIG5vdCByZXNldCBpdC5cbiAgICovXG4gIG1heFBhZ2VzOiBNYXliZTxudW1iZXI+O1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgaXRlbXMgdG8gbG9hZCBwZXIgcGFnZS5cbiAgICpcbiAgICogQ2hhbmdpbmcgdGhpcyB3aWxsIHJlc2V0IHRoZSBpdGVyYXRpb24uXG4gICAqL1xuICBpdGVtc1BlclBhZ2U6IE1heWJlPG51bWJlcj47XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbnN0cmFpbnRzIG9uIHRoZSBtb2RlbCBsb2FkZXIuXG4gICAqXG4gICAqIEBwYXJhbSBjb25zdHJhaW50c1xuICAgKi9cbiAgc2V0Q29uc3RyYWludHMoY29uc3RyYWludHM6IE1heWJlPEFycmF5T3JWYWx1ZTxGaXJlc3RvcmVRdWVyeUNvbnN0cmFpbnQ+Pik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIExvYWRzIG1vcmUgaXRlbXMuXG4gICAqL1xuICBuZXh0KCk6IHZvaWQ7XG5cbiAgLy8gTUFSSzogVXRpbGl0eSBGdW5jdGlvbnNcbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IGxvYWRzIHVwIHRvIHRoZSBnaXZlbiBwYWdlIHRoZW4gZW1pdHMgdGhlIHBhZ2UgbnVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0gcGFnZSBQYWdlIG51bWJlciB0byBsb2FkIHRvLlxuICAgKi9cbiAgbG9hZFRvUGFnZShwYWdlOiBQYWdlTnVtYmVyKTogT2JzZXJ2YWJsZTxQYWdlTnVtYmVyPjtcblxuICAvKipcbiAgICogTG9hZHMgcmVzdWx0cyB1bnRpbCBhbGwgcmVzdWx0cyBoYXZlIGJlZW4gbG9hZGVkIG9yIHRoZSBtYXggcGFnZSBsaW1pdCBpcyByZWFjaGVkLlxuICAgKi9cbiAgbG9hZEFsbFJlc3VsdHMoKTogT2JzZXJ2YWJsZTxQYWdlTnVtYmVyPjtcbn1cblxuLy8gTUFSSzogQWNjdW11bGF0b3JcbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyQWNjZXNzb3JXaXRoQWNjdW11bGF0b3I8VCA9IHVua25vd24+IGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyQWNjZXNzb3I8VD4ge1xuICByZWFkb25seSBzbmFwc2hvdEFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5U25hcHNob3RBY2N1bXVsYXRvcjxUPj47XG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yPFQ+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJXaXRoQWNjdW11bGF0b3I8VCA9IHVua25vd24+IGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyPFQ+LCBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcldpdGhBY2N1bXVsYXRvcjxUPiB7XG4gIC8qKlxuICAgKiBMb2FkcyBwYWdlcyB1bnRpbCB0aGUgbnVtYmVyIG9mIHJlc3VsdHMgaGFzIGJlZW4gcmVhY2hlZCwgdGhlbiBlbWl0cyB0aGUgdG90YWwgbnVtYmVyIG9mIHJlc3VsdHMuXG4gICAqL1xuICBsb2FkUGFnZXNVbnRpbFJlc3VsdHNDb3VudChtYXhSZXN1bHRzQ291bnQ6IG51bWJlciwgY291bnRGdW5jdGlvbj86IEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50RnVuY3Rpb248VD4pOiBPYnNlcnZhYmxlPEl0ZW1BY2N1bXVsYXRvck5leHRQYWdlVW50aWxSZXN1bHRzQ291bnRSZXN1bHQ+O1xufVxuIl19
|
|
@@ -35,18 +35,28 @@ export class AbstractDbxFirebaseCollectionStore extends LockSetComponentStore {
|
|
|
35
35
|
this.constraints$ = this.loader$.pipe(switchMap((x) => x.constraints$));
|
|
36
36
|
this.firestoreIteration$ = this.loader$.pipe(switchMap((x) => x.firestoreIteration$));
|
|
37
37
|
this.queryChangeWatcher$ = this.loader$.pipe(switchMap((x) => x.queryChangeWatcher$));
|
|
38
|
-
this.accumulator$ = this.loader$.pipe(switchMap((x) => x.accumulator$));
|
|
39
38
|
this.pageLoadingState$ = this.loader$.pipe(switchMap((x) => x.pageLoadingState$));
|
|
39
|
+
this.snapshotAccumulator$ = this.loader$.pipe(switchMap((x) => x.snapshotAccumulator$));
|
|
40
|
+
this.accumulator$ = this.loader$.pipe(switchMap((x) => x.accumulator$));
|
|
40
41
|
this.hasDocuments$ = this.loader$.pipe(switchMap((x) => x.hasDocuments$));
|
|
41
42
|
this.allDocumentRefs$ = this.loader$.pipe(switchMap((x) => x.allDocumentRefs$));
|
|
42
43
|
this.allDocuments$ = this.loader$.pipe(switchMap((x) => x.allDocuments$));
|
|
43
44
|
this.allDocumentData$ = this.loader$.pipe(switchMap((x) => x.allDocumentData$));
|
|
44
45
|
this.setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
|
|
45
46
|
}
|
|
47
|
+
loadToPage(page) {
|
|
48
|
+
return this.loader$.pipe(switchMap((x) => x.loadToPage(page)));
|
|
49
|
+
}
|
|
50
|
+
loadPagesUntilResultsCount(maxResultsCount, countFunction) {
|
|
51
|
+
return this.loader$.pipe(switchMap((x) => x.loadPagesUntilResultsCount(maxResultsCount, countFunction)));
|
|
52
|
+
}
|
|
53
|
+
loadAllResults() {
|
|
54
|
+
return this.loader$.pipe(switchMap((x) => x.loadAllResults()));
|
|
55
|
+
}
|
|
46
56
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
47
57
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore }); }
|
|
48
58
|
}
|
|
49
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, decorators: [{
|
|
50
60
|
type: Injectable
|
|
51
61
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQWdCLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0gsT0FBTyxFQUFxQixrQkFBa0IsRUFBd0IsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBdUMsbUNBQW1DLEVBQTJDLE1BQU0seUNBQXlDLENBQUM7O0FBa0M1SyxNQUFNLE9BQU8sa0NBQW9NLFNBQVEscUJBQXdCO0lBRGpQOztRQUVFLGdCQUFnQjtRQUNQLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWdDLEVBQUUsRUFBRTtZQUN0RSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBRU0sb0JBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBZ0MsRUFBRSxFQUFFO1lBQzFFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakgsQ0FBQyxDQUFDLENBQUM7UUFFTSxtQkFBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFnRSxFQUFFLEVBQUU7WUFDekcsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUcsQ0FBQyxDQUFDLENBQUM7UUFFTSxTQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXVCLEVBQUUsRUFBRTtZQUN0RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQ3JCLENBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFTSxZQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXVCLEVBQUUsRUFBRTtZQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ3hCLENBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxrQkFBa0I7UUFDVCxnQ0FBMkIsR0FBcUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQ2pDLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8seUJBQW9CLEdBQThDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUV2SCxZQUFPLEdBQTBELElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQzdHLFNBQVMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNkLEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1IsbUNBQW1DLENBQUM7WUFDbEMsVUFBVTtZQUNWLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUNwQixZQUFZLEVBQUUsQ0FBQyxDQUFDLFlBQVk7WUFDNUIsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO1NBQzNCLENBQUMsQ0FDSCxDQUNGLENBQ0YsRUFDRCxrQkFBa0IsRUFBRSxFQUNwQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLGlCQUFZLEdBQThELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDOUgsd0JBQW1CLEdBQXNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUNwSSx3QkFBbUIsR0FBa0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ2hJLGlCQUFZLEdBQWdELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDaEgsc0JBQWlCLEdBQWtFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUU1SSxrQkFBYSxHQUF3QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzFGLHFCQUFnQixHQUF1QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDL0csa0JBQWEsR0FBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN0RixxQkFBZ0IsR0FBOEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRXRILDJCQUFzQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsbUJBQXFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN2SzsrR0E1RVksa0NBQWtDO21IQUFsQyxrQ0FBa0M7OzRGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YnNjcmlwdGlvbiwgZXhoYXVzdE1hcCwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3IsIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZSwgRmlyZXN0b3JlUXVlcnlDb25zdHJhaW50LCBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIsIERvY3VtZW50RGF0YVdpdGhJZEFuZEtleSwgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlT3JWYWx1ZSwgY2xlYW51cERlc3Ryb3lhYmxlLCBQYWdlTGlzdExvYWRpbmdTdGF0ZSwgZmlsdGVyTWF5YmUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IExvY2tTZXRDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlLCBkYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZSwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhIH0gZnJvbSAnLi4vLi4vbG9hZGVyL2NvbGxlY3Rpb24ubG9hZGVyLmluc3RhbmNlJztcbmltcG9ydCB7IERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckFjY2Vzc29yIH0gZnJvbSAnLi4vLi4vbG9hZGVyL2NvbGxlY3Rpb24ubG9hZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4gZXh0ZW5kcyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcjxUPiwgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2VEYXRhPFQsIEQ+IHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PjtcbiAgcmVhZG9ubHkgbG9hZGVyJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZTxULCBEPj47XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PjtcbiAgcmVhZG9ubHkgcXVlcnlDaGFuZ2VXYXRjaGVyJDogT2JzZXJ2YWJsZTxJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXI8VD4+O1xuICByZWFkb25seSBhY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPj47XG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+O1xuXG4gIHJlYWRvbmx5IGhhc0RvY3VtZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT47XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdPjtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnREYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT47XG5cbiAgc2V0TWF4UGFnZXMob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRJdGVtc1BlclBhZ2Uob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRDb25zdHJhaW50cyhvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+Pik6IFN1YnNjcmlwdGlvbjtcbiAgbmV4dChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8dm9pZD4pOiB2b2lkO1xuICByZXN0YXJ0KG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTx2b2lkPik6IHZvaWQ7XG5cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PikgPT4gU3Vic2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4ge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uPzogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+O1xuICByZWFkb25seSBtYXhQYWdlcz86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZT86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzPzogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVDb250ZXh0U3RhdGU8VCwgRD4+IGV4dGVuZHMgTG9ja1NldENvbXBvbmVudFN0b3JlPEM+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4ge1xuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHNldE1heFBhZ2VzID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPE1heWJlPG51bWJlcj4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoc3dpdGNoTWFwKChtYXhQYWdlcykgPT4gdGhpcy5sb2FkZXIkLnBpcGUodGFwKCh4KSA9PiAoeC5tYXhQYWdlcyA9IG1heFBhZ2VzKSkpKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNldEl0ZW1zUGVyUGFnZSA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxudW1iZXI+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKHN3aXRjaE1hcCgoaXRlbXNQZXJQYWdlKSA9PiB0aGlzLmxvYWRlciQucGlwZSh0YXAoKHgpID0+ICh4Lml0ZW1zUGVyUGFnZSA9IGl0ZW1zUGVyUGFnZSkpKSkpO1xuICB9KTtcblxuICByZWFkb25seSBzZXRDb25zdHJhaW50cyA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoc3dpdGNoTWFwKChjb25zdHJhaW50cykgPT4gdGhpcy5sb2FkZXIkLnBpcGUodGFwKCh4KSA9PiB4LnNldENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKSkpKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG5leHQgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5sb2FkZXIkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHgubmV4dCgpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmVzdGFydCA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmxvYWRlciQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4geC5yZXN0YXJ0KCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICAvLyBNQVJLOiBBY2Nlc3NvcnNcbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5maXJlc3RvcmVDb2xsZWN0aW9uKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBsb2FkZXIkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+PiA9IHRoaXMuY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uKSA9PlxuICAgICAgdGhpcy5zdGF0ZSQucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgbWFwKCh4KSA9PlxuICAgICAgICAgIGRieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBtYXhQYWdlczogeC5tYXhQYWdlcyxcbiAgICAgICAgICAgIGl0ZW1zUGVyUGFnZTogeC5pdGVtc1BlclBhZ2UsXG4gICAgICAgICAgICBjb25zdHJhaW50czogeC5jb25zdHJhaW50c1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb25zdHJhaW50cyQ6IE9ic2VydmFibGU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5jb25zdHJhaW50cyQpKTtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5maXJlc3RvcmVJdGVyYXRpb24kKSk7XG4gIHJlYWRvbmx5IHF1ZXJ5Q2hhbmdlV2F0Y2hlciQ6IE9ic2VydmFibGU8SXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5xdWVyeUNoYW5nZVdhdGNoZXIkKSk7XG4gIHJlYWRvbmx5IGFjY3VtdWxhdG9yJDogT2JzZXJ2YWJsZTxGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hY2N1bXVsYXRvciQpKTtcbiAgcmVhZG9ubHkgcGFnZUxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8UGFnZUxpc3RMb2FkaW5nU3RhdGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+Pj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgucGFnZUxvYWRpbmdTdGF0ZSQpKTtcblxuICByZWFkb25seSBoYXNEb2N1bWVudHMkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4Lmhhc0RvY3VtZW50cyQpKTtcbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnRSZWZzJDogT2JzZXJ2YWJsZTxEb2N1bWVudFJlZmVyZW5jZTxUPltdPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hbGxEb2N1bWVudFJlZnMkKSk7XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50cyQ6IE9ic2VydmFibGU8RFtdPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hbGxEb2N1bWVudHMkKSk7XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50RGF0YSQ6IE9ic2VydmFibGU8RG9jdW1lbnREYXRhV2l0aElkQW5kS2V5PFQ+W10+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmFsbERvY3VtZW50RGF0YSQpKTtcblxuICByZWFkb25seSBzZXRGaXJlc3RvcmVDb2xsZWN0aW9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbjogRmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4gfCBudWxsIHwgdW5kZWZpbmVkKSA9PiAoeyAuLi5zdGF0ZSwgZmlyZXN0b3JlQ29sbGVjdGlvbiB9KSk7XG59XG4iXX0=
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvc3RvcmUvc3RvcmUuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsb0JBQW9CLEVBQWdCLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0gsT0FBTyxFQUFxQixrQkFBa0IsRUFBd0IsV0FBVyxFQUFrRCxNQUFNLGVBQWUsQ0FBQztBQUV6SixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQXVDLG1DQUFtQyxFQUEyQyxNQUFNLHlDQUF5QyxDQUFDOztBQXNDNUssTUFBTSxPQUFPLGtDQUFvTSxTQUFRLHFCQUF3QjtJQURqUDs7UUFFRSxnQkFBZ0I7UUFDUCxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFnQyxFQUFFLEVBQUU7WUFDdEUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRyxDQUFDLENBQUMsQ0FBQztRQUVNLG9CQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWdDLEVBQUUsRUFBRTtZQUMxRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxD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Z0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBRXRILDJCQUFzQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsbUJBQXFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztLQWF2SztJQVhDLFVBQVUsQ0FBQyxJQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELDBCQUEwQixDQUFDLGVBQXVCLEVBQUUsYUFBNEY7UUFDOUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzsrR0F4RlUsa0NBQWtDO21IQUFsQyxrQ0FBa0M7OzRGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YnNjcmlwdGlvbiwgZXhoYXVzdE1hcCwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpcmViYXNlUXVlcnlJdGVtQWNjdW11bGF0b3IsIEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlLCBGaXJlc3RvcmVEb2N1bWVudCwgRmlyZXN0b3JlSXRlbVBhZ2VJdGVyYXRpb25JbnN0YW5jZSwgRmlyZXN0b3JlUXVlcnlDb25zdHJhaW50LCBJdGVyYXRpb25RdWVyeURvY0NoYW5nZVdhdGNoZXIsIERvY3VtZW50RGF0YVdpdGhJZEFuZEtleSwgRG9jdW1lbnRSZWZlcmVuY2UsIEZpcmViYXNlUXVlcnlTbmFwc2hvdEFjY3VtdWxhdG9yLCBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU9yVmFsdWUsIGNsZWFudXBEZXN0cm95YWJsZSwgUGFnZUxpc3RMb2FkaW5nU3RhdGUsIGZpbHRlck1heWJlLCBJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50UmVzdWx0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBBcnJheU9yVmFsdWUsIE1heWJlLCBQYWdlTnVtYmVyIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBMb2NrU2V0Q29tcG9uZW50U3RvcmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJJbnN0YW5jZSwgZGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2UsIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlRGF0YSB9IGZyb20gJy4uLy4uL2xvYWRlci9jb2xsZWN0aW9uLmxvYWRlci5pbnN0YW5jZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUNvbGxlY3Rpb25Mb2FkZXJBY2Nlc3NvcldpdGhBY2N1bXVsYXRvciB9IGZyb20gJy4uLy4uL2xvYWRlci9jb2xsZWN0aW9uLmxvYWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRCBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50PFQ+ID0gRmlyZXN0b3JlRG9jdW1lbnQ8VD4+IGV4dGVuZHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVyQWNjZXNzb3JXaXRoQWNjdW11bGF0b3I8VD4sIERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlRGF0YTxULCBEPiB7XG4gIHJlYWRvbmx5IGZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pj47XG4gIHJlYWRvbmx5IGxvYWRlciQ6IE9ic2VydmFibGU8RGJ4RmlyZWJhc2VDb2xsZWN0aW9uTG9hZGVySW5zdGFuY2U8VCwgRD4+O1xuXG4gIHJlYWRvbmx5IGhhc0RvY3VtZW50cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBkb2N1bWVudCByZWZlcmVuY2VzIGxvYWRlZCBieSB0aGUgYWNjdW11bGF0b3IuXG4gICAqL1xuICByZWFkb25seSBhbGxEb2N1bWVudFJlZnMkOiBPYnNlcnZhYmxlPERvY3VtZW50UmVmZXJlbmNlPFQ+W10+O1xuICAvKipcbiAgICogUmV0dXJucyBhbGwgZG9jdW1lbnRzIGxvYWRlZCBieSB0aGUgYWNjb211bGF0b3IuXG4gICAqL1xuICByZWFkb25seSBhbGxEb2N1bWVudHMkOiBPYnNlcnZhYmxlPERbXT47XG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBkb2N1bWVudHMgZGF0YSBsb2FkZWQgYnkgdGhlIGFjY3VtdWxhdG9yLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxsRG9jdW1lbnREYXRhJDogT2JzZXJ2YWJsZTxEb2N1bWVudERhdGFXaXRoSWRBbmRLZXk8VD5bXT47XG5cbiAgc2V0TWF4UGFnZXMob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRJdGVtc1BlclBhZ2Uob2JzZXJ2YWJsZU9yVmFsdWU6IE9ic2VydmFibGVPclZhbHVlPE1heWJlPG51bWJlcj4+KTogU3Vic2NyaXB0aW9uO1xuICBzZXRDb25zdHJhaW50cyhvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+Pik6IFN1YnNjcmlwdGlvbjtcbiAgbmV4dChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8dm9pZD4pOiB2b2lkO1xuICByZXN0YXJ0KG9ic2VydmFibGVPclZhbHVlOiBPYnNlcnZhYmxlT3JWYWx1ZTx2b2lkPik6IHZvaWQ7XG5cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbjogKCgpID0+IHZvaWQpIHwgKChvYnNlcnZhYmxlT3JWYWx1ZTogT2JzZXJ2YWJsZU9yVmFsdWU8TWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+PikgPT4gU3Vic2NyaXB0aW9uKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZUNvbnRleHRTdGF0ZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPj4ge1xuICByZWFkb25seSBmaXJlc3RvcmVDb2xsZWN0aW9uPzogTWF5YmU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+O1xuICByZWFkb25seSBtYXhQYWdlcz86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGl0ZW1zUGVyUGFnZT86IE1heWJlPG51bWJlcj47XG4gIHJlYWRvbmx5IGNvbnN0cmFpbnRzPzogTWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWJzdHJhY3REYnhGaXJlYmFzZUNvbGxlY3Rpb25TdG9yZTxULCBEIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQ8VD4gPSBGaXJlc3RvcmVEb2N1bWVudDxUPiwgQyBleHRlbmRzIERieEZpcmViYXNlQ29sbGVjdGlvblN0b3JlQ29udGV4dFN0YXRlPFQsIEQ+ID0gRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmVDb250ZXh0U3RhdGU8VCwgRD4+IGV4dGVuZHMgTG9ja1NldENvbXBvbmVudFN0b3JlPEM+IGltcGxlbWVudHMgRGJ4RmlyZWJhc2VDb2xsZWN0aW9uU3RvcmU8VCwgRD4ge1xuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHNldE1heFBhZ2VzID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPE1heWJlPG51bWJlcj4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoc3dpdGNoTWFwKChtYXhQYWdlcykgPT4gdGhpcy5sb2FkZXIkLnBpcGUodGFwKCh4KSA9PiAoeC5tYXhQYWdlcyA9IG1heFBhZ2VzKSkpKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNldEl0ZW1zUGVyUGFnZSA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxudW1iZXI+PikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKHN3aXRjaE1hcCgoaXRlbXNQZXJQYWdlKSA9PiB0aGlzLmxvYWRlciQucGlwZSh0YXAoKHgpID0+ICh4Lml0ZW1zUGVyUGFnZSA9IGl0ZW1zUGVyUGFnZSkpKSkpO1xuICB9KTtcblxuICByZWFkb25seSBzZXRDb25zdHJhaW50cyA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTxNYXliZTxBcnJheU9yVmFsdWU8RmlyZXN0b3JlUXVlcnlDb25zdHJhaW50Pj4+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoc3dpdGNoTWFwKChjb25zdHJhaW50cykgPT4gdGhpcy5sb2FkZXIkLnBpcGUodGFwKCh4KSA9PiB4LnNldENvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKSkpKSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IG5leHQgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5sb2FkZXIkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHgubmV4dCgpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmVzdGFydCA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmxvYWRlciQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4geC5yZXN0YXJ0KCkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICAvLyBNQVJLOiBBY2Nlc3NvcnNcbiAgcmVhZG9ubHkgY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kOiBPYnNlcnZhYmxlPE1heWJlPEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+Pj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5maXJlc3RvcmVDb2xsZWN0aW9uKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29sbGVjdGlvbiQ6IE9ic2VydmFibGU8RmlyZXN0b3JlQ29sbGVjdGlvbkxpa2U8VCwgRD4+ID0gdGhpcy5jdXJyZW50RmlyZXN0b3JlQ29sbGVjdGlvbiQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBsb2FkZXIkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlPFQsIEQ+PiA9IHRoaXMuY3VycmVudEZpcmVzdG9yZUNvbGxlY3Rpb24kLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb2xsZWN0aW9uKSA9PlxuICAgICAgdGhpcy5zdGF0ZSQucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgbWFwKCh4KSA9PlxuICAgICAgICAgIGRieEZpcmViYXNlQ29sbGVjdGlvbkxvYWRlckluc3RhbmNlKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBtYXhQYWdlczogeC5tYXhQYWdlcyxcbiAgICAgICAgICAgIGl0ZW1zUGVyUGFnZTogeC5pdGVtc1BlclBhZ2UsXG4gICAgICAgICAgICBjb25zdHJhaW50czogeC5jb25zdHJhaW50c1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApLFxuICAgIGNsZWFudXBEZXN0cm95YWJsZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb25zdHJhaW50cyQ6IE9ic2VydmFibGU8TWF5YmU8QXJyYXlPclZhbHVlPEZpcmVzdG9yZVF1ZXJ5Q29uc3RyYWludD4+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5jb25zdHJhaW50cyQpKTtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlSXRlcmF0aW9uJDogT2JzZXJ2YWJsZTxGaXJlc3RvcmVJdGVtUGFnZUl0ZXJhdGlvbkluc3RhbmNlPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5maXJlc3RvcmVJdGVyYXRpb24kKSk7XG4gIHJlYWRvbmx5IHF1ZXJ5Q2hhbmdlV2F0Y2hlciQ6IE9ic2VydmFibGU8SXRlcmF0aW9uUXVlcnlEb2NDaGFuZ2VXYXRjaGVyPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5xdWVyeUNoYW5nZVdhdGNoZXIkKSk7XG4gIHJlYWRvbmx5IHBhZ2VMb2FkaW5nU3RhdGUkOiBPYnNlcnZhYmxlPFBhZ2VMaXN0TG9hZGluZ1N0YXRlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPj4+ID0gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LnBhZ2VMb2FkaW5nU3RhdGUkKSk7XG4gIHJlYWRvbmx5IHNuYXBzaG90QWNjdW11bGF0b3IkOiBPYnNlcnZhYmxlPEZpcmViYXNlUXVlcnlTbmFwc2hvdEFjY3VtdWxhdG9yPFQ+PiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5zbmFwc2hvdEFjY3VtdWxhdG9yJCkpO1xuICByZWFkb25seSBhY2N1bXVsYXRvciQ6IE9ic2VydmFibGU8RmlyZWJhc2VRdWVyeUl0ZW1BY2N1bXVsYXRvcjxUPj4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguYWNjdW11bGF0b3IkKSk7XG5cbiAgcmVhZG9ubHkgaGFzRG9jdW1lbnRzJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5oYXNEb2N1bWVudHMkKSk7XG4gIHJlYWRvbmx5IGFsbERvY3VtZW50UmVmcyQ6IE9ic2VydmFibGU8RG9jdW1lbnRSZWZlcmVuY2U8VD5bXT4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguYWxsRG9jdW1lbnRSZWZzJCkpO1xuICByZWFkb25seSBhbGxEb2N1bWVudHMkOiBPYnNlcnZhYmxlPERbXT4gPSB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguYWxsRG9jdW1lbnRzJCkpO1xuICByZWFkb25seSBhbGxEb2N1bWVudERhdGEkOiBPYnNlcnZhYmxlPERvY3VtZW50RGF0YVdpdGhJZEFuZEtleTxUPltdPiA9IHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5hbGxEb2N1bWVudERhdGEkKSk7XG5cbiAgcmVhZG9ubHkgc2V0RmlyZXN0b3JlQ29sbGVjdGlvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb246IEZpcmVzdG9yZUNvbGxlY3Rpb25MaWtlPFQsIEQ+IHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gKHsgLi4uc3RhdGUsIGZpcmVzdG9yZUNvbGxlY3Rpb24gfSkpO1xuXG4gIGxvYWRUb1BhZ2UocGFnZTogUGFnZU51bWJlcik6IE9ic2VydmFibGU8UGFnZU51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRlciQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHgubG9hZFRvUGFnZShwYWdlKSkpO1xuICB9XG5cbiAgbG9hZFBhZ2VzVW50aWxSZXN1bHRzQ291bnQobWF4UmVzdWx0c0NvdW50OiBudW1iZXIsIGNvdW50RnVuY3Rpb24/OiBGaXJlYmFzZVF1ZXJ5SXRlbUFjY3VtdWxhdG9yTmV4dFBhZ2VVbnRpbFJlc3VsdHNDb3VudEZ1bmN0aW9uPFQ+IHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxJdGVtQWNjdW11bGF0b3JOZXh0UGFnZVVudGlsUmVzdWx0c0NvdW50UmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGVyJC5waXBlKHN3aXRjaE1hcCgoeCkgPT4geC5sb2FkUGFnZXNVbnRpbFJlc3VsdHNDb3VudChtYXhSZXN1bHRzQ291bnQsIGNvdW50RnVuY3Rpb24pKSk7XG4gIH1cblxuICBsb2FkQWxsUmVzdWx0cygpOiBPYnNlcnZhYmxlPFBhZ2VOdW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkZXIkLnBpcGUoc3dpdGNoTWFwKCh4KSA9PiB4LmxvYWRBbGxSZXN1bHRzKCkpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Optional, InjectionToken, Inject, Component, Input, Directive, EventEmitter, Output, NgModule, Injector, ViewChild, HostListener, ElementRef, ChangeDetectionStrategy, forwardRef, Host, Pipe } from '@angular/core';
|
|
3
3
|
import * as i3 from '@dereekb/dbx-analytics';
|
|
4
|
-
import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, lazyFrom, switchMapWhileTrue, loadingStateFromObs, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, pageLoadingStateFromObs, useAsObservable, invertObservableDecision, filterItemsWithObservableDecision, mapEachAsync, distinctUntilModelKeyChange, successResult, beginLoading, errorResult, cleanup, mapLoadingState } from '@dereekb/rxjs';
|
|
4
|
+
import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, lazyFrom, switchMapWhileTrue, loadingStateFromObs, cleanupDestroyable, pageItemAccumulatorCurrentPage, accumulatorFlattenPageListLoadingState, useFirst, itemAccumulatorNextPageUntilResultsCount, iteratorNextPageUntilPage, iteratorNextPageUntilMaxPageLoadLimit, pageLoadingStateFromObs, useAsObservable, invertObservableDecision, filterItemsWithObservableDecision, mapEachAsync, distinctUntilModelKeyChange, successResult, beginLoading, errorResult, cleanup, mapLoadingState } from '@dereekb/rxjs';
|
|
5
5
|
import { switchMap, of, shareReplay, map, distinctUntilChanged, EMPTY, catchError, firstValueFrom, BehaviorSubject, combineLatest, first, from, tap, interval, exhaustMap, filter, take, startWith, Subject, throttleTime, NEVER, combineLatestWith } from 'rxjs';
|
|
6
6
|
import * as i2$2 from '@dereekb/dbx-core';
|
|
7
7
|
import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, AbstractSubscriptionDirective, AbstractIfDirective, DbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance, LockSetComponentStore } from '@dereekb/dbx-core';
|
|
8
8
|
import * as i1 from '@angular/fire/auth';
|
|
9
9
|
import { authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, reauthenticateWithPopup, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
10
|
-
import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, runAsyncTasksForValues, forEachKeyValue, invertDecision, readableError, isMaybeSo, firstValue } from '@dereekb/util';
|
|
10
|
+
import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, runAsyncTasksForValues, forEachKeyValue, countAllInNestedArray, invertDecision, readableError, isMaybeSo, firstValue } from '@dereekb/util';
|
|
11
11
|
import { safeFormatToISO8601DateString, msToSeconds } from '@dereekb/date';
|
|
12
12
|
import { sendPasswordResetEmail } from 'firebase/auth';
|
|
13
13
|
import { getToken, initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
|
|
@@ -2760,6 +2760,7 @@ class DbxFirebaseCollectionLoaderInstance {
|
|
|
2760
2760
|
return documentRefs.map((y) => y.map((z) => accessor.loadDocument(z)));
|
|
2761
2761
|
}), shareReplay(1));
|
|
2762
2762
|
this.accumulator$ = this.firestoreIteration$.pipe(map((x) => firebaseQueryItemAccumulator(x)), cleanupDestroyable(), shareReplay(1));
|
|
2763
|
+
this.accumulatorPage$ = this.accumulator$.pipe(switchMap((x) => pageItemAccumulatorCurrentPage(x)), shareReplay(1));
|
|
2763
2764
|
/**
|
|
2764
2765
|
* Passthrough for currentAllItems$ from the accumulator.
|
|
2765
2766
|
*/
|
|
@@ -2833,6 +2834,20 @@ class DbxFirebaseCollectionLoaderInstance {
|
|
|
2833
2834
|
setCollection(firestoreCollection) {
|
|
2834
2835
|
this.collection = firestoreCollection;
|
|
2835
2836
|
}
|
|
2837
|
+
loadPagesUntilResultsCount(maxResultsLimit, countResultsFunction) {
|
|
2838
|
+
const defaultFn = countAllInNestedArray;
|
|
2839
|
+
return this.accumulator$.pipe(switchMap((accumulator) => itemAccumulatorNextPageUntilResultsCount({
|
|
2840
|
+
accumulator,
|
|
2841
|
+
maxResultsLimit,
|
|
2842
|
+
countResultsFunction: countResultsFunction ?? defaultFn
|
|
2843
|
+
})));
|
|
2844
|
+
}
|
|
2845
|
+
loadToPage(page) {
|
|
2846
|
+
return this.accumulator$.pipe(switchMap((accumulator) => iteratorNextPageUntilPage(accumulator.itemIteration, page)));
|
|
2847
|
+
}
|
|
2848
|
+
loadAllResults() {
|
|
2849
|
+
return this.accumulator$.pipe(switchMap((accumulator) => iteratorNextPageUntilMaxPageLoadLimit(accumulator.itemIteration)));
|
|
2850
|
+
}
|
|
2836
2851
|
}
|
|
2837
2852
|
function dbxFirebaseCollectionLoaderInstance(config) {
|
|
2838
2853
|
return new DbxFirebaseCollectionLoaderInstance(config);
|
|
@@ -3914,14 +3929,24 @@ class AbstractDbxFirebaseCollectionStore extends LockSetComponentStore {
|
|
|
3914
3929
|
this.constraints$ = this.loader$.pipe(switchMap((x) => x.constraints$));
|
|
3915
3930
|
this.firestoreIteration$ = this.loader$.pipe(switchMap((x) => x.firestoreIteration$));
|
|
3916
3931
|
this.queryChangeWatcher$ = this.loader$.pipe(switchMap((x) => x.queryChangeWatcher$));
|
|
3917
|
-
this.accumulator$ = this.loader$.pipe(switchMap((x) => x.accumulator$));
|
|
3918
3932
|
this.pageLoadingState$ = this.loader$.pipe(switchMap((x) => x.pageLoadingState$));
|
|
3933
|
+
this.snapshotAccumulator$ = this.loader$.pipe(switchMap((x) => x.snapshotAccumulator$));
|
|
3934
|
+
this.accumulator$ = this.loader$.pipe(switchMap((x) => x.accumulator$));
|
|
3919
3935
|
this.hasDocuments$ = this.loader$.pipe(switchMap((x) => x.hasDocuments$));
|
|
3920
3936
|
this.allDocumentRefs$ = this.loader$.pipe(switchMap((x) => x.allDocumentRefs$));
|
|
3921
3937
|
this.allDocuments$ = this.loader$.pipe(switchMap((x) => x.allDocuments$));
|
|
3922
3938
|
this.allDocumentData$ = this.loader$.pipe(switchMap((x) => x.allDocumentData$));
|
|
3923
3939
|
this.setFirestoreCollection = this.updater((state, firestoreCollection) => ({ ...state, firestoreCollection }));
|
|
3924
3940
|
}
|
|
3941
|
+
loadToPage(page) {
|
|
3942
|
+
return this.loader$.pipe(switchMap((x) => x.loadToPage(page)));
|
|
3943
|
+
}
|
|
3944
|
+
loadPagesUntilResultsCount(maxResultsCount, countFunction) {
|
|
3945
|
+
return this.loader$.pipe(switchMap((x) => x.loadPagesUntilResultsCount(maxResultsCount, countFunction)));
|
|
3946
|
+
}
|
|
3947
|
+
loadAllResults() {
|
|
3948
|
+
return this.loader$.pipe(switchMap((x) => x.loadAllResults()));
|
|
3949
|
+
}
|
|
3925
3950
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3926
3951
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxFirebaseCollectionStore }); }
|
|
3927
3952
|
}
|