@valtimo/components 12.7.0 → 12.9.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/assets/css/formio-carbon.scss +132 -14
- package/esm2022/lib/components/carbon-list/carbon-list.component.mjs +28 -19
- package/esm2022/lib/components/form-io/formio-value-resolver-selector/formio-value-resolver-selector.component.mjs +1 -1
- package/esm2022/lib/components/multi-input/carbon-multi-input.component.mjs +20 -6
- package/esm2022/lib/components/multi-input/components/key-value-path-selector/key-value-path-selector.component.mjs +2 -2
- package/esm2022/lib/components/multi-input/components/value-path-selector-dropdown-value/value-path-selector-dropdown-value.component.mjs +2 -2
- package/esm2022/lib/components/multi-input/components/value-path-selector-value/value-path-selector-value.component.mjs +2 -2
- package/esm2022/lib/components/status-selector/status-selector.component.mjs +3 -3
- package/esm2022/lib/components/value-path-selector/value-path-selector.component.mjs +62 -22
- package/esm2022/lib/models/value-path-selector.model.mjs +7 -2
- package/esm2022/lib/services/value-path-selector.service.mjs +55 -40
- package/fesm2022/valtimo-components.mjs +165 -83
- package/fesm2022/valtimo-components.mjs.map +1 -1
- package/lib/components/carbon-list/carbon-list.component.d.ts.map +1 -1
- package/lib/components/multi-input/carbon-multi-input.component.d.ts +3 -1
- package/lib/components/multi-input/carbon-multi-input.component.d.ts.map +1 -1
- package/lib/components/value-path-selector/value-path-selector.component.d.ts +13 -7
- package/lib/components/value-path-selector/value-path-selector.component.d.ts.map +1 -1
- package/lib/models/value-path-selector.model.d.ts +17 -2
- package/lib/models/value-path-selector.model.d.ts.map +1 -1
- package/lib/services/value-path-selector.service.d.ts +8 -4
- package/lib/services/value-path-selector.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { BaseApiService } from '@valtimo/config';
|
|
3
|
-
import { BehaviorSubject,
|
|
3
|
+
import { BehaviorSubject, Subscription, interval, map, of, take, tap } from 'rxjs';
|
|
4
|
+
import { ValuePathType, } from '../models';
|
|
4
5
|
import { deepmerge } from 'deepmerge-ts';
|
|
5
6
|
import { isEqual } from 'lodash';
|
|
6
|
-
import { tap } from 'rxjs/operators';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common/http";
|
|
9
9
|
import * as i2 from "@valtimo/config";
|
|
@@ -17,32 +17,6 @@ export class ValuePathSelectorService extends BaseApiService {
|
|
|
17
17
|
this._subscriptions = new Subscription();
|
|
18
18
|
this.openClearCacheSubscription();
|
|
19
19
|
}
|
|
20
|
-
getResolvableKeysPerPrefix(prefixes, documentDefinitionName, version = 'latest') {
|
|
21
|
-
return of(version).pipe(switchMap(version => {
|
|
22
|
-
const prefixesWithCache = prefixes.filter(prefix => !!this.getResultFromCache(prefix, documentDefinitionName, version));
|
|
23
|
-
const resultsFromCache = prefixesWithCache
|
|
24
|
-
.map(prefix => this.getResultFromCache(prefix, documentDefinitionName, version))
|
|
25
|
-
.reduce((acc, curr) => [...acc, ...curr], []);
|
|
26
|
-
const prefixesWithoutCache = prefixes.filter(prefix => !prefixesWithCache.includes(prefix));
|
|
27
|
-
const httpCall = typeof version !== 'number'
|
|
28
|
-
? this.httpClient
|
|
29
|
-
.post(this.getApiUrl(`/management/v1/value-resolver/document-definition/${documentDefinitionName}/keys`), prefixesWithoutCache)
|
|
30
|
-
.pipe(catchError(() => of([])))
|
|
31
|
-
: this.httpClient
|
|
32
|
-
.post(this.getApiUrl(`/management/v1/value-resolver/document-definition/${documentDefinitionName}/version/${version}/keys`), prefixesWithoutCache)
|
|
33
|
-
.pipe(catchError(() => of([])));
|
|
34
|
-
return combineLatest([
|
|
35
|
-
prefixesWithoutCache.length > 0 ? httpCall : of([]),
|
|
36
|
-
of(resultsFromCache),
|
|
37
|
-
]);
|
|
38
|
-
}), tap(([result, resultsFromCache]) => {
|
|
39
|
-
const combinedResults = [...result, ...resultsFromCache];
|
|
40
|
-
prefixes.forEach(prefix => {
|
|
41
|
-
const prefixResults = combinedResults.filter(valuePath => valuePath.includes(prefix));
|
|
42
|
-
this.cacheResult(prefix, documentDefinitionName, version, prefixResults);
|
|
43
|
-
});
|
|
44
|
-
}), map(([result, resultsFromCache]) => [...result, ...resultsFromCache]));
|
|
45
|
-
}
|
|
46
20
|
ngOnDestroy() {
|
|
47
21
|
this._subscriptions.unsubscribe();
|
|
48
22
|
}
|
|
@@ -55,26 +29,67 @@ export class ValuePathSelectorService extends BaseApiService {
|
|
|
55
29
|
getDocumentDefinitionCache() {
|
|
56
30
|
return this._documentDefinitionCache$.asObservable();
|
|
57
31
|
}
|
|
32
|
+
getResolvableKeys(prefixes, documentDefinitionName, type = ValuePathType.FIELD, version = 'latest') {
|
|
33
|
+
this._prefixes = prefixes;
|
|
34
|
+
this._documentDefinitionName = documentDefinitionName;
|
|
35
|
+
this._version = version;
|
|
36
|
+
const url = typeof version !== 'number'
|
|
37
|
+
? `/management/v2/value-resolver/document-definition/${documentDefinitionName}/keys`
|
|
38
|
+
: `/management/v2/value-resolver/document-definition/${documentDefinitionName}/version/${version}/keys`;
|
|
39
|
+
const prefixesWithoutCache = prefixes.filter((prefix) => !this.getCacheResult(prefix, type));
|
|
40
|
+
return (prefixesWithoutCache.length > 0
|
|
41
|
+
? this.httpClient.post(this.getApiUrl(url), {
|
|
42
|
+
prefixes: prefixesWithoutCache,
|
|
43
|
+
type,
|
|
44
|
+
})
|
|
45
|
+
: of([])).pipe(tap((results) => {
|
|
46
|
+
if (type === ValuePathType.FIELD)
|
|
47
|
+
this.cacheMapping(results.map((result) => ({ path: result.path })), type);
|
|
48
|
+
else
|
|
49
|
+
this.cacheMapping(results.reduce((acc, curr) => [...acc, ...this.mapCollectionItem(curr)], []), type);
|
|
50
|
+
}), map(() => prefixes.reduce((acc, curr) => [...acc, ...(this.getCacheResult(curr, type) ?? [])], [])));
|
|
51
|
+
}
|
|
58
52
|
openClearCacheSubscription() {
|
|
59
53
|
this._subscriptions.add(interval(60 * 1000).subscribe(() => {
|
|
60
54
|
this._cache = {};
|
|
61
55
|
this._documentDefinitionCache$.next(null);
|
|
62
56
|
}));
|
|
63
57
|
}
|
|
64
|
-
|
|
65
|
-
return this._cache[
|
|
58
|
+
getCacheResult(prefix, type) {
|
|
59
|
+
return this._cache[this._documentDefinitionName]?.[this._version]?.[prefix]?.[type];
|
|
60
|
+
}
|
|
61
|
+
mapCollectionItem(item, parentPath) {
|
|
62
|
+
const fieldChildren = [];
|
|
63
|
+
const collectionChildren = [];
|
|
64
|
+
item.children.forEach((child) => {
|
|
65
|
+
if (child.type === ValuePathType.FIELD)
|
|
66
|
+
fieldChildren.push(child);
|
|
67
|
+
else
|
|
68
|
+
collectionChildren.push(child);
|
|
69
|
+
});
|
|
70
|
+
return [
|
|
71
|
+
{
|
|
72
|
+
path: `${parentPath ?? ''}${item.path}`,
|
|
73
|
+
children: fieldChildren.map((child) => child.path),
|
|
74
|
+
},
|
|
75
|
+
...collectionChildren.reduce((acc, curr) => [...acc, ...this.mapCollectionItem(curr, `${parentPath ?? ''}${item.path}`)], []),
|
|
76
|
+
];
|
|
66
77
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
cacheMapping(results, type) {
|
|
79
|
+
if (!results.length)
|
|
80
|
+
return;
|
|
81
|
+
const prefixResults = this._prefixes.reduce((acc, curr) => ({
|
|
82
|
+
...acc,
|
|
83
|
+
[curr]: {
|
|
84
|
+
[type]: results.filter((result) => result.path.split(':')[0] === curr),
|
|
85
|
+
},
|
|
86
|
+
}), {});
|
|
87
|
+
const tempCache = {
|
|
88
|
+
[this._documentDefinitionName]: {
|
|
89
|
+
[this._version]: prefixResults,
|
|
73
90
|
},
|
|
74
91
|
};
|
|
75
|
-
|
|
76
|
-
this._cache = deepmerge(this._cache, resultCacheObject);
|
|
77
|
-
}
|
|
92
|
+
this._cache = deepmerge(this._cache, tempCache);
|
|
78
93
|
}
|
|
79
94
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
95
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePathSelectorService, providedIn: 'root' }); }
|
|
@@ -85,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
85
100
|
providedIn: 'root',
|
|
86
101
|
}]
|
|
87
102
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGF0aC1zZWxlY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvdmFsdWUtcGF0aC1zZWxlY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLFFBQVEsRUFDUixHQUFHLEVBRUgsRUFBRSxFQUNGLFlBQVksRUFDWixTQUFTLEVBQ1QsSUFBSSxHQUNMLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUV2QyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQy9CLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUtuQyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsY0FBYztJQU0xRCxZQUNxQixVQUFzQixFQUN0QixhQUE0QjtRQUUvQyxLQUFLLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSGQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVB6QyxXQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUNwQyw4QkFBeUIsR0FBRyxJQUFJLGVBQWUsQ0FBNkIsSUFBSSxDQUFDLENBQUM7UUFFekUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBT25ELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSwwQkFBMEIsQ0FDL0IsUUFBbUMsRUFDbkMsc0JBQThCLEVBQzlCLFVBQW9DLFFBQVE7UUFFNUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNyQixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUN2QyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUM3RSxDQUFDO1lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUI7aUJBQ3ZDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLENBQUM7aUJBQy9FLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNoRCxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzVGLE1BQU0sUUFBUSxHQUNaLE9BQU8sT0FBTyxLQUFLLFFBQVE7Z0JBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVTtxQkFDWixJQUFJLENBRUgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxREFBcUQsc0JBQXNCLE9BQU8sQ0FBQyxFQUFFLG9CQUFvQixDQUFDO3FCQUMxSCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7cUJBQ1osSUFBSSxDQUVILElBQUksQ0FBQyxTQUFTLENBQUMscURBQXFELHNCQUFzQixZQUFZLE9BQU8sT0FBTyxDQUFDLEVBQUUsb0JBQW9CLENBQUM7cUJBQzdJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4QyxPQUFPLGFBQWEsQ0FBQztnQkFDbkIsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxFQUFFLENBQUMsZ0JBQWdCLENBQUM7YUFDckIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3pELFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLHNCQUFzQixFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQ3RFLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxLQUEwQjtRQUMxRCxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7Z0JBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsUUFBUSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsTUFBYyxFQUNkLHNCQUE4QixFQUM5QixVQUFvQyxRQUFRO1FBRTVDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDMUUsQ0FBQztJQUVPLFdBQVcsQ0FDakIsTUFBYyxFQUNkLHNCQUE4QixFQUM5QixVQUFvQyxRQUFRLEVBQzVDLE1BQWdCO1FBRWhCLE1BQU0saUJBQWlCLEdBQTJCO1lBQ2hELENBQUMsc0JBQXNCLENBQUMsRUFBRTtnQkFDeEIsQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDVCxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN0RSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7K0dBekdVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZUFwaVNlcnZpY2UsIENvbmZpZ1NlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGludGVydmFsLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1ZhbHVlUGF0aFNlbGVjdG9yQ2FjaGUsIFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4LCBWYWx1ZVBhdGhWZXJzaW9uQXJndW1lbnR9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge2RlZXBtZXJnZX0gZnJvbSAnZGVlcG1lcmdlLXRzJztcbmltcG9ydCB7RG9jdW1lbnREZWZpbml0aW9uc30gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFZhbHVlUGF0aFNlbGVjdG9yU2VydmljZSBleHRlbmRzIEJhc2VBcGlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY2FjaGU6IFZhbHVlUGF0aFNlbGVjdG9yQ2FjaGUgPSB7fTtcbiAgcHJpdmF0ZSBfZG9jdW1lbnREZWZpbml0aW9uQ2FjaGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEb2N1bWVudERlZmluaXRpb25zIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuICApIHtcbiAgICBzdXBlcihodHRwQ2xpZW50LCBjb25maWdTZXJ2aWNlKTtcbiAgICB0aGlzLm9wZW5DbGVhckNhY2hlU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVzb2x2YWJsZUtleXNQZXJQcmVmaXgoXG4gICAgcHJlZml4ZXM6IFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4W10sXG4gICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIHZlcnNpb246IFZhbHVlUGF0aFZlcnNpb25Bcmd1bWVudCA9ICdsYXRlc3QnXG4gICk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gb2YodmVyc2lvbikucGlwZShcbiAgICAgIHN3aXRjaE1hcCh2ZXJzaW9uID0+IHtcbiAgICAgICAgY29uc3QgcHJlZml4ZXNXaXRoQ2FjaGUgPSBwcmVmaXhlcy5maWx0ZXIoXG4gICAgICAgICAgcHJlZml4ID0+ICEhdGhpcy5nZXRSZXN1bHRGcm9tQ2FjaGUocHJlZml4LCBkb2N1bWVudERlZmluaXRpb25OYW1lLCB2ZXJzaW9uKVxuICAgICAgICApO1xuICAgICAgICBjb25zdCByZXN1bHRzRnJvbUNhY2hlID0gcHJlZml4ZXNXaXRoQ2FjaGVcbiAgICAgICAgICAubWFwKHByZWZpeCA9PiB0aGlzLmdldFJlc3VsdEZyb21DYWNoZShwcmVmaXgsIGRvY3VtZW50RGVmaW5pdGlvbk5hbWUsIHZlcnNpb24pKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4gWy4uLmFjYywgLi4uY3Vycl0sIFtdKTtcbiAgICAgICAgY29uc3QgcHJlZml4ZXNXaXRob3V0Q2FjaGUgPSBwcmVmaXhlcy5maWx0ZXIocHJlZml4ID0+ICFwcmVmaXhlc1dpdGhDYWNoZS5pbmNsdWRlcyhwcmVmaXgpKTtcbiAgICAgICAgY29uc3QgaHR0cENhbGwgPVxuICAgICAgICAgIHR5cGVvZiB2ZXJzaW9uICE9PSAnbnVtYmVyJ1xuICAgICAgICAgICAgPyB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgICAgICAucG9zdDxcbiAgICAgICAgICAgICAgICAgIHN0cmluZ1tdXG4gICAgICAgICAgICAgICAgPih0aGlzLmdldEFwaVVybChgL21hbmFnZW1lbnQvdjEvdmFsdWUtcmVzb2x2ZXIvZG9jdW1lbnQtZGVmaW5pdGlvbi8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L2tleXNgKSwgcHJlZml4ZXNXaXRob3V0Q2FjaGUpXG4gICAgICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpKVxuICAgICAgICAgICAgOiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgICAgICAucG9zdDxcbiAgICAgICAgICAgICAgICAgIHN0cmluZ1tdXG4gICAgICAgICAgICAgICAgPih0aGlzLmdldEFwaVVybChgL21hbmFnZW1lbnQvdjEvdmFsdWUtcmVzb2x2ZXIvZG9jdW1lbnQtZGVmaW5pdGlvbi8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L3ZlcnNpb24vJHt2ZXJzaW9ufS9rZXlzYCksIHByZWZpeGVzV2l0aG91dENhY2hlKVxuICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgIHByZWZpeGVzV2l0aG91dENhY2hlLmxlbmd0aCA+IDAgPyBodHRwQ2FsbCA6IG9mKFtdKSxcbiAgICAgICAgICBvZihyZXN1bHRzRnJvbUNhY2hlKSxcbiAgICAgICAgXSk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoW3Jlc3VsdCwgcmVzdWx0c0Zyb21DYWNoZV0pID0+IHtcbiAgICAgICAgY29uc3QgY29tYmluZWRSZXN1bHRzID0gWy4uLnJlc3VsdCwgLi4ucmVzdWx0c0Zyb21DYWNoZV07XG4gICAgICAgIHByZWZpeGVzLmZvckVhY2gocHJlZml4ID0+IHtcbiAgICAgICAgICBjb25zdCBwcmVmaXhSZXN1bHRzID0gY29tYmluZWRSZXN1bHRzLmZpbHRlcih2YWx1ZVBhdGggPT4gdmFsdWVQYXRoLmluY2x1ZGVzKHByZWZpeCkpO1xuICAgICAgICAgIHRoaXMuY2FjaGVSZXN1bHQocHJlZml4LCBkb2N1bWVudERlZmluaXRpb25OYW1lLCB2ZXJzaW9uLCBwcmVmaXhSZXN1bHRzKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoW3Jlc3VsdCwgcmVzdWx0c0Zyb21DYWNoZV0pID0+IFsuLi5yZXN1bHQsIC4uLnJlc3VsdHNGcm9tQ2FjaGVdKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIHNldERvY3VtZW50RGVmaW5pdGlvbkNhY2hlKGNhY2hlOiBEb2N1bWVudERlZmluaXRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5fZG9jdW1lbnREZWZpbml0aW9uQ2FjaGUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGN1cnJlbnRDYWNoZSA9PiB7XG4gICAgICBpZiAoIWlzRXF1YWwoY2FjaGUsIGN1cnJlbnRDYWNoZSkpIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbkNhY2hlJC5uZXh0KGNhY2hlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREb2N1bWVudERlZmluaXRpb25DYWNoZSgpOiBPYnNlcnZhYmxlPERvY3VtZW50RGVmaW5pdGlvbnMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbkNhY2hlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNsZWFyQ2FjaGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBpbnRlcnZhbCg2MCAqIDEwMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NhY2hlID0ge307XG4gICAgICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbkNhY2hlJC5uZXh0KG51bGwpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZXN1bHRGcm9tQ2FjaGUoXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIHZlcnNpb246IFZhbHVlUGF0aFZlcnNpb25Bcmd1bWVudCA9ICdsYXRlc3QnXG4gICk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlW2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdPy5bdmVyc2lvbl0/LltwcmVmaXhdIHx8IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNhY2hlUmVzdWx0KFxuICAgIHByZWZpeDogc3RyaW5nLFxuICAgIGRvY3VtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBWYWx1ZVBhdGhWZXJzaW9uQXJndW1lbnQgPSAnbGF0ZXN0JyxcbiAgICByZXN1bHQ6IHN0cmluZ1tdXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHJlc3VsdENhY2hlT2JqZWN0OiBWYWx1ZVBhdGhTZWxlY3RvckNhY2hlID0ge1xuICAgICAgW2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdOiB7XG4gICAgICAgIFt2ZXJzaW9uXToge1xuICAgICAgICAgIFtwcmVmaXhdOiByZXN1bHQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuZ2V0UmVzdWx0RnJvbUNhY2hlKHByZWZpeCwgZG9jdW1lbnREZWZpbml0aW9uTmFtZSwgdmVyc2lvbikpIHtcbiAgICAgIHRoaXMuX2NhY2hlID0gZGVlcG1lcmdlKHRoaXMuX2NhY2hlLCByZXN1bHRDYWNoZU9iamVjdCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtcGF0aC1zZWxlY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvdmFsdWUtcGF0aC1zZWxlY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBYyxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3RixPQUFPLEVBS0wsYUFBYSxHQUVkLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdkMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQzs7OztBQUsvQixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsY0FBYztJQVMxRCxZQUNxQixVQUFzQixFQUN0QixhQUE0QjtRQUUvQyxLQUFLLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBSGQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQU56QyxXQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUNwQyw4QkFBeUIsR0FBRyxJQUFJLGVBQWUsQ0FBNkIsSUFBSSxDQUFDLENBQUM7UUFDekUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBT25ELElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLDBCQUEwQixD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QUMsT0FBd0IsRUFBRSxJQUFtQjtRQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRTVCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUN6QyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDZCxHQUFHLEdBQUc7WUFDTixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNOLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQXFCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQzthQUN0RjtTQUNGLENBQUMsRUFDRixFQUFFLENBQ0gsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUEyQjtZQUN4QyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO2dCQUM5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhO2FBQy9CO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQzsrR0FySVUsd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlQXBpU2VydmljZSwgQ29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIGludGVydmFsLCBtYXAsIG9mLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgVmFsdWVQYXRoSXRlbSxcbiAgVmFsdWVQYXRoUmVzcG9uc2UsXG4gIFZhbHVlUGF0aFNlbGVjdG9yQ2FjaGUsXG4gIFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4LFxuICBWYWx1ZVBhdGhUeXBlLFxuICBWYWx1ZVBhdGhWZXJzaW9uQXJndW1lbnQsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge2RlZXBtZXJnZX0gZnJvbSAnZGVlcG1lcmdlLXRzJztcbmltcG9ydCB7RG9jdW1lbnREZWZpbml0aW9uc30gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtpc0VxdWFsfSBmcm9tICdsb2Rhc2gnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVmFsdWVQYXRoU2VsZWN0b3JTZXJ2aWNlIGV4dGVuZHMgQmFzZUFwaVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9wcmVmaXhlczogVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXhbXTtcbiAgcHJpdmF0ZSBfZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF92ZXJzaW9uOiBWYWx1ZVBhdGhWZXJzaW9uQXJndW1lbnQ7XG5cbiAgcHJpdmF0ZSBfY2FjaGU6IFZhbHVlUGF0aFNlbGVjdG9yQ2FjaGUgPSB7fTtcbiAgcHJpdmF0ZSBfZG9jdW1lbnREZWZpbml0aW9uQ2FjaGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEb2N1bWVudERlZmluaXRpb25zIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoaHR0cENsaWVudCwgY29uZmlnU2VydmljZSk7XG4gICAgdGhpcy5vcGVuQ2xlYXJDYWNoZVN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREb2N1bWVudERlZmluaXRpb25DYWNoZShjYWNoZTogRG9jdW1lbnREZWZpbml0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuX2RvY3VtZW50RGVmaW5pdGlvbkNhY2hlJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShjdXJyZW50Q2FjaGUgPT4ge1xuICAgICAgaWYgKCFpc0VxdWFsKGNhY2hlLCBjdXJyZW50Q2FjaGUpKSB0aGlzLl9kb2N1bWVudERlZmluaXRpb25DYWNoZSQubmV4dChjYWNoZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RG9jdW1lbnREZWZpbml0aW9uQ2FjaGUoKTogT2JzZXJ2YWJsZTxEb2N1bWVudERlZmluaXRpb25zIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9kb2N1bWVudERlZmluaXRpb25DYWNoZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVzb2x2YWJsZUtleXMoXG4gICAgcHJlZml4ZXM6IFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4W10sXG4gICAgZG9jdW1lbnREZWZpbml0aW9uTmFtZTogc3RyaW5nLFxuICAgIHR5cGU6IFZhbHVlUGF0aFR5cGUgPSBWYWx1ZVBhdGhUeXBlLkZJRUxELFxuICAgIHZlcnNpb246IFZhbHVlUGF0aFZlcnNpb25Bcmd1bWVudCA9ICdsYXRlc3QnXG4gICk6IE9ic2VydmFibGU8VmFsdWVQYXRoSXRlbVtdPiB7XG4gICAgdGhpcy5fcHJlZml4ZXMgPSBwcmVmaXhlcztcbiAgICB0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lID0gZG9jdW1lbnREZWZpbml0aW9uTmFtZTtcbiAgICB0aGlzLl92ZXJzaW9uID0gdmVyc2lvbjtcblxuICAgIGNvbnN0IHVybCA9XG4gICAgICB0eXBlb2YgdmVyc2lvbiAhPT0gJ251bWJlcidcbiAgICAgICAgPyBgL21hbmFnZW1lbnQvdjIvdmFsdWUtcmVzb2x2ZXIvZG9jdW1lbnQtZGVmaW5pdGlvbi8ke2RvY3VtZW50RGVmaW5pdGlvbk5hbWV9L2tleXNgXG4gICAgICAgIDogYC9tYW5hZ2VtZW50L3YyL3ZhbHVlLXJlc29sdmVyL2RvY3VtZW50LWRlZmluaXRpb24vJHtkb2N1bWVudERlZmluaXRpb25OYW1lfS92ZXJzaW9uLyR7dmVyc2lvbn0va2V5c2A7XG5cbiAgICBjb25zdCBwcmVmaXhlc1dpdGhvdXRDYWNoZTogVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXhbXSA9IHByZWZpeGVzLmZpbHRlcihcbiAgICAgIChwcmVmaXg6IFZhbHVlUGF0aFNlbGVjdG9yUHJlZml4KSA9PiAhdGhpcy5nZXRDYWNoZVJlc3VsdChwcmVmaXgsIHR5cGUpXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICBwcmVmaXhlc1dpdGhvdXRDYWNoZS5sZW5ndGggPiAwXG4gICAgICAgID8gdGhpcy5odHRwQ2xpZW50LnBvc3Q8VmFsdWVQYXRoUmVzcG9uc2VbXT4odGhpcy5nZXRBcGlVcmwodXJsKSwge1xuICAgICAgICAgICAgcHJlZml4ZXM6IHByZWZpeGVzV2l0aG91dENhY2hlLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICB9KVxuICAgICAgICA6IG9mKFtdKVxuICAgICkucGlwZShcbiAgICAgIHRhcCgocmVzdWx0czogVmFsdWVQYXRoUmVzcG9uc2VbXSkgPT4ge1xuICAgICAgICBpZiAodHlwZSA9PT0gVmFsdWVQYXRoVHlwZS5GSUVMRClcbiAgICAgICAgICB0aGlzLmNhY2hlTWFwcGluZyhcbiAgICAgICAgICAgIHJlc3VsdHMubWFwKChyZXN1bHQ6IFZhbHVlUGF0aFJlc3BvbnNlKSA9PiAoe3BhdGg6IHJlc3VsdC5wYXRofSkpLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB0aGlzLmNhY2hlTWFwcGluZyhcbiAgICAgICAgICAgIHJlc3VsdHMucmVkdWNlKChhY2MsIGN1cnIpID0+IFsuLi5hY2MsIC4uLnRoaXMubWFwQ29sbGVjdGlvbkl0ZW0oY3VycildLCBbXSksXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+XG4gICAgICAgIHByZWZpeGVzLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiBbLi4uYWNjLCAuLi4odGhpcy5nZXRDYWNoZVJlc3VsdChjdXJyLCB0eXBlKSA/PyBbXSldLCBbXSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQ2xlYXJDYWNoZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGludGVydmFsKDYwICogMTAwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2FjaGUgPSB7fTtcbiAgICAgICAgdGhpcy5fZG9jdW1lbnREZWZpbml0aW9uQ2FjaGUkLm5leHQobnVsbCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldENhY2hlUmVzdWx0KFxuICAgIHByZWZpeDogVmFsdWVQYXRoU2VsZWN0b3JQcmVmaXgsXG4gICAgdHlwZTogVmFsdWVQYXRoVHlwZVxuICApOiBWYWx1ZVBhdGhJdGVtW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jYWNoZVt0aGlzLl9kb2N1bWVudERlZmluaXRpb25OYW1lXT8uW3RoaXMuX3ZlcnNpb25dPy5bcHJlZml4XT8uW3R5cGVdO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBDb2xsZWN0aW9uSXRlbShpdGVtOiBWYWx1ZVBhdGhSZXNwb25zZSwgcGFyZW50UGF0aD86IHN0cmluZyk6IFZhbHVlUGF0aEl0ZW1bXSB7XG4gICAgY29uc3QgZmllbGRDaGlsZHJlbiA9IFtdO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25DaGlsZHJlbiA9IFtdO1xuXG4gICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogVmFsdWVQYXRoUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChjaGlsZC50eXBlID09PSBWYWx1ZVBhdGhUeXBlLkZJRUxEKSBmaWVsZENoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgZWxzZSBjb2xsZWN0aW9uQ2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBwYXRoOiBgJHtwYXJlbnRQYXRoID8/ICcnfSR7aXRlbS5wYXRofWAsXG4gICAgICAgIGNoaWxkcmVuOiBmaWVsZENoaWxkcmVuLm1hcCgoY2hpbGQ6IFZhbHVlUGF0aFJlc3BvbnNlKSA9PiBjaGlsZC5wYXRoKSxcbiAgICAgIH0sXG4gICAgICAuLi5jb2xsZWN0aW9uQ2hpbGRyZW4ucmVkdWNlKFxuICAgICAgICAoYWNjLCBjdXJyKSA9PiBbLi4uYWNjLCAuLi50aGlzLm1hcENvbGxlY3Rpb25JdGVtKGN1cnIsIGAke3BhcmVudFBhdGggPz8gJyd9JHtpdGVtLnBhdGh9YCldLFxuICAgICAgICBbXVxuICAgICAgKSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWNoZU1hcHBpbmcocmVzdWx0czogVmFsdWVQYXRoSXRlbVtdLCB0eXBlOiBWYWx1ZVBhdGhUeXBlKTogdm9pZCB7XG4gICAgaWYgKCFyZXN1bHRzLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcHJlZml4UmVzdWx0cyA9IHRoaXMuX3ByZWZpeGVzLnJlZHVjZShcbiAgICAgIChhY2MsIGN1cnIpID0+ICh7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgW2N1cnJdOiB7XG4gICAgICAgICAgW3R5cGVdOiByZXN1bHRzLmZpbHRlcigocmVzdWx0OiBWYWx1ZVBhdGhJdGVtKSA9PiByZXN1bHQucGF0aC5zcGxpdCgnOicpWzBdID09PSBjdXJyKSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuXG4gICAgY29uc3QgdGVtcENhY2hlOiBWYWx1ZVBhdGhTZWxlY3RvckNhY2hlID0ge1xuICAgICAgW3RoaXMuX2RvY3VtZW50RGVmaW5pdGlvbk5hbWVdOiB7XG4gICAgICAgIFt0aGlzLl92ZXJzaW9uXTogcHJlZml4UmVzdWx0cyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuX2NhY2hlID0gZGVlcG1lcmdlKHRoaXMuX2NhY2hlLCB0ZW1wQ2FjaGUpO1xuICB9XG59XG4iXX0=
|