@elderbyte/ngx-starter 16.4.5 → 16.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
- updateDefaultFilters(filters) {
45
+ /***************************************************************************
46
+ * *
47
+ * Public API *
48
+ * *
49
+ **************************************************************************/
50
+ updateUserFiltersSave(filters) {
52
51
  // this.log.error('updateDefaultFilters, acceptDefaultFilters: ' + this.acceptDefaultFilters, filters);
53
- if (this.acceptDefaultFilters) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL3NlYXJjaC9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDaEYsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sYUFBYTtJQUVqQixNQUFNLENBQUMsVUFBVTtRQUN0QixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFnQkQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsRUFBVTtRQXJCWjs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUdyRCxzQkFBaUIsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFFMUMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztRQWlEeEU7Ozs7b0ZBSTRFO1FBRXBFLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQTVDbEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDakMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUNuRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUNELENBQUMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUMvQixVQUFVLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FDdEQsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNwRCxDQUFDLFNBQVMsQ0FDVCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQzdCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztJQUNsRCxDQUFDO0lBVU0sb0JBQW9CLENBQUMsT0FBaUI7UUFDM0MsdUdBQXVHO1FBQ3ZHLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQ2xDLFVBQVUsQ0FBQyxLQUFLLENBQ2QsT0FBTyxFQUNQLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE9BQWlCO1FBQ3hDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxPQUFpQjtRQUN6QyxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFpQjtRQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELDRDQUE0QztJQUM5QyxDQUFDO0NBU0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdFdpdGgsIGZpbHRlciwgbWFwLCBza2lwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RmlsdGVyVXRpbH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL2ZpbHRlci11dGlsJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29udGV4dCB7XG5cbiAgcHVibGljIHN0YXRpYyBzdGFuZGFsb25lKCk6IFNlYXJjaENvbnRleHQge1xuICAgIHJldHVybiBuZXcgU2VhcmNoQ29udGV4dChudWxsKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyRmlsdGVyQ29udGV4dCA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9yY2VkRmlsdGVyQ29udGV4dCA9IG5ldyBGaWx0ZXJDb250ZXh0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhbGxGaWx0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+KHVuZGVmaW5lZCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgaWQ6IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLmlkID0gaWQ7XG4gICAgdGhpcy51c2VyRmlsdGVyQ29udGV4dC5maWx0ZXJzLnBpcGUoXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmZvcmNlZEZpbHRlckNvbnRleHQuZmlsdGVycyksXG4gICAgICBza2lwKDEpLFxuICAgICAgbWFwKFxuICAgICAgICAoW3VzZXJGaWx0ZXJzLCBmb3JjZWRGaWx0ZXJzXSkgPT5cbiAgICAgICAgICBGaWx0ZXJVdGlsLm1lcmdlQ29tYmluZSh1c2VyRmlsdGVycywgZm9yY2VkRmlsdGVycylcbiAgICAgICksXG4gICAgICB0YXAoeCA9PiB0aGlzLmxvZy5kZWJ1ZygnYWxsRmlsdGVycyBjaGFuZ2VkOiAnLCB4KSksXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBtZXJnZWQgPT4gdGhpcy5hbGxGaWx0ZXJzJC5uZXh0KG1lcmdlZClcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBhbGxGaWx0ZXJzQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsRmlsdGVycyQucGlwZShcbiAgICAgIGZpbHRlcihmaWx0ZXJzID0+ICEhZmlsdGVycylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyRmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyRmlsdGVycyQoKTogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LmZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcmNlZEZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLmZvcmNlZEZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBhY2NlcHREZWZhdWx0RmlsdGVycyA9IHRydWU7XG5cbiAgcHVibGljIHVwZGF0ZURlZmF1bHRGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKTogYm9vbGVhbiB7XG4gICAgLy8gdGhpcy5sb2cuZXJyb3IoJ3VwZGF0ZURlZmF1bHRGaWx0ZXJzLCBhY2NlcHREZWZhdWx0RmlsdGVyczogJyArIHRoaXMuYWNjZXB0RGVmYXVsdEZpbHRlcnMsIGZpbHRlcnMpO1xuICAgIGlmICh0aGlzLmFjY2VwdERlZmF1bHRGaWx0ZXJzKSB7XG4gICAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnMoXG4gICAgICAgIEZpbHRlclV0aWwuc3RyaXAoXG4gICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICB0aGlzLmZvcmNlZEZpbHRlcnNcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0RGVmYXVsdEZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVXNlckZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pOiB2b2lkIHsgLy8gY2FsbGVkIGJ5IHNlYXJjaCBpbnB1dHNcbiAgICBpZiAoZmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyB0aGlzLmxvZy5lcnJvcigndXBkYXRlVXNlckZpbHRlcnMnLCBmaWx0ZXJzKTtcbiAgICAgIHRoaXMuYWNjZXB0RGVmYXVsdEZpbHRlcnMgPSBmYWxzZTtcbiAgICAgIHRoaXMudXNlckZpbHRlckNvbnRleHQudXBkYXRlRmlsdGVycyhmaWx0ZXJzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZVVzZXJGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7IC8vIGNhbGxlZCBieSB1cmwgc2VhcmNoXG4gICAgLy8gdGhpcy5sb2cuZXJyb3IoJ3JlcGxhY2VVc2VyRmlsdGVycycsIGZpbHRlcnMpO1xuICAgIHRoaXMuYWNjZXB0RGVmYXVsdEZpbHRlcnMgPSBmYWxzZTtcbiAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIHJlcGxhY2VGb3JjZWRGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JjZWRGaWx0ZXJDb250ZXh0LnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICAgIC8vIE1heWJlIGNsZWFuIHVwIGV4aXN0aW5nIHVzZXIgZmlsdGVycyBoZXJlXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG59XG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL3NlYXJjaC9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDaEYsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVqRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0YsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxNQUFNLE9BQU8sYUFBYTtJQUVqQixNQUFNLENBQUMsVUFBVTtRQUN0QixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFpQkQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsRUFBVTtRQXRCWjs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUlyRCxzQkFBaUIsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLHdCQUFtQixHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFFMUMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVyxTQUFTLENBQUMsQ0FBQztRQVd0RSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNqQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQ25ELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQ0QsQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFLENBQy9CLFVBQVUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUN0RCxFQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3BELENBQUMsU0FBUyxDQUNULE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQ3hDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDNUIsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxxQkFBcUIsQ0FBQyxPQUFpQjtRQUM1Qyx1R0FBdUc7UUFDdkcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FDbEMsVUFBVSxDQUFDLEtBQUssQ0FDZCxPQUFPLEVBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGlCQUFpQixDQUFDLE9BQWlCO1FBQ3hDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEIsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBaUI7UUFDekMsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWlCO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakQsNENBQTRDO0lBQzlDLENBQUM7Q0FTRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RmlsdGVyQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXItY29udGV4dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXInO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0V2l0aCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBza2lwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RmlsdGVyVXRpbH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL2ZpbHRlci11dGlsJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29udGV4dCB7XG5cbiAgcHVibGljIHN0YXRpYyBzdGFuZGFsb25lKCk6IFNlYXJjaENvbnRleHQge1xuICAgIHJldHVybiBuZXcgU2VhcmNoQ29udGV4dChudWxsKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJGaWx0ZXJDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JjZWRGaWx0ZXJDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsbEZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4odW5kZWZpbmVkKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBpZDogc3RyaW5nXG4gICkge1xuICAgIHRoaXMuaWQgPSBpZDtcbiAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LmZpbHRlcnMucGlwZShcbiAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuZm9yY2VkRmlsdGVyQ29udGV4dC5maWx0ZXJzKSxcbiAgICAgIHNraXAoMSksXG4gICAgICBtYXAoXG4gICAgICAgIChbdXNlckZpbHRlcnMsIGZvcmNlZEZpbHRlcnNdKSA9PlxuICAgICAgICAgIEZpbHRlclV0aWwubWVyZ2VDb21iaW5lKHVzZXJGaWx0ZXJzLCBmb3JjZWRGaWx0ZXJzKVxuICAgICAgKSxcbiAgICAgIHRhcCh4ID0+IHRoaXMubG9nLmRlYnVnKCdhbGxGaWx0ZXJzIGNoYW5nZWQ6ICcsIHgpKSxcbiAgICApLnN1YnNjcmliZShcbiAgICAgIG1lcmdlZCA9PiB0aGlzLmFsbEZpbHRlcnMkLm5leHQobWVyZ2VkKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGFsbEZpbHRlcnNDaGFuZ2VkKCk6IE9ic2VydmFibGU8RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxGaWx0ZXJzJC5waXBlKFxuICAgICAgZmlsdGVyKGZpbHRlcnMgPT4gISFmaWx0ZXJzKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBGaWx0ZXJVdGlsLmVxdWFscyhhLCBiKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyRmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyRmlsdGVycyQoKTogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LmZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcmNlZEZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLmZvcmNlZEZpbHRlckNvbnRleHQuZmlsdGVyc1NuYXBzaG90O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHVwZGF0ZVVzZXJGaWx0ZXJzU2F2ZShmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQge1xuICAgIC8vIHRoaXMubG9nLmVycm9yKCd1cGRhdGVEZWZhdWx0RmlsdGVycywgYWNjZXB0RGVmYXVsdEZpbHRlcnM6ICcgKyB0aGlzLmFjY2VwdERlZmF1bHRGaWx0ZXJzLCBmaWx0ZXJzKTtcbiAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnMoXG4gICAgICBGaWx0ZXJVdGlsLnN0cmlwKFxuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICB0aGlzLmZvcmNlZEZpbHRlcnNcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVVzZXJGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7IC8vIGNhbGxlZCBieSBzZWFyY2ggaW5wdXRzXG4gICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gdGhpcy5sb2cuZXJyb3IoJ3VwZGF0ZVVzZXJGaWx0ZXJzJywgZmlsdGVycyk7XG4gICAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnMoZmlsdGVycyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlcGxhY2VVc2VyRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSk6IHZvaWQgeyAvLyBjYWxsZWQgYnkgdXJsIHNlYXJjaFxuICAgIC8vIHRoaXMubG9nLmVycm9yKCdyZXBsYWNlVXNlckZpbHRlcnMnLCBmaWx0ZXJzKTtcbiAgICB0aGlzLnVzZXJGaWx0ZXJDb250ZXh0LnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIHJlcGxhY2VGb3JjZWRGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7XG4gICAgdGhpcy5mb3JjZWRGaWx0ZXJDb250ZXh0LnJlcGxhY2VGaWx0ZXJzKGZpbHRlcnMpO1xuICAgIC8vIE1heWJlIGNsZWFuIHVwIGV4aXN0aW5nIHVzZXIgZmlsdGVycyBoZXJlXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG59XG4iXX0=
@@ -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, takeUntil, takeWhile } from 'rxjs/operators';
4
- import { BehaviorSubject, Subject, combineLatest } from 'rxjs';
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(takeUntil(this.destroy$), filter(contextId => !!contextId), map(contextId => searchContextService.context(contextId))).subscribe(ctx => this._searchContext$.next(ctx));
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 *
@@ -160,21 +157,21 @@ export class ElderSearchContextDirective {
160
157
  }
161
158
  }
162
159
  applyAsDefaultsUntilUserAction(searchContext, dcFilters) {
163
- dcFilters.filters.pipe(map(filters => searchContext.updateDefaultFilters(filters)), takeWhile(acceptDefaultFilters => acceptDefaultFilters)).subscribe();
160
+ dcFilters.filters.pipe(takeUntilDestroyed(this.destroyRef), map(filters => searchContext.updateUserFiltersSave(filters))).subscribe();
164
161
  }
165
162
  syncSearchInputsToSearchContext() {
166
- this._searchInputs$.pipe(takeUntil(this.destroy$), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe(states => {
163
+ this._searchInputs$.pipe(takeUntilDestroyed(this.destroyRef), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe(states => {
167
164
  this._searchStates$.next(states);
168
165
  });
169
166
  const inputFilters$ = this._searchStates$.pipe(map(states => this.convertToFilters(states)), filter(filters => filters.length > 0));
170
167
  inputFilters$
171
- .pipe(takeUntil(this.destroy$), combineLatestWith(this._searchContext$))
168
+ .pipe(takeUntilDestroyed(this.destroyRef), combineLatestWith(this._searchContext$))
172
169
  .subscribe(([inputFilters, searchContext]) => {
173
170
  searchContext.updateUserFilters(inputFilters);
174
171
  });
175
172
  }
176
173
  syncSearchContextToBoundFilterContext() {
177
- this._searchContext$.pipe(takeUntil(this.destroy$), switchMap(context => context.allFiltersChanged)).subscribe(allFilters => this.applyToBoundFilterContext(allFilters));
174
+ this._searchContext$.pipe(takeUntilDestroyed(this.destroyRef), switchMap(context => context.allFiltersChanged)).subscribe(allFilters => this.applyToBoundFilterContext(allFilters));
178
175
  }
179
176
  applyToBoundFilterContext(filters) {
180
177
  const filterCtx = this.filterContext;
@@ -219,7 +216,7 @@ export class ElderSearchContextDirective {
219
216
  .filter(s => !!s.queryKey)
220
217
  .map(s => new Filter(s.queryKey, s.queryValue));
221
218
  }
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 }); }
219
+ 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
220
  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
221
  }
225
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
@@ -228,7 +225,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
228
225
  selector: '[elderSearchContext]',
229
226
  exportAs: 'elderSearchContext'
230
227
  }]
231
- }], ctorParameters: function () { return [{ type: i1.SearchContextService }]; }, propDecorators: { searchContextId: [{
228
+ }], ctorParameters: function () { return [{ type: i1.SearchContextService }, { type: i0.DestroyRef }]; }, propDecorators: { searchContextId: [{
232
229
  type: Input
233
230
  }], filterContext: [{
234
231
  type: Input,
@@ -236,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
236
233
  }], forcedFilters: [{
237
234
  type: Input
238
235
  }] } });
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==
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxlQUFlLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFHMUUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7QUFFOUQ7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLDJCQUEyQjtJQW1CdEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0Usb0JBQTBDLEVBQ3pCLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF6QnpDOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJELGlDQUE0QixHQUFHLElBQUksR0FBbUIsQ0FBQztRQUV2RCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFn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Q0FBQztRQUM5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztRQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBMEI7UUFDakQsT0FBTyxNQUFNO2FBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzthQUN4QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzthQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBL1FVLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO29JQTZEWSxlQUFlO3NCQUR6QixLQUFLO2dCQWtCSyxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkEyQmhCLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdFdpdGgsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dH0gZnJvbSAnLi9kb21haW4vaW5wdXQvc2VhcmNoLWlucHV0JztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHQnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dFN0YXRlfSBmcm9tICcuL2RvbWFpbi9pbnB1dC9zZWFyY2gtaW5wdXQtc3RhdGUnO1xuaW1wb3J0IHtTZWFyY2hDb250ZXh0U2VydmljZX0gZnJvbSAnLi9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7U2VhcmNoQ29udGV4dH0gZnJvbSAnLi9kb21haW4vY29udGV4dC9zZWFyY2gtY29udGV4dCc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIFRoZSBTZWFyY2hDb250ZXh0RGlyZWN0aXZlIGJpbmRzIGEgZ3JvdXAgb2Ygc2VhcmNoLWlucHV0c1xuICogdG8gYSBTZWFyY2hDb250ZXh0IHdpdGggYSB0d28td2F5IGJpbmRpbmcuXG4gKlxuICogSXQgYWxzbyBiaW5kcyB0aGUgU2VhcmNoQ29udGV4dCB0byBhIEZpbHRlckNvbnRleHQgKERhdGFDb250ZXh0KS5cbiAqIFRPRE8gTWF5YmUgc2VwYXJhdGUgdGhpcz8/XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlclNlYXJjaENvbnRleHRdJyxcbiAgZXhwb3J0QXM6ICdlbGRlclNlYXJjaENvbnRleHQnXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyc1RvQXBwbHlBdFJlZ2lzdHJhdGlvbiA9IG5ldyBNYXA8c3RyaW5nLCBGaWx0ZXI+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaElucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaElucHV0W10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VhcmNoU3RhdGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VhcmNoSW5wdXRTdGF0ZVtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlckNvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJDb250ZXh0PihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWFyY2hDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VhcmNoQ29udGV4dD4oU2VhcmNoQ29udGV4dC5zdGFuZGFsb25lKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaENvbnRleHRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2VhcmNoQ29udGV4dFNlcnZpY2U6IFNlYXJjaENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICApIHtcbiAgICB0aGlzLnNlYXJjaENvbnRleHRJZCQucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgZmlsdGVyKGNvbnRleHRJZCA9PiAhIWNvbnRleHRJZCksXG4gICAgICBtYXAoY29udGV4dElkID0+IHNlYXJjaENvbnRleHRTZXJ2aWNlLmNvbnRleHQoY29udGV4dElkKSksXG4gICAgKS5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX3NlYXJjaENvbnRleHQkLm5leHQoY3R4KSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseURlZmF1bHRGaWx0ZXJzVG9TZWFyY2hDb250ZXh0KCk7XG4gICAgdGhpcy5zeW5jU2VhcmNoQ29udGV4dFRvQm91bmRGaWx0ZXJDb250ZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlYXJjaENvbnRleHQgPSB0aGlzLnNlYXJjaENvbnRleHQ7XG4gICAgdGhpcy5hcHBseVNlYXJjaENvbnRleHRUb0lucHV0cyhzZWFyY2hDb250ZXh0KTtcbiAgICB0aGlzLnN5bmNTZWFyY2hJbnB1dHNUb1NlYXJjaENvbnRleHQoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VhcmNoQ29udGV4dElkKGNvbnRleHRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWFyY2hDb250ZXh0SWQkLm5leHQoY29udGV4dElkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VhcmNoQ29udGV4dElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29udGV4dElkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWFyY2hDb250ZXh0JCgpOiBPYnNlcnZhYmxlPFNlYXJjaENvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoQ29udGV4dCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlYXJjaENvbnRleHQoKTogU2VhcmNoQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaENvbnRleHQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoJ2VsZGVyU2VhcmNoQ29udGV4dCcpXG4gIHB1YmxpYyBzZXQgZmlsdGVyQ29udGV4dCh2YWx1ZTogRmlsdGVyQ29udGV4dCB8ICcnKSB7XG4gICAgbGV0IGNvbnRleHQ6IEZpbHRlckNvbnRleHQ7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICBjb250ZXh0ID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZy53YXJuKCdJbGxlZ2FsIHZhbHVlIHByb3ZpZGVkIGZvciBwcm9wZXJ0eSBmaWx0ZXJDb250ZXh0OiAnLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lsbGVnYWwgdmFsdWUgcHJvdmlkZWQgZm9yIHByb3BlcnR5IGZpbHRlckNvbnRleHQhICcgKyB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQgPSBGaWx0ZXJDb250ZXh0LmVtcHR5KCk7XG4gICAgfVxuICAgIHRoaXMuX2ZpbHRlckNvbnRleHQkLm5leHQoY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlckNvbnRleHQoKTogRmlsdGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckNvbnRleHQkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogRm9yY2VkIGZpbHRlcnMgYXJlIGFsd2F5cyBtZXJnZWQgaW50byB0aGUgZmluYWwgRmlsdGVyQ29udGV4dC5cbiAgICpcbiAgICogVGhpcyBtZWFucyB0aGV5IG92ZXJyaWRlIHVzZXIgZGVmaW5lZCBmaWx0ZXJzLCBidXQgYXR0ZW1wdFxuICAgKiB0byBhbHNvIGtlZXAgdGhlIHVzZXJzIGludGVudCAoYnkgbWVyZ2luZykgdGhlbS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZm9yY2VkRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuc2VhcmNoQ29udGV4dC5yZXBsYWNlRm9yY2VkRmlsdGVycyhmaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9yY2VkRmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29udGV4dC5mb3JjZWRGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRyaWJ1dGVzKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hJbnB1dHMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRyaWJ1dGVzU25hcHNob3QoKTogU2VhcmNoSW5wdXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaElucHV0cyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVzJCgpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hTdGF0ZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZXNTbmFwc2hvdCgpOiBTZWFyY2hJbnB1dFN0YXRlW10ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hTdGF0ZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCB1c2VyIHRvdWNoZWQgYXR0cmlidXRlcy4gKGlnbm9yaW5nIGZhbGxiYWNrcylcbiAgICovXG4gIHB1YmxpYyBnZXQgdXNlckRlZmluZWRBdHRyaWJ1dGVzJCgpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlcyQucGlwZShcbiAgICAgIG1hcChzdGF0ZXMgPT4gc3RhdGVzLmZpbHRlcihzID0+ICFzLnByaXN0aW5lKSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgbmV3IHNlYXJjaCBuYW1lIGluIHRoaXMgY29udGFpbmVyXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXIoc2VhcmNoSW5wdXQ6IFNlYXJjaElucHV0KTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX3NlYXJjaElucHV0cyQuZ2V0VmFsdWUoKTtcbiAgICBjb25zdCB0b0FwcGx5ID0gdGhpcy5maWx0ZXJzVG9BcHBseUF0UmVnaXN0cmF0aW9uLmdldChzZWFyY2hJbnB1dC5uYW1lKTtcbiAgICBpZiAodG9BcHBseSkge1xuICAgICAgc2VhcmNoSW5wdXQuc2V0VmFsdWUodG9BcHBseS52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMubG9nLmRlYnVnKCdSZWdpc3RlcmluZyBzZWFyY2ggaW5wdXQgWycgKyBzZWFyY2hJbnB1dC5uYW1lICsgJ10uIExhdGUgcmVnaXN0cmF0aW9uIHZhbHVlOicgKyB0b0FwcGx5Py52YWx1ZSk7XG4gICAgdGhpcy5fc2VhcmNoSW5wdXRzJC5uZXh0KFsuLi5jdXJyZW50LCBzZWFyY2hJbnB1dF0pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuYXR0cmlidXRlc1NuYXBzaG90XG4gICAgICAuZmlsdGVyKGF0dHIgPT4gIWF0dHIucmVhZG9ubHkpXG4gICAgICAuZm9yRWFjaChhID0+IHtcbiAgICAgICAgYS5yZXNldCgpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGFwcGx5RGVmYXVsdEZpbHRlcnNUb1NlYXJjaENvbnRleHQoKTogdm9pZCB7XG5cbiAgICBjb25zdCBkY0ZpbHRlcnMgPSB0aGlzLmZpbHRlckNvbnRleHQ7XG4gICAgY29uc3Qgc2VhcmNoQ29udGV4dCA9IHRoaXMuc2VhcmNoQ29udGV4dDtcbiAgICBpZiAoc2VhcmNoQ29udGV4dC51c2VyRmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYXBwbHlBc0RlZmF1bHRzVW50aWxVc2VyQWN0aW9uKHNlYXJjaENvbnRleHQsIGRjRmlsdGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRjRmlsdGVycy5yZXBsYWNlRmlsdGVycyhcbiAgICAgICAgc2VhcmNoQ29udGV4dC51c2VyRmlsdGVyc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QXNEZWZhdWx0c1VudGlsVXNlckFjdGlvbihcbiAgICBzZWFyY2hDb250ZXh0OiBTZWFyY2hDb250ZXh0LFxuICAgIGRjRmlsdGVyczogRmlsdGVyQ29udGV4dFxuICApOiB2b2lkIHtcbiAgICBkY0ZpbHRlcnMuZmlsdGVycy5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICBtYXAoZmlsdGVycyA9PiBzZWFyY2hDb250ZXh0LnVwZGF0ZVVzZXJGaWx0ZXJzU2F2ZShmaWx0ZXJzKSksXG4gICAgICAvLyB0YWtlV2hpbGUoYWNjZXB0RGVmYXVsdEZpbHRlcnMgPT4gYWNjZXB0RGVmYXVsdEZpbHRlcnMpXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY1NlYXJjaElucHV0c1RvU2VhcmNoQ29udGV4dCgpOiB2b2lkIHtcblxuICAgIHRoaXMuX3NlYXJjaElucHV0cyQucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgc3dpdGNoTWFwKGlucHV0cyA9PiBjb21iaW5lTGF0ZXN0KGlucHV0cy5tYXAoaSA9PiBpLnN0YXRlJCkpKSxcbiAgICAgIGRlYm91bmNlVGltZSg1KVxuICAgICkuc3Vic2NyaWJlKHN0YXRlcyA9PiB7XG4gICAgICB0aGlzLl9zZWFyY2hTdGF0ZXMkLm5leHQoc3RhdGVzKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGlucHV0RmlsdGVycyQgPSB0aGlzLl9zZWFyY2hTdGF0ZXMkLnBpcGUoXG4gICAgICBtYXAoc3RhdGVzID0+IHRoaXMuY29udmVydFRvRmlsdGVycyhzdGF0ZXMpKSxcbiAgICAgIGZpbHRlcihmaWx0ZXJzID0+IGZpbHRlcnMubGVuZ3RoID4gMClcbiAgICApO1xuXG4gICAgaW5wdXRGaWx0ZXJzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLl9zZWFyY2hDb250ZXh0JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtpbnB1dEZpbHRlcnMsIHNlYXJjaENvbnRleHRdKSA9PiB7XG4gICAgICAgIHNlYXJjaENvbnRleHQudXBkYXRlVXNlckZpbHRlcnMoaW5wdXRGaWx0ZXJzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jU2VhcmNoQ29udGV4dFRvQm91bmRGaWx0ZXJDb250ZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NlYXJjaENvbnRleHQkLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgIHN3aXRjaE1hcChjb250ZXh0ID0+IGNvbnRleHQuYWxsRmlsdGVyc0NoYW5nZWQpXG4gICAgKS5zdWJzY3JpYmUoYWxsRmlsdGVycyA9PiB0aGlzLmFwcGx5VG9Cb3VuZEZpbHRlckNvbnRleHQoYWxsRmlsdGVycykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVRvQm91bmRGaWx0ZXJDb250ZXh0KGZpbHRlcnM6IEZpbHRlcltdKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyQ3R4ID0gdGhpcy5maWx0ZXJDb250ZXh0O1xuICAgIGlmIChmaWx0ZXJDdHgpIHtcbiAgICAgIGZpbHRlckN0eC5yZXBsYWNlRmlsdGVycyhmaWx0ZXJzKTtcbiAgICAgIHRoaXMubG9nLmRlYnVnKCdBcHBsaWVkIEZpbHRlcnMgb2YgU2VhcmNoQ29udGV4dCAnICsgdGhpcy5zZWFyY2hDb250ZXh0SWQgKyAnIHRvIERhdGFDb250ZXh0IEZpbHRlckNvbnRleHQuJywgZmlsdGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLndhcm4oJ0ZhaWxlZCB0byBhcHBseSBmaWx0ZXJzIHNpbmNlIG5vIEZpbHRlckNvbnRleHQgaXMgYXZhaWxhYmxlIScsIGZpbHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTZWFyY2hDb250ZXh0VG9JbnB1dHMoc2VhcmNoQ29udGV4dDogU2VhcmNoQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJzVG9JbnB1dHMoXG4gICAgICBzZWFyY2hDb250ZXh0LnVzZXJGaWx0ZXJzXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXJzVG9JbnB1dHMoZmlsdGVyczogRmlsdGVyW10pOiB2b2lkIHtcbiAgICBpZiAoZmlsdGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBpbnB1dHNCeU5hbWUgPSB0aGlzLnNlYXJjaElucHV0c0J5TmFtZSgpO1xuICAgICAgdGhpcy5sb2cud2FybignYXBwbHlGaWx0ZXJzVG9JbnB1dHMgWycgKyBBcnJheS5mcm9tKGlucHV0c0J5TmFtZS5rZXlzKCkpICsgJ10nLCB7XG4gICAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgICAgIGlucHV0c0J5TmFtZTogaW5wdXRzQnlOYW1lXG4gICAgICB9KTtcbiAgICAgIGZpbHRlcnMuZm9yRWFjaChmID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dHNCeU5hbWUuZ2V0KGYua2V5KTtcbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgaW5wdXQuc2V0VmFsdWUoZi52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJzVG9BcHBseUF0UmVnaXN0cmF0aW9uLnNldChmLmtleSwgZik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VhcmNoSW5wdXRzQnlOYW1lKCk6IE1hcDxzdHJpbmcsIFNlYXJjaElucHV0PiB7XG4gICAgY29uc3QgaW5wdXRzID0gdGhpcy5fc2VhcmNoSW5wdXRzJC5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBTZWFyY2hJbnB1dD4oKTtcbiAgICBpbnB1dHMuZm9yRWFjaChpbnB1dCA9PiBtYXAuc2V0KGlucHV0Lm5hbWUsIGlucHV0KSk7XG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvRmlsdGVycyhzdGF0ZXM6IFNlYXJjaElucHV0U3RhdGVbXSk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gc3RhdGVzXG4gICAgICAuZmlsdGVyKHMgPT4gcy51c2VyRXZlbnQpXG4gICAgICAuZmlsdGVyKHMgPT4gISFzLnF1ZXJ5S2V5KVxuICAgICAgLm1hcChzID0+IG5ldyBGaWx0ZXIocy5xdWVyeUtleSwgcy5xdWVyeVZhbHVlKSk7XG4gIH1cbn1cblxuIl19
@@ -84,6 +84,7 @@ import { MatSidenavModule } from '@angular/material/sidenav';
84
84
  import * as i6 from '@angular/material/datepicker';
85
85
  import { MatDatepicker, MatDatepickerModule } from '@angular/material/datepicker';
86
86
  import localeDECH from '@angular/common/locales/de-CH';
87
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
87
88
  import { TemplatePortal } from '@angular/cdk/portal';
88
89
  import * as i1$a from '@angular/cdk/overlay';
89
90
  import { OverlayModule } from '@angular/cdk/overlay';
@@ -25934,12 +25935,6 @@ class SearchContext {
25934
25935
  this.userFilterContext = new FilterContext();
25935
25936
  this.forcedFilterContext = new FilterContext();
25936
25937
  this.allFilters$ = new BehaviorSubject(undefined);
25937
- /***************************************************************************
25938
- * *
25939
- * Public API *
25940
- * *
25941
- **************************************************************************/
25942
- this.acceptDefaultFilters = true;
25943
25938
  this.id = id;
25944
25939
  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));
25945
25940
  }
@@ -25949,7 +25944,7 @@ class SearchContext {
25949
25944
  * *
25950
25945
  **************************************************************************/
25951
25946
  get allFiltersChanged() {
25952
- return this.allFilters$.pipe(filter(filters => !!filters));
25947
+ return this.allFilters$.pipe(filter(filters => !!filters), distinctUntilChanged((a, b) => FilterUtil.equals(a, b)));
25953
25948
  }
25954
25949
  get userFilters() {
25955
25950
  return this.userFilterContext.filtersSnapshot;
@@ -25960,23 +25955,23 @@ class SearchContext {
25960
25955
  get forcedFilters() {
25961
25956
  return this.forcedFilterContext.filtersSnapshot;
25962
25957
  }
25963
- updateDefaultFilters(filters) {
25958
+ /***************************************************************************
25959
+ * *
25960
+ * Public API *
25961
+ * *
25962
+ **************************************************************************/
25963
+ updateUserFiltersSave(filters) {
25964
25964
  // this.log.error('updateDefaultFilters, acceptDefaultFilters: ' + this.acceptDefaultFilters, filters);
25965
- if (this.acceptDefaultFilters) {
25966
- this.userFilterContext.updateFilters(FilterUtil.strip(filters, this.forcedFilters));
25967
- }
25968
- return this.acceptDefaultFilters;
25965
+ this.userFilterContext.updateFilters(FilterUtil.strip(filters, this.forcedFilters));
25969
25966
  }
25970
25967
  updateUserFilters(filters) {
25971
25968
  if (filters.length > 0) {
25972
25969
  // this.log.error('updateUserFilters', filters);
25973
- this.acceptDefaultFilters = false;
25974
25970
  this.userFilterContext.updateFilters(filters);
25975
25971
  }
25976
25972
  }
25977
25973
  replaceUserFilters(filters) {
25978
25974
  // this.log.error('replaceUserFilters', filters);
25979
- this.acceptDefaultFilters = false;
25980
25975
  this.userFilterContext.replaceFilters(filters);
25981
25976
  }
25982
25977
  replaceForcedFilters(filters) {
@@ -26036,21 +26031,21 @@ class ElderSearchContextDirective {
26036
26031
  * Constructor *
26037
26032
  * *
26038
26033
  **************************************************************************/
26039
- constructor(searchContextService) {
26034
+ constructor(searchContextService, destroyRef) {
26035
+ this.destroyRef = destroyRef;
26040
26036
  /***************************************************************************
26041
26037
  * *
26042
26038
  * Fields *
26043
26039
  * *
26044
26040
  **************************************************************************/
26045
26041
  this.log = LoggerFactory.getLogger(this.constructor.name);
26046
- this.destroy$ = new Subject();
26047
26042
  this.filtersToApplyAtRegistration = new Map;
26048
26043
  this._searchInputs$ = new BehaviorSubject([]);
26049
26044
  this._searchStates$ = new BehaviorSubject([]);
26050
26045
  this._filterContext$ = new BehaviorSubject(null);
26051
26046
  this._searchContext$ = new BehaviorSubject(SearchContext.standalone());
26052
26047
  this.searchContextId$ = new BehaviorSubject(null);
26053
- this.searchContextId$.pipe(takeUntil(this.destroy$), filter(contextId => !!contextId), map(contextId => searchContextService.context(contextId))).subscribe(ctx => this._searchContext$.next(ctx));
26048
+ this.searchContextId$.pipe(takeUntilDestroyed(this.destroyRef), filter(contextId => !!contextId), map(contextId => searchContextService.context(contextId))).subscribe(ctx => this._searchContext$.next(ctx));
26054
26049
  }
26055
26050
  /***************************************************************************
26056
26051
  * *
@@ -26066,10 +26061,6 @@ class ElderSearchContextDirective {
26066
26061
  this.applySearchContextToInputs(searchContext);
26067
26062
  this.syncSearchInputsToSearchContext();
26068
26063
  }
26069
- ngOnDestroy() {
26070
- this.destroy$.next();
26071
- this.destroy$.complete();
26072
- }
26073
26064
  /***************************************************************************
26074
26065
  * *
26075
26066
  * Properties *
@@ -26176,21 +26167,21 @@ class ElderSearchContextDirective {
26176
26167
  }
26177
26168
  }
26178
26169
  applyAsDefaultsUntilUserAction(searchContext, dcFilters) {
26179
- dcFilters.filters.pipe(map(filters => searchContext.updateDefaultFilters(filters)), takeWhile(acceptDefaultFilters => acceptDefaultFilters)).subscribe();
26170
+ dcFilters.filters.pipe(takeUntilDestroyed(this.destroyRef), map(filters => searchContext.updateUserFiltersSave(filters))).subscribe();
26180
26171
  }
26181
26172
  syncSearchInputsToSearchContext() {
26182
- this._searchInputs$.pipe(takeUntil(this.destroy$), switchMap$1(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe(states => {
26173
+ this._searchInputs$.pipe(takeUntilDestroyed(this.destroyRef), switchMap$1(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe(states => {
26183
26174
  this._searchStates$.next(states);
26184
26175
  });
26185
26176
  const inputFilters$ = this._searchStates$.pipe(map(states => this.convertToFilters(states)), filter(filters => filters.length > 0));
26186
26177
  inputFilters$
26187
- .pipe(takeUntil(this.destroy$), combineLatestWith(this._searchContext$))
26178
+ .pipe(takeUntilDestroyed(this.destroyRef), combineLatestWith(this._searchContext$))
26188
26179
  .subscribe(([inputFilters, searchContext]) => {
26189
26180
  searchContext.updateUserFilters(inputFilters);
26190
26181
  });
26191
26182
  }
26192
26183
  syncSearchContextToBoundFilterContext() {
26193
- this._searchContext$.pipe(takeUntil(this.destroy$), switchMap$1(context => context.allFiltersChanged)).subscribe(allFilters => this.applyToBoundFilterContext(allFilters));
26184
+ this._searchContext$.pipe(takeUntilDestroyed(this.destroyRef), switchMap$1(context => context.allFiltersChanged)).subscribe(allFilters => this.applyToBoundFilterContext(allFilters));
26194
26185
  }
26195
26186
  applyToBoundFilterContext(filters) {
26196
26187
  const filterCtx = this.filterContext;
@@ -26235,7 +26226,7 @@ class ElderSearchContextDirective {
26235
26226
  .filter(s => !!s.queryKey)
26236
26227
  .map(s => new Filter(s.queryKey, s.queryValue));
26237
26228
  }
26238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: SearchContextService }], target: i0.ɵɵFactoryTarget.Directive }); }
26229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: SearchContextService }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
26239
26230
  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 }); }
26240
26231
  }
26241
26232
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
@@ -26244,7 +26235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
26244
26235
  selector: '[elderSearchContext]',
26245
26236
  exportAs: 'elderSearchContext'
26246
26237
  }]
26247
- }], ctorParameters: function () { return [{ type: SearchContextService }]; }, propDecorators: { searchContextId: [{
26238
+ }], ctorParameters: function () { return [{ type: SearchContextService }, { type: i0.DestroyRef }]; }, propDecorators: { searchContextId: [{
26248
26239
  type: Input
26249
26240
  }], filterContext: [{
26250
26241
  type: Input,