@eui/ecl 15.0.0-next.18 → 15.0.0-next.20

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 (73) hide show
  1. package/assets/i18n-ecl/bg.json +4 -0
  2. package/assets/i18n-ecl/cs.json +4 -0
  3. package/assets/i18n-ecl/da.json +4 -0
  4. package/assets/i18n-ecl/de.json +4 -0
  5. package/assets/i18n-ecl/el.json +4 -0
  6. package/assets/i18n-ecl/en.json +4 -0
  7. package/assets/i18n-ecl/es.json +4 -0
  8. package/assets/i18n-ecl/et.json +4 -0
  9. package/assets/i18n-ecl/fi.json +4 -0
  10. package/assets/i18n-ecl/fr.json +4 -0
  11. package/assets/i18n-ecl/ga.json +4 -0
  12. package/assets/i18n-ecl/hr.json +4 -0
  13. package/assets/i18n-ecl/hu.json +4 -0
  14. package/assets/i18n-ecl/it.json +4 -0
  15. package/assets/i18n-ecl/lt.json +4 -0
  16. package/assets/i18n-ecl/lv.json +4 -0
  17. package/assets/i18n-ecl/mt.json +4 -0
  18. package/assets/i18n-ecl/nl.json +4 -0
  19. package/assets/i18n-ecl/pl.json +4 -0
  20. package/assets/i18n-ecl/pt.json +4 -0
  21. package/assets/i18n-ecl/ro.json +4 -0
  22. package/assets/i18n-ecl/sk.json +4 -0
  23. package/assets/i18n-ecl/sl.json +4 -0
  24. package/assets/i18n-ecl/sv.json +4 -0
  25. package/docs/classes/EclLanguageService.html +255 -0
  26. package/docs/components/EclAppComponent.html +81 -25
  27. package/docs/components/EclInpageNavigationComponent.html +39 -1
  28. package/docs/components/EclMultiselectComponent.html +13 -1
  29. package/docs/components/EclNewsTickerComponent.html +1 -1
  30. package/docs/components/EclNewsTickerItemComponent.html +0 -67
  31. package/docs/components/EclPaginationItemComponent.html +1 -1
  32. package/docs/components/EclStickyContainerComponent.html +40 -82
  33. package/docs/dependencies.html +2 -2
  34. package/docs/directives/EclDatePickerDirective.html +13 -1
  35. package/docs/injectables/EclDefaultLanguageService.html +337 -0
  36. package/docs/interfaces/EclLanguage.html +45 -0
  37. package/docs/js/search/search_index.js +2 -2
  38. package/esm2020/lib/components/ecl-app/ecl-app.component.mjs +18 -28
  39. package/esm2020/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +15 -7
  40. package/esm2020/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.mjs +7 -3
  41. package/esm2020/lib/components/ecl-multiselect/ecl-multiselect.component.mjs +20 -8
  42. package/esm2020/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.mjs +2 -6
  43. package/esm2020/lib/components/ecl-news-ticker/ecl-news-ticker.component.mjs +13 -3
  44. package/esm2020/lib/components/ecl-pagination/ecl-pagination-item.component.mjs +3 -3
  45. package/esm2020/lib/components/ecl-sticky-container/ecl-sticky-container.component.mjs +3 -3
  46. package/esm2020/lib/model/ecl-language.model.mjs +1 -1
  47. package/esm2020/lib/services/ecl-default-language.service.mjs +50 -9
  48. package/esm2020/lib/services/ecl-language.service.mjs +1 -1
  49. package/fesm2015/eui-ecl.mjs +160 -103
  50. package/fesm2015/eui-ecl.mjs.map +1 -1
  51. package/fesm2020/eui-ecl.mjs +157 -100
  52. package/fesm2020/eui-ecl.mjs.map +1 -1
  53. package/lib/components/ecl-app/ecl-app.component.d.ts +3 -6
  54. package/lib/components/ecl-app/ecl-app.component.d.ts.map +1 -1
  55. package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts +3 -1
  56. package/lib/components/ecl-date-picker/ecl-date-picker.directive.d.ts.map +1 -1
  57. package/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.d.ts +3 -1
  58. package/lib/components/ecl-inpage-navigation/ecl-inpage-navigation.component.d.ts.map +1 -1
  59. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts +6 -2
  60. package/lib/components/ecl-multiselect/ecl-multiselect.component.d.ts.map +1 -1
  61. package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts +0 -1
  62. package/lib/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts.map +1 -1
  63. package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts +1 -0
  64. package/lib/components/ecl-news-ticker/ecl-news-ticker.component.d.ts.map +1 -1
  65. package/lib/components/ecl-sticky-container/ecl-sticky-container.component.d.ts +2 -2
  66. package/lib/components/ecl-sticky-container/ecl-sticky-container.component.d.ts.map +1 -1
  67. package/lib/model/ecl-language.model.d.ts +1 -0
  68. package/lib/model/ecl-language.model.d.ts.map +1 -1
  69. package/lib/services/ecl-default-language.service.d.ts +18 -2
  70. package/lib/services/ecl-default-language.service.d.ts.map +1 -1
  71. package/lib/services/ecl-language.service.d.ts +6 -0
  72. package/lib/services/ecl-language.service.d.ts.map +1 -1
  73. package/package.json +1 -1
@@ -9,13 +9,15 @@ import { EclIconComponent } from '../ecl-icon/ecl-icon.component';
9
9
  import { EclMultiselectOptionDirective } from './ecl-multiselect-option.directive';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/forms";
12
+ import * as i2 from "@ngx-translate/core";
12
13
  export class EclMultiselectComponent extends ECLBaseDirective {
13
- constructor(ngControl, el, viewContainerRef, differs) {
14
+ constructor(ngControl, el, viewContainerRef, differs, translate) {
14
15
  super();
15
16
  this.ngControl = ngControl;
16
17
  this.el = el;
17
18
  this.viewContainerRef = viewContainerRef;
18
19
  this.differs = differs;
20
+ this.translate = translate;
19
21
  this.isInvalid = false;
20
22
  this._disabled = false;
21
23
  this.eclSize = 'm';
@@ -65,6 +67,7 @@ export class EclMultiselectComponent extends ECLBaseDirective {
65
67
  this.createHtmlElements();
66
68
  this.buildMultiselectDropdown(false);
67
69
  }
70
+ this.handleTranslations();
68
71
  }
69
72
  ngDoCheck() {
70
73
  this.multiselectContainer.classList.toggle('ecl-select__container--disabled', this.disabled);
@@ -291,8 +294,8 @@ export class EclMultiselectComponent extends ECLBaseDirective {
291
294
  this.selectAll();
292
295
  };
293
296
  checkboxDiv.appendChild(this.checkboxSelectAll);
294
- const checkboxLabel = this.createCheckboxLabel('Select all', 'select-multiple-all' + idStr.substring(idStr.lastIndexOf('.') + 1));
295
- checkboxDiv.appendChild(checkboxLabel);
297
+ this.checkboxLabel = this.createCheckboxLabel('Select all', 'select-multiple-all' + idStr.substring(idStr.lastIndexOf('.') + 1));
298
+ checkboxDiv.appendChild(this.checkboxLabel);
296
299
  return checkboxDiv;
297
300
  }
298
301
  createOptionsWrapper() {
@@ -334,14 +337,14 @@ export class EclMultiselectComponent extends ECLBaseDirective {
334
337
  selectIconContainer.classList.add('ecl-select__icon');
335
338
  return selectIconContainer;
336
339
  }
337
- searchOptions(keyword) {
340
+ searchOptions(keyword = '') {
338
341
  if (keyword === '') {
339
342
  this.multiSelectOptions.forEach(item => {
340
343
  item.style.display = 'flex';
341
344
  });
342
345
  }
343
346
  this.multiSelectOptions.forEach((item, cnt) => {
344
- if (item.textContent.toLowerCase().indexOf(keyword) < 0) {
347
+ if (item.textContent.toLowerCase().indexOf(keyword.toLowerCase()) < 0) {
345
348
  item.style.display = 'none';
346
349
  }
347
350
  });
@@ -357,8 +360,17 @@ export class EclMultiselectComponent extends ECLBaseDirective {
357
360
  this.selectedValues = [];
358
361
  this.multiSelectInput.value = null;
359
362
  }
363
+ handleTranslations() {
364
+ this.translate
365
+ .stream('ecl.multiselect.SELECT-ALL')
366
+ .pipe(takeUntil(this.destroy$)).subscribe((translation) => {
367
+ if (this.checkboxLabel) {
368
+ this.checkboxLabel.textContent = translation;
369
+ }
370
+ });
371
+ }
360
372
  }
361
- /** @nocollapse */ EclMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMultiselectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
373
+ /** @nocollapse */ EclMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclMultiselectComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
362
374
  /** @nocollapse */ EclMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclMultiselectComponent, selector: "select[eclMultiselect]", inputs: { isInvalid: "isInvalid", eclPlaceholder: "eclPlaceholder", disabled: "disabled", eclSize: "eclSize" }, outputs: { eclChange: "eclChange" }, host: { listeners: { "document:click": "onKeyUp($event)" }, properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclOptionItems", predicate: EclMultiselectOptionDirective }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>" });
363
375
  __decorate([
364
376
  coerceBoolean
@@ -370,7 +382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
370
382
  type: Optional
371
383
  }, {
372
384
  type: Self
373
- }] }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }]; }, propDecorators: { eclOptionItems: [{
385
+ }] }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }, { type: i2.TranslateService }]; }, propDecorators: { eclOptionItems: [{
374
386
  type: ContentChildren,
375
387
  args: [EclMultiselectOptionDirective]
376
388
  }], isInvalid: [{
@@ -393,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
393
405
  type: HostListener,
394
406
  args: ['document:click', ['$event']]
395
407
  }] } });
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFHZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixJQUFJLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBTW5GLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBZ0I7SUFvRHpELFlBQ2tDLFNBQW9CLEVBQzFDLEVBQWMsRUFDZCxnQkFBa0MsRUFDbEMsT0FBd0I7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFMc0IsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUMxQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtR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LGNBQWM7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNqQyxNQUFNLEtBQUssR0FBcUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0JBQ2YsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDekI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7OzhJQTVhUSx1QkFBdUI7a0lBQXZCLHVCQUF1Qiw4WEFHZiw2QkFBNkIsb0RDbkNsRCwyQkFBeUI7O0lEb0NwQixhQUFhOzBEQUE0QztrR0FKakQsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLHdCQUF3Qjs7MEJBd0Q3QixRQUFROzswQkFBSSxJQUFJO2tJQWxEMkIsY0FBYztzQkFBN0QsZUFBZTt1QkFBQyw2QkFBNkI7Z0JBQ3RCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRVIsY0FBYztzQkFBMUIsS0FBSztnQkFRRixRQUFRO3NCQURYLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsZUFBZTtnQkFXNUIsT0FBTztzQkFBZixLQUFLO2dCQUdGLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQU9WLFNBQVM7c0JBQWxCLE1BQU07Z0JBb0dQLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBJdGVyYWJsZURpZmZlcixcbiAgICBJdGVyYWJsZURpZmZlcnMsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2VsZixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbENoZWNrYm94TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9lY2wtY2hlY2tib3gvZWNsLWNoZWNrYm94LWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFY2xJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vZWNsLWljb24vZWNsLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9lY2wtbXVsdGlzZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VsZWN0W2VjbE11bHRpc2VsZWN0XScsXG4gICAgdGVtcGxhdGVVcmw6ICdlY2wtbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdENvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2ssIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEFmdGVyVmlld0luaXQge1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZSkgZWNsT3B0aW9uSXRlbXM6IFF1ZXJ5TGlzdDxFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZT47XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgaXNJbnZhbGlkOiBib29sZWFuIHwgYW55ICA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2V0IGVjbFBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZWNsUGxhY2Vob2xkZXIgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlTZWxlY3RJbnB1dCkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLl9lY2xQbGFjZWhvbGRlciB8fCAnJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxuICAgIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wuZGlzYWJsZWQgfHwgbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IGFueSkgeyB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZWNsU2l6ZTogc3RyaW5nID0gJ20nO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc2VsZWN0JyksXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgZWNsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwcml2YXRlIF9lY2xQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZT47XG4gICAgcHJpdmF0ZSBob3N0RWw6IEhUTUxTZWxlY3RFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFBhcmVudEVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGhvc3RXcmFwcGVyRWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgc2VsZWN0SWNvbkNvbnRhaW5lckVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGVjbEljb25Db21wb25lbnRFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aXNlbGVjdFdyYXBwZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgbXVsdGlzZWxlY3RDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgbXVsdGlEcm9wZG93bjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBvcHRpb25zV3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aVNlbGVjdE9wdGlvbnM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0SW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBjaGVja2JveFNlbGVjdEFsbDogSFRNTElucHV0RWxlbWVudDtcbiAgICBwcml2YXRlIHNlbGVjdGVkVmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzXG4gICAgICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmdldEhvc3RQYXJlbnRFbGVtZW50KHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsID0gdGhpcy5jcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLnNlbGVjdEljb25Db250YWluZXJFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLmVjbEljb25Db21wb25lbnRFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbXBvbmVudCgpO1xuXG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyID0gdGhpcy5jcmVhdGVXcmFwcGVyTXVsdGlzZWxlY3QoKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lciA9IHRoaXMuY3JlYXRlU2VsZWN0Q29udGFpbmVyTXVsdGlzZWxlY3QoKTtcblxuICAgICAgICBpZiAodGhpcy5ob3N0UGFyZW50RWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSHRtbEVsZW1lbnRzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYnVpbGRNdWx0aXNlbGVjdERyb3Bkb3duKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nRG9DaGVjaygpIHtcblxuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lci0tZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKCdlY2wtc2VsZWN0X19jb250YWluZXItLWludmFsaWQnLCB0aGlzLmlzSW52YWxpZCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkaWZmID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmVjbE9wdGlvbkl0ZW1zKTtcblxuICAgICAgICBpZiAoZGlmZikge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVBbGxPcHRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgZGlmZi5mb3JFYWNoSXRlbShpdGVtID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlT3B0aW9uV2l0aENoZWNrYm94KGl0ZW0uaXRlbSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50VmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5vbk9wdGlvbnNDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcy5wdXNoKGVsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0Q29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uS2V5VXAoZXY6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgY29uc3QgaXNDbGlja0luc2lkZSA9IHRoaXMubXVsdGlEcm9wZG93bi5jb250YWlucyg8RWxlbWVudD5ldi50YXJnZXQpIHx8IHRoaXMubXVsdGlTZWxlY3RJbnB1dC5jb250YWlucyg8RWxlbWVudD5ldi50YXJnZXQpO1xuICAgICAgICBpZiAoIWlzQ2xpY2tJbnNpZGUpIHtcbiAgICAgICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVBbGxPcHRpb25zKCkge1xuICAgICAgICB3aGlsZSAodGhpcy5vcHRpb25zV3JhcHBlci5maXJzdENoaWxkKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyLmZpcnN0Q2hpbGQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uT3B0aW9uc0NoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5lY2xPcHRpb25JdGVtcy5mb3JFYWNoKGkgPT4gaS5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgKS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpc2VsZWN0V3JhcHBlci5yZW1vdmVDaGlsZCh0aGlzLm11bHRpRHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZE11bHRpc2VsZWN0RHJvcGRvd24odHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGlkZU9yaWdpbmFsU2VsZWN0Q29tcG9uZW50KCkge1xuICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5yZXBsYWNlQ2hpbGQodGhpcy5ob3N0V3JhcHBlckVsLCB0aGlzLmhvc3RFbCk7XG4gICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbC5hcHBlbmRDaGlsZCh0aGlzLmhvc3RFbCk7XG4gICAgICAgIHRoaXMuaG9zdFdyYXBwZXJFbC5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXItLWhpZGRlbicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSHRtbEVsZW1lbnRzKCkge1xuICAgICAgICB0aGlzLmhvc3RQYXJlbnRFbC5hcHBlbmRDaGlsZCh0aGlzLm11bHRpc2VsZWN0V3JhcHBlcik7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMubXVsdGlzZWxlY3RDb250YWluZXIpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0SWNvbkNvbnRhaW5lckVsKTtcbiAgICAgICAgdGhpcy5zZWxlY3RJY29uQ29udGFpbmVyRWwuYXBwZW5kQ2hpbGQodGhpcy5lY2xJY29uQ29tcG9uZW50RWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvcGFnYXRlVG91Y2hlZCA9ICgpID0+IHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGJ1aWxkTXVsdGlzZWxlY3REcm9wZG93bih3aXRoT3B0aW9uczogYm9vbGVhbikge1xuXG4gICAgICAgIHRoaXMubXVsdGlEcm9wZG93biA9IHRoaXMuY3JlYXRlRHJvcGRvd25Gb3JNdWx0aXNlbGVjdCgpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0V3JhcHBlci5hcHBlbmRDaGlsZCh0aGlzLm11bHRpRHJvcGRvd24pO1xuXG4gICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVNlYXJjaEZvck11bHRpc2VsZWN0KCkpO1xuICAgICAgICB0aGlzLm11bHRpRHJvcGRvd24uYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVNdWx0aVNlbGVjdEFsbCgpKTtcbiAgICAgICAgdGhpcy5vcHRpb25zV3JhcHBlciA9IHRoaXMuY3JlYXRlT3B0aW9uc1dyYXBwZXIoKTtcbiAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLmFwcGVuZENoaWxkKHRoaXMub3B0aW9uc1dyYXBwZXIpO1xuXG4gICAgICAgIGlmICh3aXRoT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5lY2xPcHRpb25JdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zV3JhcHBlci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZU9wdGlvbldpdGhDaGVja2JveChpdGVtKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQoKTogSFRNTFNlbGVjdEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdFBhcmVudEVsZW1lbnQoaG9zdEVsOiBIVE1MU2VsZWN0RWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIGhvc3RFbC5wYXJlbnRFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSG9zdFdyYXBwZXJDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB3cmFwcGVyQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHdyYXBwZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyJyk7XG4gICAgICAgIHdyYXBwZXJDb250YWluZXIuY2xhc3NMaXN0LmFkZChgZWNsLXNlbGVjdF9fY29udGFpbmVyLS0ke3RoaXMuZWNsU2l6ZX1gKTtcbiAgICAgICAgcmV0dXJuIHdyYXBwZXJDb250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVXcmFwcGVyTXVsdGlzZWxlY3QoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB3cmFwcGVyQ29udGFpbmVyTXVsdGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lck11bHRpLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX211bHRpcGxlJyk7XG4gICAgICAgIHJldHVybiB3cmFwcGVyQ29udGFpbmVyTXVsdGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVTZWxlY3RDb250YWluZXJNdWx0aXNlbGVjdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdENvbnRhaW5lck11bHRpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHNlbGVjdENvbnRhaW5lck11bHRpLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lcicpO1xuICAgICAgICBzZWxlY3RDb250YWluZXJNdWx0aS5jbGFzc0xpc3QuYWRkKGBlY2wtc2VsZWN0X19jb250YWluZXItLSR7dGhpcy5lY2xTaXplfWApO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgc2VsZWN0Q29udGFpbmVyTXVsdGkuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyLS1kaXNhYmxlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInLCB0aGlzLl9lY2xQbGFjZWhvbGRlciB8fCAnJyk7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC5yZWFkT25seSA9IHRydWU7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dCcpO1xuICAgICAgICBpZiAodGhpcy5ob3N0RWwuaGFzQXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnKSkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgnZm9ybUNvbnRyb2xOYW1lJywgdGhpcy5ob3N0RWwuZ2V0QXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0Lm9uY2xpY2sgPSAoZSkgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLnN0eWxlLmRpc3BsYXkgPSB0aGlzLm11bHRpRHJvcGRvd24uc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnID8gJ2Jsb2NrJyA6ICdub25lJztcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3QnKTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX211bHRpcGxlLXRvZ2dsZScpO1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdENvbnRhaW5lck11bHRpLmFwcGVuZENoaWxkKHRoaXMubXVsdGlTZWxlY3RJbnB1dCk7XG5cbiAgICAgICAgcmV0dXJuIHNlbGVjdENvbnRhaW5lck11bHRpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRHJvcGRvd25Gb3JNdWx0aXNlbGVjdCgpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd25EaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgZHJvcGRvd25EaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtZHJvcGRvd24nKTtcbiAgICAgICAgZHJvcGRvd25EaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyJyk7XG4gICAgICAgIGRyb3Bkb3duRGl2LmNsYXNzTGlzdC5hZGQoYGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tJHt0aGlzLmVjbFNpemV9YCk7XG4gICAgICAgIGRyb3Bkb3duRGl2LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHJldHVybiBkcm9wZG93bkRpdjtcbiAgICB9XG5cbiAgICAvLyBzZWFyY2ggYm94IHRvIHNlYXJjaCBhbW9uZyBvcHRpb25zXG4gICAgcHJpdmF0ZSBjcmVhdGVTZWFyY2hGb3JNdWx0aXNlbGVjdCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgY29uc3QgbXVsdGlTZWFyY2ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICBtdWx0aVNlYXJjaC50eXBlID0gJ3RleHQnO1xuICAgICAgICBtdWx0aVNlYXJjaC5jbGFzc0xpc3QuYWRkKCdlY2wtdGV4dC1pbnB1dCcpO1xuICAgICAgICBtdWx0aVNlYXJjaC5wbGFjZWhvbGRlciA9ICdTZWFyY2gnO1xuICAgICAgICAvLyBTZWFyY2ggZWxlbWVudHMuIEVsZW1lbnRzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIGNyaXRlcmlhIGFyZSBoaWRkZW5cbiAgICAgICAgbXVsdGlTZWFyY2gub25rZXl1cCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoT3B0aW9ucyhtdWx0aVNlYXJjaC52YWx1ZSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBtdWx0aVNlYXJjaDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZU9wdGlvbldpdGhDaGVja2JveChlbDogRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmUpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGlkU3RyID0gKG5ldyBEYXRlKCkpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGlkID0gJ2lkLScgKyBlbC52YWx1ZSArIGlkU3RyLnN1YnN0cmluZyhpZFN0ci5sYXN0SW5kZXhPZignLicpICsgMSk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tib3hEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblxuICAgICAgICBpZiAoZWwuY3NzQ2xhc3Nlcykge1xuICAgICAgICAgICAgZWwuY3NzQ2xhc3Nlcy5zcGxpdCgnICcpLmZvckVhY2goY2wgPT4ge1xuICAgICAgICAgICAgICAgIGNoZWNrYm94RGl2LmNsYXNzTGlzdC5hZGQoY2wpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGVja2JveElucHV0ID0gdGhpcy5jcmVhdGVDaGVja2JveElucHV0KGlkLCBlbC52YWx1ZSk7XG4gICAgICAgIGlmIChlbC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY2hlY2tib3hEaXYuY2xhc3NMaXN0LmFkZCgnZWNsLWNoZWNrYm94LS1kaXNhYmxlZCcpO1xuICAgICAgICAgICAgY2hlY2tib3hJbnB1dC5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjaGVja2JveElucHV0Lm9uY2xpY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDdXJyZW50VmFsdWUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVjbENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZXMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWwuc2VsZWN0ZWQgfHwgKHRoaXMuc2VsZWN0ZWRWYWx1ZXMuaW5kZXhPZihlbC52YWx1ZSkgPiAtMSkpIHtcbiAgICAgICAgICAgIGNoZWNrYm94SW5wdXQuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPT09ICcnID8gZWwubGFiZWwgOlxuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSArICcsJyArIGVsLmxhYmVsO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrYm94RGl2LmFwcGVuZENoaWxkKGNoZWNrYm94SW5wdXQpO1xuXG4gICAgICAgIGNvbnN0IGNoZWNrYm94TGFiZWwgPSB0aGlzLmNyZWF0ZUNoZWNrYm94TGFiZWwoZWwubGFiZWwsIGlkKTtcbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQoY2hlY2tib3hMYWJlbCk7XG5cbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMucHVzaChjaGVja2JveERpdik7XG4gICAgICAgIHJldHVybiBjaGVja2JveERpdjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNoZWNrYm94TGFiZWwodGV4dDogc3RyaW5nLCBpZDogc3RyaW5nKTogSFRNTExhYmVsRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94TGFiZWwgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KEVjbENoZWNrYm94TGFiZWxDb21wb25lbnQpO1xuICAgICAgICBjaGVja2JveExhYmVsLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuaHRtbEZvciA9IGlkO1xuXG4gICAgICAgIGNvbnN0IHRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0ZXh0U3Bhbi5pbm5lckhUTUwgPSB0ZXh0O1xuXG4gICAgICAgIGNoZWNrYm94TGFiZWwubG9jYXRpb24ubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0ZXh0U3Bhbik7XG4gICAgICAgIHJldHVybiBjaGVja2JveExhYmVsLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDaGVja2JveElucHV0KGlkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGNoZWNrYm94SW5wdXQudHlwZSA9ICdjaGVja2JveCc7XG4gICAgICAgIGNoZWNrYm94SW5wdXQuY2xhc3NMaXN0LmFkZCgnZWNsLWNoZWNrYm94X19pbnB1dCcpO1xuICAgICAgICBjaGVja2JveElucHV0LmlkID0gaWQ7XG4gICAgICAgIGNoZWNrYm94SW5wdXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94SW5wdXQ7XG4gICAgfVxuXG4gICAgLy8gQWRkL3JlbW92ZSB2YWx1ZXMgZnJvbSB0aGUgc2VsZWN0IGlucHV0XG4gICAgcHJpdmF0ZSB1cGRhdGVDdXJyZW50VmFsdWUoKSB7XG4gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnRzQXJyYXkgPSBbXTtcbiAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudHNWYWx1ZXNBcnJheSA9IFtdO1xuICAgICAgICB0aGlzLmNoZWNrYm94U2VsZWN0QWxsLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudHNWYWx1ZXNBcnJheS5wdXNoKCg8SFRNTElucHV0RWxlbWVudD5lbC5jaGlsZE5vZGVzWzBdKS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c0FycmF5LnB1c2goZWwuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSBzZWxlY3RlZEVsZW1lbnRzQXJyYXkuam9pbignLCcpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcbiAgICB9XG5cbiAgICAvLyBDaGVja2JveCB0byBzZWxlY3QgYWxsIHRoZSBlbGVtZW50c1xuICAgIHByaXZhdGUgY3JlYXRlTXVsdGlTZWxlY3RBbGwoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBpZFN0ciA9IChuZXcgRGF0ZSgpKS50b0lTT1N0cmluZygpO1xuICAgICAgICBjb25zdCBjaGVja2JveERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjaGVja2JveERpdi5jbGFzc0xpc3QuYWRkKCdlY2wtY2hlY2tib3gnKTtcbiAgICAgICAgY2hlY2tib3hEaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtYWxsJyk7XG5cbiAgICAgICAgdGhpcy5jaGVja2JveFNlbGVjdEFsbCA9IHRoaXMuY3JlYXRlQ2hlY2tib3hJbnB1dCgnc2VsZWN0LW11bHRpcGxlLWFsbCcgKyBpZFN0ci5zdWJzdHJpbmcoaWRTdHIubGFzdEluZGV4T2YoJy4nKSArIDEpLCAnYWxsJyk7XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwub25jbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RBbGwoKTtcbiAgICAgICAgfTtcbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQodGhpcy5jaGVja2JveFNlbGVjdEFsbCk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tib3hMYWJlbCA9IHRoaXMuY3JlYXRlQ2hlY2tib3hMYWJlbCgnU2VsZWN0IGFsbCcsICdzZWxlY3QtbXVsdGlwbGUtYWxsJyArIGlkU3RyLnN1YnN0cmluZyhpZFN0ci5sYXN0SW5kZXhPZignLicpICsgMSkpO1xuICAgICAgICBjaGVja2JveERpdi5hcHBlbmRDaGlsZChjaGVja2JveExhYmVsKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94RGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3B0aW9uc1dyYXBwZXIoKTogSFRNTEVsZW1lbnQge1xuXG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtb3B0aW9ucycpO1xuICAgICAgICByZXR1cm4gZGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0QWxsKCkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50c0FycmF5ID0gW107XG4gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnRzVmFsdWVzQXJyYXkgPSBbXTtcbiAgICAgICAgLy8gU2VsZWN0IGFsbCB0aGUgZWxlbWVudHMsIHRoYXQgYXJlIG5vdCBkaXNhYmxlZFxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maWx0ZXIoZWxlbSA9PiBlbGVtLnN0eWxlLmRpc3BsYXkgIT09ICdub25lJykuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveFNlbGVjdEFsbC5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnB1dC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5LnB1c2goKDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF0pLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c0FycmF5LnB1c2goZWwuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSBzZWxlY3RlZEVsZW1lbnRzQXJyYXkuam9pbignLCcpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUljb25Db21wb25lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBlY2xJY29uQ29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChFY2xJY29uQ29tcG9uZW50KTtcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5zaXplID0gJ3MnO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmljb24gPSAnY29ybmVyLWFycm93JztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS50cmFuc2Zvcm0gPSAncm90YXRlLTE4MCc7XG4gICAgICAgIGVjbEljb25Db21wb25lbnQuaW5zdGFuY2UuY2xhc3MgPSAnZWNsLXNlbGVjdF9faWNvbi1zaGFwZSc7XG4gICAgICAgIHJldHVybiBlY2xJY29uQ29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVJY29uQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SWNvbkNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBzZWxlY3RJY29uQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2ljb24nKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdEljb25Db250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWFyY2hPcHRpb25zKGtleXdvcmQpIHtcbiAgICAgICAgaWYgKGtleXdvcmQgPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zLmZvckVhY2goKGl0ZW0sIGNudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0udGV4dENvbnRlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKGtleXdvcmQpIDwgMCkge1xuICAgICAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbXBvbmVudCgpIHtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiJdfQ==
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFHZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixJQUFJLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQU1uRixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBcUR6RCxZQUNrQyxTQUFvQixFQUMxQyxFQUFjLEVBQ2QsZ0JBQWtDLEVBQ2xDLE9BQXdCLEVBQ3hCLFNBQTJCO1FBQ25DLEtBQUssRUFBRSxDQUFDO1FBTHNCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDMUMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLHFCQUFnQixHQUFoQixn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QjtnQkFDdEIsU0FBUztzQkFBakIsS0FBSztnQkFFUixjQUFjO3NCQUExQixLQUFLO2dCQVFGLFFBQVE7c0JBRFgsS0FBSzs7c0JBQUksV0FBVzt1QkFBQyxlQUFlO2dCQVc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBR0YsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBT1YsU0FBUztzQkFBbEIsTUFBTTtnQkF1R1AsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIEl0ZXJhYmxlRGlmZmVyLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTZWxmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsQ2hlY2tib3hMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1jaGVja2JveC9lY2wtY2hlY2tib3gtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVjbEljb25Db21wb25lbnQgfSBmcm9tICcuLi9lY2wtaWNvbi9lY2wtaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsTXVsdGlzZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2VjbC1tdWx0aXNlbGVjdC1vcHRpb24uZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzZWxlY3RbZWNsTXVsdGlzZWxlY3RdJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VjbC1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE11bHRpc2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjaywgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlKSBlY2xPcHRpb25JdGVtczogUXVlcnlMaXN0PEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlPjtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc0ludmFsaWQ6IGJvb2xlYW4gfCBhbnkgID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzZXQgZWNsUGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9lY2xQbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgICAgICBpZiAodGhpcy5tdWx0aVNlbGVjdElucHV0KSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMuX2VjbFBsYWNlaG9sZGVyIHx8ICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5kaXNhYmxlZCcpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCB8fCBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgYW55KSB7IHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBlY2xTaXplOiBzdHJpbmcgPSAnbSc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zZWxlY3QnKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBlY2xDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgX2VjbFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPEVjbE11bHRpc2VsZWN0T3B0aW9uRGlyZWN0aXZlPjtcbiAgICBwcml2YXRlIGhvc3RFbDogSFRNTFNlbGVjdEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBob3N0UGFyZW50RWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaG9zdFdyYXBwZXJFbDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBzZWxlY3RJY29uQ29udGFpbmVyRWw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgZWNsSWNvbkNvbXBvbmVudEVsOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG11bHRpc2VsZWN0V3JhcHBlcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aXNlbGVjdENvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBtdWx0aURyb3Bkb3duOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG9wdGlvbnNXcmFwcGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIG11bHRpU2VsZWN0T3B0aW9uczogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICAgIHByaXZhdGUgbXVsdGlTZWxlY3RJbnB1dDogSFRNTElucHV0RWxlbWVudDtcbiAgICBwcml2YXRlIGNoZWNrYm94U2VsZWN0QWxsOiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHByaXZhdGUgc2VsZWN0ZWRWYWx1ZXM6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBjaGVja2JveExhYmVsOiBIVE1MTGFiZWxFbGVtZW50O1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJvdGVjdGVkIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmhvc3RFbCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5ob3N0UGFyZW50RWwgPSB0aGlzLmdldEhvc3RQYXJlbnRFbGVtZW50KHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsID0gdGhpcy5jcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLnNlbGVjdEljb25Db250YWluZXJFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbnRhaW5lcigpO1xuICAgICAgICB0aGlzLmVjbEljb25Db21wb25lbnRFbCA9IHRoaXMuY3JlYXRlSWNvbkNvbXBvbmVudCgpO1xuXG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyID0gdGhpcy5jcmVhdGVXcmFwcGVyTXVsdGlzZWxlY3QoKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lciA9IHRoaXMuY3JlYXRlU2VsZWN0Q29udGFpbmVyTXVsdGlzZWxlY3QoKTtcblxuICAgICAgICBpZiAodGhpcy5ob3N0UGFyZW50RWwgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5oaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSHRtbEVsZW1lbnRzKCk7XG5cbiAgICAgICAgICAgIHRoaXMuYnVpbGRNdWx0aXNlbGVjdERyb3Bkb3duKGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaGFuZGxlVHJhbnNsYXRpb25zKCk7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCkge1xuXG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb250YWluZXIuY2xhc3NMaXN0LnRvZ2dsZSgnZWNsLXNlbGVjdF9fY29udGFpbmVyLS1kaXNhYmxlZCcsIHRoaXMuZGlzYWJsZWQpO1xuICAgICAgICB0aGlzLm11bHRpc2VsZWN0Q29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lci0taW52YWxpZCcsIHRoaXMuaXNJbnZhbGlkKTtcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpZmYgPSB0aGlzLmRpZmZlci5kaWZmKHRoaXMuZWNsT3B0aW9uSXRlbXMpO1xuXG4gICAgICAgIGlmIChkaWZmKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUFsbE9wdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zID0gW107XG4gICAgICAgICAgICBkaWZmLmZvckVhY2hJdGVtKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1dyYXBwZXIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVPcHRpb25XaXRoQ2hlY2tib3goaXRlbS5pdGVtKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMub25PcHRpb25zQ2hhbmdlKCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRWYWx1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLm9uT3B0aW9uc0NoYW5nZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnB1c2goZWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb21wb25lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZVRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25LZXlVcChldjogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBpc0NsaWNrSW5zaWRlID0gdGhpcy5tdWx0aURyb3Bkb3duLmNvbnRhaW5zKDxFbGVtZW50PmV2LnRhcmdldCkgfHwgdGhpcy5tdWx0aVNlbGVjdElucHV0LmNvbnRhaW5zKDxFbGVtZW50PmV2LnRhcmdldCk7XG4gICAgICAgIGlmICghaXNDbGlja0luc2lkZSkge1xuICAgICAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUFsbE9wdGlvbnMoKSB7XG4gICAgICAgIHdoaWxlICh0aGlzLm9wdGlvbnNXcmFwcGVyLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc1dyYXBwZXIuZmlyc3RDaGlsZC5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25PcHRpb25zQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLmVjbE9wdGlvbkl0ZW1zLmZvckVhY2goaSA9PiBpLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICApLnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyLnJlbW92ZUNoaWxkKHRoaXMubXVsdGlEcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkTXVsdGlzZWxlY3REcm9wZG93bih0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlT3JpZ2luYWxTZWxlY3RDb21wb25lbnQoKSB7XG4gICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLnJlcGxhY2VDaGlsZCh0aGlzLmhvc3RXcmFwcGVyRWwsIHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmFwcGVuZENoaWxkKHRoaXMuaG9zdEVsKTtcbiAgICAgICAgdGhpcy5ob3N0V3JhcHBlckVsLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lci0taGlkZGVuJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIdG1sRWxlbWVudHMoKSB7XG4gICAgICAgIHRoaXMuaG9zdFBhcmVudEVsLmFwcGVuZENoaWxkKHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyKTtcbiAgICAgICAgdGhpcy5tdWx0aXNlbGVjdFdyYXBwZXIuYXBwZW5kQ2hpbGQodGhpcy5tdWx0aXNlbGVjdENvbnRhaW5lcik7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5zZWxlY3RJY29uQ29udGFpbmVyRWwpO1xuICAgICAgICB0aGlzLnNlbGVjdEljb25Db250YWluZXJFbC5hcHBlbmRDaGlsZCh0aGlzLmVjbEljb25Db21wb25lbnRFbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9wYWdhdGVUb3VjaGVkID0gKCkgPT4ge1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRNdWx0aXNlbGVjdERyb3Bkb3duKHdpdGhPcHRpb25zOiBib29sZWFuKSB7XG5cbiAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duID0gdGhpcy5jcmVhdGVEcm9wZG93bkZvck11bHRpc2VsZWN0KCk7XG4gICAgICAgIHRoaXMubXVsdGlzZWxlY3RXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMubXVsdGlEcm9wZG93bik7XG5cbiAgICAgICAgdGhpcy5tdWx0aURyb3Bkb3duLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlU2VhcmNoRm9yTXVsdGlzZWxlY3QoKSk7XG4gICAgICAgIHRoaXMubXVsdGlEcm9wZG93bi5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZU11bHRpU2VsZWN0QWxsKCkpO1xuICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyID0gdGhpcy5jcmVhdGVPcHRpb25zV3JhcHBlcigpO1xuICAgICAgICB0aGlzLm11bHRpRHJvcGRvd24uYXBwZW5kQ2hpbGQodGhpcy5vcHRpb25zV3JhcHBlcik7XG5cbiAgICAgICAgaWYgKHdpdGhPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmVjbE9wdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNXcmFwcGVyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlT3B0aW9uV2l0aENoZWNrYm94KGl0ZW0pKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0RWxlbWVudCgpOiBIVE1MU2VsZWN0RWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRIb3N0UGFyZW50RWxlbWVudChob3N0RWw6IEhUTUxTZWxlY3RFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gaG9zdEVsLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIb3N0V3JhcHBlckNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXInKTtcbiAgICAgICAgd3JhcHBlckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKGBlY2wtc2VsZWN0X19jb250YWluZXItLSR7dGhpcy5lY2xTaXplfWApO1xuICAgICAgICByZXR1cm4gd3JhcHBlckNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVdyYXBwZXJNdWx0aXNlbGVjdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJDb250YWluZXJNdWx0aSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB3cmFwcGVyQ29udGFpbmVyTXVsdGkuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUnKTtcbiAgICAgICAgcmV0dXJuIHdyYXBwZXJDb250YWluZXJNdWx0aTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZVNlbGVjdENvbnRhaW5lck11bHRpc2VsZWN0KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0Q29udGFpbmVyTXVsdGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgc2VsZWN0Q29udGFpbmVyTXVsdGkuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fY29udGFpbmVyJyk7XG4gICAgICAgIHNlbGVjdENvbnRhaW5lck11bHRpLmNsYXNzTGlzdC5hZGQoYGVjbC1zZWxlY3RfX2NvbnRhaW5lci0tJHt0aGlzLmVjbFNpemV9YCk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBzZWxlY3RDb250YWluZXJNdWx0aS5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXItLWRpc2FibGVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMuX2VjbFBsYWNlaG9sZGVyIHx8ICcnKTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0Jyk7XG4gICAgICAgIGlmICh0aGlzLmhvc3RFbC5oYXNBdHRyaWJ1dGUoJ2Zvcm1Db250cm9sTmFtZScpKSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuc2V0QXR0cmlidXRlKCdmb3JtQ29udHJvbE5hbWUnLCB0aGlzLmhvc3RFbC5nZXRBdHRyaWJ1dGUoJ2Zvcm1Db250cm9sTmFtZScpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQub25jbGljayA9IChlKSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLm11bHRpRHJvcGRvd24uc3R5bGUuZGlzcGxheSA9IHRoaXMubXVsdGlEcm9wZG93bi5zdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgPyAnYmxvY2snIDogJ25vbmUnO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdCcpO1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtdG9nZ2xlJyk7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZWN0Q29udGFpbmVyTXVsdGkuYXBwZW5kQ2hpbGQodGhpcy5tdWx0aVNlbGVjdElucHV0KTtcblxuICAgICAgICByZXR1cm4gc2VsZWN0Q29udGFpbmVyTXVsdGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEcm9wZG93bkZvck11bHRpc2VsZWN0KCkge1xuICAgICAgICBjb25zdCBkcm9wZG93bkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBkcm9wZG93bkRpdi5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19tdWx0aXBsZS1kcm9wZG93bicpO1xuICAgICAgICBkcm9wZG93bkRpdi5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19jb250YWluZXInKTtcbiAgICAgICAgZHJvcGRvd25EaXYuY2xhc3NMaXN0LmFkZChgZWNsLXNlbGVjdF9fY29udGFpbmVyLS0ke3RoaXMuZWNsU2l6ZX1gKTtcbiAgICAgICAgZHJvcGRvd25EaXYuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgcmV0dXJuIGRyb3Bkb3duRGl2O1xuICAgIH1cblxuICAgIC8vIHNlYXJjaCBib3ggdG8gc2VhcmNoIGFtb25nIG9wdGlvbnNcbiAgICBwcml2YXRlIGNyZWF0ZVNlYXJjaEZvck11bHRpc2VsZWN0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICBjb25zdCBtdWx0aVNlYXJjaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIG11bHRpU2VhcmNoLnR5cGUgPSAndGV4dCc7XG4gICAgICAgIG11bHRpU2VhcmNoLmNsYXNzTGlzdC5hZGQoJ2VjbC10ZXh0LWlucHV0Jyk7XG4gICAgICAgIG11bHRpU2VhcmNoLnBsYWNlaG9sZGVyID0gJ1NlYXJjaCc7XG4gICAgICAgIC8vIFNlYXJjaCBlbGVtZW50cy4gRWxlbWVudHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgY3JpdGVyaWEgYXJlIGhpZGRlblxuICAgICAgICBtdWx0aVNlYXJjaC5vbmtleXVwID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hPcHRpb25zKG11bHRpU2VhcmNoLnZhbHVlKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG11bHRpU2VhcmNoO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3B0aW9uV2l0aENoZWNrYm94KGVsOiBFY2xNdWx0aXNlbGVjdE9wdGlvbkRpcmVjdGl2ZSk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgaWRTdHIgPSAobmV3IERhdGUoKSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgaWQgPSAnaWQtJyArIGVsLnZhbHVlICsgaWRTdHIuc3Vic3RyaW5nKGlkU3RyLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcblxuICAgICAgICBjb25zdCBjaGVja2JveERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICAgIGlmIChlbC5jc3NDbGFzc2VzKSB7XG4gICAgICAgICAgICBlbC5jc3NDbGFzc2VzLnNwbGl0KCcgJykuZm9yRWFjaChjbCA9PiB7XG4gICAgICAgICAgICAgICAgY2hlY2tib3hEaXYuY2xhc3NMaXN0LmFkZChjbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNoZWNrYm94SW5wdXQgPSB0aGlzLmNyZWF0ZUNoZWNrYm94SW5wdXQoaWQsIGVsLnZhbHVlKTtcbiAgICAgICAgaWYgKGVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBjaGVja2JveERpdi5jbGFzc0xpc3QuYWRkKCdlY2wtY2hlY2tib3gtLWRpc2FibGVkJyk7XG4gICAgICAgICAgICBjaGVja2JveElucHV0LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNoZWNrYm94SW5wdXQub25jbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcGFnYXRlVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWNsQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFZhbHVlcyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbC5zZWxlY3RlZCB8fCAodGhpcy5zZWxlY3RlZFZhbHVlcy5pbmRleE9mKGVsLnZhbHVlKSA+IC0xKSkge1xuICAgICAgICAgICAgY2hlY2tib3hJbnB1dC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9PT0gJycgPyBlbC5sYWJlbCA6XG4gICAgICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdElucHV0LnZhbHVlICsgJywnICsgZWwubGFiZWw7XG4gICAgICAgIH1cbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQoY2hlY2tib3hJbnB1dCk7XG5cbiAgICAgICAgY29uc3QgY2hlY2tib3hMYWJlbCA9IHRoaXMuY3JlYXRlQ2hlY2tib3hMYWJlbChlbC5sYWJlbCwgaWQpO1xuICAgICAgICBjaGVja2JveERpdi5hcHBlbmRDaGlsZChjaGVja2JveExhYmVsKTtcblxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5wdXNoKGNoZWNrYm94RGl2KTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94RGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ2hlY2tib3hMYWJlbCh0ZXh0OiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBIVE1MTGFiZWxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgY2hlY2tib3hMYWJlbCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoRWNsQ2hlY2tib3hMYWJlbENvbXBvbmVudCk7XG4gICAgICAgIGNoZWNrYm94TGFiZWwubG9jYXRpb24ubmF0aXZlRWxlbWVudC5odG1sRm9yID0gaWQ7XG5cbiAgICAgICAgY29uc3QgdGV4dFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHRleHRTcGFuLmlubmVySFRNTCA9IHRleHQ7XG5cbiAgICAgICAgY2hlY2tib3hMYWJlbC5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHRleHRTcGFuKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94TGFiZWwubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUNoZWNrYm94SW5wdXQoaWQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICBjb25zdCBjaGVja2JveElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgY2hlY2tib3hJbnB1dC50eXBlID0gJ2NoZWNrYm94JztcbiAgICAgICAgY2hlY2tib3hJbnB1dC5jbGFzc0xpc3QuYWRkKCdlY2wtY2hlY2tib3hfX2lucHV0Jyk7XG4gICAgICAgIGNoZWNrYm94SW5wdXQuaWQgPSBpZDtcbiAgICAgICAgY2hlY2tib3hJbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gY2hlY2tib3hJbnB1dDtcbiAgICB9XG5cbiAgICAvLyBBZGQvcmVtb3ZlIHZhbHVlcyBmcm9tIHRoZSBzZWxlY3QgaW5wdXRcbiAgICBwcml2YXRlIHVwZGF0ZUN1cnJlbnRWYWx1ZSgpIHtcbiAgICAgICAgbGV0IHNlbGVjdGVkRWxlbWVudHNBcnJheSA9IFtdO1xuICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5ID0gW107XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gPEhUTUxJbnB1dEVsZW1lbnQ+ZWwuY2hpbGROb2Rlc1swXTtcbiAgICAgICAgICAgIGlmIChpbnB1dC5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5LnB1c2goKDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF0pLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnRzQXJyYXkucHVzaChlbC5jaGlsZE5vZGVzWzFdLnRleHRDb250ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBzZWxlY3RlZEVsZW1lbnRzVmFsdWVzQXJyYXk7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IHNlbGVjdGVkRWxlbWVudHNBcnJheS5qb2luKCcsJyk7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRWYWx1ZXMpO1xuICAgIH1cblxuICAgIC8vIENoZWNrYm94IHRvIHNlbGVjdCBhbGwgdGhlIGVsZW1lbnRzXG4gICAgcHJpdmF0ZSBjcmVhdGVNdWx0aVNlbGVjdEFsbCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGlkU3RyID0gKG5ldyBEYXRlKCkpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGNoZWNrYm94RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNoZWNrYm94RGl2LmNsYXNzTGlzdC5hZGQoJ2VjbC1jaGVja2JveCcpO1xuICAgICAgICBjaGVja2JveERpdi5jbGFzc0xpc3QuYWRkKCdlY2wtc2VsZWN0X19tdWx0aXBsZS1hbGwnKTtcblxuICAgICAgICB0aGlzLmNoZWNrYm94U2VsZWN0QWxsID0gdGhpcy5jcmVhdGVDaGVja2JveElucHV0KCdzZWxlY3QtbXVsdGlwbGUtYWxsJyArIGlkU3RyLnN1YnN0cmluZyhpZFN0ci5sYXN0SW5kZXhPZignLicpICsgMSksICdhbGwnKTtcbiAgICAgICAgdGhpcy5jaGVja2JveFNlbGVjdEFsbC5vbmNsaWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVUb3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFsbCgpO1xuICAgICAgICB9O1xuICAgICAgICBjaGVja2JveERpdi5hcHBlbmRDaGlsZCh0aGlzLmNoZWNrYm94U2VsZWN0QWxsKTtcblxuICAgICAgICB0aGlzLmNoZWNrYm94TGFiZWwgPSB0aGlzLmNyZWF0ZUNoZWNrYm94TGFiZWwoJ1NlbGVjdCBhbGwnLCAnc2VsZWN0LW11bHRpcGxlLWFsbCcgKyBpZFN0ci5zdWJzdHJpbmcoaWRTdHIubGFzdEluZGV4T2YoJy4nKSArIDEpKTtcbiAgICAgICAgY2hlY2tib3hEaXYuYXBwZW5kQ2hpbGQodGhpcy5jaGVja2JveExhYmVsKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrYm94RGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlT3B0aW9uc1dyYXBwZXIoKTogSFRNTEVsZW1lbnQge1xuXG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBkaXYuY2xhc3NMaXN0LmFkZCgnZWNsLXNlbGVjdF9fbXVsdGlwbGUtb3B0aW9ucycpO1xuICAgICAgICByZXR1cm4gZGl2O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0QWxsKCkge1xuICAgICAgICBsZXQgc2VsZWN0ZWRFbGVtZW50c0FycmF5ID0gW107XG4gICAgICAgIGxldCBzZWxlY3RlZEVsZW1lbnRzVmFsdWVzQXJyYXkgPSBbXTtcbiAgICAgICAgLy8gU2VsZWN0IGFsbCB0aGUgZWxlbWVudHMsIHRoYXQgYXJlIG5vdCBkaXNhYmxlZFxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5maWx0ZXIoZWxlbSA9PiBlbGVtLnN0eWxlLmRpc3BsYXkgIT09ICdub25lJykuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAodGhpcy5jaGVja2JveFNlbGVjdEFsbC5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpbnB1dC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5LnB1c2goKDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF0pLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50c0FycmF5LnB1c2goZWwuY2hpbGROb2Rlc1sxXS50ZXh0Q29udGVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gc2VsZWN0ZWRFbGVtZW50c1ZhbHVlc0FycmF5O1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0SW5wdXQudmFsdWUgPSBzZWxlY3RlZEVsZW1lbnRzQXJyYXkuam9pbignLCcpO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUljb25Db21wb25lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBlY2xJY29uQ29tcG9uZW50ID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChFY2xJY29uQ29tcG9uZW50KTtcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS5zaXplID0gJ3MnO1xuICAgICAgICBlY2xJY29uQ29tcG9uZW50Lmluc3RhbmNlLmljb24gPSAnY29ybmVyLWFycm93JztcbiAgICAgICAgZWNsSWNvbkNvbXBvbmVudC5pbnN0YW5jZS50cmFuc2Zvcm0gPSAncm90YXRlLTE4MCc7XG4gICAgICAgIGVjbEljb25Db21wb25lbnQuaW5zdGFuY2UuY2xhc3MgPSAnZWNsLXNlbGVjdF9faWNvbi1zaGFwZSc7XG4gICAgICAgIHJldHVybiBlY2xJY29uQ29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVJY29uQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0SWNvbkNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBzZWxlY3RJY29uQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2VjbC1zZWxlY3RfX2ljb24nKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdEljb25Db250YWluZXI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWFyY2hPcHRpb25zKGtleXdvcmQ6IHN0cmluZyA9ICcnKSB7XG4gICAgICAgIGlmIChrZXl3b3JkID09PSAnJykge1xuICAgICAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0T3B0aW9ucy5mb3JFYWNoKChpdGVtLCBjbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtLnRleHRDb250ZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihrZXl3b3JkLnRvTG93ZXJDYXNlKCkpIDwgMCkge1xuICAgICAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldENvbXBvbmVudCgpIHtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdE9wdGlvbnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IDxIVE1MSW5wdXRFbGVtZW50PmVsLmNoaWxkTm9kZXNbMF07XG4gICAgICAgICAgICBpZiAoaW5wdXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hlY2tib3hTZWxlY3RBbGwuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RJbnB1dC52YWx1ZSA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVUcmFuc2xhdGlvbnMoKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlXG4gICAgICAgICAgICAuc3RyZWFtKCdlY2wubXVsdGlzZWxlY3QuU0VMRUNULUFMTCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKCh0cmFuc2xhdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5jaGVja2JveExhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tib3hMYWJlbC50ZXh0Q29udGVudCA9IHRyYW5zbGF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD4iXX0=
@@ -7,7 +7,6 @@ export class EclNewsTickerItemComponent extends ECLBaseDirective {
7
7
  super();
8
8
  this.el = el;
9
9
  this.ariaHidden = true;
10
- this.tabindex = '-1';
11
10
  this.role = 'listitem';
12
11
  }
13
12
  get cssClasses() {
@@ -22,7 +21,7 @@ export class EclNewsTickerItemComponent extends ECLBaseDirective {
22
21
  }
23
22
  }
24
23
  /** @nocollapse */ EclNewsTickerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
25
- /** @nocollapse */ EclNewsTickerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item", host: { properties: { "class": "this.cssClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabindex", "attr.role": "this.role" } }, queries: [{ propertyName: "eclLink", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" });
24
+ /** @nocollapse */ EclNewsTickerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item", host: { properties: { "class": "this.cssClasses", "attr.aria-hidden": "this.ariaHidden", "attr.role": "this.role" } }, queries: [{ propertyName: "eclLink", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" });
26
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerItemComponent, decorators: [{
27
26
  type: Component,
28
27
  args: [{ selector: 'ecl-news-ticker-item', template: "<ng-content></ng-content>\n" }]
@@ -35,11 +34,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
35
34
  }], ariaHidden: [{
36
35
  type: HostBinding,
37
36
  args: ['attr.aria-hidden']
38
- }], tabindex: [{
39
- type: HostBinding,
40
- args: ['attr.tabindex']
41
37
  }], role: [{
42
38
  type: HostBinding,
43
39
  args: ['attr.role']
44
40
  }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW5ld3MtdGlja2VyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1uZXdzLXRpY2tlci9lY2wtbmV3cy10aWNrZXItaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW5ld3MtdGlja2VyL2VjbC1uZXdzLXRpY2tlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUFjLFdBQVcsRUFDeEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTXpELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFjNUQsWUFBbUIsRUFBYztRQUM3QixLQUFLLEVBQUUsQ0FBQztRQURPLE9BQUUsR0FBRixFQUFFLENBQVk7UUFKQSxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDcEIsU0FBSSxHQUFHLFVBQVUsQ0FBQztJQUk1QyxDQUFDO0lBYkQsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUM7U0FDaEQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQVVELGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLDZCQUE2QixDQUFDO1NBQ3REO0lBQ0wsQ0FBQzs7aUpBdEJRLDBCQUEwQjtxSUFBMUIsMEJBQTBCLDBQQUNyQixnQkFBZ0IsdUVDYmxDLDZCQUNBO2tHRFdhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDSSxzQkFBc0I7aUdBSUEsT0FBTztzQkFBdEMsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBRzFCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQU9hLFVBQVU7c0JBQTFDLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUNELFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFDRixJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFY2xMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWxpbmsvZWNsLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1uZXdzLXRpY2tlci1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW5ld3MtdGlja2VyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkKEVjbExpbmtEaXJlY3RpdmUpIGVjbExpbms6IEVjbExpbmtEaXJlY3RpdmU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1uZXdzLXRpY2tlcl9fc2xpZGUnKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFIaWRkZW4gPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYmluZGV4ID0gJy0xJztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnbGlzdGl0ZW0nO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5lY2xMaW5rKSB7XG4gICAgICAgICAgICB0aGlzLmVjbExpbmsuY2xhc3MgPSAnZWNsLW5ld3MtdGlja2VyX19zbGlkZS10ZXh0JztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW5ld3MtdGlja2VyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1uZXdzLXRpY2tlci9lY2wtbmV3cy10aWNrZXItaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW5ld3MtdGlja2VyL2VjbC1uZXdzLXRpY2tlci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUFjLFdBQVcsRUFDeEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTXpELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxnQkFBZ0I7SUFhNUQsWUFBbUIsRUFBYztRQUM3QixLQUFLLEVBQUUsQ0FBQztRQURPLE9BQUUsR0FBRixFQUFFLENBQVk7UUFIQSxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLFNBQUksR0FBRyxVQUFVLENBQUM7SUFJNUMsQ0FBQztJQVpELElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDO1NBQ2hELENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFTRCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyw2QkFBNkIsQ0FBQztTQUN0RDtJQUNMLENBQUM7O2lKQXJCUSwwQkFBMEI7cUlBQTFCLDBCQUEwQix3TkFDckIsZ0JBQWdCLHVFQ2JsQyw2QkFDQTtrR0RXYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0ksc0JBQXNCO2lHQUlBLE9BQU87c0JBQXRDLFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUcxQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFPYSxVQUFVO3NCQUExQyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFDTCxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFY2xMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWxpbmsvZWNsLWxpbmsuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1uZXdzLXRpY2tlci1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW5ld3MtdGlja2VyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkKEVjbExpbmtEaXJlY3RpdmUpIGVjbExpbms6IEVjbExpbmtEaXJlY3RpdmU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1uZXdzLXRpY2tlcl9fc2xpZGUnKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpIGFyaWFIaWRkZW4gPSB0cnVlO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdsaXN0aXRlbSc7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmVjbExpbmspIHtcbiAgICAgICAgICAgIHRoaXMuZWNsTGluay5jbGFzcyA9ICdlY2wtbmV3cy10aWNrZXJfX3NsaWRlLXRleHQnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "../ecl-button/ecl-button.component";
9
9
  import * as i2 from "../ecl-icon/ecl-icon.component";
10
10
  import * as i3 from "./ecl-news-ticker-item.component";
11
+ import * as i4 from "@ngx-translate/core";
11
12
  export class EclNewsTickerItemEvent extends EclBaseEvent {
12
13
  constructor(itemIndex) {
13
14
  super();
@@ -102,6 +103,7 @@ export class EclNewsTickerComponent extends ECLBaseDirective {
102
103
  this._contentHeight = newHeight;
103
104
  this.transitionDuration = withTransition ? 0.4 : 0;
104
105
  this.slidesTransform = `translate3d(0px, -${newOffset}px, 0px)`;
106
+ this.setCurrentSlide(item);
105
107
  }
106
108
  }
107
109
  initContainer() {
@@ -153,15 +155,23 @@ export class EclNewsTickerComponent extends ECLBaseDirective {
153
155
  getAllItemsArray() {
154
156
  return [...[this.firstHiddenItem], ...this.newsTickerItems.toArray(), ...[this.lastHiddenItem]];
155
157
  }
158
+ setCurrentSlide(currentItem) {
159
+ this.newsTickerItems.forEach(item => {
160
+ item.ariaHidden = true;
161
+ if (item === currentItem) {
162
+ item.ariaHidden = false;
163
+ }
164
+ });
165
+ }
156
166
  }
157
167
  /** @nocollapse */ EclNewsTickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
158
- /** @nocollapse */ EclNewsTickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerComponent, selector: "ecl-news-ticker", outputs: { itemSwitch: "itemSwitch" }, host: { listeners: { "window:resize": "onResize($event)" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "newsTickerItems", predicate: EclNewsTickerItemComponent }], viewQueries: [{ propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\">{{ itemIndex }}</span> of {{ itemsCount }}\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\"\n size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "component", type: i3.EclNewsTickerItemComponent, selector: "ecl-news-ticker-item" }] });
168
+ /** @nocollapse */ EclNewsTickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclNewsTickerComponent, selector: "ecl-news-ticker", outputs: { itemSwitch: "itemSwitch" }, host: { listeners: { "window:resize": "onResize($event)" }, properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "newsTickerItems", predicate: EclNewsTickerItemComponent }], viewQueries: [{ propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span> \n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PREV-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\" size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.NEXT-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["variant", "containerStyleClass"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "component", type: i3.EclNewsTickerItemComponent, selector: "ecl-news-ticker-item" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
159
169
  __decorate([
160
170
  coerceElement
161
171
  ], EclNewsTickerComponent.prototype, "slidesContainer", void 0);
162
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclNewsTickerComponent, decorators: [{
163
173
  type: Component,
164
- args: [{ selector: 'ecl-news-ticker', template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\">{{ itemIndex }}</span> of {{ itemsCount }}\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\"\n size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n tabindex=\"-1\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n" }]
174
+ args: [{ selector: 'ecl-news-ticker', template: "<div class=\"ecl-news-ticker__container\"\n [style.height.px]=\"containerHeight\">\n <div class=\"ecl-news-ticker__content\"\n [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\"\n [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\"\n #slidesContainer >\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n <ng-content></ng-content>\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n </ul>\n </div>\n</div>\n<ecl-icon icon=\"information\"\n size=\"m\"\n class=\"ecl-news-ticker__icon\"></ecl-icon>\n<div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span> \n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n</div>\n<div class=\"ecl-news-ticker__controls\">\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__prev\"\n (click)=\"onPrevious()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PREV-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-270\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__toggle\"\n (click)=\"togglePlay()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon [icon]=\"playing ? 'pause' : 'play'\" size=\"m\"></ecl-icon>\n </button>\n <button eclButton\n variant=\"primary\"\n class=\"ecl-news-ticker__next\"\n (click)=\"onNext()\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.NEXT-NEWS' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\"\n size=\"m\"\n transform=\"rotate-90\">\n </ecl-icon>\n </button>\n</div>\n" }]
165
175
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { itemSwitch: [{
166
176
  type: Output
167
177
  }], newsTickerItems: [{
@@ -183,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
183
193
  type: HostListener,
184
194
  args: ['window:resize', ['$event']]
185
195
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbmV3cy10aWNrZXIvZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbmV3cy10aWNrZXIvZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFFWixNQUFNLEVBR04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztBQUU5RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQUNwRCxZQUFtQixTQUFpQjtRQUNoQyxLQUFLLEVBQUUsQ0FBQztRQURPLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFFcEMsQ0FBQztDQUNKO0FBTUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGdCQUFnQjtJQTBCeEQsWUFBb0IsU0FBb0I7UUFDcEMsS0FBSyxFQUFFLENBQUM7UUFEUSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBeEI5QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFhbEUsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBR3JCLGtCQUFhLEdBQUcsSUFBSSxDQUFD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Q3pHLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDOzs2SUFqTFEsc0JBQXNCO2lJQUF0QixzQkFBc0Isd09BR2QsMEJBQTBCLGdYQy9CL0MsbXNEQWlEQTs7SURmSyxhQUFhOytEQUE4RDtrR0FObkUsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGlCQUFpQjtnR0FLakIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDc0MsZUFBZTtzQkFBM0QsZUFBZTt1QkFBQywwQkFBMEI7Z0JBQ2IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0MsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ2tCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUd2QyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkErQnBCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2VjbC1uZXdzLXRpY2tlci1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBFY2xOZXdzVGlja2VySXRlbUV2ZW50IGV4dGVuZHMgRWNsQmFzZUV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW5ld3MtdGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTmV3c1RpY2tlckNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gICAgQE91dHB1dCgpIGl0ZW1Td2l0Y2ggPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE5ld3NUaWNrZXJJdGVtRXZlbnQ+KCk7XG4gICAgQENvbnRlbnRDaGlsZHJlbihFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudCkgbmV3c1RpY2tlckl0ZW1zOiBRdWVyeUxpc3Q8RWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2ZpcnN0SGlkZGVuSXRlbScpIGZpcnN0SGlkZGVuSXRlbTogRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbGFzdEhpZGRlbkl0ZW0nKSBsYXN0SGlkZGVuSXRlbTogRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ7XG4gICAgQGNvZXJjZUVsZW1lbnQgQFZpZXdDaGlsZCgnc2xpZGVzQ29udGFpbmVyJykgc2xpZGVzQ29udGFpbmVyOiBFbGVtZW50IHwgYW55O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtbmV3cy10aWNrZXInKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIGl0ZW1JbmRleDogbnVtYmVyID0gMTtcbiAgICBwbGF5aW5nID0gZmFsc2U7XG4gICAgc2xpZGVzVHJhbnNmb3JtOiBzdHJpbmcgPSAnJztcbiAgICB0cmFuc2l0aW9uRHVyYXRpb246IG51bWJlcjtcbiAgICBwcml2YXRlIGludGVydmFsSWQ6IGFueTtcbiAgICBwcml2YXRlIFBMQVlfSU5URVJWQUwgPSA1MDAwO1xuICAgIHByaXZhdGUgSU5JVF9ERUxBWSA9IDMwMDtcbiAgICBwcml2YXRlIF9jb250YWluZXJIZWlnaHQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9jb250ZW50SGVpZ2h0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBjb250YWluZXJIZWlnaHQoKSB7IHJldHVybiB0aGlzLl9jb250YWluZXJIZWlnaHQ7IH1cblxuICAgIGdldCBjb250ZW50SGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5fY29udGVudEhlaWdodDsgfVxuXG4gICAgZ2V0IGl0ZW1zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmV3c1RpY2tlckl0ZW1zLmxlbmd0aDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplVGlja2VyKCk7XG4gICAgICAgICAgICB0aGlzLm1vdmVTbGlkZXModGhpcy5nZXRDdXJyZW50SXRlbSgpLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRDb250YWluZXIoKTtcbiAgICAgICAgfSwgdGhpcy5JTklUX0RFTEFZKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIG9uUHJldmlvdXMoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsQXV0b3BsYXkoKTtcbiAgICAgICAgdGhpcy5wcmV2aW91c1NsaWRlKCk7XG4gICAgfVxuXG4gICAgcHJldmlvdXNTbGlkZSgpIHtcbiAgICAgICAgdGhpcy5pdGVtSW5kZXggPSB0aGlzLmdldFByZXZJbmRleCgpO1xuICAgICAgICBpZiAodGhpcy5pdGVtSW5kZXggPT09IHRoaXMuaXRlbXNDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5tb3ZlU2xpZGVzKHRoaXMuZ2V0Rmlyc3RJdGVtKHRoaXMuZ2V0QWxsSXRlbXNBcnJheSgpKSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVTbGlkZXModGhpcy5nZXRDdXJyZW50SXRlbSgpLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLml0ZW1Td2l0Y2gubmV4dChuZXcgRWNsTmV3c1RpY2tlckl0ZW1FdmVudCh0aGlzLml0ZW1JbmRleCkpO1xuICAgIH1cblxuICAgIG9uTmV4dCgpIHtcbiAgICAgICAgdGhpcy5jYW5jZWxBdXRvcGxheSgpO1xuICAgICAgICB0aGlzLm5leHRTbGlkZSgpO1xuICAgIH1cblxuICAgIG5leHRTbGlkZSgpIHtcbiAgICAgICAgdGhpcy5pdGVtSW5kZXggPSB0aGlzLmdldE5leHRJbmRleCgpO1xuICAgICAgICBpZiAodGhpcy5pdGVtSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMubW92ZVNsaWRlcyh0aGlzLmdldExhc3RJdGVtKHRoaXMuZ2V0QWxsSXRlbXNBcnJheSgpKSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVTbGlkZXModGhpcy5nZXRDdXJyZW50SXRlbSgpLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLml0ZW1Td2l0Y2gubmV4dChuZXcgRWNsTmV3c1RpY2tlckl0ZW1FdmVudCh0aGlzLml0ZW1JbmRleCkpO1xuICAgIH1cblxuICAgIHRvZ2dsZVBsYXkoKSB7XG4gICAgICAgIGlmICghdGhpcy5wbGF5aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLm5leHRTbGlkZSgpLCB0aGlzLlBMQVlfSU5URVJWQUwpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5aW5nID0gIXRoaXMucGxheWluZztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbmNlbEF1dG9wbGF5KCkge1xuICAgICAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlU2xpZGVzKGl0ZW06IEVjbE5ld3NUaWNrZXJJdGVtQ29tcG9uZW50LCB3aXRoVHJhbnNpdGlvbjogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgY29uc3QgbmV3T2Zmc2V0ID0gaXRlbS5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IGl0ZW0uZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50SGVpZ2h0ID0gbmV3SGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uRHVyYXRpb24gPSB3aXRoVHJhbnNpdGlvbiA/IDAuNCA6IDA7XG4gICAgICAgICAgICB0aGlzLnNsaWRlc1RyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwcHgsIC0ke25ld09mZnNldH1weCwgMHB4KWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRDb250YWluZXIoKSB7XG4gICAgICAgIHRoaXMuZmlyc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRMYXN0Q29udGVudENoaWxkKCk7XG4gICAgICAgIHRoaXMubGFzdEhpZGRlbkl0ZW0uZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmdldEZpcnN0Q29udGVudENoaWxkKCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIyLmxpc3RlbihcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzQ29udGFpbmVyLFxuICAgICAgICAgICAgJ3RyYW5zaXRpb25lbmQnLFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5jaGVja0luZGV4KClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZXNpemVUaWNrZXIoKTtcbiAgICAgICAgdGhpcy5tb3ZlU2xpZGVzKHRoaXMuZ2V0Rmlyc3RJdGVtKHRoaXMubmV3c1RpY2tlckl0ZW1zLnRvQXJyYXkoKSksIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrSW5kZXgoKSB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1JbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmdldEZpcnN0SXRlbSh0aGlzLm5ld3NUaWNrZXJJdGVtcy50b0FycmF5KCkpO1xuICAgICAgICAgICAgdGhpcy5tb3ZlU2xpZGVzKGl0ZW0sIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLml0ZW1JbmRleCA9PT0gdGhpcy5pdGVtc0NvdW50KSB7XG4gICAgICAgICAgICBsZXQgaXRlbSA9IHRoaXMuZ2V0TGFzdEl0ZW0odGhpcy5uZXdzVGlja2VySXRlbXMudG9BcnJheSgpKTtcbiAgICAgICAgICAgIHRoaXMubW92ZVNsaWRlcyhpdGVtLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2l6ZVRpY2tlcigpIHtcbiAgICAgICAgbGV0IGhpZ2hlc3RTbGlkZSA9IDA7XG4gICAgICAgIHRoaXMubmV3c1RpY2tlckl0ZW1zLmZvckVhY2goKHNsaWRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzbGlkZUhlaWdodCA9IHNsaWRlLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgaGlnaGVzdFNsaWRlID0gaGlnaGVzdFNsaWRlIDwgc2xpZGVIZWlnaHQgPyBzbGlkZUhlaWdodCA6IGhpZ2hlc3RTbGlkZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lckhlaWdodCA9IGhpZ2hlc3RTbGlkZSArIDEwO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dEluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1JbmRleCA9PT0gdGhpcy5pdGVtc0NvdW50ID8gMSA6ICsrdGhpcy5pdGVtSW5kZXg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50SXRlbSgpOiBFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsbEl0ZW1zQXJyYXkoKVt0aGlzLml0ZW1JbmRleF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcmV2SW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbUluZGV4ID09PSAxID8gdGhpcy5pdGVtc0NvdW50IDogLS10aGlzLml0ZW1JbmRleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpcnN0SXRlbShpdGVtczogQXJyYXk8RWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ+KTogRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gaXRlbXMubGVuZ3RoID4gMCA/IGl0ZW1zWzBdIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExhc3RJdGVtKGl0ZW1zOiBBcnJheTxFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudD4pOiBFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExhc3RDb250ZW50Q2hpbGQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmV3c1RpY2tlckl0ZW1zLmxlbmd0aCA+IDAgPyB0aGlzLm5ld3NUaWNrZXJJdGVtcy5nZXQodGhpcy5pdGVtc0NvdW50IC0gMSkuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpcnN0Q29udGVudENoaWxkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5ld3NUaWNrZXJJdGVtcy5sZW5ndGggPiAwID8gdGhpcy5uZXdzVGlja2VySXRlbXMuZ2V0KDApLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBbGxJdGVtc0FycmF5KCk6IEVjbE5ld3NUaWNrZXJJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICByZXR1cm4gWy4uLlt0aGlzLmZpcnN0SGlkZGVuSXRlbV0sIC4uLnRoaXMubmV3c1RpY2tlckl0ZW1zLnRvQXJyYXkoKSwgLi4uW3RoaXMubGFzdEhpZGRlbkl0ZW1dXTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZWNsLW5ld3MtdGlja2VyX19jb250YWluZXJcIlxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiY29udGFpbmVySGVpZ2h0XCI+XG4gICAgPGRpdiBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9fY29udGVudFwiXG4gICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiY29udGVudEhlaWdodFwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX3NsaWRlc1wiXG4gICAgICAgICAgICBbc3R5bGUudHJhbnNpdGlvbi1kdXJhdGlvbi5zXT1cInRyYW5zaXRpb25EdXJhdGlvblwiXG4gICAgICAgICAgICBbc3R5bGUudHJhbnNmb3JtXT1cInNsaWRlc1RyYW5zZm9ybVwiXG4gICAgICAgICAgICAjc2xpZGVzQ29udGFpbmVyID5cbiAgICAgICAgICAgIDxlY2wtbmV3cy10aWNrZXItaXRlbSAjZmlyc3RIaWRkZW5JdGVtPjwvZWNsLW5ld3MtdGlja2VyLWl0ZW0+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8ZWNsLW5ld3MtdGlja2VyLWl0ZW0gI2xhc3RIaWRkZW5JdGVtPjwvZWNsLW5ld3MtdGlja2VyLWl0ZW0+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxlY2wtaWNvbiBpY29uPVwiaW5mb3JtYXRpb25cIlxuICAgIHNpemU9XCJtXCJcbiAgICBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9faWNvblwiPjwvZWNsLWljb24+XG48ZGl2IGNsYXNzPVwiZWNsLW5ld3MtdGlja2VyX19jb3VudGVyXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX2NvdW50ZXItLWN1cnJlbnRcIj57eyBpdGVtSW5kZXggfX08L3NwYW4+IG9mIHt7IGl0ZW1zQ291bnQgfX1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9fY29udHJvbHNcIj5cbiAgICA8YnV0dG9uIGVjbEJ1dHRvblxuICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9fcHJldlwiXG4gICAgICAgIChjbGljayk9XCJvblByZXZpb3VzKClcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIlxuICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiPjwvZWNsLWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBlY2xCdXR0b25cbiAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX3RvZ2dsZVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVQbGF5KClcIj5cbiAgICAgICAgPGVjbC1pY29uIFtpY29uXT1cInBsYXlpbmcgPyAncGF1c2UnIDogJ3BsYXknXCJcbiAgICAgICAgICAgIHNpemU9XCJtXCI+PC9lY2wtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGVjbEJ1dHRvblxuICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9fbmV4dFwiXG4gICAgICAgIChjbGljayk9XCJvbk5leHQoKVwiPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIj5cbiAgICAgICAgPC9lY2wtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbmV3cy10aWNrZXIvZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbmV3cy10aWNrZXIvZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFFWixNQUFNLEVBR04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFFOUUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFlBQVk7SUFDcEQsWUFBbUIsU0FBaUI7UUFDaEMsS0FBSyxFQUFFLENBQUM7UUFETyxjQUFTLEdBQVQsU0FBUyxDQUFRO0lBRXBDLENBQUM7Q0FDSjtBQU1ELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUEwQnhELFlBQW9CLFNBQW9CO1FBQ3BDLEtBQUssRUFBRSxDQUFDO1FBRFEsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXhCOUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBYWxFLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUdyQixrQkFBYSxHQUFHLElBQUksQ0FB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YUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pHLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRU8sZUFBZSxDQUFDLFdBQXVDO1FBQzNELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUcsSUFBSSxLQUFLLFdBQVcsRUFBRTtnQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7YUFDM0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzZJQTVMUSxzQkFBc0I7aUlBQXRCLHNCQUFzQix3T0FHZCwwQkFBMEIsZ1hDL0IvQyx1aUVBd0RBOztJRHRCSyxhQUFhOytEQUE4RDtrR0FObkUsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGlCQUFpQjtnR0FLakIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDc0MsZUFBZTtzQkFBM0QsZUFBZTt1QkFBQywwQkFBMEI7Z0JBQ2IsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ0MsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBQ2tCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUd2QyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkErQnBCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVjbEJhc2VFdmVudCB9IGZyb20gJy4uLy4uL21vZGVsL2VjbC1iYXNlLmV2ZW50JztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2VjbC1uZXdzLXRpY2tlci1pdGVtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBFY2xOZXdzVGlja2VySXRlbUV2ZW50IGV4dGVuZHMgRWNsQmFzZUV2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaXRlbUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW5ld3MtdGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW5ld3MtdGlja2VyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTmV3c1RpY2tlckNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gICAgQE91dHB1dCgpIGl0ZW1Td2l0Y2ggPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE5ld3NUaWNrZXJJdGVtRXZlbnQ+KCk7XG4gICAgQENvbnRlbnRDaGlsZHJlbihFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudCkgbmV3c1RpY2tlckl0ZW1zOiBRdWVyeUxpc3Q8RWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoJ2ZpcnN0SGlkZGVuSXRlbScpIGZpcnN0SGlkZGVuSXRlbTogRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbGFzdEhpZGRlbkl0ZW0nKSBsYXN0SGlkZGVuSXRlbTogRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ7XG4gICAgQGNvZXJjZUVsZW1lbnQgQFZpZXdDaGlsZCgnc2xpZGVzQ29udGFpbmVyJykgc2xpZGVzQ29udGFpbmVyOiBFbGVtZW50IHwgYW55O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtbmV3cy10aWNrZXInKSxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIGl0ZW1JbmRleDogbnVtYmVyID0gMTtcbiAgICBwbGF5aW5nID0gZmFsc2U7XG4gICAgc2xpZGVzVHJhbnNmb3JtOiBzdHJpbmcgPSAnJztcbiAgICB0cmFuc2l0aW9uRHVyYXRpb246IG51bWJlcjtcbiAgICBwcml2YXRlIGludGVydmFsSWQ6IGFueTtcbiAgICBwcml2YXRlIFBMQVlfSU5URVJWQUwgPSA1MDAwO1xuICAgIHByaXZhdGUgSU5JVF9ERUxBWSA9IDMwMDtcbiAgICBwcml2YXRlIF9jb250YWluZXJIZWlnaHQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9jb250ZW50SGVpZ2h0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBjb250YWluZXJIZWlnaHQoKSB7IHJldHVybiB0aGlzLl9jb250YWluZXJIZWlnaHQ7IH1cblxuICAgIGdldCBjb250ZW50SGVpZ2h0KCkgeyByZXR1cm4gdGhpcy5fY29udGVudEhlaWdodDsgfVxuXG4gICAgZ2V0IGl0ZW1zQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmV3c1RpY2tlckl0ZW1zLmxlbmd0aDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZShldmVudCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplVGlja2VyKCk7XG4gICAgICAgICAgICB0aGlzLm1vdmVTbGlkZXModGhpcy5nZXRDdXJyZW50SXRlbSgpLCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRDb250YWluZXIoKTtcbiAgICAgICAgfSwgdGhpcy5JTklUX0RFTEFZKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVMaXN0ZW5lcigpO1xuICAgIH1cblxuICAgIG9uUHJldmlvdXMoKSB7XG4gICAgICAgIHRoaXMuY2FuY2VsQXV0b3BsYXkoKTtcbiAgICAgICAgdGhpcy5wcmV2aW91c1NsaWRlKCk7XG4gICAgfVxuXG4gICAgcHJldmlvdXNTbGlkZSgpIHtcbiAgICAgICAgdGhpcy5pdGVtSW5kZXggPSB0aGlzLmdldFByZXZJbmRleCgpO1xuICAgICAgICBpZiAodGhpcy5pdGVtSW5kZXggPT09IHRoaXMuaXRlbXNDb3VudCkge1xuICAgICAgICAgICAgdGhpcy5tb3ZlU2xpZGVzKHRoaXMuZ2V0Rmlyc3RJdGVtKHRoaXMuZ2V0QWxsSXRlbXNBcnJheSgpKSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVTbGlkZXModGhpcy5nZXRDdXJyZW50SXRlbSgpLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLml0ZW1Td2l0Y2gubmV4dChuZXcgRWNsTmV3c1RpY2tlckl0ZW1FdmVudCh0aGlzLml0ZW1JbmRleCkpO1xuICAgIH1cblxuICAgIG9uTmV4dCgpIHtcbiAgICAgICAgdGhpcy5jYW5jZWxBdXRvcGxheSgpO1xuICAgICAgICB0aGlzLm5leHRTbGlkZSgpO1xuICAgIH1cblxuICAgIG5leHRTbGlkZSgpIHtcbiAgICAgICAgdGhpcy5pdGVtSW5kZXggPSB0aGlzLmdldE5leHRJbmRleCgpO1xuICAgICAgICBpZiAodGhpcy5pdGVtSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMubW92ZVNsaWRlcyh0aGlzLmdldExhc3RJdGVtKHRoaXMuZ2V0QWxsSXRlbXNBcnJheSgpKSwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVTbGlkZXModGhpcy5nZXRDdXJyZW50SXRlbSgpLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLml0ZW1Td2l0Y2gubmV4dChuZXcgRWNsTmV3c1RpY2tlckl0ZW1FdmVudCh0aGlzLml0ZW1JbmRleCkpO1xuICAgIH1cblxuICAgIHRvZ2dsZVBsYXkoKSB7XG4gICAgICAgIGlmICghdGhpcy5wbGF5aW5nKSB7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB0aGlzLm5leHRTbGlkZSgpLCB0aGlzLlBMQVlfSU5URVJWQUwpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5aW5nID0gIXRoaXMucGxheWluZztcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbmNlbEF1dG9wbGF5KCkge1xuICAgICAgICBpZiAodGhpcy5pbnRlcnZhbElkKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wbGF5aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtb3ZlU2xpZGVzKGl0ZW06IEVjbE5ld3NUaWNrZXJJdGVtQ29tcG9uZW50LCB3aXRoVHJhbnNpdGlvbjogYm9vbGVhbikge1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgY29uc3QgbmV3T2Zmc2V0ID0gaXRlbS5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IGl0ZW0uZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50SGVpZ2h0ID0gbmV3SGVpZ2h0O1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uRHVyYXRpb24gPSB3aXRoVHJhbnNpdGlvbiA/IDAuNCA6IDA7XG4gICAgICAgICAgICB0aGlzLnNsaWRlc1RyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwcHgsIC0ke25ld09mZnNldH1weCwgMHB4KWA7XG5cbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudFNsaWRlKGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Q29udGFpbmVyKCkge1xuICAgICAgICB0aGlzLmZpcnN0SGlkZGVuSXRlbS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuZ2V0TGFzdENvbnRlbnRDaGlsZCgpO1xuICAgICAgICB0aGlzLmxhc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRGaXJzdENvbnRlbnRDaGlsZCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyMi5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLnNsaWRlc0NvbnRhaW5lcixcbiAgICAgICAgICAgICd0cmFuc2l0aW9uZW5kJyxcbiAgICAgICAgICAgICgpID0+IHRoaXMuY2hlY2tJbmRleCgpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVzaXplVGlja2VyKCk7XG4gICAgICAgIHRoaXMubW92ZVNsaWRlcyh0aGlzLmdldEZpcnN0SXRlbSh0aGlzLm5ld3NUaWNrZXJJdGVtcy50b0FycmF5KCkpLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGVja0luZGV4KCkge1xuICAgICAgICBpZiAodGhpcy5pdGVtSW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIGxldCBpdGVtID0gdGhpcy5nZXRGaXJzdEl0ZW0odGhpcy5uZXdzVGlja2VySXRlbXMudG9BcnJheSgpKTtcbiAgICAgICAgICAgIHRoaXMubW92ZVNsaWRlcyhpdGVtLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtSW5kZXggPT09IHRoaXMuaXRlbXNDb3VudCkge1xuICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmdldExhc3RJdGVtKHRoaXMubmV3c1RpY2tlckl0ZW1zLnRvQXJyYXkoKSk7XG4gICAgICAgICAgICB0aGlzLm1vdmVTbGlkZXMoaXRlbSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNpemVUaWNrZXIoKSB7XG4gICAgICAgIGxldCBoaWdoZXN0U2xpZGUgPSAwO1xuICAgICAgICB0aGlzLm5ld3NUaWNrZXJJdGVtcy5mb3JFYWNoKChzbGlkZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2xpZGVIZWlnaHQgPSBzbGlkZS5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgIGhpZ2hlc3RTbGlkZSA9IGhpZ2hlc3RTbGlkZSA8IHNsaWRlSGVpZ2h0ID8gc2xpZGVIZWlnaHQgOiBoaWdoZXN0U2xpZGU7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9jb250YWluZXJIZWlnaHQgPSBoaWdoZXN0U2xpZGUgKyAxMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5leHRJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtSW5kZXggPT09IHRoaXMuaXRlbXNDb3VudCA/IDEgOiArK3RoaXMuaXRlbUluZGV4O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q3VycmVudEl0ZW0oKTogRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxJdGVtc0FycmF5KClbdGhpcy5pdGVtSW5kZXhdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJldkluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1JbmRleCA9PT0gMSA/IHRoaXMuaXRlbXNDb3VudCA6IC0tdGhpcy5pdGVtSW5kZXg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdEl0ZW0oaXRlbXM6IEFycmF5PEVjbE5ld3NUaWNrZXJJdGVtQ29tcG9uZW50Pik6IEVjbE5ld3NUaWNrZXJJdGVtQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLmxlbmd0aCA+IDAgPyBpdGVtc1swXSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMYXN0SXRlbShpdGVtczogQXJyYXk8RWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQ+KTogRWNsTmV3c1RpY2tlckl0ZW1Db21wb25lbnQge1xuICAgICAgICByZXR1cm4gaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMYXN0Q29udGVudENoaWxkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5ld3NUaWNrZXJJdGVtcy5sZW5ndGggPiAwID8gdGhpcy5uZXdzVGlja2VySXRlbXMuZ2V0KHRoaXMuaXRlbXNDb3VudCAtIDEpLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdENvbnRlbnRDaGlsZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5uZXdzVGlja2VySXRlbXMubGVuZ3RoID4gMCA/IHRoaXMubmV3c1RpY2tlckl0ZW1zLmdldCgwKS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsSXRlbXNBcnJheSgpOiBFY2xOZXdzVGlja2VySXRlbUNvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi5bdGhpcy5maXJzdEhpZGRlbkl0ZW1dLCAuLi50aGlzLm5ld3NUaWNrZXJJdGVtcy50b0FycmF5KCksIC4uLlt0aGlzLmxhc3RIaWRkZW5JdGVtXV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDdXJyZW50U2xpZGUoY3VycmVudEl0ZW06IEVjbE5ld3NUaWNrZXJJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgIHRoaXMubmV3c1RpY2tlckl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICBpdGVtLmFyaWFIaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgaWYoaXRlbSA9PT0gY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmFyaWFIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9fY29udGFpbmVyXCJcbiAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImNvbnRhaW5lckhlaWdodFwiPlxuICAgIDxkaXYgY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX2NvbnRlbnRcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImNvbnRlbnRIZWlnaHRcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiZWNsLW5ld3MtdGlja2VyX19zbGlkZXNcIlxuICAgICAgICAgICAgW3N0eWxlLnRyYW5zaXRpb24tZHVyYXRpb24uc109XCJ0cmFuc2l0aW9uRHVyYXRpb25cIlxuICAgICAgICAgICAgW3N0eWxlLnRyYW5zZm9ybV09XCJzbGlkZXNUcmFuc2Zvcm1cIlxuICAgICAgICAgICAgI3NsaWRlc0NvbnRhaW5lciA+XG4gICAgICAgICAgICA8ZWNsLW5ld3MtdGlja2VyLWl0ZW0gI2ZpcnN0SGlkZGVuSXRlbT48L2VjbC1uZXdzLXRpY2tlci1pdGVtPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPGVjbC1uZXdzLXRpY2tlci1pdGVtICNsYXN0SGlkZGVuSXRlbT48L2VjbC1uZXdzLXRpY2tlci1pdGVtPlxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZWNsLWljb24gaWNvbj1cImluZm9ybWF0aW9uXCJcbiAgICBzaXplPVwibVwiXG4gICAgY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX2ljb25cIj48L2VjbC1pY29uPlxuPGRpdiBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9fY291bnRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZWNsLW5ld3MtdGlja2VyX19jb3VudGVyLS1jdXJyZW50XCI+IHt7IGl0ZW1JbmRleCB9fTwvc3Bhbj4gXG4gICAge3sgJ2VjbC5jb21tb24uT0YnIHwgdHJhbnNsYXRlIH19XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX2NvdW50ZXItLW1heFwiPnt7IGl0ZW1zQ291bnQgfX08L3NwYW4+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX2NvbnRyb2xzXCI+XG4gICAgPGJ1dHRvbiBlY2xCdXR0b25cbiAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICBjbGFzcz1cImVjbC1uZXdzLXRpY2tlcl9fcHJldlwiXG4gICAgICAgIChjbGljayk9XCJvblByZXZpb3VzKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+XG4gICAgICAgICAgICB7eyAnZWNsLm5ld3MtdGlja2VyLlBSRVYtTkVXUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUtMjcwXCI+PC9lY2wtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGVjbEJ1dHRvblxuICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgIGNsYXNzPVwiZWNsLW5ld3MtdGlja2VyX190b2dnbGVcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlUGxheSgpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLXUtc3Itb25seVwiPlxuICAgICAgICAgICAge3sgJ2VjbC5uZXdzLXRpY2tlci5BVVRPLVBMQVknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGVjbC1pY29uIFtpY29uXT1cInBsYXlpbmcgPyAncGF1c2UnIDogJ3BsYXknXCIgc2l6ZT1cIm1cIj48L2VjbC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gZWNsQnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgY2xhc3M9XCJlY2wtbmV3cy10aWNrZXJfX25leHRcIlxuICAgICAgICAoY2xpY2spPVwib25OZXh0KClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtdS1zci1vbmx5XCI+XG4gICAgICAgICAgICB7eyAnZWNsLm5ld3MtdGlja2VyLk5FWFQtTkVXUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIj5cbiAgICAgICAgPC9lY2wtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -56,7 +56,7 @@ export class EclPaginationItemComponent extends ECLBaseDirective {
56
56
  }
57
57
  }
58
58
  /** @nocollapse */ EclPaginationItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclPaginationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
59
- /** @nocollapse */ EclPaginationItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclPaginationItemComponent, selector: "ecl-pagination-item", inputs: { label: "label", ariaLabel: "ariaLabel", isCurrent: "isCurrent", isNext: "isNext", isPrevious: "isPrevious", href: "href" }, outputs: { pageClick: "pageClick" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n attr.aria-label=\"{{ ariaLabel || 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "directive", type: i4.EclLinkLabelDirective, selector: "[eclLinkLabel]" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
59
+ /** @nocollapse */ EclPaginationItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.4", type: EclPaginationItemComponent, selector: "ecl-pagination-item", inputs: { label: "label", ariaLabel: "ariaLabel", isCurrent: "isCurrent", isNext: "isNext", isPrevious: "isPrevious", href: "href" }, outputs: { pageClick: "pageClick" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "isInverted", "ariaHidden", "focusable"] }, { kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["variant", "isNegative", "isNoVisited"] }, { kind: "directive", type: i4.EclLinkLabelDirective, selector: "[eclLinkLabel]" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
60
60
  __decorate([
61
61
  coerceBoolean
62
62
  ], EclPaginationItemComponent.prototype, "isCurrent", void 0);
@@ -68,7 +68,7 @@ __decorate([
68
68
  ], EclPaginationItemComponent.prototype, "isPrevious", void 0);
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: EclPaginationItemComponent, decorators: [{
70
70
  type: Component,
71
- args: [{ selector: 'ecl-pagination-item', template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n attr.aria-label=\"{{ ariaLabel || 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n" }]
71
+ args: [{ selector: 'ecl-pagination-item', template: "<a *ngIf=\"!isCurrent\"\n eclLink\n (click)=\"onPageClick($event)\"\n variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate:{ pageNumber: label} }}\"\n [href]=\"href\"\n class=\"ecl-pagination__link\">\n <ng-container *ngIf=\"isPrevious\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n </ng-container>\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n <ng-container *ngIf=\"isNext\">\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n </ng-container>\n</a>\n\n<ng-container *ngIf=\"isCurrent\">\n <span class=\"ecl-pagination__text ecl-pagination__text--summary\"\n aria-current=\"true\">\n {{ label }}\n </span>\n <span class=\"ecl-pagination__text ecl-pagination__text--full\"\n aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate:{ pageNumber: label} }}\n </span>\n</ng-container>\n" }]
72
72
  }], propDecorators: { cssClasses: [{
73
73
  type: HostBinding,
74
74
  args: ['class']
@@ -87,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
87
87
  }], pageClick: [{
88
88
  type: Output
89
89
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFFekQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLFlBQVk7Q0FBSTtBQU1qRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZ0JBQWdCO0lBSmhFOztRQXFCYSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWpCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztLQWdDekU7SUFqREcsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQVdELFdBQVcsQ0FBQyxHQUFHO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLElBQUksR0FBRyxHQUFXLEVBQUUsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixHQUFHLEdBQUcsZ0NBQWdDLENBQUM7U0FDMUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEIsR0FBRyxHQUFHLGdDQUFnQyxDQUFDO1NBQzFDO2FBQU07WUFDSCxHQUFHLEdBQUcsMkJBQTJCLENBQUM7U0FDckM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLEdBQUcsR0FBVyxFQUFFLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsR0FBRyxHQUFHLHFCQUFxQixDQUFDO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3hCLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztTQUNuQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQzs7aUpBbERRLDBCQUEwQjtxSUFBMUIsMEJBQTBCLG1UQ1h2QywybUNBMkJBOztJREZLLGFBQWE7NkRBQW9DOztJQUNqRCxhQUFhOzBEQUFpQzs7SUFDOUMsYUFBYTs4REFBcUM7a0dBaEIxQywwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0kscUJBQXFCOzhCQU0zQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFVWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDa0IsU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDWixJQUFJO3NCQUFaLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsQmFzZUV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvZWNsLWJhc2UuZXZlbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNsYXNzIEVjbFBhZ2luYXRpb25JdGVtQ2xpY2tFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7IH1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtcGFnaW5hdGlvbi1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEVjbFBhZ2luYXRpb25JdGVtQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1wYWdpbmF0aW9uX19pdGVtJyksXG4gICAgICAgICAgICB0aGlzLmlzQ3VycmVudCA/ICdlY2wtcGFnaW5hdGlvbl9faXRlbS0tY3VycmVudCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNOZXh0ID8gJ2VjbC1wYWdpbmF0aW9uX19pdGVtLS1uZXh0JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1ByZXZpb3VzID8gJ2VjbC1wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91cycgOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgaXNDdXJyZW50OiBib29sZWFuIHwgYW55IDtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc05leHQ6IGJvb2xlYW4gfCBhbnkgO1xuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIGlzUHJldmlvdXM6IGJvb2xlYW4gfCBhbnkgO1xuICAgIEBJbnB1dCgpIGhyZWY6IHN0cmluZyA9ICcnO1xuXG4gICAgQE91dHB1dCgpIHBhZ2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsUGFnaW5hdGlvbkl0ZW1DbGlja0V2ZW50PigpO1xuXG4gICAgb25QYWdlQ2xpY2soZXZ0KSB7XG4gICAgICAgIHRoaXMucGFnZUNsaWNrLm5leHQobmV3IEVjbFBhZ2luYXRpb25JdGVtQ2xpY2tFdmVudCgpKTtcbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0aTE4blBhZ2VBcmlhTGFiZWxLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGtleTogc3RyaW5nID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZXh0KSB7XG4gICAgICAgICAgICBrZXkgPSAnZWNsLnBhZ2luYXRpb24uR08tVE8tTkVYVC1QQUdFJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJldmlvdXMpIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5HTy1UTy1QUkVWLVBBR0UnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAga2V5ID0gJ2VjbC5wYWdpbmF0aW9uLkdPLVRPLVBBR0UnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgZ2V0aTE4blBhZ2VMYWJlbEtleSgpOiBzdHJpbmcge1xuICAgICAgICBsZXQga2V5OiBzdHJpbmcgPSAnJztcblxuICAgICAgICBpZiAodGhpcy5pc05leHQpIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5ORVhUJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJldmlvdXMpIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5QUkVWSU9VUyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG59XG4iLCI8YSAqbmdJZj1cIiFpc0N1cnJlbnRcIlxuICAgIGVjbExpbmtcbiAgICAoY2xpY2spPVwib25QYWdlQ2xpY2soJGV2ZW50KVwiXG4gICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGFyaWFMYWJlbCB8fCBnZXRpMThuUGFnZUFyaWFMYWJlbEtleSgpIHwgdHJhbnNsYXRlOnsgcGFnZU51bWJlcjogbGFiZWx9IH19XCJcbiAgICBbaHJlZl09XCJocmVmXCJcbiAgICBjbGFzcz1cImVjbC1wYWdpbmF0aW9uX19saW5rXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJldmlvdXNcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwieHNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtMjcwXCI+PC9lY2wtaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiBlY2xMaW5rTGFiZWw+e3sgbGFiZWwgfHwgZ2V0aTE4blBhZ2VMYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc05leHRcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwieHNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIj48L2VjbC1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9hPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNDdXJyZW50XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtcGFnaW5hdGlvbl9fdGV4dCBlY2wtcGFnaW5hdGlvbl9fdGV4dC0tc3VtbWFyeVwiXG4gICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGFyaWFMYWJlbCB8fCAnZWNsLnBhZ2luYXRpb24uUEFHRScgfCB0cmFuc2xhdGU6eyBwYWdlTnVtYmVyOiBsYWJlbH0gfX1cIlxuICAgICAgICBhcmlhLWN1cnJlbnQ9XCJ0cnVlXCI+XG4gICAgICAgIHt7IGxhYmVsIH19XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZWNsLXBhZ2luYXRpb25fX3RleHQgZWNsLXBhZ2luYXRpb25fX3RleHQtLWZ1bGxcIlxuICAgICAgICBhcmlhLWN1cnJlbnQ9XCJ0cnVlXCI+XG4gICAgICAgIHt7ICdlY2wucGFnaW5hdGlvbi5QQUdFJyB8IHRyYW5zbGF0ZTp7IHBhZ2VOdW1iZXI6IGxhYmVsfSB9fVxuICAgIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLXBhZ2luYXRpb24vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFFekQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLFlBQVk7Q0FBSTtBQU1qRSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZ0JBQWdCO0lBSmhFOztRQXFCYSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWpCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBK0IsQ0FBQztLQWdDekU7SUFqREcsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQVdELFdBQVcsQ0FBQyxHQUFHO1FBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkIsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQsdUJBQXVCO1FBQ25CLElBQUksR0FBRyxHQUFXLEVBQUUsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixHQUFHLEdBQUcsZ0NBQWdDLENBQUM7U0FDMUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDeEIsR0FBRyxHQUFHLGdDQUFnQyxDQUFDO1NBQzFDO2FBQU07WUFDSCxHQUFHLEdBQUcsMkJBQTJCLENBQUM7U0FDckM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLEdBQUcsR0FBVyxFQUFFLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsR0FBRyxHQUFHLHFCQUFxQixDQUFDO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3hCLEdBQUcsR0FBRyx5QkFBeUIsQ0FBQztTQUNuQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQzs7aUpBbERRLDBCQUEwQjtxSUFBMUIsMEJBQTBCLG1UQ1h2QyxvZ0NBMEJBOztJRERLLGFBQWE7NkRBQW9DOztJQUNqRCxhQUFhOzBEQUFpQzs7SUFDOUMsYUFBYTs4REFBcUM7a0dBaEIxQywwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0kscUJBQXFCOzhCQU0zQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFVWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDa0IsU0FBUztzQkFBakIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDWixJQUFJO3NCQUFaLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWNsQmFzZUV2ZW50IH0gZnJvbSAnLi4vLi4vbW9kZWwvZWNsLWJhc2UuZXZlbnQnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNsYXNzIEVjbFBhZ2luYXRpb25JdGVtQ2xpY2tFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7IH1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtcGFnaW5hdGlvbi1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLXBhZ2luYXRpb24taXRlbS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEVjbFBhZ2luYXRpb25JdGVtQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1wYWdpbmF0aW9uX19pdGVtJyksXG4gICAgICAgICAgICB0aGlzLmlzQ3VycmVudCA/ICdlY2wtcGFnaW5hdGlvbl9faXRlbS0tY3VycmVudCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuaXNOZXh0ID8gJ2VjbC1wYWdpbmF0aW9uX19pdGVtLS1uZXh0JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1ByZXZpb3VzID8gJ2VjbC1wYWdpbmF0aW9uX19pdGVtLS1wcmV2aW91cycgOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG4gICAgQGNvZXJjZUJvb2xlYW4gQElucHV0KCkgaXNDdXJyZW50OiBib29sZWFuIHwgYW55IDtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc05leHQ6IGJvb2xlYW4gfCBhbnkgO1xuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIGlzUHJldmlvdXM6IGJvb2xlYW4gfCBhbnkgO1xuICAgIEBJbnB1dCgpIGhyZWY6IHN0cmluZyA9ICcnO1xuXG4gICAgQE91dHB1dCgpIHBhZ2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsUGFnaW5hdGlvbkl0ZW1DbGlja0V2ZW50PigpO1xuXG4gICAgb25QYWdlQ2xpY2soZXZ0KSB7XG4gICAgICAgIHRoaXMucGFnZUNsaWNrLm5leHQobmV3IEVjbFBhZ2luYXRpb25JdGVtQ2xpY2tFdmVudCgpKTtcbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0aTE4blBhZ2VBcmlhTGFiZWxLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGtleTogc3RyaW5nID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNOZXh0KSB7XG4gICAgICAgICAgICBrZXkgPSAnZWNsLnBhZ2luYXRpb24uR08tVE8tTkVYVC1QQUdFJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJldmlvdXMpIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5HTy1UTy1QUkVWLVBBR0UnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAga2V5ID0gJ2VjbC5wYWdpbmF0aW9uLkdPLVRPLVBBR0UnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgZ2V0aTE4blBhZ2VMYWJlbEtleSgpOiBzdHJpbmcge1xuICAgICAgICBsZXQga2V5OiBzdHJpbmcgPSAnJztcblxuICAgICAgICBpZiAodGhpcy5pc05leHQpIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5ORVhUJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzUHJldmlvdXMpIHtcbiAgICAgICAgICAgIGtleSA9ICdlY2wucGFnaW5hdGlvbi5QUkVWSU9VUyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG59XG4iLCI8YSAqbmdJZj1cIiFpc0N1cnJlbnRcIlxuICAgIGVjbExpbmtcbiAgICAoY2xpY2spPVwib25QYWdlQ2xpY2soJGV2ZW50KVwiXG4gICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGFyaWFMYWJlbCB8fCBnZXRpMThuUGFnZUFyaWFMYWJlbEtleSgpIHwgdHJhbnNsYXRlOnsgcGFnZU51bWJlcjogbGFiZWx9IH19XCJcbiAgICBbaHJlZl09XCJocmVmXCJcbiAgICBjbGFzcz1cImVjbC1wYWdpbmF0aW9uX19saW5rXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJldmlvdXNcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwieHNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtMjcwXCI+PC9lY2wtaWNvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8c3BhbiBlY2xMaW5rTGFiZWw+e3sgbGFiZWwgfHwgZ2V0aTE4blBhZ2VMYWJlbEtleSgpIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc05leHRcIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwieHNcIiB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIj48L2VjbC1pY29uPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9hPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNDdXJyZW50XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtcGFnaW5hdGlvbl9fdGV4dCBlY2wtcGFnaW5hdGlvbl9fdGV4dC0tc3VtbWFyeVwiXG4gICAgICAgIGFyaWEtY3VycmVudD1cInRydWVcIj5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtcGFnaW5hdGlvbl9fdGV4dCBlY2wtcGFnaW5hdGlvbl9fdGV4dC0tZnVsbFwiXG4gICAgICAgIGFyaWEtY3VycmVudD1cInRydWVcIj5cbiAgICAgICAge3sgJ2VjbC5wYWdpbmF0aW9uLlBBR0UnIHwgdHJhbnNsYXRlOnsgcGFnZU51bWJlcjogbGFiZWx9IH19XG4gICAgPC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -16,10 +16,10 @@ export class EclStickyContainerComponent extends ECLBaseDirective {
16
16
  !this.isEnabled ? 'ecl-sticky-container--disabled' : ''
17
17
  ].join(' ').trim();
18
18
  }
19
- top() {
19
+ get top() {
20
20
  return this.marginTop || null;
21
21
  }
22
- bottom() {
22
+ get bottom() {
23
23
  return this.marginBottom || null;
24
24
  }
25
25
  }
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
47
47
  type: HostBinding,
48
48
  args: ['style.bottom.px']
49
49
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXN0aWNreS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1zdGlja3ktY29udGFpbmVyL2VjbC1zdGlja3ktY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc3RpY2t5LWNvbnRhaW5lci9lY2wtc3RpY2t5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBb0J6RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZ0JBQWdCO0lBbEJqRTs7UUFtQjRCLGNBQVMsR0FBbUIsSUFBSSxDQUFDO1FBQ2hELGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsaUJBQVksR0FBVyxDQUFDLENBQUM7S0FtQnJDO0lBakJHLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDO1lBQzNDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUdELEdBQUc7UUFDQyxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFHRCxNQUFNO1FBQ0YsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDOztrSkFyQlEsMkJBQTJCO3NJQUEzQiwyQkFBMkIsaVNDMUJ4QywrQkFDQTs7SUQwQkssYUFBYTs4REFBMkM7a0dBRGhELDJCQUEyQjtrQkFsQnZDLFNBQVM7K0JBQ0ksc0JBQXNCOzhCQWtCUixTQUFTO3NCQUFqQixLQUFLO2dCQUNaLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFTcEIsR0FBRztzQkFERixXQUFXO3VCQUFDLGNBQWM7Z0JBTTNCLE1BQU07c0JBREwsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1zdGlja3ktY29udGFpbmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLXN0aWNreS1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW2BcbiAgICAgICA6aG9zdCB7XG4gICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyBcbiAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5O1xuICAgICAgIH1cblxuICAgICAgIDpob3N0LmVjbC1zdGlja3ktY29udGFpbmVyLS1kaXNhYmxlZCB7XG4gICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgfVxuICAgIGBdXG59KVxuZXhwb3J0IGNsYXNzIEVjbFN0aWNreUNvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuICAgIEBjb2VyY2VCb29sZWFuIEBJbnB1dCgpIGlzRW5hYmxlZDogYm9vbGVhbiB8IGFueSAgPSB0cnVlO1xuICAgIEBJbnB1dCgpIG1hcmdpblRvcDogbnVtYmVyID0gMDtcbiAgICBASW5wdXQoKSBtYXJnaW5Cb3R0b206IG51bWJlciA9IDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zdGlja3ktY29udGFpbmVyJyksXG4gICAgICAgICAgICAhdGhpcy5pc0VuYWJsZWQgPyAnZWNsLXN0aWNreS1jb250YWluZXItLWRpc2FibGVkJyA6ICcnXG4gICAgICAgIF0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRvcC5weCcpXG4gICAgdG9wKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcmdpblRvcCB8fCBudWxsO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuYm90dG9tLnB4JylcbiAgICBib3R0b20oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQm90dG9tIHx8IG51bGw7XG4gICAgfVxufVxuIiwiICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXN0aWNreS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1zdGlja3ktY29udGFpbmVyL2VjbC1zdGlja3ktY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc3RpY2t5LWNvbnRhaW5lci9lY2wtc3RpY2t5LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBb0J6RCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZ0JBQWdCO0lBbEJqRTs7UUFtQjRCLGNBQVMsR0FBbUIsSUFBSSxDQUFDO1FBQ2hELGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsaUJBQVksR0FBVyxDQUFDLENBQUM7S0FtQnJDO0lBakJHLElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDO1lBQzNDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDMUQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7SUFDckMsQ0FBQzs7a0pBckJRLDJCQUEyQjtzSUFBM0IsMkJBQTJCLGlTQzFCeEMsK0JBQ0E7O0lEMEJLLGFBQWE7OERBQTJDO2tHQURoRCwyQkFBMkI7a0JBbEJ2QyxTQUFTOytCQUNJLHNCQUFzQjs4QkFrQlIsU0FBUztzQkFBakIsS0FBSztnQkFDWixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0YsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBU2hCLEdBQUc7c0JBRE4sV0FBVzt1QkFBQyxjQUFjO2dCQU12QixNQUFNO3NCQURULFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtc3RpY2t5LWNvbnRhaW5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1zdGlja3ktY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgOmhvc3Qge1xuICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgXG4gICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcbiAgICAgICB9XG5cbiAgICAgICA6aG9zdC5lY2wtc3RpY2t5LWNvbnRhaW5lci0tZGlzYWJsZWQge1xuICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgIH1cbiAgICBgXVxufSlcbmV4cG9ydCBjbGFzcyBFY2xTdGlja3lDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcbiAgICBAY29lcmNlQm9vbGVhbiBASW5wdXQoKSBpc0VuYWJsZWQ6IGJvb2xlYW4gfCBhbnkgID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBtYXJnaW5Ub3A6IG51bWJlciA9IDA7XG4gICAgQElucHV0KCkgbWFyZ2luQm90dG9tOiBudW1iZXIgPSAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc3RpY2t5LWNvbnRhaW5lcicpLFxuICAgICAgICAgICAgIXRoaXMuaXNFbmFibGVkID8gJ2VjbC1zdGlja3ktY29udGFpbmVyLS1kaXNhYmxlZCcgOiAnJ1xuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS50b3AucHgnKVxuICAgIGdldCB0b3AoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFyZ2luVG9wIHx8IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20ucHgnKVxuICAgIGdldCBib3R0b20oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQm90dG9tIHx8IG51bGw7XG4gICAgfVxufVxuIiwiICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWxhbmd1YWdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbC9lY2wtbGFuZ3VhZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRWNsTGFuZ3VhZ2Uge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWxhbmd1YWdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbC9lY2wtbGFuZ3VhZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRWNsTGFuZ3VhZ2Uge1xuICAgIGNvZGU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGlzUnRsPzogYm9vbGVhbjtcbn1cbiJdfQ==