@elderbyte/ngx-starter 16.2.10 → 16.2.12

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.
Files changed (32) hide show
  1. package/_index.scss +4 -2
  2. package/esm2022/lib/components/currency/elder-currency.module.mjs +10 -3
  3. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +2 -2
  4. package/esm2022/lib/components/currency/model/currency.mjs +5 -5
  5. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +56 -29
  6. package/esm2022/lib/components/forms/search/elder-search-context-url-binding.directive.mjs +3 -3
  7. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +26 -60
  8. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +2 -2
  9. package/esm2022/lib/components/forms/search/search-context-orchestrator.mjs +55 -0
  10. package/esm2022/lib/components/select/elder-select.module.mjs +11 -5
  11. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +38 -4
  12. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +281 -0
  13. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +15 -0
  14. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +5 -50
  15. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +15 -2
  16. package/esm2022/lib/components/select/multi/public_api.mjs +2 -1
  17. package/fesm2022/elderbyte-ngx-starter.mjs +480 -151
  18. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  19. package/lib/components/currency/model/currency.d.ts +3 -3
  20. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +11 -6
  21. package/lib/components/forms/search/elder-search-context.directive.d.ts +7 -17
  22. package/lib/components/forms/search/search-context-orchestrator.d.ts +29 -0
  23. package/lib/components/select/elder-select.module.d.ts +26 -24
  24. package/lib/components/select/multi/elder-multi-select-base.d.ts +10 -0
  25. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +102 -0
  26. package/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.d.ts +10 -0
  27. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +0 -10
  28. package/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.d.ts +3 -0
  29. package/lib/components/select/multi/public_api.d.ts +1 -0
  30. package/package.json +1 -1
  31. package/src/lib/components/chips/_elder-chip-theme.scss +5 -2
  32. package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +79 -0
package/_index.scss CHANGED
@@ -27,7 +27,8 @@
27
27
  @use "./src/lib/components/button-group/elder-button-group/elder-button-group.component" as elder-button-group;
28
28
  @use "./src/lib/components/select/single/elder-select/elder-select.component" as elder-select;
29
29
  @use "./src/lib/components/time/elder-time-input.theme" as elder-time;
30
- @use "./src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component" as elder-multi-select;
30
+ @use "./src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component" as elder-multi-select-chips;
31
+ @use "./src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component" as elder-multi-select-chip-options;
31
32
  @use "./src/lib/components/iframes/iframe-host/iframe-host.component" as iframe-host;
32
33
  @use "./src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component" as elder-drop-zone;
33
34
 
@@ -52,7 +53,8 @@
52
53
  @include elder-expand-toggle-button.theme($theme);
53
54
  @include elder-select.theme($theme);
54
55
  @include elder-time.theme($theme);
55
- @include elder-multi-select.theme($theme);
56
+ @include elder-multi-select-chips.theme($theme);
57
+ @include elder-multi-select-chip-options.theme($theme);
56
58
  @include elder-table.theme($theme);
57
59
  @include elder-card-stack.theme($theme);
58
60
  @include elder-card.theme($theme);
@@ -1,11 +1,14 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
2
+ import { CommonModule, CurrencyPipe } from '@angular/common';
3
3
  import { ElderCurrencyPipe } from './elder-currency.pipe';
4
4
  import * as i0 from "@angular/core";
5
5
  export class ElderCurrencyModule {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderCurrencyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
7
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: ElderCurrencyModule, declarations: [ElderCurrencyPipe], imports: [CommonModule], exports: [ElderCurrencyPipe] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderCurrencyModule, imports: [CommonModule] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderCurrencyModule, providers: [
9
+ CurrencyPipe,
10
+ ElderCurrencyPipe
11
+ ], imports: [CommonModule] }); }
9
12
  }
10
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderCurrencyModule, decorators: [{
11
14
  type: NgModule,
@@ -18,7 +21,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
18
21
  ],
19
22
  exports: [
20
23
  ElderCurrencyPipe
24
+ ],
25
+ providers: [
26
+ CurrencyPipe,
27
+ ElderCurrencyPipe
21
28
  ]
22
29
  }]
23
30
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY3VycmVuY3kubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9jdXJyZW5jeS9lbGRlci1jdXJyZW5jeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBZTFELE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CLGlCQU41QixpQkFBaUIsYUFIakIsWUFBWSxhQU1aLGlCQUFpQjtnSEFHUixtQkFBbUIsWUFUNUIsWUFBWTs7NEZBU0gsbUJBQW1CO2tCQVgvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRTt3QkFDWixpQkFBaUI7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxpQkFBaUI7cUJBQ2xCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbGRlckN1cnJlbmN5UGlwZSB9IGZyb20gJy4vZWxkZXItY3VycmVuY3kucGlwZSc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEVsZGVyQ3VycmVuY3lQaXBlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBFbGRlckN1cnJlbmN5UGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQ3VycmVuY3lNb2R1bGUgeyB9XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY3VycmVuY3kubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9jdXJyZW5jeS9lbGRlci1jdXJyZW5jeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQW1CMUQsTUFBTSxPQUFPLG1CQUFtQjsrR0FBbkIsbUJBQW1CO2dIQUFuQixtQkFBbUIsaUJBVjVCLGlCQUFpQixhQUhqQixZQUFZLGFBTVosaUJBQWlCO2dIQU9SLG1CQUFtQixhQUxuQjtZQUNULFlBQVk7WUFDWixpQkFBaUI7U0FDbEIsWUFYQyxZQUFZOzs0RkFhSCxtQkFBbUI7a0JBZi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULFlBQVk7d0JBQ1osaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgQ3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWxkZXJDdXJyZW5jeVBpcGUgfSBmcm9tICcuL2VsZGVyLWN1cnJlbmN5LnBpcGUnO1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFbGRlckN1cnJlbmN5UGlwZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRWxkZXJDdXJyZW5jeVBpcGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ3VycmVuY3lQaXBlLFxuICAgIEVsZGVyQ3VycmVuY3lQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJDdXJyZW5jeU1vZHVsZSB7IH1cbiJdfQ==
@@ -19,7 +19,7 @@ export class ElderCurrencyPipe {
19
19
  if (!currency) {
20
20
  return '-';
21
21
  }
22
- return this.currencyPipe.transform(currency.value, currency.code, display, digitsInfo, locale);
22
+ return this.currencyPipe.transform(currency.value, currency.unit, display, digitsInfo, locale);
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderCurrencyPipe, deps: [{ token: i1.CurrencyPipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
25
25
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: ElderCurrencyPipe, name: "elderCurrency" }); }
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
30
30
  name: 'elderCurrency'
31
31
  }]
32
32
  }], ctorParameters: function () { return [{ type: i1.CurrencyPipe }]; } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY3VycmVuY3kucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvY3VycmVuY3kvZWxkZXItY3VycmVuY3kucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBT3BELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBRTdDLENBQUM7SUFDRDs7OztnRkFJNEU7SUFFckUsU0FBUyxDQUNkLFFBQWtCLEVBQ2xCLE9BQWdFLEVBQ2hFLFVBQW1CLEVBQ25CLE1BQWU7UUFHZixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUU5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUNoQyxRQUFRLENBQUMsS0FBSyxFQUNkLFFBQVEsQ0FBQyxJQUFJLEVBQ2IsT0FBTyxFQUNQLFVBQVUsRUFDVixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7K0dBbENVLGlCQUFpQjs2R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDdXJyZW5jeX0gZnJvbSAnLi9tb2RlbC9jdXJyZW5jeSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2VsZGVyQ3VycmVuY3knXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQ3VycmVuY3lQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZVxuICApIHtcbiAgfVxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGN1cnJlbmN5OiBDdXJyZW5jeSxcbiAgICBkaXNwbGF5PzogJ2NvZGUnIHwgJ3N5bWJvbCcgfCAnc3ltYm9sLW5hcnJvdycgfCBzdHJpbmcgfCBib29sZWFuLFxuICAgIGRpZ2l0c0luZm8/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gICk6IHN0cmluZyB7XG5cbiAgICBpZiAoIWN1cnJlbmN5KSB7IHJldHVybiAnLSc7IH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5UGlwZS50cmFuc2Zvcm0oXG4gICAgICBjdXJyZW5jeS52YWx1ZSxcbiAgICAgIGN1cnJlbmN5LmNvZGUsXG4gICAgICBkaXNwbGF5LFxuICAgICAgZGlnaXRzSW5mbyxcbiAgICAgIGxvY2FsZVxuICAgICk7XG4gIH1cblxufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY3VycmVuY3kucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvY3VycmVuY3kvZWxkZXItY3VycmVuY3kucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBT3BELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBRTdDLENBQUM7SUFDRDs7OztnRkFJNEU7SUFFckUsU0FBUyxDQUNkLFFBQWtCLEVBQ2xCLE9BQWdFLEVBQ2hFLFVBQW1CLEVBQ25CLE1BQWU7UUFHZixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUU5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUNoQyxRQUFRLENBQUMsS0FBSyxFQUNkLFFBQVEsQ0FBQyxJQUFJLEVBQ2IsT0FBTyxFQUNQLFVBQVUsRUFDVixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7K0dBbENVLGlCQUFpQjs2R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUg3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO2lCQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDdXJyZW5jeX0gZnJvbSAnLi9tb2RlbC9jdXJyZW5jeSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2VsZGVyQ3VycmVuY3knXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQ3VycmVuY3lQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZVxuICApIHtcbiAgfVxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdHJhbnNmb3JtKFxuICAgIGN1cnJlbmN5OiBDdXJyZW5jeSxcbiAgICBkaXNwbGF5PzogJ2NvZGUnIHwgJ3N5bWJvbCcgfCAnc3ltYm9sLW5hcnJvdycgfCBzdHJpbmcgfCBib29sZWFuLFxuICAgIGRpZ2l0c0luZm8/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gICk6IHN0cmluZyB7XG5cbiAgICBpZiAoIWN1cnJlbmN5KSB7IHJldHVybiAnLSc7IH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5UGlwZS50cmFuc2Zvcm0oXG4gICAgICBjdXJyZW5jeS52YWx1ZSxcbiAgICAgIGN1cnJlbmN5LnVuaXQsXG4gICAgICBkaXNwbGF5LFxuICAgICAgZGlnaXRzSW5mbyxcbiAgICAgIGxvY2FsZVxuICAgICk7XG4gIH1cblxufVxuIl19
@@ -2,14 +2,14 @@
2
2
  * Represents an amount of currency.
3
3
  */
4
4
  export class Currency {
5
- static zero(code) {
6
- return Currency.from(code);
5
+ static zero(unit) {
6
+ return Currency.from(unit);
7
7
  }
8
- static from(code, value = 0) {
8
+ static from(unit, value = 0) {
9
9
  const quantity = new Currency();
10
10
  quantity.value = value;
11
- quantity.code = code;
11
+ quantity.unit = unit;
12
12
  return quantity;
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2N1cnJlbmN5L21vZGVsL2N1cnJlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFLWixNQUFNLENBQUMsSUFBSSxDQUFDLElBQWtCO1FBQ25DLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFrQixFQUFFLFFBQWdCLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0N1cnJlbmN5Q29kZX0gZnJvbSAnLi9jdXJyZW5jeS1jb2RlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGFtb3VudCBvZiBjdXJyZW5jeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1cnJlbmN5IHtcblxuICBwdWJsaWMgdmFsdWU6IG51bWJlcjtcbiAgcHVibGljIGNvZGU6IEN1cnJlbmN5Q29kZTtcblxuICBwdWJsaWMgc3RhdGljIHplcm8oY29kZTogQ3VycmVuY3lDb2RlKTogQ3VycmVuY3kge1xuICAgIHJldHVybiBDdXJyZW5jeS5mcm9tKGNvZGUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tKGNvZGU6IEN1cnJlbmN5Q29kZSwgdmFsdWU6IG51bWJlciA9IDApIHtcbiAgICBjb25zdCBxdWFudGl0eSA9IG5ldyBDdXJyZW5jeSgpO1xuICAgIHF1YW50aXR5LnZhbHVlID0gdmFsdWU7XG4gICAgcXVhbnRpdHkuY29kZSA9IGNvZGU7XG4gICAgcmV0dXJuIHF1YW50aXR5O1xuICB9XG59XG5cbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2N1cnJlbmN5L21vZGVsL2N1cnJlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFLWixNQUFNLENBQUMsSUFBSSxDQUFDLElBQWtCO1FBQ25DLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFrQixFQUFFLFFBQWdCLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0N1cnJlbmN5Q29kZX0gZnJvbSAnLi9jdXJyZW5jeS1jb2RlJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGFtb3VudCBvZiBjdXJyZW5jeS5cbiAqL1xuZXhwb3J0IGNsYXNzIEN1cnJlbmN5IHtcblxuICBwdWJsaWMgdmFsdWU6IG51bWJlcjtcbiAgcHVibGljIHVuaXQ6IEN1cnJlbmN5Q29kZTtcblxuICBwdWJsaWMgc3RhdGljIHplcm8odW5pdDogQ3VycmVuY3lDb2RlKTogQ3VycmVuY3kge1xuICAgIHJldHVybiBDdXJyZW5jeS5mcm9tKHVuaXQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tKHVuaXQ6IEN1cnJlbmN5Q29kZSwgdmFsdWU6IG51bWJlciA9IDApIHtcbiAgICBjb25zdCBxdWFudGl0eSA9IG5ldyBDdXJyZW5jeSgpO1xuICAgIHF1YW50aXR5LnZhbHVlID0gdmFsdWU7XG4gICAgcXVhbnRpdHkudW5pdCA9IHVuaXQ7XG4gICAgcmV0dXJuIHF1YW50aXR5O1xuICB9XG59XG5cbiJdfQ==
@@ -1,6 +1,7 @@
1
- import { Directive, Host } from '@angular/core';
2
- import { BehaviorSubject, combineLatestWith, filter, skipUntil, Subject, takeUntil } from 'rxjs';
3
- import { LoggerFactory } from '@elderbyte/ts-logger';
1
+ import { Directive, Host } from "@angular/core";
2
+ import { BehaviorSubject, combineLatestWith, of, Subject } from "rxjs";
3
+ import { LoggerFactory } from "@elderbyte/ts-logger";
4
+ import { delay, map, takeUntil } from "rxjs/operators";
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/forms";
6
7
  /**
@@ -13,6 +14,8 @@ export class ElderInitialValueDirective {
13
14
  * *
14
15
  **************************************************************************/
15
16
  constructor(ngModel) {
17
+ //TODO: The debounce time is a hacky workaround, find a proper way to set initial value.
18
+ // Currently two way binding ngModel deosnt work.
16
19
  this.ngModel = ngModel;
17
20
  /***************************************************************************
18
21
  * *
@@ -20,29 +23,51 @@ export class ElderInitialValueDirective {
20
23
  * *
21
24
  **************************************************************************/
22
25
  this.log = LoggerFactory.getLogger(this.constructor.name);
23
- this.newValue$ = new BehaviorSubject(null); // Initial Value or NewValue ???
24
- this.unsubscribe$ = new Subject();
26
+ this.initialValue$ = new BehaviorSubject(null);
27
+ this.destroy$ = new Subject();
25
28
  this.initialDone$ = new Subject();
26
29
  this.isInitial = true;
27
- this.initialValue = this.ngModel.model;
28
- ngModel.control.valueChanges
29
- .pipe(takeUntil(this.initialDone$), takeUntil(this.unsubscribe$), combineLatestWith(this.newValue$)).subscribe({
30
- next: ([ngModelValue, newValue]) => {
31
- if (this.initialValue === ngModelValue) {
32
- this.initialDone$.next();
33
- this.initialDone$.complete();
34
- ngModel.control.setValue(newValue ? newValue : ngModelValue); // Why set ngModelValue again??
35
- }
36
- else {
37
- this.log.warn('Initialisation not yet done!', {
38
- initialValue: this.initialValue,
39
- ngModelValue: ngModelValue,
40
- newValue: newValue
41
- });
30
+ const ngModelValue$ = of("dummy")
31
+ .pipe(delay(10), map(() => this.ngModel.model));
32
+ ngModelValue$
33
+ .pipe(combineLatestWith(this.initialValue$), takeUntil(this.initialDone$), takeUntil(this.destroy$)).subscribe({
34
+ next: ([ngModelValue, initialValue]) => {
35
+ this.log.warn("initialValue: " + initialValue);
36
+ if (initialValue) {
37
+ ngModel.control.setValue(initialValue);
42
38
  }
39
+ this.initialDone$.next();
40
+ this.initialDone$.complete();
43
41
  }
44
42
  });
43
+ // this.ngModelValue = this.ngModel.model;
44
+ // ngModel.control.valueChanges
45
+ // .pipe(
46
+ // takeUntil(this.initialDone$),
47
+ // takeUntil(this.unsubscribe$),
48
+ // combineLatestWith(this.newValue$),
49
+ // debounceTime(500)
50
+ // ).subscribe({
51
+ // next: ([ngModelValue, newValue]) => {
52
+ // if (this.initialValue === ngModelValue) {
53
+ // this.initialDone$.next();
54
+ // this.initialDone$.complete();
55
+ // ngModel.control.setValue(newValue ? newValue : ngModelValue); // Why set ngModelValue again??
56
+ // } else {
57
+ // this.log.warn('Initialisation not yet done!', {
58
+ // initialValue: this.initialValue,
59
+ // ngModelValue: ngModelValue,
60
+ // newValue: newValue
61
+ // });
62
+ // }
63
+ // }
64
+ // });
45
65
  }
66
+ /***************************************************************************
67
+ * *
68
+ * Life Cycle *
69
+ * *
70
+ **************************************************************************/
46
71
  /***************************************************************************
47
72
  * *
48
73
  * Properties *
@@ -50,14 +75,16 @@ export class ElderInitialValueDirective {
50
75
  **************************************************************************/
51
76
  get valueChanges$() {
52
77
  return this.ngModel.control.valueChanges
53
- .pipe(skipUntil(this.initialDone$), filter(value => this.filterInitialValue(value)));
78
+ .pipe(takeUntil(this.destroy$)
79
+ //filter(value => this.filterInitialValue(value))
80
+ );
54
81
  }
55
- setInitialValue(value) {
56
- this.newValue$.next(value); // Initial Value or NewValue ???
82
+ applyInitialValue(value) {
83
+ this.initialValue$.next(value);
57
84
  }
58
85
  ngOnDestroy() {
59
- this.unsubscribe$.next();
60
- this.unsubscribe$.complete();
86
+ this.destroy$.next();
87
+ this.destroy$.complete();
61
88
  }
62
89
  /***************************************************************************
63
90
  * *
@@ -65,7 +92,7 @@ export class ElderInitialValueDirective {
65
92
  * *
66
93
  **************************************************************************/
67
94
  filterInitialValue(value) {
68
- if (this.isInitial && this.initialValue === value) {
95
+ if (this.isInitial && this.ngModelValue$ === value) {
69
96
  this.isInitial = false;
70
97
  return false;
71
98
  }
@@ -77,10 +104,10 @@ export class ElderInitialValueDirective {
77
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderInitialValueDirective, decorators: [{
78
105
  type: Directive,
79
106
  args: [{
80
- selector: '[elderInitialValue]',
81
- exportAs: 'elderInitialValue',
107
+ selector: "[elderInitialValue]",
108
+ exportAs: "elderInitialValue"
82
109
  }]
83
110
  }], ctorParameters: function () { return [{ type: i1.NgModel, decorators: [{
84
111
  type: Host
85
112
  }] }]; } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW5pdGlhbC12YWx1ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItaW5pdGlhbC12YWx1ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFhLE9BQU8sRUFBRSxTQUFTLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFDL0csT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7QUFFbkQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8sMEJBQTBCO0lBZ0JyQzs7OztnRkFJNEU7SUFFNUUsWUFBNEIsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQXBCNUM7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUQsY0FBUyxHQUF5QixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztRQUV6RixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbkMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzVDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFTdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUV2QyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVk7YUFDekIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDbEMsQ0FBQyxTQUFTLENBQUM7WUFDWixJQUFJLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWSxFQUFFO29CQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUM3QixPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQywrQkFBK0I7aUJBQzlGO3FCQUFNO29CQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFO3dCQUM1QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7d0JBQy9CLFlBQVksRUFBRSxZQUFZO3dCQUMxQixRQUFRLEVBQUUsUUFBUTtxQkFDbkIsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWTthQUNyQyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDNUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ2hELENBQUM7SUFDTixDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQVU7UUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7SUFDOUQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsa0JBQWtCLENBQUMsS0FBVTtRQUNuQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FsRlUsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7OzBCQXVCYyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEhvc3QsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgZmlsdGVyLCBza2lwVW50aWwsIHN0YXJ0V2l0aCwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5cbi8qKlxuICogU2VhcmNoIG5hbWUgYWRhcHRlciBmb3IgaW5wdXQgY29udHJvbHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlckluaXRpYWxWYWx1ZV0nLFxuICBleHBvcnRBczogJ2VsZGVySW5pdGlhbFZhbHVlJyxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJJbml0aWFsVmFsdWVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIG5ld1ZhbHVlJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7IC8vIEluaXRpYWwgVmFsdWUgb3IgTmV3VmFsdWUgPz8/XG4gIHByaXZhdGUgaW5pdGlhbFZhbHVlOiBhbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsRG9uZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGlzSW5pdGlhbCA9IHRydWU7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIG5nTW9kZWw6IE5nTW9kZWwpIHtcbiAgICB0aGlzLmluaXRpYWxWYWx1ZSA9IHRoaXMubmdNb2RlbC5tb2RlbDtcblxuICAgIG5nTW9kZWwuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5pbml0aWFsRG9uZSQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLm5ld1ZhbHVlJCksXG4gICAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoW25nTW9kZWxWYWx1ZSwgbmV3VmFsdWVdKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSA9PT0gbmdNb2RlbFZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5pbml0aWFsRG9uZSQubmV4dCgpO1xuICAgICAgICAgIHRoaXMuaW5pdGlhbERvbmUkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgbmdNb2RlbC5jb250cm9sLnNldFZhbHVlKG5ld1ZhbHVlID8gbmV3VmFsdWUgOiBuZ01vZGVsVmFsdWUpOyAvLyBXaHkgc2V0IG5nTW9kZWxWYWx1ZSBhZ2Fpbj8/XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2cud2FybignSW5pdGlhbGlzYXRpb24gbm90IHlldCBkb25lIScsIHtcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogdGhpcy5pbml0aWFsVmFsdWUsXG4gICAgICAgICAgICBuZ01vZGVsVmFsdWU6IG5nTW9kZWxWYWx1ZSxcbiAgICAgICAgICAgIG5ld1ZhbHVlOiBuZXdWYWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IHZhbHVlQ2hhbmdlcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmdNb2RlbC5jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHNraXBVbnRpbCh0aGlzLmluaXRpYWxEb25lJCksXG4gICAgICAgIGZpbHRlcih2YWx1ZSA9PiB0aGlzLmZpbHRlckluaXRpYWxWYWx1ZSh2YWx1ZSkpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHNldEluaXRpYWxWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5uZXdWYWx1ZSQubmV4dCh2YWx1ZSk7IC8vIEluaXRpYWwgVmFsdWUgb3IgTmV3VmFsdWUgPz8/XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGZpbHRlckluaXRpYWxWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNJbml0aWFsICYmIHRoaXMuaW5pdGlhbFZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0luaXRpYWwgPSBmYWxzZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW5pdGlhbC12YWx1ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItaW5pdGlhbC12YWx1ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLEVBQWEsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTVEOztHQUVHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQWdCckM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQTRCLE9BQWdCO1FBQzFDLHdGQUF3RjtRQUN4RixpREFBaUQ7UUFGdkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQXBCNUM7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUQsa0JBQWEsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFFNUQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzVDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFZdkIsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQzthQUM5QixJQUFJLENBQ0gsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUNULEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUM5QixDQUFDO1FBRUosYUFBYTthQUNWLElBQUksQ0FDSCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pCLENBQUMsU0FBUyxDQUFDO1lBQ1YsSUFBSSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLENBQUM7Z0JBQy9DLElBQUksWUFBWSxFQUFFO29CQUNoQixPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDeEM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMvQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsMENBQTBDO1FBQzFDLCtCQUErQjtRQUMvQixXQUFXO1FBQ1gsb0NBQW9DO1FBQ3BDLG9DQUFvQztRQUNwQyx5Q0FBeUM7UUFDekMsd0JBQXdCO1FBQ3hCLGtCQUFrQjtRQUNsQiwwQ0FBMEM7UUFDMUMsZ0RBQWdEO1FBQ2hELGtDQUFrQztRQUNsQyxzQ0FBc0M7UUFDdEMsc0dBQXNHO1FBQ3RHLGVBQWU7UUFDZix3REFBd0Q7UUFDeEQsMkNBQTJDO1FBQzNDLHNDQUFzQztRQUN0Qyw2QkFBNkI7UUFDN0IsWUFBWTtRQUNaLFFBQVE7UUFDUixNQUFNO1FBQ04sTUFBTTtJQUNSLENBQUM7SUFFRDs7OztnRkFJNEU7SUFHNUU7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVk7YUFDckMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3hCLGlEQUFpRDtTQUNsRCxDQUFDO0lBQ04sQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsa0JBQWtCLENBQUMsS0FBVTtRQUNuQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FsSFUsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7OzBCQXVCYyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0LCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgb2YsIHNraXBVbnRpbCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSBcIkBlbGRlcmJ5dGUvdHMtbG9nZ2VyXCI7XG5pbXBvcnQgeyBkZWxheSwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG4vKipcbiAqIFNlYXJjaCBuYW1lIGFkYXB0ZXIgZm9yIGlucHV0IGNvbnRyb2xzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2VsZGVySW5pdGlhbFZhbHVlXVwiLFxuICBleHBvcnRBczogXCJlbGRlckluaXRpYWxWYWx1ZVwiXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVySW5pdGlhbFZhbHVlRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSBpbml0aWFsVmFsdWUkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHJpdmF0ZSBuZ01vZGVsVmFsdWUkOiBhbnk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxEb25lJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgaXNJbml0aWFsID0gdHJ1ZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihASG9zdCgpIHByaXZhdGUgbmdNb2RlbDogTmdNb2RlbCkge1xuICAgIC8vVE9ETzogVGhlIGRlYm91bmNlIHRpbWUgaXMgYSBoYWNreSB3b3JrYXJvdW5kLCBmaW5kIGEgcHJvcGVyIHdheSB0byBzZXQgaW5pdGlhbCB2YWx1ZS5cbiAgICAvLyBDdXJyZW50bHkgdHdvIHdheSBiaW5kaW5nIG5nTW9kZWwgZGVvc250IHdvcmsuXG5cbiAgICBjb25zdCBuZ01vZGVsVmFsdWUkID0gb2YoXCJkdW1teVwiKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlbGF5KDEwKSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMubmdNb2RlbC5tb2RlbClcbiAgICAgICk7XG5cbiAgICBuZ01vZGVsVmFsdWUkXG4gICAgICAucGlwZShcbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5pbml0aWFsVmFsdWUkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuaW5pdGlhbERvbmUkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoW25nTW9kZWxWYWx1ZSwgaW5pdGlhbFZhbHVlXSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nLndhcm4oXCJpbml0aWFsVmFsdWU6IFwiICsgaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgICBpZiAoaW5pdGlhbFZhbHVlKSB7XG4gICAgICAgICAgICBuZ01vZGVsLmNvbnRyb2wuc2V0VmFsdWUoaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5pbml0aWFsRG9uZSQubmV4dCgpO1xuICAgICAgICAgIHRoaXMuaW5pdGlhbERvbmUkLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgLy8gdGhpcy5uZ01vZGVsVmFsdWUgPSB0aGlzLm5nTW9kZWwubW9kZWw7XG4gICAgLy8gbmdNb2RlbC5jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgIC8vICAgLnBpcGUoXG4gICAgLy8gICAgIHRha2VVbnRpbCh0aGlzLmluaXRpYWxEb25lJCksXG4gICAgLy8gICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgLy8gICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMubmV3VmFsdWUkKSxcbiAgICAvLyAgICAgZGVib3VuY2VUaW1lKDUwMClcbiAgICAvLyAgICkuc3Vic2NyaWJlKHtcbiAgICAvLyAgIG5leHQ6IChbbmdNb2RlbFZhbHVlLCBuZXdWYWx1ZV0pID0+IHtcbiAgICAvLyAgICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlID09PSBuZ01vZGVsVmFsdWUpIHtcbiAgICAvLyAgICAgICB0aGlzLmluaXRpYWxEb25lJC5uZXh0KCk7XG4gICAgLy8gICAgICAgdGhpcy5pbml0aWFsRG9uZSQuY29tcGxldGUoKTtcbiAgICAvLyAgICAgICBuZ01vZGVsLmNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUgPyBuZXdWYWx1ZSA6IG5nTW9kZWxWYWx1ZSk7IC8vIFdoeSBzZXQgbmdNb2RlbFZhbHVlIGFnYWluPz9cbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICB0aGlzLmxvZy53YXJuKCdJbml0aWFsaXNhdGlvbiBub3QgeWV0IGRvbmUhJywge1xuICAgIC8vICAgICAgICAgaW5pdGlhbFZhbHVlOiB0aGlzLmluaXRpYWxWYWx1ZSxcbiAgICAvLyAgICAgICAgIG5nTW9kZWxWYWx1ZTogbmdNb2RlbFZhbHVlLFxuICAgIC8vICAgICAgICAgbmV3VmFsdWU6IG5ld1ZhbHVlXG4gICAgLy8gICAgICAgfSk7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCB2YWx1ZUNoYW5nZXMkKCkge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwuY29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgLy9maWx0ZXIodmFsdWUgPT4gdGhpcy5maWx0ZXJJbml0aWFsVmFsdWUodmFsdWUpKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseUluaXRpYWxWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5pbml0aWFsVmFsdWUkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZmlsdGVySW5pdGlhbFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWwgJiYgdGhpcy5uZ01vZGVsVmFsdWUkID09PSB2YWx1ZSkge1xuICAgICAgdGhpcy5pc0luaXRpYWwgPSBmYWxzZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -33,9 +33,9 @@ export class ElderSearchContextUrlBindingDirective {
33
33
  **************************************************************************/
34
34
  ngAfterViewInit() {
35
35
  this.urlBindingService.initialSearchMap$.pipe(first(), takeUntil(this._unsubscribe$), filter(searchMap => searchMap.has(this._urlBinding)), map(searchMap => searchMap.get(this._urlBinding)), map(filterMap => Array.from(filterMap.filters.values()))).subscribe(filters => {
36
- this.searchContext.registerInitialFilters(filters);
36
+ this.searchContext.searchContextOrchestrator.addInitialFilters(filters);
37
37
  });
38
- this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
38
+ this.searchContext.searchContextOrchestrator.filters.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
39
39
  }
40
40
  ngOnDestroy() {
41
41
  this._unsubscribe$.next();
@@ -64,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
64
64
  }], ctorParameters: function () { return [{ type: i1.ElderSearchContextDirective }, { type: i2.ElderSearchUrlBindingService }]; }, propDecorators: { elderSearchContextUrlBinding: [{
65
65
  type: Input
66
66
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBUSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFJaEQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHFDQUFxQztJQWVoRDs7OztnRkFJNEU7SUFFNUUsWUFDVSxhQUEwQyxFQUMxQyxpQkFBK0M7UUFEL0Msa0JBQWEsR0FBYixhQUFhLENBQTZCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFwQnpEOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQWNyRCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDM0MsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDcEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDakQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDekQsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FDOUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUNXLDRCQUE0QixDQUFDLEtBQWE7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsNEJBQTRCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOytHQXRFVSxxQ0FBcUM7bUdBQXJDLHFDQUFxQzs7NEZBQXJDLHFDQUFxQztrQkFKakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxRQUFRLEVBQUUsOEJBQThCO2lCQUN6Qzs2SkFpRVksNEJBQTRCO3NCQUR0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tIFwiQGVsZGVyYnl0ZS90cy1sb2dnZXJcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdCwgbWFwLCBza2lwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9TdWJqZWN0XCI7XG5pbXBvcnQgeyBFbGRlclNlYXJjaFVybEJpbmRpbmdTZXJ2aWNlIH0gZnJvbSBcIi4vc2VhcmNoLWJveC9lbGRlci1zZWFyY2gtdXJsLWJpbmRpbmcuc2VydmljZVwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlXCI7XG5cbi8qKlxuICogVGhlIHNlYXJjaCBjb250YWluZXIgbWFuYWdlcyBhIGdyb3VwIG9mIHNlYXJjaC1pbnB1dHNcbiAqIGFuZCBob2xkcyB0aGVpciB2YWx1ZXMgaW4gYSBjZW50cmFsIHNlYXJjaCBtb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXVwiLFxuICBleHBvcnRBczogXCJlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXCJcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF91cmxCaW5kaW5nOiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hDb250ZXh0OiBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSB1cmxCaW5kaW5nU2VydmljZTogRWxkZXJTZWFyY2hVcmxCaW5kaW5nU2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cmxCaW5kaW5nU2VydmljZS5pbml0aWFsU2VhcmNoTWFwJC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpLFxuICAgICAgZmlsdGVyKHNlYXJjaE1hcCA9PiBzZWFyY2hNYXAuaGFzKHRoaXMuX3VybEJpbmRpbmcpKSxcbiAgICAgIG1hcChzZWFyY2hNYXAgPT4gc2VhcmNoTWFwLmdldCh0aGlzLl91cmxCaW5kaW5nKSksXG4gICAgICBtYXAoZmlsdGVyTWFwID0+IEFycmF5LmZyb20oZmlsdGVyTWFwLmZpbHRlcnMudmFsdWVzKCkpKSxcbiAgICApLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hDb250ZXh0LnJlZ2lzdGVySW5pdGlhbEZpbHRlcnMoZmlsdGVycyk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuc2VhcmNoQ29udGV4dC5maWx0ZXJzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksXG4gICAgKS5zdWJzY3JpYmUoZmlsdGVycyA9PlxuICAgICAgdGhpcy51cmxCaW5kaW5nU2VydmljZS51cGRhdGVGaWx0ZXJzRm9yQ29udGV4dCh0aGlzLl91cmxCaW5kaW5nLCBmaWx0ZXJzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdXJsQmluZGluZyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3VybEJpbmRpbmc7XG4gIH1cbn1cblxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUloRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8scUNBQXFDO0lBZWhEOzs7O2dGQUk0RTtJQUU1RSxZQUNVLGFBQTBDLEVBQzFDLGlCQUErQztRQUQvQyxrQkFBYSxHQUFiLGFBQWEsQ0FBNkI7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE4QjtRQXBCekQ7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBY3JELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsZUFBZTtRQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUMzQyxLQUFLLEVBQUUsRUFDUCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNwRCxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNqRCxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUN6RCxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUN2RCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUM5QixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csNEJBQTRCLENBQUMsS0FBYTtRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyw0QkFBNEI7UUFDckMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7K0dBdEVVLHFDQUFxQzttR0FBckMscUNBQXFDOzs0RkFBckMscUNBQXFDO2tCQUpqRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFFBQVEsRUFBRSw4QkFBOEI7aUJBQ3pDOzZKQWlFWSw0QkFBNEI7c0JBRHRDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gXCJAZWxkZXJieXRlL3RzLWxvZ2dlclwiO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9TdWJqZWN0XCI7XG5pbXBvcnQgeyBFbGRlclNlYXJjaFVybEJpbmRpbmdTZXJ2aWNlIH0gZnJvbSBcIi4vc2VhcmNoLWJveC9lbGRlci1zZWFyY2gtdXJsLWJpbmRpbmcuc2VydmljZVwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlXCI7XG5cbi8qKlxuICogVGhlIHNlYXJjaCBjb250YWluZXIgbWFuYWdlcyBhIGdyb3VwIG9mIHNlYXJjaC1pbnB1dHNcbiAqIGFuZCBob2xkcyB0aGVpciB2YWx1ZXMgaW4gYSBjZW50cmFsIHNlYXJjaCBtb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXVwiLFxuICBleHBvcnRBczogXCJlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXCJcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF91cmxCaW5kaW5nOiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hDb250ZXh0OiBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSB1cmxCaW5kaW5nU2VydmljZTogRWxkZXJTZWFyY2hVcmxCaW5kaW5nU2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cmxCaW5kaW5nU2VydmljZS5pbml0aWFsU2VhcmNoTWFwJC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpLFxuICAgICAgZmlsdGVyKHNlYXJjaE1hcCA9PiBzZWFyY2hNYXAuaGFzKHRoaXMuX3VybEJpbmRpbmcpKSxcbiAgICAgIG1hcChzZWFyY2hNYXAgPT4gc2VhcmNoTWFwLmdldCh0aGlzLl91cmxCaW5kaW5nKSksXG4gICAgICBtYXAoZmlsdGVyTWFwID0+IEFycmF5LmZyb20oZmlsdGVyTWFwLmZpbHRlcnMudmFsdWVzKCkpKVxuICAgICkuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaENvbnRleHQuc2VhcmNoQ29udGV4dE9yY2hlc3RyYXRvci5hZGRJbml0aWFsRmlsdGVycyhmaWx0ZXJzKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5zZWFyY2hDb250ZXh0LnNlYXJjaENvbnRleHRPcmNoZXN0cmF0b3IuZmlsdGVycy5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJClcbiAgICApLnN1YnNjcmliZShmaWx0ZXJzID0+XG4gICAgICB0aGlzLnVybEJpbmRpbmdTZXJ2aWNlLnVwZGF0ZUZpbHRlcnNGb3JDb250ZXh0KHRoaXMuX3VybEJpbmRpbmcsIGZpbHRlcnMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cmxCaW5kaW5nID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVsZGVyU2VhcmNoQ29udGV4dFVybEJpbmRpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdXJsQmluZGluZztcbiAgfVxufVxuXG4iXX0=
@@ -5,6 +5,7 @@ import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
5
5
  import { Subject } from 'rxjs/internal/Subject';
6
6
  import { combineLatest } from 'rxjs';
7
7
  import { Filter } from '../../../common/data/filters/filter';
8
+ import SearchContextOrchestrator from "./search-context-orchestrator";
8
9
  import * as i0 from "@angular/core";
9
10
  /**
10
11
  * The search container manages a group of search-inputs
@@ -17,14 +18,11 @@ export class ElderSearchContextDirective {
17
18
  * Fields *
18
19
  * *
19
20
  **************************************************************************/
20
- this.forcedFilters$ = new BehaviorSubject([]);
21
- this.startFilters$ = new BehaviorSubject([]);
21
+ this._forcedFilters$ = new BehaviorSubject([]);
22
22
  this.log = LoggerFactory.getLogger(this.constructor.name);
23
23
  this.destroy$ = new Subject();
24
- this._searchInputs = new BehaviorSubject([]);
25
- this._searchStates = new BehaviorSubject([]);
26
- this._filters$ = new BehaviorSubject([]);
27
- this._initialFilters$ = new BehaviorSubject([]);
24
+ this._searchInputs$ = new BehaviorSubject([]);
25
+ this._searchStates$ = new BehaviorSubject([]);
28
26
  }
29
27
  /***************************************************************************
30
28
  * *
@@ -32,11 +30,10 @@ export class ElderSearchContextDirective {
32
30
  * *
33
31
  **************************************************************************/
34
32
  ngAfterContentInit() {
35
- this._searchInputs.pipe(takeUntil(this.destroy$), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), combineLatestWith(this.forcedFilters$), debounceTime(5)).subscribe(([states, forcedFilters]) => {
36
- this._searchStates.next(states);
33
+ this._searchInputs$.pipe(takeUntil(this.destroy$), switchMap(inputs => combineLatest(inputs.map(i => i.state$))), debounceTime(5)).subscribe((states) => {
34
+ this._searchStates$.next(states);
37
35
  const userFilters = this.convertToFilters(states);
38
- this._filters$.next(userFilters);
39
- this.applyFilters(userFilters, forcedFilters);
36
+ this.searchContextOrchestrator.applyFilters(userFilters);
40
37
  });
41
38
  }
42
39
  ngAfterViewInit() {
@@ -45,6 +42,7 @@ export class ElderSearchContextDirective {
45
42
  ngOnDestroy() {
46
43
  this.destroy$.next();
47
44
  this.destroy$.complete();
45
+ this._searchContextOrchestrator = null;
48
46
  }
49
47
  /***************************************************************************
50
48
  * *
@@ -54,7 +52,7 @@ export class ElderSearchContextDirective {
54
52
  set filterContext(value) {
55
53
  if (value) {
56
54
  if (typeof value !== 'string') {
57
- this._filterContext = value;
55
+ this._searchContextOrchestrator = new SearchContextOrchestrator(value, this.forcedFilters);
58
56
  }
59
57
  else {
60
58
  this.log.warn('Illegal value provided for property filterContext: ', JSON.stringify(value));
@@ -62,11 +60,11 @@ export class ElderSearchContextDirective {
62
60
  }
63
61
  }
64
62
  else {
65
- this._filterContext = null;
63
+ this._searchContextOrchestrator = new SearchContextOrchestrator(null);
66
64
  }
67
65
  }
68
66
  get filterContext() {
69
- return this._filterContext;
67
+ return this.searchContextOrchestrator.filterContext;
70
68
  }
71
69
  /**
72
70
  * Forced filters are always merged into the final FilterContext.
@@ -75,25 +73,25 @@ export class ElderSearchContextDirective {
75
73
  * to also keep the users intent (by merging) them.
76
74
  */
77
75
  set forcedFilters(filters) {
78
- this.forcedFilters$.next(filters);
76
+ this._forcedFilters$.next(filters);
79
77
  }
80
78
  get forcedFilters() {
81
- return this.forcedFilters$.getValue();
82
- }
83
- set startFilters(filters) {
84
- this.startFilters$.next(filters);
79
+ return this._forcedFilters$.getValue();
85
80
  }
86
81
  get attributes() {
87
- return this._searchInputs.asObservable();
82
+ return this._searchInputs$.asObservable();
88
83
  }
89
84
  get attributesSnapshot() {
90
- return this._searchInputs.getValue();
85
+ return this._searchInputs$.getValue();
91
86
  }
92
87
  get states$() {
93
- return this._searchStates.asObservable();
88
+ return this._searchStates$.asObservable();
94
89
  }
95
90
  get statesSnapshot() {
96
- return this._searchStates.getValue();
91
+ return this._searchStates$.getValue();
92
+ }
93
+ get searchContextOrchestrator() {
94
+ return this._searchContextOrchestrator;
97
95
  }
98
96
  /**
99
97
  * Returns the current user touched attributes. (ignoring fallbacks)
@@ -101,18 +99,6 @@ export class ElderSearchContextDirective {
101
99
  get userDefinedAttributes$() {
102
100
  return this.states$.pipe(map(states => states.filter(s => !s.pristine)));
103
101
  }
104
- /**
105
- * Returns the current active filters
106
- */
107
- get filters$() {
108
- return this._filters$.asObservable();
109
- }
110
- get initialFilters$() {
111
- return this._initialFilters$.asObservable();
112
- }
113
- get filtersSnapshot() {
114
- return this._filters$.getValue();
115
- }
116
102
  /***************************************************************************
117
103
  * *
118
104
  * Public API *
@@ -123,8 +109,8 @@ export class ElderSearchContextDirective {
123
109
  */
124
110
  register(searchInput) {
125
111
  this.log.debug('Registering search input [' + searchInput.name + ']');
126
- const current = this._searchInputs.getValue();
127
- this._searchInputs.next([...current, searchInput]);
112
+ const current = this._searchInputs$.getValue();
113
+ this._searchInputs$.next([...current, searchInput]);
128
114
  }
129
115
  reset() {
130
116
  this.attributesSnapshot
@@ -133,19 +119,15 @@ export class ElderSearchContextDirective {
133
119
  a.reset();
134
120
  });
135
121
  }
136
- registerInitialFilters(filters) {
137
- this._initialFilters$.next(filters);
138
- }
139
122
  /***************************************************************************
140
123
  * *
141
124
  * Private *
142
125
  * *
143
126
  **************************************************************************/
144
127
  subscribeInitialFilters() {
145
- this.initialFilters$.pipe(takeUntil(this.destroy$), combineLatestWith(this._searchInputs, this.startFilters$)).subscribe(([initialFilters, searchInputs, startFilters]) => {
146
- var filters = [...initialFilters, ...startFilters];
128
+ this.searchContextOrchestrator.initialFilters$.pipe(takeUntil(this.destroy$), combineLatestWith(this._searchInputs$)).subscribe(([initialFilters, searchInputs]) => {
147
129
  searchInputs.forEach(input => {
148
- const filter = this.findFilterForInput(input, filters);
130
+ const filter = this.findFilterForInput(input, initialFilters);
149
131
  if (filter) {
150
132
  input.applyInitialValue(filter.value);
151
133
  }
@@ -165,22 +147,8 @@ export class ElderSearchContextDirective {
165
147
  .filter(s => !!s.queryKey)
166
148
  .map(s => new Filter(s.queryKey, s.queryValue));
167
149
  }
168
- applyFilters(userFilters, forcedFilters) {
169
- const context = this.filterContext;
170
- if (context) {
171
- context.updateFilters(userFilters);
172
- context.mergeFilters(forcedFilters);
173
- this.log.trace('Search-Model filters updated:', Array.from(context.filtersSnapshot));
174
- }
175
- else {
176
- this.log.warn('Failed to apply filters since no FilterContext is available!', {
177
- userFilters: userFilters,
178
- forcedFilters: forcedFilters
179
- });
180
- }
181
- }
182
150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSearchContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
183
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters", startFilters: "startFilters" }, exportAs: ["elderSearchContext"], ngImport: i0 }); }
151
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters" }, exportAs: ["elderSearchContext"], ngImport: i0 }); }
184
152
  }
185
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
186
154
  type: Directive,
@@ -193,7 +161,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
193
161
  args: ['elderSearchContext']
194
162
  }], forcedFilters: [{
195
163
  type: Input
196
- }], startFilters: [{
197
- type: Input
198
164
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0MsU0FBUyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUNBQXFDLENBQUM7O0FBSTNEOzs7R0FHRztBQUtILE1BQU0sT0FBTywyQkFBMkI7SUFKeEM7UUFNRTs7OztvRkFJNEU7UUFFcEUsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0Isa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDdkQsa0JBQWEsR0FB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QUFDLFFBQVEsQ0FBQzthQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTyxZQUFZLENBQ2xCLFdBQXFCLEVBQ3JCLGFBQXVCO1FBRXZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDbkMsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztTQUN0RjthQUFNO1lBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsOERBQThELEVBQUU7Z0JBQzVFLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixhQUFhLEVBQUUsYUFBYTthQUM3QixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7K0dBck5VLDJCQUEyQjttR0FBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9COzhCQTJEWSxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkF5QmhCLGFBQWE7c0JBRHZCLEtBQUs7Z0JBVUssWUFBWTtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0V2l0aCwgZGVib3VuY2VUaW1lLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NlYXJjaElucHV0fSBmcm9tICcuL21vZGVsL3NlYXJjaC1pbnB1dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzL2ludGVybmFsL1N1YmplY3QnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHQnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dFN0YXRlfSBmcm9tICcuL21vZGVsL3NlYXJjaC1pbnB1dC1zdGF0ZSc7XG5cbi8qKlxuICogVGhlIHNlYXJjaCBjb250YWluZXIgbWFuYWdlcyBhIGdyb3VwIG9mIHNlYXJjaC1pbnB1dHNcbiAqIGFuZCBob2xkcyB0aGVpciB2YWx1ZXMgaW4gYSBjZW50cmFsIHNlYXJjaCBtb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyU2VhcmNoQ29udGV4dF0nLFxuICBleHBvcnRBczogJ2VsZGVyU2VhcmNoQ29udGV4dCdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGZvcmNlZEZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuICBwcml2YXRlIHN0YXJ0RmlsdGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPihbXSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaElucHV0cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VhcmNoSW5wdXRbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zZWFyY2hTdGF0ZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaElucHV0U3RhdGVbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbEZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuXG4gIHByaXZhdGUgX2ZpbHRlckNvbnRleHQ6IEZpbHRlckNvbnRleHQ7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9zZWFyY2hJbnB1dHMucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIHN3aXRjaE1hcChpbnB1dHMgPT4gY29tYmluZUxhdGVzdChpbnB1dHMubWFwKGkgPT4gaS5zdGF0ZSQpKSksXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmZvcmNlZEZpbHRlcnMkKSxcbiAgICAgIGRlYm91bmNlVGltZSg1KVxuICAgICkuc3Vic2NyaWJlKChbc3RhdGVzLCBmb3JjZWRGaWx0ZXJzXSkgPT4ge1xuICAgICAgdGhpcy5fc2VhcmNoU3RhdGVzLm5leHQoc3RhdGVzKTtcbiAgICAgIGNvbnN0IHVzZXJGaWx0ZXJzID0gdGhpcy5jb252ZXJ0VG9GaWx0ZXJzKHN0YXRlcyk7XG4gICAgICB0aGlzLl9maWx0ZXJzJC5uZXh0KHVzZXJGaWx0ZXJzKTtcbiAgICAgIHRoaXMuYXBwbHlGaWx0ZXJzKHVzZXJGaWx0ZXJzLCBmb3JjZWRGaWx0ZXJzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpYmVJbml0aWFsRmlsdGVycygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgnZWxkZXJTZWFyY2hDb250ZXh0JylcbiAgcHVibGljIHNldCBmaWx0ZXJDb250ZXh0KHZhbHVlOiBGaWx0ZXJDb250ZXh0IHwgJycpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckNvbnRleHQgPSB2YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9nLndhcm4oJ0lsbGVnYWwgdmFsdWUgcHJvdmlkZWQgZm9yIHByb3BlcnR5IGZpbHRlckNvbnRleHQ6ICcsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSWxsZWdhbCB2YWx1ZSBwcm92aWRlZCBmb3IgcHJvcGVydHkgZmlsdGVyQ29udGV4dCEgJyArIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZmlsdGVyQ29udGV4dCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJDb250ZXh0KCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlZCBmaWx0ZXJzIGFyZSBhbHdheXMgbWVyZ2VkIGludG8gdGhlIGZpbmFsIEZpbHRlckNvbnRleHQuXG4gICAqXG4gICAqIFRoaXMgbWVhbnMgdGhleSBvdmVycmlkZSB1c2VyIGRlZmluZWQgZmlsdGVycywgYnV0IGF0dGVtcHRcbiAgICogdG8gYWxzbyBrZWVwIHRoZSB1c2VycyBpbnRlbnQgKGJ5IG1lcmdpbmcpIHRoZW0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZvcmNlZEZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pIHtcbiAgICB0aGlzLmZvcmNlZEZpbHRlcnMkLm5leHQoZmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcmNlZEZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLmZvcmNlZEZpbHRlcnMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0RmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuc3RhcnRGaWx0ZXJzJC5uZXh0KGZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRyaWJ1dGVzKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hJbnB1dHMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF0dHJpYnV0ZXNTbmFwc2hvdCgpOiBTZWFyY2hJbnB1dFtdIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoSW5wdXRzLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlcyQoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlW10+IHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoU3RhdGVzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZXNTbmFwc2hvdCgpOiBTZWFyY2hJbnB1dFN0YXRlW10ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hTdGF0ZXMuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHVzZXIgdG91Y2hlZCBhdHRyaWJ1dGVzLiAoaWdub3JpbmcgZmFsbGJhY2tzKVxuICAgKi9cbiAgcHVibGljIGdldCB1c2VyRGVmaW5lZEF0dHJpYnV0ZXMkKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRTdGF0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVzJC5waXBlKFxuICAgICAgbWFwKHN0YXRlcyA9PiBzdGF0ZXMuZmlsdGVyKHMgPT4gIXMucHJpc3RpbmUpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBhY3RpdmUgZmlsdGVyc1xuICAgKi9cbiAgcHVibGljIGdldCBmaWx0ZXJzJCgpOiBPYnNlcnZhYmxlPEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbml0aWFsRmlsdGVycyQoKTogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsRmlsdGVycyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbHRlcnNTbmFwc2hvdCgpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnMkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBuZXcgc2VhcmNoIG5hbWUgaW4gdGhpcyBjb250YWluZXJcbiAgICovXG4gIHB1YmxpYyByZWdpc3RlcihzZWFyY2hJbnB1dDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy5kZWJ1ZygnUmVnaXN0ZXJpbmcgc2VhcmNoIGlucHV0IFsnICsgc2VhcmNoSW5wdXQubmFtZSArICddJyk7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX3NlYXJjaElucHV0cy5nZXRWYWx1ZSgpO1xuICAgIHRoaXMuX3NlYXJjaElucHV0cy5uZXh0KFsuLi5jdXJyZW50LCBzZWFyY2hJbnB1dF0pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuYXR0cmlidXRlc1NuYXBzaG90XG4gICAgICAuZmlsdGVyKGF0dHIgPT4gIWF0dHIucmVhZG9ubHkpXG4gICAgICAuZm9yRWFjaChhID0+IHtcbiAgICAgICAgYS5yZXNldCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJJbml0aWFsRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuX2luaXRpYWxGaWx0ZXJzJC5uZXh0KGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVJbml0aWFsRmlsdGVycygpIHtcbiAgICB0aGlzLmluaXRpYWxGaWx0ZXJzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5fc2VhcmNoSW5wdXRzLCB0aGlzLnN0YXJ0RmlsdGVycyQpXG4gICAgKS5zdWJzY3JpYmUoKFtpbml0aWFsRmlsdGVycywgc2VhcmNoSW5wdXRzLCBzdGFydEZpbHRlcnNdKSA9PiB7XG4gICAgICB2YXIgZmlsdGVycyA9IFsuLi5pbml0aWFsRmlsdGVycywgLi4uc3RhcnRGaWx0ZXJzXTtcbiAgICAgIHNlYXJjaElucHV0cy5mb3JFYWNoKGlucHV0ID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5maW5kRmlsdGVyRm9ySW5wdXQoaW5wdXQsIGZpbHRlcnMpO1xuICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgaW5wdXQuYXBwbHlJbml0aWFsVmFsdWUoZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRGaWx0ZXJGb3JJbnB1dChpbnB1dDogU2VhcmNoSW5wdXQsIGZpbHRlcnM6IEZpbHRlcltdKTogRmlsdGVyIHtcbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICBpZiAoZmlsdGVyLmtleSA9PT0gaW5wdXQubmFtZSkge1xuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvRmlsdGVycyhzdGF0ZXM6IFNlYXJjaElucHV0U3RhdGVbXSk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gc3RhdGVzXG4gICAgICAuZmlsdGVyKHMgPT4gISFzLnF1ZXJ5S2V5KVxuICAgICAgLm1hcChzID0+IG5ldyBGaWx0ZXIocy5xdWVyeUtleSwgcy5xdWVyeVZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RmlsdGVycyhcbiAgICB1c2VyRmlsdGVyczogRmlsdGVyW10sXG4gICAgZm9yY2VkRmlsdGVyczogRmlsdGVyW11cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZmlsdGVyQ29udGV4dDtcbiAgICBpZiAoY29udGV4dCkge1xuICAgICAgY29udGV4dC51cGRhdGVGaWx0ZXJzKHVzZXJGaWx0ZXJzKTtcbiAgICAgIGNvbnRleHQubWVyZ2VGaWx0ZXJzKGZvcmNlZEZpbHRlcnMpO1xuICAgICAgdGhpcy5sb2cudHJhY2UoJ1NlYXJjaC1Nb2RlbCBmaWx0ZXJzIHVwZGF0ZWQ6JywgQXJyYXkuZnJvbShjb250ZXh0LmZpbHRlcnNTbmFwc2hvdCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdGYWlsZWQgdG8gYXBwbHkgZmlsdGVycyBzaW5jZSBubyBGaWx0ZXJDb250ZXh0IGlzIGF2YWlsYWJsZSEnLCB7XG4gICAgICAgIHVzZXJGaWx0ZXJzOiB1c2VyRmlsdGVycyxcbiAgICAgICAgZm9yY2VkRmlsdGVyczogZm9yY2VkRmlsdGVyc1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0MsU0FBUyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFHM0QsT0FBTyx5QkFBeUIsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFdEU7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDJCQUEyQjtJQUp4QztRQU1FOzs7O29GQUk0RTtRQUVwRSxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsRUFBRSxDQUFDLENBQUM7UUFDeEQsbUJBQWMsR0FBRyxJQUFJLGVBQWUs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b0JBQ1YsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDdkM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWtCLEVBQUUsT0FBaUI7UUFDOUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7WUFDNUIsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQzdCLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQTBCO1FBQ2pELE9BQU8sTUFBTTthQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0ExS1UsMkJBQTJCO21HQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OEJBc0RZLGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQXlCaEIsYUFBYTtzQkFEdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0V2l0aCwgZGVib3VuY2VUaW1lLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NlYXJjaElucHV0fSBmcm9tICcuL21vZGVsL3NlYXJjaC1pbnB1dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzL2ludGVybmFsL1N1YmplY3QnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge0ZpbHRlckNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHQnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dFN0YXRlfSBmcm9tICcuL21vZGVsL3NlYXJjaC1pbnB1dC1zdGF0ZSc7XG5pbXBvcnQgU2VhcmNoQ29udGV4dE9yY2hlc3RyYXRvciBmcm9tIFwiLi9zZWFyY2gtY29udGV4dC1vcmNoZXN0cmF0b3JcIjtcblxuLyoqXG4gKiBUaGUgc2VhcmNoIGNvbnRhaW5lciBtYW5hZ2VzIGEgZ3JvdXAgb2Ygc2VhcmNoLWlucHV0c1xuICogYW5kIGhvbGRzIHRoZWlyIHZhbHVlcyBpbiBhIGNlbnRyYWwgc2VhcmNoIG1vZGVsLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJTZWFyY2hDb250ZXh0XScsXG4gIGV4cG9ydEFzOiAnZWxkZXJTZWFyY2hDb250ZXh0J1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgX2ZvcmNlZEZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWFyY2hJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hJbnB1dFtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaFN0YXRlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaElucHV0U3RhdGVbXT4oW10pO1xuICBwcml2YXRlIF9zZWFyY2hDb250ZXh0T3JjaGVzdHJhdG9yOiBTZWFyY2hDb250ZXh0T3JjaGVzdHJhdG9yO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5fc2VhcmNoSW5wdXRzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgc3dpdGNoTWFwKGlucHV0cyA9PiBjb21iaW5lTGF0ZXN0KGlucHV0cy5tYXAoaSA9PiBpLnN0YXRlJCkpKSxcbiAgICAgIGRlYm91bmNlVGltZSg1KVxuICAgICkuc3Vic2NyaWJlKChzdGF0ZXMpID0+IHtcbiAgICAgIHRoaXMuX3NlYXJjaFN0YXRlcyQubmV4dChzdGF0ZXMpO1xuICAgICAgY29uc3QgdXNlckZpbHRlcnMgPSB0aGlzLmNvbnZlcnRUb0ZpbHRlcnMoc3RhdGVzKTtcbiAgICAgIHRoaXMuc2VhcmNoQ29udGV4dE9yY2hlc3RyYXRvci5hcHBseUZpbHRlcnModXNlckZpbHRlcnMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmliZUluaXRpYWxGaWx0ZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3NlYXJjaENvbnRleHRPcmNoZXN0cmF0b3IgPSBudWxsO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KCdlbGRlclNlYXJjaENvbnRleHQnKVxuICBwdWJsaWMgc2V0IGZpbHRlckNvbnRleHQodmFsdWU6IEZpbHRlckNvbnRleHQgfCAnJykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoQ29udGV4dE9yY2hlc3RyYXRvciA9IG5ldyBTZWFyY2hDb250ZXh0T3JjaGVzdHJhdG9yKHZhbHVlLCB0aGlzLmZvcmNlZEZpbHRlcnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2cud2FybignSWxsZWdhbCB2YWx1ZSBwcm92aWRlZCBmb3IgcHJvcGVydHkgZmlsdGVyQ29udGV4dDogJywgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIHZhbHVlIHByb3ZpZGVkIGZvciBwcm9wZXJ0eSBmaWx0ZXJDb250ZXh0ISAnICsgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZWFyY2hDb250ZXh0T3JjaGVzdHJhdG9yID0gbmV3IFNlYXJjaENvbnRleHRPcmNoZXN0cmF0b3IobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJDb250ZXh0KCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaENvbnRleHRPcmNoZXN0cmF0b3IuZmlsdGVyQ29udGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZWQgZmlsdGVycyBhcmUgYWx3YXlzIG1lcmdlZCBpbnRvIHRoZSBmaW5hbCBGaWx0ZXJDb250ZXh0LlxuICAgKlxuICAgKiBUaGlzIG1lYW5zIHRoZXkgb3ZlcnJpZGUgdXNlciBkZWZpbmVkIGZpbHRlcnMsIGJ1dCBhdHRlbXB0XG4gICAqIHRvIGFsc28ga2VlcCB0aGUgdXNlcnMgaW50ZW50IChieSBtZXJnaW5nKSB0aGVtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmb3JjZWRGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5fZm9yY2VkRmlsdGVycyQubmV4dChmaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9yY2VkRmlsdGVycygpOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvcmNlZEZpbHRlcnMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF0dHJpYnV0ZXMoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaElucHV0cyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF0dHJpYnV0ZXNTbmFwc2hvdCgpOiBTZWFyY2hJbnB1dFtdIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoSW5wdXRzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZXMkKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRTdGF0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFN0YXRlcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlc1NuYXBzaG90KCk6IFNlYXJjaElucHV0U3RhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFN0YXRlcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VhcmNoQ29udGV4dE9yY2hlc3RyYXRvcigpOiBTZWFyY2hDb250ZXh0T3JjaGVzdHJhdG9yIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoQ29udGV4dE9yY2hlc3RyYXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHVzZXIgdG91Y2hlZCBhdHRyaWJ1dGVzLiAoaWdub3JpbmcgZmFsbGJhY2tzKVxuICAgKi9cbiAgcHVibGljIGdldCB1c2VyRGVmaW5lZEF0dHJpYnV0ZXMkKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRTdGF0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVzJC5waXBlKFxuICAgICAgbWFwKHN0YXRlcyA9PiBzdGF0ZXMuZmlsdGVyKHMgPT4gIXMucHJpc3RpbmUpKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBuZXcgc2VhcmNoIG5hbWUgaW4gdGhpcyBjb250YWluZXJcbiAgICovXG4gIHB1YmxpYyByZWdpc3RlcihzZWFyY2hJbnB1dDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy5kZWJ1ZygnUmVnaXN0ZXJpbmcgc2VhcmNoIGlucHV0IFsnICsgc2VhcmNoSW5wdXQubmFtZSArICddJyk7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuX3NlYXJjaElucHV0cyQuZ2V0VmFsdWUoKTtcbiAgICB0aGlzLl9zZWFyY2hJbnB1dHMkLm5leHQoWy4uLmN1cnJlbnQsIHNlYXJjaElucHV0XSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzU25hcHNob3RcbiAgICAgIC5maWx0ZXIoYXR0ciA9PiAhYXR0ci5yZWFkb25seSlcbiAgICAgIC5mb3JFYWNoKGEgPT4ge1xuICAgICAgICBhLnJlc2V0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3Vic2NyaWJlSW5pdGlhbEZpbHRlcnMoKSB7XG4gICAgdGhpcy5zZWFyY2hDb250ZXh0T3JjaGVzdHJhdG9yLmluaXRpYWxGaWx0ZXJzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5fc2VhcmNoSW5wdXRzJClcbiAgICApLnN1YnNjcmliZSgoW2luaXRpYWxGaWx0ZXJzLCBzZWFyY2hJbnB1dHNdKSA9PiB7XG4gICAgICBzZWFyY2hJbnB1dHMuZm9yRWFjaChpbnB1dCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmluZEZpbHRlckZvcklucHV0KGlucHV0LCBpbml0aWFsRmlsdGVycyk7XG4gICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICBpbnB1dC5hcHBseUluaXRpYWxWYWx1ZShmaWx0ZXIudmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpbHRlckZvcklucHV0KGlucHV0OiBTZWFyY2hJbnB1dCwgZmlsdGVyczogRmlsdGVyW10pOiBGaWx0ZXIge1xuICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHtcbiAgICAgIGlmIChmaWx0ZXIua2V5ID09PSBpbnB1dC5uYW1lKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9GaWx0ZXJzKHN0YXRlczogU2VhcmNoSW5wdXRTdGF0ZVtdKTogRmlsdGVyW10ge1xuICAgIHJldHVybiBzdGF0ZXNcbiAgICAgIC5maWx0ZXIocyA9PiAhIXMucXVlcnlLZXkpXG4gICAgICAubWFwKHMgPT4gbmV3IEZpbHRlcihzLnF1ZXJ5S2V5LCBzLnF1ZXJ5VmFsdWUpKTtcbiAgfVxufVxuXG4iXX0=