@elderbyte/ngx-starter 16.4.5 → 16.4.7
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/components/forms/search/domain/context/search-context.mjs +10 -16
- package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +4 -1
- package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +18 -18
- package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +27 -22
- package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +2 -2
- package/fesm2022/elderbyte-ngx-starter.mjs +46 -44
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/components/forms/search/domain/context/search-context.d.ts +1 -2
- package/lib/components/forms/search/domain/input/search-input-state.d.ts +1 -0
- package/lib/components/forms/search/elder-search-context.directive.d.ts +4 -5
- package/lib/components/forms/search/elder-search-input.directive.d.ts +8 -8
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FilterContext } from '../../../../../common/data/filters/filter-context';
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { combineLatestWith, filter, map, skip, tap } from 'rxjs/operators';
|
|
3
|
+
import { combineLatestWith, distinctUntilChanged, filter, map, skip, tap } from 'rxjs/operators';
|
|
4
4
|
import { FilterUtil } from '../../../../../common/utils/filter-util';
|
|
5
5
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
6
6
|
export class SearchContext {
|
|
@@ -22,12 +22,6 @@ export class SearchContext {
|
|
|
22
22
|
this.userFilterContext = new FilterContext();
|
|
23
23
|
this.forcedFilterContext = new FilterContext();
|
|
24
24
|
this.allFilters$ = new BehaviorSubject(undefined);
|
|
25
|
-
/***************************************************************************
|
|
26
|
-
* *
|
|
27
|
-
* Public API *
|
|
28
|
-
* *
|
|
29
|
-
**************************************************************************/
|
|
30
|
-
this.acceptDefaultFilters = true;
|
|
31
25
|
this.id = id;
|
|
32
26
|
this.userFilterContext.filters.pipe(combineLatestWith(this.forcedFilterContext.filters), skip(1), map(([userFilters, forcedFilters]) => FilterUtil.mergeCombine(userFilters, forcedFilters)), tap(x => this.log.debug('allFilters changed: ', x))).subscribe(merged => this.allFilters$.next(merged));
|
|
33
27
|
}
|
|
@@ -37,7 +31,7 @@ export class SearchContext {
|
|
|
37
31
|
* *
|
|
38
32
|
**************************************************************************/
|
|
39
33
|
get allFiltersChanged() {
|
|
40
|
-
return this.allFilters$.pipe(filter(filters => !!filters));
|
|
34
|
+
return this.allFilters$.pipe(filter(filters => !!filters), distinctUntilChanged((a, b) => FilterUtil.equals(a, b)));
|
|
41
35
|
}
|
|
42
36
|
get userFilters() {
|
|
43
37
|
return this.userFilterContext.filtersSnapshot;
|
|
@@ -48,23 +42,23 @@ export class SearchContext {
|
|
|
48
42
|
get forcedFilters() {
|
|
49
43
|
return this.forcedFilterContext.filtersSnapshot;
|
|
50
44
|
}
|
|
51
|
-
|
|
45
|
+
/***************************************************************************
|
|
46
|
+
* *
|
|
47
|
+
* Public API *
|
|
48
|
+
* *
|
|
49
|
+
**************************************************************************/
|
|
50
|
+
updateUserFiltersSave(filters) {
|
|
52
51
|
// this.log.error('updateDefaultFilters, acceptDefaultFilters: ' + this.acceptDefaultFilters, filters);
|
|
53
|
-
|
|
54
|
-
this.userFilterContext.updateFilters(FilterUtil.strip(filters, this.forcedFilters));
|
|
55
|
-
}
|
|
56
|
-
return this.acceptDefaultFilters;
|
|
52
|
+
this.userFilterContext.updateFilters(FilterUtil.strip(filters, this.forcedFilters));
|
|
57
53
|
}
|
|
58
54
|
updateUserFilters(filters) {
|
|
59
55
|
if (filters.length > 0) {
|
|
60
56
|
// this.log.error('updateUserFilters', filters);
|
|
61
|
-
this.acceptDefaultFilters = false;
|
|
62
57
|
this.userFilterContext.updateFilters(filters);
|
|
63
58
|
}
|
|
64
59
|
}
|
|
65
60
|
replaceUserFilters(filters) {
|
|
66
61
|
// this.log.error('replaceUserFilters', filters);
|
|
67
|
-
this.acceptDefaultFilters = false;
|
|
68
62
|
this.userFilterContext.replaceFilters(filters);
|
|
69
63
|
}
|
|
70
64
|
replaceForcedFilters(filters) {
|
|
@@ -72,4 +66,4 @@ export class SearchContext {
|
|
|
72
66
|
// Maybe clean up existing user filters here
|
|
73
67
|
}
|
|
74
68
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL3NlYXJjaC9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDaEYsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0YsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sYUFBYTtJQUVqQixNQUFNLENBQUMsVUFBVTtRQUN0QixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsRUFBVTtRQXRCWjs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUlyRCxzQkFBaUIsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFFMUMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztRQVd0RSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNqQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQ25ELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQ0QsQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFLENBQy9CLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUN0RCxFQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3BELENBQUMsU0FBUyxDQUNULE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ3hDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDNUIsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxxQkFBcUIsQ0FBQyxPQUFpQjtRQUM1Qyx1R0FBdUc7UUFDdkcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FDbEMsVUFBVSxDQUFDLEtBQUssQ0FDZCxPQUFPLEVBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGlCQUFpQixDQUFDLE9BQWlCO1FBQ3hDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBaUI7UUFDekMsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWlCO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsNENBQTRDO0lBQzlDLENBQUM7Q0FTRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXInO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0V2l0aCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBza2lwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RmlsdGVyVXRpbH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL2ZpbHRlci11dGlsJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29udGV4dCB7XG5cbiAgcHVibGljIHN0YXRpYyBzdGFuZGFsb25lKCk6IFNlYXJjaENvbnRleHQge1xuICAgIHJldHVybiBuZXcgU2VhcmNoQ29udGV4dChudWxsKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJGaWx0ZXJDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JjZWRGaWx0ZXJDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsbEZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4odW5kZWZpbmVkKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nXG4gICkge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LmZpbHRlcnMucGlwZShcbiAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuZm9yY2VkRmlsdGVyQ29udGV4dC5maWx0ZXJzKSxcbiAgICAgIHNraXAoMSksXG4gICAgICBtYXAoXG4gICAgICAgIChbdXNlckZpbHRlcnMsIGZvcmNlZEZpbHRlcnNdKSA9PlxuICAgICAgICAgIEZpbHRlclV0aWwubWVyZ2VDb21iaW5lKHVzZXJGaWx0ZXJzLCBmb3JjZWRGaWx0ZXJzKVxuICAgICAgKSxcbiAgICAgIHRhcCh4ID0+IHRoaXMubG9nLmRlYnVnKCdhbGxGaWx0ZXJzIGNoYW5nZWQ6ICcsIHgpKSxcbiAgICApLnN1YnNjcmliZShcbiAgICAgIG1lcmdlZCA9PiB0aGlzLmFsbEZpbHRlcnMkLm5leHQobWVyZ2VkKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGFsbEZpbHRlcnNDaGFuZ2VkKCk6IE9ic2VydmFibGU8RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxGaWx0ZXJzJC5waXBlKFxuICAgICAgZmlsdGVyKGZpbHRlcnMgPT4gISFmaWx0ZXJzKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBGaWx0ZXJVdGlsLmVxdWFscyhhLCBiKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyRmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyRmlsdGVycyQoKTogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LmZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcmNlZEZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLmZvcmNlZEZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHVwZGF0ZVVzZXJGaWx0ZXJzU2F2ZShmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIC8vIHRoaXMubG9nLmVycm9yKCd1cGRhdGVEZWZhdWx0RmlsdGVycywgYWNjZXB0RGVmYXVsdEZpbHRlcnM6ICcgKyB0aGlzLmFjY2VwdERlZmF1bHRGaWx0ZXJzLCBmaWx0ZXJzKTtcbiAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnMoXG4gICAgICBGaWx0ZXJVdGlsLnN0cmlwKFxuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICB0aGlzLmZvcmNlZEZpbHRlcnNcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVVzZXJGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7IC8vIGNhbGxlZCBieSBzZWFyY2ggaW5wdXRzXG4gICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdGhpcy5sb2cuZXJyb3IoJ3VwZGF0ZVVzZXJGaWx0ZXJzJywgZmlsdGVycyk7XG4gICAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnMoZmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlcGxhY2VVc2VyRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQgeyAvLyBjYWxsZWQgYnkgdXJsIHNlYXJjaFxuICAgIC8vIHRoaXMubG9nLmVycm9yKCdyZXBsYWNlVXNlckZpbHRlcnMnLCBmaWx0ZXJzKTtcbiAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIHJlcGxhY2VGb3JjZWRGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JjZWRGaWx0ZXJDb250ZXh0LnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICAgIC8vIE1heWJlIGNsZWFuIHVwIGV4aXN0aW5nIHVzZXIgZmlsdGVycyBoZXJlXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG59XG4iXX0=
|
|
@@ -68,6 +68,9 @@ export class SearchInputState {
|
|
|
68
68
|
get hasValue() {
|
|
69
69
|
return SearchInputState.isValueDefined(this.queryValue);
|
|
70
70
|
}
|
|
71
|
+
get hasFallbackValue() {
|
|
72
|
+
return this.hasValue && this.pristine;
|
|
73
|
+
}
|
|
71
74
|
/***************************************************************************
|
|
72
75
|
* *
|
|
73
76
|
* Public Api *
|
|
@@ -83,4 +86,4 @@ export class SearchInputState {
|
|
|
83
86
|
return new SearchInputState(this.attribute, value, this.queryKey, pristineNow, true);
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZG9tYWluL2lucHV0L3NlYXJjaC1pbnB1dC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFdEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBRXBCLE1BQU0sQ0FBQyxPQUFPO1FBQ25CLE9BQU8sSUFBSSxnQkFBZ0IsQ0FDekIsSUFBSSxFQUNKLElBQUksRUFDSixJQUFJLEVBQ0osSUFBSSxFQUNKLEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTtJQUVFOztPQUVHO0lBQ2EsU0FBaUI7SUFFakM7O09BRUc7SUFDYSxVQUFvQztJQUVwRDs7T0FFRztJQUNhLFFBQWdCO0lBRWhDOztPQUVHO0lBQ2EsUUFBaUI7SUFFakM7O09BRUc7SUFDYSxTQUFrQjtRQXBCbEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUtqQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtRQUtwQyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBS2hCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFLakIsY0FBUyxHQUFULFNBQVMsQ0FBUztJQUNoQyxDQUFDO0lBRUw7Ozs7Z0ZBSTRFO0lBRXJFLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBK0I7UUFDMUQsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtnQkFDMUIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7Ozs7O09BS0c7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGNBQWMsQ0FBQyxLQUErQixFQUFFLFFBQWtCO1FBRXZFLElBQUksV0FBVyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO2dCQUMvQyxXQUFXLEdBQUcsUUFBUSxDQUFDO2FBQ3hCO1NBQ0Y7UUFFRCxPQUFPLElBQUksZ0JBQWdCLENBQ3pCLElBQUksQ0FBQyxTQUFTLEVBQ2QsS0FBSyxFQUNMLElBQUksQ0FBQyxRQUFRLEVBQ2IsV0FBVyxFQUNYLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztDQUlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYmplY3RzfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21tb24vb2JqZWN0cyc7XG5cbi8qKlxuICogSW1tdXRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzdGF0ZSBvZiBhbiBzZWFyY2ggaW5wdXRcbiAqL1xuZXhwb3J0IGNsYXNzIFNlYXJjaElucHV0U3RhdGUge1xuXG4gIHB1YmxpYyBzdGF0aWMgdW5rbm93bigpOiBTZWFyY2hJbnB1dFN0YXRlIHtcbiAgICByZXR1cm4gbmV3IFNlYXJjaElucHV0U3RhdGUoXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIG51bGwsXG4gICAgICB0cnVlLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG5cbiAgICAvKipcbiAgICAgKiBhdHRyaWJ1dGUgVGhlIG5hbWUgbmFtZVxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyaWJ1dGU6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIHF1ZXJ5VmFsdWUgVGhlIHF1ZXJ5IHZhbHVlIGFzIHN0cmluZy4gU3VwcG9ydHMgbXVsdGkgc3RyaW5nIHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBxdWVyeVZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwsXG5cbiAgICAvKipcbiAgICAgKiBxdWVyeUtleSBUaGUgcXVlcnkga2V5XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHF1ZXJ5S2V5OiBzdHJpbmcsXG5cbiAgICAvKipcbiAgICAgKiBwcmlzdGluZSBIYXMgdGhlIHVzZXIgdG91Y2hlZCB0aGlzP1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBwcmlzdGluZTogYm9vbGVhbixcblxuICAgIC8qKlxuICAgICAqIFdhcyB0aGUgaW5wdXQgY2hhbmdlZCBieSBhIHVzZXIgaW50ZXJhY3Rpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlckV2ZW50OiBib29sZWFuXG4gICkgeyB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBpc1ZhbHVlRGVmaW5lZCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKE9iamVjdHMubm9uTnVsbCh2YWx1ZSkpIHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBzZWFyY2ggaW5wdXQgaGFzIGEgdmFsdWUuXG4gICAqXG4gICAqIFRoZSB2YWx1ZSBtdXN0IG5vdCBiZSBudWxsIGFuZCBpbiBjYXNlIGl0c1xuICAgKiBhbiBhcnJheSwgaXQgbXVzdCBub3QgYmUgZW1wdHkuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTZWFyY2hJbnB1dFN0YXRlLmlzVmFsdWVEZWZpbmVkKHRoaXMucXVlcnlWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0ZhbGxiYWNrVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzVmFsdWUgJiYgdGhpcy5wcmlzdGluZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQXBpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB3aXRoUXVlcnlWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsLCBwcmlzdGluZT86IGJvb2xlYW4pOiBTZWFyY2hJbnB1dFN0YXRlIHtcblxuICAgIGxldCBwcmlzdGluZU5vdyA9IFNlYXJjaElucHV0U3RhdGUuaXNWYWx1ZURlZmluZWQodmFsdWUpO1xuICAgIGlmICghcHJpc3RpbmVOb3cpIHtcbiAgICAgIGlmIChwcmlzdGluZSAhPT0gdW5kZWZpbmVkICYmIHByaXN0aW5lICE9PSBudWxsKSB7XG4gICAgICAgIHByaXN0aW5lTm93ID0gcHJpc3RpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTZWFyY2hJbnB1dFN0YXRlKFxuICAgICAgdGhpcy5hdHRyaWJ1dGUsXG4gICAgICB2YWx1ZSxcbiAgICAgIHRoaXMucXVlcnlLZXksXG4gICAgICBwcmlzdGluZU5vdyxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cblxuXG59XG4iXX0=
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Directive, Input } from '@angular/core';
|
|
2
2
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
3
|
-
import { combineLatestWith, debounceTime, filter, map, switchMap
|
|
4
|
-
import { BehaviorSubject,
|
|
3
|
+
import { combineLatestWith, debounceTime, filter, map, switchMap } from 'rxjs/operators';
|
|
4
|
+
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
5
5
|
import { Filter } from '../../../common/data/filters/filter';
|
|
6
6
|
import { FilterContext } from '../../../common/data/filters/filter-context';
|
|
7
7
|
import { SearchContext } from './domain/context/search-context';
|
|
8
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "./domain/context/search-context.service";
|
|
10
11
|
/**
|
|
@@ -20,21 +21,21 @@ export class ElderSearchContextDirective {
|
|
|
20
21
|
* Constructor *
|
|
21
22
|
* *
|
|
22
23
|
**************************************************************************/
|
|
23
|
-
constructor(searchContextService) {
|
|
24
|
+
constructor(searchContextService, destroyRef) {
|
|
25
|
+
this.destroyRef = destroyRef;
|
|
24
26
|
/***************************************************************************
|
|
25
27
|
* *
|
|
26
28
|
* Fields *
|
|
27
29
|
* *
|
|
28
30
|
**************************************************************************/
|
|
29
31
|
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
30
|
-
this.destroy$ = new Subject();
|
|
31
32
|
this.filtersToApplyAtRegistration = new Map;
|
|
32
33
|
this._searchInputs$ = new BehaviorSubject([]);
|
|
33
34
|
this._searchStates$ = new BehaviorSubject([]);
|
|
34
35
|
this._filterContext$ = new BehaviorSubject(null);
|
|
35
36
|
this._searchContext$ = new BehaviorSubject(SearchContext.standalone());
|
|
36
37
|
this.searchContextId$ = new BehaviorSubject(null);
|
|
37
|
-
this.searchContextId$.pipe(
|
|
38
|
+
this.searchContextId$.pipe(takeUntilDestroyed(this.destroyRef), filter(contextId => !!contextId), map(contextId => searchContextService.context(contextId))).subscribe(ctx => this._searchContext$.next(ctx));
|
|
38
39
|
}
|
|
39
40
|
/***************************************************************************
|
|
40
41
|
* *
|
|
@@ -50,10 +51,6 @@ export class ElderSearchContextDirective {
|
|
|
50
51
|
this.applySearchContextToInputs(searchContext);
|
|
51
52
|
this.syncSearchInputsToSearchContext();
|
|
52
53
|
}
|
|
53
|
-
ngOnDestroy() {
|
|
54
|
-
this.destroy$.next();
|
|
55
|
-
this.destroy$.complete();
|
|
56
|
-
}
|
|
57
54
|
/***************************************************************************
|
|
58
55
|
* *
|
|
59
56
|
* Properties *
|
|
@@ -118,7 +115,9 @@ export class ElderSearchContextDirective {
|
|
|
118
115
|
* Returns the current user touched attributes. (ignoring fallbacks)
|
|
119
116
|
*/
|
|
120
117
|
get userDefinedAttributes$() {
|
|
121
|
-
return this.states$.pipe(map(states => states
|
|
118
|
+
return this.states$.pipe(map(states => states
|
|
119
|
+
.filter(s => !s.pristine)
|
|
120
|
+
.filter(s => !s.hasFallbackValue)));
|
|
122
121
|
}
|
|
123
122
|
/***************************************************************************
|
|
124
123
|
* *
|
|
@@ -160,21 +159,22 @@ export class ElderSearchContextDirective {
|
|
|
160
159
|
}
|
|
161
160
|
}
|
|
162
161
|
applyAsDefaultsUntilUserAction(searchContext, dcFilters) {
|
|
163
|
-
dcFilters.filters.pipe(map(filters => searchContext.
|
|
162
|
+
dcFilters.filters.pipe(takeUntilDestroyed(this.destroyRef), map(filters => searchContext.updateUserFiltersSave(filters))).subscribe();
|
|
164
163
|
}
|
|
165
164
|
syncSearchInputsToSearchContext() {
|
|
166
|
-
this._searchInputs$.pipe(
|
|
165
|
+
this._searchInputs$.pipe(takeUntilDestroyed(this.destroyRef), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe(states => {
|
|
166
|
+
/// this.log.error('SearchInputStates Changed: ', states);
|
|
167
167
|
this._searchStates$.next(states);
|
|
168
168
|
});
|
|
169
169
|
const inputFilters$ = this._searchStates$.pipe(map(states => this.convertToFilters(states)), filter(filters => filters.length > 0));
|
|
170
170
|
inputFilters$
|
|
171
|
-
.pipe(
|
|
171
|
+
.pipe(takeUntilDestroyed(this.destroyRef), combineLatestWith(this._searchContext$))
|
|
172
172
|
.subscribe(([inputFilters, searchContext]) => {
|
|
173
173
|
searchContext.updateUserFilters(inputFilters);
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
176
|
syncSearchContextToBoundFilterContext() {
|
|
177
|
-
this._searchContext$.pipe(
|
|
177
|
+
this._searchContext$.pipe(takeUntilDestroyed(this.destroyRef), switchMap(context => context.allFiltersChanged)).subscribe(allFilters => this.applyToBoundFilterContext(allFilters));
|
|
178
178
|
}
|
|
179
179
|
applyToBoundFilterContext(filters) {
|
|
180
180
|
const filterCtx = this.filterContext;
|
|
@@ -215,11 +215,11 @@ export class ElderSearchContextDirective {
|
|
|
215
215
|
}
|
|
216
216
|
convertToFilters(states) {
|
|
217
217
|
return states
|
|
218
|
-
.filter(s => s.userEvent)
|
|
218
|
+
.filter(s => (s.userEvent || s.hasFallbackValue))
|
|
219
219
|
.filter(s => !!s.queryKey)
|
|
220
220
|
.map(s => new Filter(s.queryKey, s.queryValue));
|
|
221
221
|
}
|
|
222
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: i1.SearchContextService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
222
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: i1.SearchContextService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
223
223
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { searchContextId: "searchContextId", filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters" }, exportAs: ["elderSearchContext"], ngImport: i0 }); }
|
|
224
224
|
}
|
|
225
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
|
|
@@ -228,7 +228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
228
228
|
selector: '[elderSearchContext]',
|
|
229
229
|
exportAs: 'elderSearchContext'
|
|
230
230
|
}]
|
|
231
|
-
}], ctorParameters: function () { return [{ type: i1.SearchContextService }]; }, propDecorators: { searchContextId: [{
|
|
231
|
+
}], ctorParameters: function () { return [{ type: i1.SearchContextService }, { type: i0.DestroyRef }]; }, propDecorators: { searchContextId: [{
|
|
232
232
|
type: Input
|
|
233
233
|
}], filterContext: [{
|
|
234
234
|
type: Input,
|
|
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
236
236
|
}], forcedFilters: [{
|
|
237
237
|
type: Input
|
|
238
238
|
}] } });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0MsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBTSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xILE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFjLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV6RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBRzFFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBRTlEOzs7Ozs7R0FNRztBQUtILE1BQU0sT0FBTywyQkFBMkI7SUFxQnRDOzs7O2dGQUk0RTtJQUU1RSxZQUNFLG9CQUEwQztRQTFCNUM7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsaUNBQTRCLEdBQUcsSUFBSSxHQUFtQixDQUFDO1FBRXZELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFD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QUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7UUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQTBCO1FBQ2pELE9BQU8sTUFBTTthQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDeEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7YUFDekIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQXJSVSwyQkFBMkI7bUdBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjsyR0FvRVksZUFBZTtzQkFEekIsS0FBSztnQkFrQkssYUFBYTtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBMkJoQixhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdFdpdGgsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YWtlV2hpbGUsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dH0gZnJvbSAnLi9kb21haW4vaW5wdXQvc2VhcmNoLWlucHV0JztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHQnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dFN0YXRlfSBmcm9tICcuL2RvbWFpbi9pbnB1dC9zZWFyY2gtaW5wdXQtc3RhdGUnO1xuaW1wb3J0IHtTZWFyY2hDb250ZXh0U2VydmljZX0gZnJvbSAnLi9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7U2VhcmNoQ29udGV4dH0gZnJvbSAnLi9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dCc7XG5cbi8qKlxuICogVGhlIFNlYXJjaENvbnRleHREaXJlY3RpdmUgYmluZHMgYSBncm91cCBvZiBzZWFyY2gtaW5wdXRzXG4gKiB0byBhIFNlYXJjaENvbnRleHQgd2l0aCBhIHR3by13YXkgYmluZGluZy5cbiAqXG4gKiBJdCBhbHNvIGJpbmRzIHRoZSBTZWFyY2hDb250ZXh0IHRvIGEgRmlsdGVyQ29udGV4dCAoRGF0YUNvbnRleHQpLlxuICogVE9ETyBNYXliZSBzZXBhcmF0ZSB0aGlzPz9cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyU2VhcmNoQ29udGV4dF0nLFxuICBleHBvcnRBczogJ2VsZGVyU2VhcmNoQ29udGV4dCdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZpbHRlcnNUb0FwcGx5QXRSZWdpc3RyYXRpb24gPSBuZXcgTWFwPHN0cmluZywgRmlsdGVyPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWFyY2hJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hJbnB1dFtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaFN0YXRlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaElucHV0U3RhdGVbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyQ29udGV4dD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2VhcmNoQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaENvbnRleHQ+KFNlYXJjaENvbnRleHQuc3RhbmRhbG9uZSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hDb250ZXh0SWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlYXJjaENvbnRleHRTZXJ2aWNlOiBTZWFyY2hDb250ZXh0U2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlYXJjaENvbnRleHRJZCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIGZpbHRlcihjb250ZXh0SWQgPT4gISFjb250ZXh0SWQpLFxuICAgICAgbWFwKGNvbnRleHRJZCA9PiBzZWFyY2hDb250ZXh0U2VydmljZS5jb250ZXh0KGNvbnRleHRJZCkpLFxuICAgICkuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLl9zZWFyY2hDb250ZXh0JC5uZXh0KGN0eCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlEZWZhdWx0RmlsdGVyc1RvU2VhcmNoQ29udGV4dCgpO1xuICAgIHRoaXMuc3luY1NlYXJjaENvbnRleHRUb0JvdW5kRmlsdGVyQ29udGV4dCgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hDb250ZXh0ID0gdGhpcy5zZWFyY2hDb250ZXh0O1xuICAgIHRoaXMuYXBwbHlTZWFyY2hDb250ZXh0VG9JbnB1dHMoc2VhcmNoQ29udGV4dCk7XG4gICAgdGhpcy5zeW5jU2VhcmNoSW5wdXRzVG9TZWFyY2hDb250ZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlYXJjaENvbnRleHRJZChjb250ZXh0SWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VhcmNoQ29udGV4dElkJC5uZXh0KGNvbnRleHRJZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlYXJjaENvbnRleHRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaENvbnRleHRJZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VhcmNoQ29udGV4dCQoKTogT2JzZXJ2YWJsZTxTZWFyY2hDb250ZXh0PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaENvbnRleHQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWFyY2hDb250ZXh0KCk6IFNlYXJjaENvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hDb250ZXh0JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KCdlbGRlclNlYXJjaENvbnRleHQnKVxuICBwdWJsaWMgc2V0IGZpbHRlckNvbnRleHQodmFsdWU6IEZpbHRlckNvbnRleHQgfCAnJykge1xuICAgIGxldCBjb250ZXh0OiBGaWx0ZXJDb250ZXh0O1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29udGV4dCA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2cud2FybignSWxsZWdhbCB2YWx1ZSBwcm92aWRlZCBmb3IgcHJvcGVydHkgZmlsdGVyQ29udGV4dDogJywgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIHZhbHVlIHByb3ZpZGVkIGZvciBwcm9wZXJ0eSBmaWx0ZXJDb250ZXh0ISAnICsgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0ID0gRmlsdGVyQ29udGV4dC5lbXB0eSgpO1xuICAgIH1cbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0JC5uZXh0KGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJDb250ZXh0KCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250ZXh0JC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlZCBmaWx0ZXJzIGFyZSBhbHdheXMgbWVyZ2VkIGludG8gdGhlIGZpbmFsIEZpbHRlckNvbnRleHQuXG4gICAqXG4gICAqIFRoaXMgbWVhbnMgdGhleSBvdmVycmlkZSB1c2VyIGRlZmluZWQgZmlsdGVycywgYnV0IGF0dGVtcHRcbiAgICogdG8gYWxzbyBrZWVwIHRoZSB1c2VycyBpbnRlbnQgKGJ5IG1lcmdpbmcpIHRoZW0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZvcmNlZEZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pIHtcbiAgICB0aGlzLnNlYXJjaENvbnRleHQucmVwbGFjZUZvcmNlZEZpbHRlcnMoZmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcmNlZEZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaENvbnRleHQuZm9yY2VkRmlsdGVycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXR0cmlidXRlcygpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0W10+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoSW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXR0cmlidXRlc1NuYXBzaG90KCk6IFNlYXJjaElucHV0W10ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hJbnB1dHMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlcyQoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlW10+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoU3RhdGVzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVzU25hcHNob3QoKTogU2VhcmNoSW5wdXRTdGF0ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoU3RhdGVzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdXNlciB0b3VjaGVkIGF0dHJpYnV0ZXMuIChpZ25vcmluZyBmYWxsYmFja3MpXG4gICAqL1xuICBwdWJsaWMgZ2V0IHVzZXJEZWZpbmVkQXR0cmlidXRlcyQoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlW10+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZXMkLnBpcGUoXG4gICAgICBtYXAoc3RhdGVzID0+IHN0YXRlcy5maWx0ZXIocyA9PiAhcy5wcmlzdGluZSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIG5ldyBzZWFyY2ggbmFtZSBpbiB0aGlzIGNvbnRhaW5lclxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyKHNlYXJjaElucHV0OiBTZWFyY2hJbnB1dCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9zZWFyY2hJbnB1dHMkLmdldFZhbHVlKCk7XG4gICAgY29uc3QgdG9BcHBseSA9IHRoaXMuZmlsdGVyc1RvQXBwbHlBdFJlZ2lzdHJhdGlvbi5nZXQoc2VhcmNoSW5wdXQubmFtZSk7XG4gICAgaWYgKHRvQXBwbHkpIHtcbiAgICAgIHNlYXJjaElucHV0LnNldFZhbHVlKHRvQXBwbHkudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmxvZy5kZWJ1ZygnUmVnaXN0ZXJpbmcgc2VhcmNoIGlucHV0IFsnICsgc2VhcmNoSW5wdXQubmFtZSArICddLiBMYXRlIHJlZ2lzdHJhdGlvbiB2YWx1ZTonICsgdG9BcHBseT8udmFsdWUpO1xuICAgIHRoaXMuX3NlYXJjaElucHV0cyQubmV4dChbLi4uY3VycmVudCwgc2VhcmNoSW5wdXRdKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXNTbmFwc2hvdFxuICAgICAgLmZpbHRlcihhdHRyID0+ICFhdHRyLnJlYWRvbmx5KVxuICAgICAgLmZvckVhY2goYSA9PiB7XG4gICAgICAgIGEucmVzZXQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBhcHBseURlZmF1bHRGaWx0ZXJzVG9TZWFyY2hDb250ZXh0KCk6IHZvaWQge1xuXG4gICAgY29uc3QgZGNGaWx0ZXJzID0gdGhpcy5maWx0ZXJDb250ZXh0O1xuICAgIGNvbnN0IHNlYXJjaENvbnRleHQgPSB0aGlzLnNlYXJjaENvbnRleHQ7XG4gICAgaWYgKHNlYXJjaENvbnRleHQudXNlckZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFwcGx5QXNEZWZhdWx0c1VudGlsVXNlckFjdGlvbihzZWFyY2hDb250ZXh0LCBkY0ZpbHRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkY0ZpbHRlcnMucmVwbGFjZUZpbHRlcnMoXG4gICAgICAgIHNlYXJjaENvbnRleHQudXNlckZpbHRlcnNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFzRGVmYXVsdHNVbnRpbFVzZXJBY3Rpb24oXG4gICAgc2VhcmNoQ29udGV4dDogU2VhcmNoQ29udGV4dCxcbiAgICBkY0ZpbHRlcnM6IEZpbHRlckNvbnRleHRcbiAgKTogdm9pZCB7XG4gICAgZGNGaWx0ZXJzLmZpbHRlcnMucGlwZShcbiAgICAgIG1hcChmaWx0ZXJzID0+IHNlYXJjaENvbnRleHQudXBkYXRlRGVmYXVsdEZpbHRlcnMoZmlsdGVycykpLFxuICAgICAgdGFrZVdoaWxlKGFjY2VwdERlZmF1bHRGaWx0ZXJzID0+IGFjY2VwdERlZmF1bHRGaWx0ZXJzKVxuICAgICkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNTZWFyY2hJbnB1dHNUb1NlYXJjaENvbnRleHQoKTogdm9pZCB7XG5cbiAgICB0aGlzLl9zZWFyY2hJbnB1dHMkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICBzd2l0Y2hNYXAoaW5wdXRzID0+IGNvbWJpbmVMYXRlc3QoaW5wdXRzLm1hcChpID0+IGkuc3RhdGUkKSkpLFxuICAgICAgZGVib3VuY2VUaW1lKDUpXG4gICAgKS5zdWJzY3JpYmUoc3RhdGVzID0+IHtcbiAgICAgIHRoaXMuX3NlYXJjaFN0YXRlcyQubmV4dChzdGF0ZXMpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgaW5wdXRGaWx0ZXJzJCA9IHRoaXMuX3NlYXJjaFN0YXRlcyQucGlwZShcbiAgICAgIG1hcChzdGF0ZXMgPT4gdGhpcy5jb252ZXJ0VG9GaWx0ZXJzKHN0YXRlcykpLFxuICAgICAgZmlsdGVyKGZpbHRlcnMgPT4gZmlsdGVycy5sZW5ndGggPiAwKVxuICAgICk7XG5cbiAgICBpbnB1dEZpbHRlcnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLl9zZWFyY2hDb250ZXh0JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtpbnB1dEZpbHRlcnMsIHNlYXJjaENvbnRleHRdKSA9PiB7XG4gICAgICAgIHNlYXJjaENvbnRleHQudXBkYXRlVXNlckZpbHRlcnMoaW5wdXRGaWx0ZXJzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU2VhcmNoQ29udGV4dFRvQm91bmRGaWx0ZXJDb250ZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NlYXJjaENvbnRleHQkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICBzd2l0Y2hNYXAoY29udGV4dCA9PiBjb250ZXh0LmFsbEZpbHRlcnNDaGFuZ2VkKVxuICAgICkuc3Vic2NyaWJlKGFsbEZpbHRlcnMgPT4gdGhpcy5hcHBseVRvQm91bmRGaWx0ZXJDb250ZXh0KGFsbEZpbHRlcnMpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlUb0JvdW5kRmlsdGVyQ29udGV4dChmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlckN0eCA9IHRoaXMuZmlsdGVyQ29udGV4dDtcbiAgICBpZiAoZmlsdGVyQ3R4KSB7XG4gICAgICBmaWx0ZXJDdHgucmVwbGFjZUZpbHRlcnMoZmlsdGVycyk7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnQXBwbGllZCBGaWx0ZXJzIG9mIFNlYXJjaENvbnRleHQgJyArIHRoaXMuc2VhcmNoQ29udGV4dElkICsgJyB0byBEYXRhQ29udGV4dCBGaWx0ZXJDb250ZXh0LicsIGZpbHRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdGYWlsZWQgdG8gYXBwbHkgZmlsdGVycyBzaW5jZSBubyBGaWx0ZXJDb250ZXh0IGlzIGF2YWlsYWJsZSEnLCBmaWx0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U2VhcmNoQ29udGV4dFRvSW5wdXRzKHNlYXJjaENvbnRleHQ6IFNlYXJjaENvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5RmlsdGVyc1RvSW5wdXRzKFxuICAgICAgc2VhcmNoQ29udGV4dC51c2VyRmlsdGVyc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RmlsdGVyc1RvSW5wdXRzKGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7XG4gICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgaW5wdXRzQnlOYW1lID0gdGhpcy5zZWFyY2hJbnB1dHNCeU5hbWUoKTtcbiAgICAgIHRoaXMubG9nLndhcm4oJ2FwcGx5RmlsdGVyc1RvSW5wdXRzIFsnICsgQXJyYXkuZnJvbShpbnB1dHNCeU5hbWUua2V5cygpKSArICddJywge1xuICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgICBpbnB1dHNCeU5hbWU6IGlucHV0c0J5TmFtZVxuICAgICAgfSk7XG4gICAgICBmaWx0ZXJzLmZvckVhY2goZiA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRzQnlOYW1lLmdldChmLmtleSk7XG4gICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgIGlucHV0LnNldFZhbHVlKGYudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZmlsdGVyc1RvQXBwbHlBdFJlZ2lzdHJhdGlvbi5zZXQoZi5rZXksIGYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlYXJjaElucHV0c0J5TmFtZSgpOiBNYXA8c3RyaW5nLCBTZWFyY2hJbnB1dD4ge1xuICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuX3NlYXJjaElucHV0cyQuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgU2VhcmNoSW5wdXQ+KCk7XG4gICAgaW5wdXRzLmZvckVhY2goaW5wdXQgPT4gbWFwLnNldChpbnB1dC5uYW1lLCBpbnB1dCkpO1xuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb0ZpbHRlcnMoc3RhdGVzOiBTZWFyY2hJbnB1dFN0YXRlW10pOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHN0YXRlc1xuICAgICAgLmZpbHRlcihzID0+IHMudXNlckV2ZW50KVxuICAgICAgLmZpbHRlcihzID0+ICEhcy5xdWVyeUtleSlcbiAgICAgIC5tYXAocyA9PiBuZXcgRmlsdGVyKHMucXVlcnlLZXksIHMucXVlcnlWYWx1ZSkpO1xuICB9XG59XG5cbiJdfQ==
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxlQUFlLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFHMUUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7QUFFOUQ7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLDJCQUEyQjtJQW1CdEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0Usb0JBQTBDLEVBQ3pCLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF6QnpDOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJELGlDQUE0QixHQUFHLElBQUksR0FBbUIsQ0FBQztRQUV2RCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFn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Q0o7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7UUFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQTBCO1FBQ2pELE9BQU8sTUFBTTthQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUNoRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBcFJVLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO29JQTZEWSxlQUFlO3NCQUR6QixLQUFLO2dCQWtCSyxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkEyQmhCLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdFdpdGgsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dH0gZnJvbSAnLi9kb21haW4vaW5wdXQvc2VhcmNoLWlucHV0JztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHQnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dFN0YXRlfSBmcm9tICcuL2RvbWFpbi9pbnB1dC9zZWFyY2gtaW5wdXQtc3RhdGUnO1xuaW1wb3J0IHtTZWFyY2hDb250ZXh0U2VydmljZX0gZnJvbSAnLi9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7U2VhcmNoQ29udGV4dH0gZnJvbSAnLi9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dCc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIFRoZSBTZWFyY2hDb250ZXh0RGlyZWN0aXZlIGJpbmRzIGEgZ3JvdXAgb2Ygc2VhcmNoLWlucHV0c1xuICogdG8gYSBTZWFyY2hDb250ZXh0IHdpdGggYSB0d28td2F5IGJpbmRpbmcuXG4gKlxuICogSXQgYWxzbyBiaW5kcyB0aGUgU2VhcmNoQ29udGV4dCB0byBhIEZpbHRlckNvbnRleHQgKERhdGFDb250ZXh0KS5cbiAqIFRPRE8gTWF5YmUgc2VwYXJhdGUgdGhpcz8/XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlclNlYXJjaENvbnRleHRdJyxcbiAgZXhwb3J0QXM6ICdlbGRlclNlYXJjaENvbnRleHQnXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyc1RvQXBwbHlBdFJlZ2lzdHJhdGlvbiA9IG5ldyBNYXA8c3RyaW5nLCBGaWx0ZXI+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaElucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaElucHV0W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VhcmNoU3RhdGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VhcmNoSW5wdXRTdGF0ZVtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlckNvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDb250ZXh0PihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWFyY2hDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VhcmNoQ29udGV4dD4oU2VhcmNoQ29udGV4dC5zdGFuZGFsb25lKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaENvbnRleHRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2VhcmNoQ29udGV4dFNlcnZpY2U6IFNlYXJjaENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICApIHtcbiAgICB0aGlzLnNlYXJjaENvbnRleHRJZCQucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgZmlsdGVyKGNvbnRleHRJZCA9PiAhIWNvbnRleHRJZCksXG4gICAgICBtYXAoY29udGV4dElkID0+IHNlYXJjaENvbnRleHRTZXJ2aWNlLmNvbnRleHQoY29udGV4dElkKSksXG4gICAgKS5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX3NlYXJjaENvbnRleHQkLm5leHQoY3R4KSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseURlZmF1bHRGaWx0ZXJzVG9TZWFyY2hDb250ZXh0KCk7XG4gICAgdGhpcy5zeW5jU2VhcmNoQ29udGV4dFRvQm91bmRGaWx0ZXJDb250ZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlYXJjaENvbnRleHQgPSB0aGlzLnNlYXJjaENvbnRleHQ7XG4gICAgdGhpcy5hcHBseVNlYXJjaENvbnRleHRUb0lucHV0cyhzZWFyY2hDb250ZXh0KTtcbiAgICB0aGlzLnN5bmNTZWFyY2hJbnB1dHNUb1NlYXJjaENvbnRleHQoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VhcmNoQ29udGV4dElkKGNvbnRleHRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hDb250ZXh0SWQkLm5leHQoY29udGV4dElkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VhcmNoQ29udGV4dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29udGV4dElkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWFyY2hDb250ZXh0JCgpOiBPYnNlcnZhYmxlPFNlYXJjaENvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoQ29udGV4dCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlYXJjaENvbnRleHQoKTogU2VhcmNoQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaENvbnRleHQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoJ2VsZGVyU2VhcmNoQ29udGV4dCcpXG4gIHB1YmxpYyBzZXQgZmlsdGVyQ29udGV4dCh2YWx1ZTogRmlsdGVyQ29udGV4dCB8ICcnKSB7XG4gICAgbGV0IGNvbnRleHQ6IEZpbHRlckNvbnRleHQ7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICBjb250ZXh0ID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZy53YXJuKCdJbGxlZ2FsIHZhbHVlIHByb3ZpZGVkIGZvciBwcm9wZXJ0eSBmaWx0ZXJDb250ZXh0OiAnLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgdmFsdWUgcHJvdmlkZWQgZm9yIHByb3BlcnR5IGZpbHRlckNvbnRleHQhICcgKyB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0LmVtcHR5KCk7XG4gICAgfVxuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQkLm5leHQoY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlckNvbnRleHQoKTogRmlsdGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckNvbnRleHQkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VkIGZpbHRlcnMgYXJlIGFsd2F5cyBtZXJnZWQgaW50byB0aGUgZmluYWwgRmlsdGVyQ29udGV4dC5cbiAgICpcbiAgICogVGhpcyBtZWFucyB0aGV5IG92ZXJyaWRlIHVzZXIgZGVmaW5lZCBmaWx0ZXJzLCBidXQgYXR0ZW1wdFxuICAgKiB0byBhbHNvIGtlZXAgdGhlIHVzZXJzIGludGVudCAoYnkgbWVyZ2luZykgdGhlbS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9yY2VkRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuc2VhcmNoQ29udGV4dC5yZXBsYWNlRm9yY2VkRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9yY2VkRmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29udGV4dC5mb3JjZWRGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRyaWJ1dGVzKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hJbnB1dHMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRyaWJ1dGVzU25hcHNob3QoKTogU2VhcmNoSW5wdXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaElucHV0cyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVzJCgpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hTdGF0ZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZXNTbmFwc2hvdCgpOiBTZWFyY2hJbnB1dFN0YXRlW10ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hTdGF0ZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCB1c2VyIHRvdWNoZWQgYXR0cmlidXRlcy4gKGlnbm9yaW5nIGZhbGxiYWNrcylcbiAgICovXG4gIHB1YmxpYyBnZXQgdXNlckRlZmluZWRBdHRyaWJ1dGVzJCgpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlcyQucGlwZShcbiAgICAgIG1hcChzdGF0ZXMgPT5cbiAgICAgICAgc3RhdGVzXG4gICAgICAgICAgLmZpbHRlcihzID0+ICFzLnByaXN0aW5lKVxuICAgICAgICAgIC5maWx0ZXIocyA9PiAhcy5oYXNGYWxsYmFja1ZhbHVlKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBuZXcgc2VhcmNoIG5hbWUgaW4gdGhpcyBjb250YWluZXJcbiAgICovXG4gIHB1YmxpYyByZWdpc3RlcihzZWFyY2hJbnB1dDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fc2VhcmNoSW5wdXRzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHRvQXBwbHkgPSB0aGlzLmZpbHRlcnNUb0FwcGx5QXRSZWdpc3RyYXRpb24uZ2V0KHNlYXJjaElucHV0Lm5hbWUpO1xuICAgIGlmICh0b0FwcGx5KSB7XG4gICAgICBzZWFyY2hJbnB1dC5zZXRWYWx1ZSh0b0FwcGx5LnZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5sb2cuZGVidWcoJ1JlZ2lzdGVyaW5nIHNlYXJjaCBpbnB1dCBbJyArIHNlYXJjaElucHV0Lm5hbWUgKyAnXS4gTGF0ZSByZWdpc3RyYXRpb24gdmFsdWU6JyArIHRvQXBwbHk/LnZhbHVlKTtcbiAgICB0aGlzLl9zZWFyY2hJbnB1dHMkLm5leHQoWy4uLmN1cnJlbnQsIHNlYXJjaElucHV0XSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzU25hcHNob3RcbiAgICAgIC5maWx0ZXIoYXR0ciA9PiAhYXR0ci5yZWFkb25seSlcbiAgICAgIC5mb3JFYWNoKGEgPT4ge1xuICAgICAgICBhLnJlc2V0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYXBwbHlEZWZhdWx0RmlsdGVyc1RvU2VhcmNoQ29udGV4dCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IGRjRmlsdGVycyA9IHRoaXMuZmlsdGVyQ29udGV4dDtcbiAgICBjb25zdCBzZWFyY2hDb250ZXh0ID0gdGhpcy5zZWFyY2hDb250ZXh0O1xuICAgIGlmIChzZWFyY2hDb250ZXh0LnVzZXJGaWx0ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hcHBseUFzRGVmYXVsdHNVbnRpbFVzZXJBY3Rpb24oc2VhcmNoQ29udGV4dCwgZGNGaWx0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGNGaWx0ZXJzLnJlcGxhY2VGaWx0ZXJzKFxuICAgICAgICBzZWFyY2hDb250ZXh0LnVzZXJGaWx0ZXJzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBc0RlZmF1bHRzVW50aWxVc2VyQWN0aW9uKFxuICAgIHNlYXJjaENvbnRleHQ6IFNlYXJjaENvbnRleHQsXG4gICAgZGNGaWx0ZXJzOiBGaWx0ZXJDb250ZXh0XG4gICk6IHZvaWQge1xuICAgIGRjRmlsdGVycy5maWx0ZXJzLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgIG1hcChmaWx0ZXJzID0+IHNlYXJjaENvbnRleHQudXBkYXRlVXNlckZpbHRlcnNTYXZlKGZpbHRlcnMpKSxcbiAgICAgIC8vIHRha2VXaGlsZShhY2NlcHREZWZhdWx0RmlsdGVycyA9PiBhY2NlcHREZWZhdWx0RmlsdGVycylcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU2VhcmNoSW5wdXRzVG9TZWFyY2hDb250ZXh0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5fc2VhcmNoSW5wdXRzJC5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICBzd2l0Y2hNYXAoaW5wdXRzID0+IGNvbWJpbmVMYXRlc3QoaW5wdXRzLm1hcChpID0+IGkuc3RhdGUkKSkpLFxuICAgICAgZGVib3VuY2VUaW1lKDUpXG4gICAgKS5zdWJzY3JpYmUoc3RhdGVzID0+IHtcbiAgICAgIC8vLyB0aGlzLmxvZy5lcnJvcignU2VhcmNoSW5wdXRTdGF0ZXMgQ2hhbmdlZDogJywgc3RhdGVzKTtcbiAgICAgIHRoaXMuX3NlYXJjaFN0YXRlcyQubmV4dChzdGF0ZXMpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgaW5wdXRGaWx0ZXJzJCA9IHRoaXMuX3NlYXJjaFN0YXRlcyQucGlwZShcbiAgICAgIG1hcChzdGF0ZXMgPT4gdGhpcy5jb252ZXJ0VG9GaWx0ZXJzKHN0YXRlcykpLFxuICAgICAgZmlsdGVyKGZpbHRlcnMgPT4gZmlsdGVycy5sZW5ndGggPiAwKVxuICAgICk7XG5cbiAgICBpbnB1dEZpbHRlcnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuX3NlYXJjaENvbnRleHQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW2lucHV0RmlsdGVycywgc2VhcmNoQ29udGV4dF0pID0+IHtcbiAgICAgICAgc2VhcmNoQ29udGV4dC51cGRhdGVVc2VyRmlsdGVycyhpbnB1dEZpbHRlcnMpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN5bmNTZWFyY2hDb250ZXh0VG9Cb3VuZEZpbHRlckNvbnRleHQoKTogdm9pZCB7XG4gICAgdGhpcy5fc2VhcmNoQ29udGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgc3dpdGNoTWFwKGNvbnRleHQgPT4gY29udGV4dC5hbGxGaWx0ZXJzQ2hhbmdlZClcbiAgICApLnN1YnNjcmliZShhbGxGaWx0ZXJzID0+IHRoaXMuYXBwbHlUb0JvdW5kRmlsdGVyQ29udGV4dChhbGxGaWx0ZXJzKSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5VG9Cb3VuZEZpbHRlckNvbnRleHQoZmlsdGVyczogRmlsdGVyW10pOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJDdHggPSB0aGlzLmZpbHRlckNvbnRleHQ7XG4gICAgaWYgKGZpbHRlckN0eCkge1xuICAgICAgZmlsdGVyQ3R4LnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICAgICAgdGhpcy5sb2cuZGVidWcoJ0FwcGxpZWQgRmlsdGVycyBvZiBTZWFyY2hDb250ZXh0ICcgKyB0aGlzLnNlYXJjaENvbnRleHRJZCArICcgdG8gRGF0YUNvbnRleHQgRmlsdGVyQ29udGV4dC4nLCBmaWx0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2cud2FybignRmFpbGVkIHRvIGFwcGx5IGZpbHRlcnMgc2luY2Ugbm8gRmlsdGVyQ29udGV4dCBpcyBhdmFpbGFibGUhJywgZmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVNlYXJjaENvbnRleHRUb0lucHV0cyhzZWFyY2hDb250ZXh0OiBTZWFyY2hDb250ZXh0KTogdm9pZCB7XG4gICAgdGhpcy5hcHBseUZpbHRlcnNUb0lucHV0cyhcbiAgICAgIHNlYXJjaENvbnRleHQudXNlckZpbHRlcnNcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpbHRlcnNUb0lucHV0cyhmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIGlmIChmaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGlucHV0c0J5TmFtZSA9IHRoaXMuc2VhcmNoSW5wdXRzQnlOYW1lKCk7XG4gICAgICB0aGlzLmxvZy53YXJuKCdhcHBseUZpbHRlcnNUb0lucHV0cyBbJyArIEFycmF5LmZyb20oaW5wdXRzQnlOYW1lLmtleXMoKSkgKyAnXScsIHtcbiAgICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICAgICAgaW5wdXRzQnlOYW1lOiBpbnB1dHNCeU5hbWVcbiAgICAgIH0pO1xuICAgICAgZmlsdGVycy5mb3JFYWNoKGYgPT4ge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0c0J5TmFtZS5nZXQoZi5rZXkpO1xuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICBpbnB1dC5zZXRWYWx1ZShmLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZpbHRlcnNUb0FwcGx5QXRSZWdpc3RyYXRpb24uc2V0KGYua2V5LCBmKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hJbnB1dHNCeU5hbWUoKTogTWFwPHN0cmluZywgU2VhcmNoSW5wdXQ+IHtcbiAgICBjb25zdCBpbnB1dHMgPSB0aGlzLl9zZWFyY2hJbnB1dHMkLmdldFZhbHVlKCk7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFNlYXJjaElucHV0PigpO1xuICAgIGlucHV0cy5mb3JFYWNoKGlucHV0ID0+IG1hcC5zZXQoaW5wdXQubmFtZSwgaW5wdXQpKTtcbiAgICByZXR1cm4gbWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9GaWx0ZXJzKHN0YXRlczogU2VhcmNoSW5wdXRTdGF0ZVtdKTogRmlsdGVyW10ge1xuICAgIHJldHVybiBzdGF0ZXNcbiAgICAgIC5maWx0ZXIocyA9PiAocy51c2VyRXZlbnQgfHwgcy5oYXNGYWxsYmFja1ZhbHVlKSlcbiAgICAgIC5maWx0ZXIocyA9PiAhIXMucXVlcnlLZXkpXG4gICAgICAubWFwKHMgPT4gbmV3IEZpbHRlcihzLnF1ZXJ5S2V5LCBzLnF1ZXJ5VmFsdWUpKTtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Directive, Host, Input } from
|
|
2
|
-
import { LoggerFactory } from
|
|
1
|
+
import { Directive, Host, Input } from '@angular/core';
|
|
2
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
3
3
|
import { debounceTime, delay, first, map, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { PropertyPathUtil } from
|
|
4
|
+
import { PropertyPathUtil } from '../../../common/utils/property-path-util';
|
|
5
5
|
import { concat, of, skipUntil, Subject } from 'rxjs';
|
|
6
|
-
import { SearchInputState } from
|
|
7
|
-
import { Objects } from
|
|
8
|
-
import { CollectionUtil } from
|
|
9
|
-
import { ElderInitialValueDirective } from
|
|
6
|
+
import { SearchInputState } from './domain/input/search-input-state';
|
|
7
|
+
import { Objects } from '../../../common/objects';
|
|
8
|
+
import { CollectionUtil } from '../../../common/utils/collection-util';
|
|
9
|
+
import { ElderInitialValueDirective } from '../directives/elder-initial-value.directive';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
import * as i1 from "./elder-search-context.directive";
|
|
12
12
|
import * as i2 from "@angular/forms";
|
|
@@ -40,7 +40,7 @@ export class ElderSearchInputDirective {
|
|
|
40
40
|
}
|
|
41
41
|
ngAfterViewInit() {
|
|
42
42
|
this._extractedName = this.extractName();
|
|
43
|
-
this.log.debug(this._extractedName +
|
|
43
|
+
this.log.debug(this._extractedName + '|' + this.queryKey + '|' + this.resolvePath);
|
|
44
44
|
}
|
|
45
45
|
ngOnDestroy() {
|
|
46
46
|
this.destroy$.next();
|
|
@@ -61,8 +61,8 @@ export class ElderSearchInputDirective {
|
|
|
61
61
|
if (this._extractedName) {
|
|
62
62
|
return this._extractedName;
|
|
63
63
|
}
|
|
64
|
-
throw new Error(
|
|
65
|
-
|
|
64
|
+
throw new Error('Could not determine the search name key name.' +
|
|
65
|
+
' Either specify the name property or explicitly set [elderSearchInputKey].');
|
|
66
66
|
}
|
|
67
67
|
get value() {
|
|
68
68
|
return this.ngModel.value;
|
|
@@ -105,7 +105,12 @@ export class ElderSearchInputDirective {
|
|
|
105
105
|
}
|
|
106
106
|
buildInputState(controlValue, userEvent) {
|
|
107
107
|
const queryValue = this.convertRawModelValueToQueryString(controlValue);
|
|
108
|
-
|
|
108
|
+
let pristine = !this.isAttributeValuePresent(controlValue);
|
|
109
|
+
if (this.hasFallback) {
|
|
110
|
+
if (this.fallbackValue === queryValue) {
|
|
111
|
+
pristine = true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
109
114
|
return new SearchInputState(this.name, queryValue, this.queryKey || this.name, pristine, userEvent);
|
|
110
115
|
}
|
|
111
116
|
convertQueryStringToRawModelValue(queryString) {
|
|
@@ -145,14 +150,14 @@ export class ElderSearchInputDirective {
|
|
|
145
150
|
return value;
|
|
146
151
|
}
|
|
147
152
|
convertEmptyStringToNull(value) {
|
|
148
|
-
if (typeof value ===
|
|
153
|
+
if (typeof value === 'string' && value.length === 0) {
|
|
149
154
|
return null;
|
|
150
155
|
}
|
|
151
156
|
return value;
|
|
152
157
|
}
|
|
153
158
|
isAttributeValuePresent(value) {
|
|
154
159
|
return SearchInputState.isValueDefined(value)
|
|
155
|
-
&& (value +
|
|
160
|
+
&& (value + '').length !== 0;
|
|
156
161
|
}
|
|
157
162
|
resolveValue(value) {
|
|
158
163
|
if (Objects.nonNull(value)) {
|
|
@@ -207,28 +212,28 @@ export class ElderSearchInputDirective {
|
|
|
207
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchInputDirective, decorators: [{
|
|
208
213
|
type: Directive,
|
|
209
214
|
args: [{
|
|
210
|
-
selector:
|
|
211
|
-
exportAs:
|
|
215
|
+
selector: '[elderSearchInput]',
|
|
216
|
+
exportAs: 'elderSearchInput'
|
|
212
217
|
}]
|
|
213
218
|
}], ctorParameters: function () { return [{ type: i1.ElderSearchContextDirective }, { type: i2.NgModel, decorators: [{
|
|
214
219
|
type: Host
|
|
215
220
|
}] }]; }, propDecorators: { queryKey: [{
|
|
216
221
|
type: Input,
|
|
217
|
-
args: [
|
|
222
|
+
args: ['elderSearchInputKey']
|
|
218
223
|
}], valueTransform: [{
|
|
219
224
|
type: Input,
|
|
220
|
-
args: [
|
|
225
|
+
args: ['elderSearchInputTransform']
|
|
221
226
|
}], resolvePath: [{
|
|
222
227
|
type: Input,
|
|
223
|
-
args: [
|
|
228
|
+
args: ['elderSearchInput']
|
|
224
229
|
}], dataSource: [{
|
|
225
230
|
type: Input,
|
|
226
|
-
args: [
|
|
231
|
+
args: ['dataSource']
|
|
227
232
|
}], fallbackValue: [{
|
|
228
233
|
type: Input,
|
|
229
|
-
args: [
|
|
234
|
+
args: ['elderSearchInputFallback']
|
|
230
235
|
}], valueAsId: [{
|
|
231
236
|
type: Input,
|
|
232
|
-
args: [
|
|
237
|
+
args: ['valueAsId']
|
|
233
238
|
}] } });
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoL2VsZGVyLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBS3JELE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQWEsU0FBUyxFQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBa0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUFHekY7O0dBRUc7QUFLSCxNQUFNLE9BQU8seUJBQXlCO0lBOENwQzs7OztnRkFJNEU7SUFFNUUsWUFDVSxhQUEwQyxFQUNsQyxPQUFnQjtRQUR4QixrQkFBYSxHQUFiLGFBQWEsQ0FBNkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQVhqQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMvQixRQUFHLEdBQUcsYUFB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QUFDO0lBRU8sV0FBVztRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUE2QjtRQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLEtBQUssRUFBRTtnQkFDdEIsT0FBTyxDQUFDLENBQUM7YUFDVjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBNVJVLHlCQUF5QjttR0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCOzswQkF1REksSUFBSTs0Q0F4Q0EsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLHFCQUFxQjtnQkFPckIsY0FBYztzQkFEcEIsS0FBSzt1QkFBQywyQkFBMkI7Z0JBUTNCLFdBQVc7c0JBRGpCLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUlsQixVQUFVO3NCQURoQixLQUFLO3VCQUFDLFlBQVk7Z0JBT1osYUFBYTtzQkFEbkIsS0FBSzt1QkFBQywwQkFBMEI7Z0JBSTFCLFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gXCJAZWxkZXJieXRlL3RzLWxvZ2dlclwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anMvaW50ZXJuYWwvT2JzZXJ2YWJsZVwiO1xuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tIFwiLi9kb21haW4vaW5wdXQvc2VhcmNoLWlucHV0XCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGVsYXksIGZpcnN0LCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YWtlV2hpbGUsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvcGVydHlQYXRoVXRpbCB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vdXRpbHMvcHJvcGVydHktcGF0aC11dGlsXCI7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29uY2F0LCBvZiwgc2tpcFVudGlsLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlYXJjaElucHV0U3RhdGUgfSBmcm9tIFwiLi9kb21haW4vaW5wdXQvc2VhcmNoLWlucHV0LXN0YXRlXCI7XG5pbXBvcnQgeyBPYmplY3RzIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9vYmplY3RzXCI7XG5pbXBvcnQgeyBDb2xsZWN0aW9uVXRpbCB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vdXRpbHMvY29sbGVjdGlvbi11dGlsXCI7XG5pbXBvcnQgeyBMb2NhbFBhZ2VkRGF0YVNvdXJjZSB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlXCI7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQgeyBFbGRlckluaXRpYWxWYWx1ZURpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL2VsZGVyLWluaXRpYWwtdmFsdWUuZGlyZWN0aXZlXCI7XG5pbXBvcnQge1NlYXJjaENvbnRleHR9IGZyb20gJy4vZG9tYWluL2NvbnRleHQvc2VhcmNoLWNvbnRleHQnO1xuXG4vKipcbiAqIFNlYXJjaCBuYW1lIGFkYXB0ZXIgZm9yIGlucHV0IGNvbnRyb2xzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2VsZGVyU2VhcmNoSW5wdXRdXCIsXG4gIGV4cG9ydEFzOiBcImVsZGVyU2VhcmNoSW5wdXRcIlxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgU2VhcmNoSW5wdXQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxWYWx1ZURpcmVjdGl2ZTogRWxkZXJJbml0aWFsVmFsdWVEaXJlY3RpdmU7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVXN1YWxseSB0aGUgY29udHJvbCBuYW1lIGlzIHVzZWQsIHRoaXMgYWxsb3dzIGEgY3VzdG9tIHF1ZXJ5IGtleVxuICAgKi9cbiAgQElucHV0KFwiZWxkZXJTZWFyY2hJbnB1dEtleVwiKVxuICBwdWJsaWMgcXVlcnlLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBGdW5jdGlvbiB3aGljaCB0cmFuc2Zvcm1zIHRoZSB2YWx1ZSBvYmplY3QgdG8gYSBxdWVyeSBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KFwiZWxkZXJTZWFyY2hJbnB1dFRyYW5zZm9ybVwiKVxuICBwdWJsaWMgdmFsdWVUcmFuc2Zvcm06ICgodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKTtcblxuICAvKipcbiAgICogKE9wdGlvbmFsLCBEZWZhdWx0KSBQYXRoIG9uIHRoZSB2YWx1ZSBvYmplY3QgdG8gdXNlIGFzIHF1ZXJ5IHBhcmFtIHZhbHVlXG4gICAqICB2YWx1ZSA9IFwidHlwZS5pZFwiXG4gICAqL1xuICBASW5wdXQoXCJlbGRlclNlYXJjaElucHV0XCIpXG4gIHB1YmxpYyByZXNvbHZlUGF0aDogc3RyaW5nO1xuXG4gIEBJbnB1dChcImRhdGFTb3VyY2VcIilcbiAgcHVibGljIGRhdGFTb3VyY2U6IExvY2FsUGFnZWREYXRhU291cmNlPGFueT47XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVXNlIHRoaXMgdmFsdWUgZm9yIHRoZSBxdWVyeSBpZiBub25lIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgQElucHV0KFwiZWxkZXJTZWFyY2hJbnB1dEZhbGxiYWNrXCIpXG4gIHB1YmxpYyBmYWxsYmFja1ZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBASW5wdXQoXCJ2YWx1ZUFzSWRcIilcbiAgcHVibGljIHZhbHVlQXNJZDogQm9vbGVhbklucHV0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlJDogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlPjtcbiAgcHJpdmF0ZSBfZXh0cmFjdGVkTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlYXJjaENvbnRleHQ6IEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSxcbiAgICBASG9zdCgpIHByaXZhdGUgbmdNb2RlbDogTmdNb2RlbFxuICApIHtcbiAgICB0aGlzLmluaXRpYWxWYWx1ZURpcmVjdGl2ZSA9IG5ldyBFbGRlckluaXRpYWxWYWx1ZURpcmVjdGl2ZShuZ01vZGVsKTtcbiAgICB0aGlzLl9zdGF0ZSQgPSB0aGlzLmJ1aWxkSW5wdXRTdGF0ZU9ic2VydmFibGUoKS5waXBlKFxuICAgICAgLy8gdGFwKHN0YXRlID0+IHRoaXMubG9nLmVycm9yKCdFTUlUIFNFQVJDSCBJTlBVVCBTVEFURSBbJyArIHN0YXRlLnF1ZXJ5S2V5ICsgJ106ICcgKyBzdGF0ZS5xdWVyeVZhbHVlICsgKHN0YXRlLnByaXN0aW5lID8gJyhwcmlzdGluZSknIDogJycpLCBzdGF0ZSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9leHRyYWN0ZWROYW1lID0gdGhpcy5leHRyYWN0TmFtZSgpO1xuICAgIHRoaXMuc2VhcmNoQ29udGV4dC5yZWdpc3Rlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZXh0cmFjdGVkTmFtZSA9IHRoaXMuZXh0cmFjdE5hbWUoKTtcbiAgICB0aGlzLmxvZy5kZWJ1Zyh0aGlzLl9leHRyYWN0ZWROYW1lICsgXCJ8XCIgKyB0aGlzLnF1ZXJ5S2V5ICsgXCJ8XCIgKyB0aGlzLnJlc29sdmVQYXRoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IHN0YXRlJCgpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUkO1xuICB9XG5cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucXVlcnlLZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXJ5S2V5O1xuICAgIH1cbiAgICBpZiAodGhpcy5fZXh0cmFjdGVkTmFtZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2V4dHJhY3RlZE5hbWU7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGRldGVybWluZSB0aGUgc2VhcmNoIG5hbWUga2V5IG5hbWUuXCIgK1xuICAgICAgXCIgRWl0aGVyIHNwZWNpZnkgdGhlIG5hbWUgcHJvcGVydHkgb3IgZXhwbGljaXRseSBzZXQgW2VsZGVyU2VhcmNoSW5wdXRLZXldLlwiKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5uZ01vZGVsLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uZ01vZGVsLmlzRGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBoYXNGYWxsYmFjaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2VhcmNoSW5wdXRTdGF0ZS5pc1ZhbHVlRGVmaW5lZCh0aGlzLmZhbGxiYWNrVmFsdWUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHNldFZhbHVlKHF1ZXJ5U3RyaW5nOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29udmVydFF1ZXJ5U3RyaW5nVG9SYXdNb2RlbFZhbHVlKHF1ZXJ5U3RyaW5nKTtcbiAgICB0aGlzLmluaXRpYWxWYWx1ZURpcmVjdGl2ZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5uZ01vZGVsLnJlc2V0KCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGdldCB2YWx1ZUNoYW5nZXMkKCkge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSW5wdXRTdGF0ZU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlPiB7XG5cbiAgICBjb25zdCB2aWV3U3RhYmlsaXplZCQgPSBvZignc3RhYmlsaXplZCQnKS5waXBlKFxuICAgICAgZGVsYXkoMjApLFxuICAgICAgZmlyc3QoKVxuICAgICk7XG5cbiAgICBjb25zdCBpbnB1dFN0YXRlQ2hhbmdlcyQgPSB0aGlzLnZhbHVlQ2hhbmdlcyQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmJ1aWxkSW5wdXRTdGF0ZSh2YWx1ZSwgdHJ1ZSkpLFxuICAgICAgc2tpcFVudGlsKHZpZXdTdGFiaWxpemVkJCksXG4gICAgICBkZWJvdW5jZVRpbWUoMjApLFxuICAgICk7XG5cbiAgICBjb25zdCBzdGFydFdpdGhBc3luYyQgPSBvZignc3RhcnQnKS5waXBlKFxuICAgICAgbWFwKHN0YXJ0ID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmJ1aWxkSW5wdXRTdGF0ZSh0aGlzLm5nTW9kZWwuY29udHJvbC52YWx1ZSwgZmFsc2UpO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gY29uY2F0KHN0YXJ0V2l0aEFzeW5jJCwgaW5wdXRTdGF0ZUNoYW5nZXMkKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbnB1dFN0YXRlKGNvbnRyb2xWYWx1ZTogYW55LCB1c2VyRXZlbnQ6IGJvb2xlYW4pOiBTZWFyY2hJbnB1dFN0YXRlIHtcbiAgICBjb25zdCBxdWVyeVZhbHVlID0gdGhpcy5jb252ZXJ0UmF3TW9kZWxWYWx1ZVRvUXVlcnlTdHJpbmcoY29udHJvbFZhbHVlKTtcbiAgICBjb25zdCBwcmlzdGluZSA9ICF0aGlzLmlzQXR0cmlidXRlVmFsdWVQcmVzZW50KGNvbnRyb2xWYWx1ZSk7XG4gICAgcmV0dXJuIG5ldyBTZWFyY2hJbnB1dFN0YXRlKFxuICAgICAgdGhpcy5uYW1lLFxuICAgICAgcXVlcnlWYWx1ZSxcbiAgICAgIHRoaXMucXVlcnlLZXkgfHwgdGhpcy5uYW1lLFxuICAgICAgcHJpc3RpbmUsXG4gICAgICB1c2VyRXZlbnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0UXVlcnlTdHJpbmdUb1Jhd01vZGVsVmFsdWUocXVlcnlTdHJpbmc6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgIGlmIChPYmplY3RzLm5vbk51bGwocXVlcnlTdHJpbmcpKSB7XG4gICAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFJhd01vZGVsVmFsdWVUb1F1ZXJ5U3RyaW5nKG1vZGVsOiBhbnkpOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwge1xuXG4gICAgbGV0IHF1ZXJ5VmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy52YWx1ZUFzSWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBxdWVyeVZhbHVlID0gdGhpcy5jaGVja0FuZENvbnZlcnRGYXVsdHlWYWx1ZXNUb051bGwobW9kZWwpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0F0dHJpYnV0ZVZhbHVlUHJlc2VudChtb2RlbCkpIHtcbiAgICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSBpcyBwcmVzZW50XG4gICAgICBxdWVyeVZhbHVlID0gdGhpcy5yZXNvbHZlVmFsdWUobW9kZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5oYXNGYWxsYmFjaykge1xuICAgICAgICBxdWVyeVZhbHVlID0gdGhpcy5mYWxsYmFja1ZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBxdWVyeVZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0FuZENvbnZlcnRGYXVsdHlWYWx1ZXNUb051bGwodmFsdWU6IGFueSkge1xuICAgIGxldCBmaXhlZFZhbHVlID0gdmFsdWU7XG4gICAgZml4ZWRWYWx1ZSA9IHRoaXMuY29udmVydEVtcHR5QXJyYXlUb051bGwoZml4ZWRWYWx1ZSk7XG4gICAgZml4ZWRWYWx1ZSA9IHRoaXMuY29udmVydEVtcHR5U3RyaW5nVG9OdWxsKGZpeGVkVmFsdWUpO1xuXG4gICAgcmV0dXJuIGZpeGVkVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRFbXB0eUFycmF5VG9OdWxsKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRFbXB0eVN0cmluZ1RvTnVsbCh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGlzQXR0cmlidXRlVmFsdWVQcmVzZW50KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2VhcmNoSW5wdXRTdGF0ZS5pc1ZhbHVlRGVmaW5lZCh2YWx1ZSlcbiAgICAgICYmICh2YWx1ZSArIFwiXCIpLmxlbmd0aCAhPT0gMDtcbiAgfVxuXG5cbiAgcHJpdmF0ZSByZXNvbHZlVmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgaWYgKE9iamVjdHMubm9uTnVsbCh2YWx1ZSkpIHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG5cbiAgICAgICAgY29uc3QgcmVzb2x2ZWRWYWx1ZXMgPSB2YWx1ZVxuICAgICAgICAgIC5tYXAodiA9PiB0aGlzLnJlc29sdmVTaW5nbGVWYWx1ZSh2KSlcbiAgICAgICAgICAuZmlsdGVyKHYgPT4gT2JqZWN0cy5ub25OdWxsKHYpKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb25jYXRJZk5lY2Vzc2FyeShyZXNvbHZlZFZhbHVlcyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVTaW5nbGVWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNpbmdsZVZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwge1xuICAgIHZhbHVlID0gUHJvcGVydHlQYXRoVXRpbC5yZXNvbHZlVmFsdWUodmFsdWUsIHRoaXMucmVzb2x2ZVBhdGgpO1xuICAgIHZhbHVlID0gdGhpcy52YWx1ZVRyYW5zZm9ybSA/IHRoaXMudmFsdWVUcmFuc2Zvcm0odmFsdWUpIDogdmFsdWU7XG5cblxuICAgIGlmIChPYmplY3RzLm5vbk51bGwodmFsdWUpKSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAuZmlsdGVyKGkgPT4gT2JqZWN0cy5ub25OdWxsKGkpKVxuICAgICAgICAgIC5tYXAoaSA9PiBpLnRvU3RyaW5nKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubmdNb2RlbC5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRJZk5lY2Vzc2FyeSh2YWx1ZXM6IChzdHJpbmcgfCBzdHJpbmdbXSlbXSk6IGFueVtdIHtcbiAgICBjb25zdCBhcnJheXMgPSB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgaWYgKHYgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gdjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbdl07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIENvbGxlY3Rpb25VdGlsLmZsYXR0ZW4oYXJyYXlzKTtcbiAgfVxuXG59XG4iXX0=
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoL2VsZGVyLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBS25ELE9BQU8sRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQWEsU0FBUyxFQUFpQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBa0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFHckUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUFHdkY7O0dBRUc7QUFLSCxNQUFNLE9BQU8seUJBQXlCO0lBOENwQzs7OztnRkFJNEU7SUFFNUUsWUFDVSxhQUEwQyxFQUNsQyxPQUFnQjtRQUR4QixrQkFBYSxHQUFiLGFBQWEsQ0FBNkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQVhqQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMvQixRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBWXBFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsSUFBSTtRQUNsRCxzSkFBc0o7U0FDdkosQ0FBQztJQUNKLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzVCO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0M7WUFDN0QsNEVBQTRFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVksV0FBVztRQUNyQixPQUFPLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRLENBQUMsV0FBcUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFBWSxhQUFhO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWTthQUNyQyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekIsQ0FBQztJQUNOLENBQUM7SUFFTyx5QkFBeUI7UUFFL0IsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDNUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUNULEtBQUssRUFBRSxDQUNSLENBQUM7UUFFRixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNoRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUMvQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQzFCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FDakIsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxlQUFlLENBQUMsWUFBaUIsRUFBRSxTQUFrQjtRQUMzRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxVQUFVLEVBQUM7Z0JBQ25DLFFBQVEsR0FBRyxJQUFJLENBQUM7YUFDakI7U0FDRjtRQUVELE9BQU8sSUFBSSxnQkFBZ0IsQ0FDekIsSUFBSSxDQUFDLElBQUksRUFDVCxVQUFVLEVBQ1YsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUMxQixRQUFRLEVBQ1IsU0FBUyxDQUNWLENBQUM7SUFDSixDQUFDO0lBRU8saUNBQWlDLENBQUMsV0FBcUM7UUFDN0UsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLGlDQUFpQyxDQUFDLEtBQVU7UUFFbEQsSUFBSSxVQUFVLEdBQTZCLElBQUksQ0FBQztRQUVoRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO1lBQy9CLFVBQVUsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUQ7YUFBTSxJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5Qyw2QkFBNkI7WUFDN0IsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDakM7U0FDRjtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxLQUFVO1FBQ2xELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN2QixVQUFVLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELFVBQVUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQVU7UUFDeEMsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxLQUFVO1FBQ3pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ25ELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxLQUFVO1FBQ3hDLE9BQU8sZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztlQUN4QyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHTyxZQUFZLENBQUMsS0FBVTtRQUM3QixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO2dCQUUxQixNQUFNLGNBQWMsR0FBRyxLQUFLO3FCQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3BDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFbkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7YUFFL0M7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdkM7U0FDRjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxLQUFVO1FBQ25DLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvRCxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBR2pFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7Z0JBQzFCLE9BQU8sS0FBSztxQkFDVCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUMvQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUMzQjtpQkFBTTtnQkFDTCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN6QjtTQUNGO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBNkI7UUFDckQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQW5TVSx5QkFBeUI7bUdBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsa0JBQWtCO2lCQUM3Qjs7MEJBdURJLElBQUk7NENBeENBLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBT3JCLGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsMkJBQTJCO2dCQVEzQixXQUFXO3NCQURqQixLQUFLO3VCQUFDLGtCQUFrQjtnQkFJbEIsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxZQUFZO2dCQU9aLGFBQWE7c0JBRG5CLEtBQUs7dUJBQUMsMEJBQTBCO2dCQUkxQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1zZWFyY2gtY29udGV4dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHtOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1NlYXJjaElucHV0fSBmcm9tICcuL2RvbWFpbi9pbnB1dC9zZWFyY2gtaW5wdXQnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRlbGF5LCBmaXJzdCwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFrZVdoaWxlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7UHJvcGVydHlQYXRoVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3Byb3BlcnR5LXBhdGgtdXRpbCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29uY2F0LCBvZiwgc2tpcFVudGlsLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7U2VhcmNoSW5wdXRTdGF0ZX0gZnJvbSAnLi9kb21haW4vaW5wdXQvc2VhcmNoLWlucHV0LXN0YXRlJztcbmltcG9ydCB7T2JqZWN0c30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL29iamVjdHMnO1xuaW1wb3J0IHtDb2xsZWN0aW9uVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL2NvbGxlY3Rpb24tdXRpbCc7XG5pbXBvcnQge0xvY2FsUGFnZWREYXRhU291cmNlfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlJztcbmltcG9ydCB7Qm9vbGVhbklucHV0fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtFbGRlckluaXRpYWxWYWx1ZURpcmVjdGl2ZX0gZnJvbSAnLi4vZGlyZWN0aXZlcy9lbGRlci1pbml0aWFsLXZhbHVlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1NlYXJjaENvbnRleHR9IGZyb20gJy4vZG9tYWluL2NvbnRleHQvc2VhcmNoLWNvbnRleHQnO1xuXG4vKipcbiAqIFNlYXJjaCBuYW1lIGFkYXB0ZXIgZm9yIGlucHV0IGNvbnRyb2xzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJTZWFyY2hJbnB1dF0nLFxuICBleHBvcnRBczogJ2VsZGVyU2VhcmNoSW5wdXQnXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBTZWFyY2hJbnB1dCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbFZhbHVlRGlyZWN0aXZlOiBFbGRlckluaXRpYWxWYWx1ZURpcmVjdGl2ZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBVc3VhbGx5IHRoZSBjb250cm9sIG5hbWUgaXMgdXNlZCwgdGhpcyBhbGxvd3MgYSBjdXN0b20gcXVlcnkga2V5XG4gICAqL1xuICBASW5wdXQoJ2VsZGVyU2VhcmNoSW5wdXRLZXknKVxuICBwdWJsaWMgcXVlcnlLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBGdW5jdGlvbiB3aGljaCB0cmFuc2Zvcm1zIHRoZSB2YWx1ZSBvYmplY3QgdG8gYSBxdWVyeSBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KCdlbGRlclNlYXJjaElucHV0VHJhbnNmb3JtJylcbiAgcHVibGljIHZhbHVlVHJhbnNmb3JtOiAoKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCk7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCwgRGVmYXVsdCkgUGF0aCBvbiB0aGUgdmFsdWUgb2JqZWN0IHRvIHVzZSBhcyBxdWVyeSBwYXJhbSB2YWx1ZVxuICAgKiAgdmFsdWUgPSBcInR5cGUuaWRcIlxuICAgKi9cbiAgQElucHV0KCdlbGRlclNlYXJjaElucHV0JylcbiAgcHVibGljIHJlc29sdmVQYXRoOiBzdHJpbmc7XG5cbiAgQElucHV0KCdkYXRhU291cmNlJylcbiAgcHVibGljIGRhdGFTb3VyY2U6IExvY2FsUGFnZWREYXRhU291cmNlPGFueT47XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVXNlIHRoaXMgdmFsdWUgZm9yIHRoZSBxdWVyeSBpZiBub25lIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgQElucHV0KCdlbGRlclNlYXJjaElucHV0RmFsbGJhY2snKVxuICBwdWJsaWMgZmFsbGJhY2tWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgQElucHV0KCd2YWx1ZUFzSWQnKVxuICBwdWJsaWMgdmFsdWVBc0lkOiBCb29sZWFuSW5wdXQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUkOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGU+O1xuICBwcml2YXRlIF9leHRyYWN0ZWROYW1lOiBzdHJpbmcgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VhcmNoQ29udGV4dDogRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlLFxuICAgIEBIb3N0KCkgcHJpdmF0ZSBuZ01vZGVsOiBOZ01vZGVsXG4gICkge1xuICAgIHRoaXMuaW5pdGlhbFZhbHVlRGlyZWN0aXZlID0gbmV3IEVsZGVySW5pdGlhbFZhbHVlRGlyZWN0aXZlKG5nTW9kZWwpO1xuICAgIHRoaXMuX3N0YXRlJCA9IHRoaXMuYnVpbGRJbnB1dFN0YXRlT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAvLyB0YXAoc3RhdGUgPT4gdGhpcy5sb2cuZXJyb3IoJ0VNSVQgU0VBUkNIIElOUFVUIFNUQVRFIFsnICsgc3RhdGUucXVlcnlLZXkgKyAnXTogJyArIHN0YXRlLnF1ZXJ5VmFsdWUgKyAoc3RhdGUucHJpc3RpbmUgPyAnKHByaXN0aW5lKScgOiAnJyksIHN0YXRlKSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2V4dHJhY3RlZE5hbWUgPSB0aGlzLmV4dHJhY3ROYW1lKCk7XG4gICAgdGhpcy5zZWFyY2hDb250ZXh0LnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9leHRyYWN0ZWROYW1lID0gdGhpcy5leHRyYWN0TmFtZSgpO1xuICAgIHRoaXMubG9nLmRlYnVnKHRoaXMuX2V4dHJhY3RlZE5hbWUgKyAnfCcgKyB0aGlzLnF1ZXJ5S2V5ICsgJ3wnICsgdGhpcy5yZXNvbHZlUGF0aCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBzdGF0ZSQoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnF1ZXJ5S2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5xdWVyeUtleTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2V4dHJhY3RlZE5hbWUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9leHRyYWN0ZWROYW1lO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGRldGVybWluZSB0aGUgc2VhcmNoIG5hbWUga2V5IG5hbWUuJyArXG4gICAgICAnIEVpdGhlciBzcGVjaWZ5IHRoZSBuYW1lIHByb3BlcnR5IG9yIGV4cGxpY2l0bHkgc2V0IFtlbGRlclNlYXJjaElucHV0S2V5XS4nKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5uZ01vZGVsLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uZ01vZGVsLmlzRGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBoYXNGYWxsYmFjaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2VhcmNoSW5wdXRTdGF0ZS5pc1ZhbHVlRGVmaW5lZCh0aGlzLmZhbGxiYWNrVmFsdWUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHNldFZhbHVlKHF1ZXJ5U3RyaW5nOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY29udmVydFF1ZXJ5U3RyaW5nVG9SYXdNb2RlbFZhbHVlKHF1ZXJ5U3RyaW5nKTtcbiAgICB0aGlzLmluaXRpYWxWYWx1ZURpcmVjdGl2ZS5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5uZ01vZGVsLnJlc2V0KCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGdldCB2YWx1ZUNoYW5nZXMkKCkge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkSW5wdXRTdGF0ZU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlPiB7XG5cbiAgICBjb25zdCB2aWV3U3RhYmlsaXplZCQgPSBvZignc3RhYmlsaXplZCQnKS5waXBlKFxuICAgICAgZGVsYXkoMjApLFxuICAgICAgZmlyc3QoKVxuICAgICk7XG5cbiAgICBjb25zdCBpbnB1dFN0YXRlQ2hhbmdlcyQgPSB0aGlzLnZhbHVlQ2hhbmdlcyQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmJ1aWxkSW5wdXRTdGF0ZSh2YWx1ZSwgdHJ1ZSkpLFxuICAgICAgc2tpcFVudGlsKHZpZXdTdGFiaWxpemVkJCksXG4gICAgICBkZWJvdW5jZVRpbWUoMjApLFxuICAgICk7XG5cbiAgICBjb25zdCBzdGFydFdpdGhBc3luYyQgPSBvZignc3RhcnQnKS5waXBlKFxuICAgICAgbWFwKHN0YXJ0ID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmJ1aWxkSW5wdXRTdGF0ZSh0aGlzLm5nTW9kZWwuY29udHJvbC52YWx1ZSwgZmFsc2UpO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gY29uY2F0KHN0YXJ0V2l0aEFzeW5jJCwgaW5wdXRTdGF0ZUNoYW5nZXMkKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbnB1dFN0YXRlKGNvbnRyb2xWYWx1ZTogYW55LCB1c2VyRXZlbnQ6IGJvb2xlYW4pOiBTZWFyY2hJbnB1dFN0YXRlIHtcbiAgICBjb25zdCBxdWVyeVZhbHVlID0gdGhpcy5jb252ZXJ0UmF3TW9kZWxWYWx1ZVRvUXVlcnlTdHJpbmcoY29udHJvbFZhbHVlKTtcbiAgICBsZXQgcHJpc3RpbmUgPSAhdGhpcy5pc0F0dHJpYnV0ZVZhbHVlUHJlc2VudChjb250cm9sVmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuaGFzRmFsbGJhY2spIHtcbiAgICAgIGlmKHRoaXMuZmFsbGJhY2tWYWx1ZSA9PT0gcXVlcnlWYWx1ZSl7XG4gICAgICAgIHByaXN0aW5lID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFNlYXJjaElucHV0U3RhdGUoXG4gICAgICB0aGlzLm5hbWUsXG4gICAgICBxdWVyeVZhbHVlLFxuICAgICAgdGhpcy5xdWVyeUtleSB8fCB0aGlzLm5hbWUsXG4gICAgICBwcmlzdGluZSxcbiAgICAgIHVzZXJFdmVudFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRRdWVyeVN0cmluZ1RvUmF3TW9kZWxWYWx1ZShxdWVyeVN0cmluZzogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKSB7XG4gICAgaWYgKE9iamVjdHMubm9uTnVsbChxdWVyeVN0cmluZykpIHtcbiAgICAgIHJldHVybiBxdWVyeVN0cmluZztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0UmF3TW9kZWxWYWx1ZVRvUXVlcnlTdHJpbmcobW9kZWw6IGFueSk6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCB7XG5cbiAgICBsZXQgcXVlcnlWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblxuICAgIGlmICh0aGlzLnZhbHVlQXNJZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHF1ZXJ5VmFsdWUgPSB0aGlzLmNoZWNrQW5kQ29udmVydEZhdWx0eVZhbHVlc1RvTnVsbChtb2RlbCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQXR0cmlidXRlVmFsdWVQcmVzZW50KG1vZGVsKSkge1xuICAgICAgLy8gQXR0cmlidXRlIHZhbHVlIGlzIHByZXNlbnRcbiAgICAgIHF1ZXJ5VmFsdWUgPSB0aGlzLnJlc29sdmVWYWx1ZShtb2RlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmhhc0ZhbGxiYWNrKSB7XG4gICAgICAgIHF1ZXJ5VmFsdWUgPSB0aGlzLmZhbGxiYWNrVmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5VmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQW5kQ29udmVydEZhdWx0eVZhbHVlc1RvTnVsbCh2YWx1ZTogYW55KSB7XG4gICAgbGV0IGZpeGVkVmFsdWUgPSB2YWx1ZTtcbiAgICBmaXhlZFZhbHVlID0gdGhpcy5jb252ZXJ0RW1wdHlBcnJheVRvTnVsbChmaXhlZFZhbHVlKTtcbiAgICBmaXhlZFZhbHVlID0gdGhpcy5jb252ZXJ0RW1wdHlTdHJpbmdUb051bGwoZml4ZWRWYWx1ZSk7XG5cbiAgICByZXR1cm4gZml4ZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydEVtcHR5QXJyYXlUb051bGwodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydEVtcHR5U3RyaW5nVG9OdWxsKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGlzQXR0cmlidXRlVmFsdWVQcmVzZW50KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2VhcmNoSW5wdXRTdGF0ZS5pc1ZhbHVlRGVmaW5lZCh2YWx1ZSlcbiAgICAgICYmICh2YWx1ZSArICcnKS5sZW5ndGggIT09IDA7XG4gIH1cblxuXG4gIHByaXZhdGUgcmVzb2x2ZVZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwge1xuICAgIGlmIChPYmplY3RzLm5vbk51bGwodmFsdWUpKSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuXG4gICAgICAgIGNvbnN0IHJlc29sdmVkVmFsdWVzID0gdmFsdWVcbiAgICAgICAgICAubWFwKHYgPT4gdGhpcy5yZXNvbHZlU2luZ2xlVmFsdWUodikpXG4gICAgICAgICAgLmZpbHRlcih2ID0+IE9iamVjdHMubm9uTnVsbCh2KSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uY2F0SWZOZWNlc3NhcnkocmVzb2x2ZWRWYWx1ZXMpO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2luZ2xlVmFsdWUodmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVTaW5nbGVWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsIHtcbiAgICB2YWx1ZSA9IFByb3BlcnR5UGF0aFV0aWwucmVzb2x2ZVZhbHVlKHZhbHVlLCB0aGlzLnJlc29sdmVQYXRoKTtcbiAgICB2YWx1ZSA9IHRoaXMudmFsdWVUcmFuc2Zvcm0gPyB0aGlzLnZhbHVlVHJhbnNmb3JtKHZhbHVlKSA6IHZhbHVlO1xuXG5cbiAgICBpZiAoT2JqZWN0cy5ub25OdWxsKHZhbHVlKSkge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgLmZpbHRlcihpID0+IE9iamVjdHMubm9uTnVsbChpKSlcbiAgICAgICAgICAubWFwKGkgPT4gaS50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3ROYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0SWZOZWNlc3NhcnkodmFsdWVzOiAoc3RyaW5nIHwgc3RyaW5nW10pW10pOiBhbnlbXSB7XG4gICAgY29uc3QgYXJyYXlzID0gdmFsdWVzLm1hcCh2ID0+IHtcbiAgICAgIGlmICh2IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gW3ZdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBDb2xsZWN0aW9uVXRpbC5mbGF0dGVuKGFycmF5cyk7XG4gIH1cblxufVxuIl19
|