@eui/components 17.3.11-snapshot-1725355215808 → 17.3.11-snapshot-1727339703701

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 (31) hide show
  1. package/docs/components/EuiAlertComponent.html +1 -1
  2. package/docs/components/EuiPaginatorComponent.html +105 -1
  3. package/docs/dependencies.html +3 -3
  4. package/docs/js/menu-wc.js +161 -182
  5. package/docs/js/menu-wc_es5.js +1 -1
  6. package/docs/js/search/search_index.js +2 -2
  7. package/docs/miscellaneous/variables.html +12 -12
  8. package/docs/modules/EuiAlertModule.html +4 -28
  9. package/docs/modules/EuiAppSidebarModule.html +4 -28
  10. package/docs/modules/EuiAppToolbarModule.html +4 -28
  11. package/docs/modules/EuiAvatarModule.html +4 -28
  12. package/docs/modules/EuiChartsModule.html +4 -28
  13. package/docs/modules/EuiHeaderModule.html +4 -28
  14. package/docs/modules/EuiPageModule.html +4 -28
  15. package/docs/modules/EuiSidebarMenuModule.html +4 -28
  16. package/docs/modules/EuiSkeletonModule.html +4 -28
  17. package/docs/modules/EuiToolbarModule.html +4 -28
  18. package/docs/modules/EuiUserProfileModule.html +4 -28
  19. package/esm2022/eui-alert/eui-alert.component.mjs +3 -3
  20. package/esm2022/eui-icon/eui-icon-svg.component.mjs +3 -3
  21. package/esm2022/eui-icon/eui-icon.component.mjs +2 -2
  22. package/esm2022/eui-paginator/eui-paginator.component.mjs +12 -3
  23. package/eui-paginator/eui-paginator.component.d.ts +4 -1
  24. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  25. package/fesm2022/eui-components-eui-alert.mjs +2 -2
  26. package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
  27. package/fesm2022/eui-components-eui-icon.mjs +4 -4
  28. package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
  29. package/fesm2022/eui-components-eui-paginator.mjs +11 -2
  30. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  31. package/package.json +32 -32
@@ -24,6 +24,12 @@ export class EuiPaginatorComponent {
24
24
  set isHidden(value) {
25
25
  this._isHidden = coerceBooleanProperty(value);
26
26
  }
27
+ get hasPageSize() {
28
+ return this._hasPageSize;
29
+ }
30
+ set hasPageSize(value) {
31
+ this._hasPageSize = coerceBooleanProperty(value);
32
+ }
27
33
  get hasPageNumberNavigation() {
28
34
  return this._hasPageNumberNavigation;
29
35
  }
@@ -48,6 +54,7 @@ export class EuiPaginatorComponent {
48
54
  this.nbPageNumberNavigation = 5;
49
55
  this._isHidden = false;
50
56
  this._isBasicMode = false;
57
+ this._hasPageSize = true;
51
58
  this.pageChange = new EventEmitter();
52
59
  this.page$ = new BehaviorSubject(null);
53
60
  this.length$ = new BehaviorSubject(0);
@@ -186,11 +193,11 @@ export class EuiPaginatorComponent {
186
193
  });
187
194
  }
188
195
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuiPaginatorComponent, deps: [{ token: i1.EuiAppShellService }, { token: i2.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
189
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: EuiPaginatorComponent, selector: "eui-paginator", inputs: { e2eAttr: "e2eAttr", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", page: "page", length: "length", nbPageNumberNavigation: "nbPageNumberNavigation", isBasicMode: "isBasicMode", isHidden: "isHidden", hasPageNumberNavigation: "hasPageNumberNavigation", hasDynamicLength: "hasDynamicLength" }, outputs: { pageChange: "pageChange" }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.string" } }, providers: [DecimalPipe], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isHidden && !(EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page\">\n <div class=\"eui-paginator__page-selector\">\n <div>{{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:</div>\n <div class=\"eui-u-pl-xs eui-u-pb-2xs\">\n <select euiSelect class=\"page-size__select\" aria-label=\"Page size selected\" [(ngModel)]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\n <option *ngFor=\"let pageSizeOption of pageSizeOptions\" value=\"{{ pageSizeOption }}\">{{ pageSizeOption }}</option>\n </select>\n </div>\n </div>\n <div *ngIf=\"(length$ | async) > 0\" class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n</div>\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n\n <ng-container *ngIf=\"isBasicMode; else normalMode\">\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n\n </ng-container>\n\n <ng-template #normalMode>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\"></eui-icon-svg>\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [".eui-paginator{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-base-spacing-s) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-selector .page-size__select{font-size:100%;min-height:var(--eui-base-spacing-xl);padding-bottom:0;padding-top:0}.eui-paginator__page-range{align-items:center;display:inline-flex;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.EuiSelectComponent, selector: "select[euiSelect]", inputs: ["placeholder", "readonly", "isInvalid"] }, { kind: "directive", type: i6.EuiNgSelectOptionDirective, selector: "option:not([eclSelectOption]):not([eclMultiselectOption]), option[euiOption]", inputs: ["selected", "label", "ngValue"] }, { kind: "directive", type: i6.EuiSelectControlValueAccessor, selector: "select:not([multiple])[formControlName][euiSelect],select:not([multiple])[formControl][euiSelect],select:not([multiple])[ngModel][euiSelect]", inputs: ["placeholder"] }, { kind: "directive", type: i6.EuiSelectMultipleOption, selector: "option, option[euiOption]", inputs: ["ngValue", "value"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
196
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuiPaginatorComponent, selector: "eui-paginator", inputs: { e2eAttr: "e2eAttr", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", page: "page", length: "length", nbPageNumberNavigation: "nbPageNumberNavigation", isBasicMode: "isBasicMode", isHidden: "isHidden", hasPageSize: "hasPageSize", hasPageNumberNavigation: "hasPageNumberNavigation", hasDynamicLength: "hasDynamicLength" }, outputs: { pageChange: "pageChange" }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.string" } }, providers: [DecimalPipe], usesOnChanges: true, ngImport: i0, template: "@if (!isHidden && !(EuiAppShellService.breakpoints$ | async).isMobile) {\n <div class=\"eui-paginator__page\">\n @if (!isBasicMode || hasPageSize) {\n <div class=\"eui-paginator__page-selector\">\n <div>{{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:</div>\n <div class=\"eui-u-pl-xs eui-u-pb-2xs\">\n <select euiSelect class=\"page-size__select\" aria-label=\"Page size selected\" [(ngModel)]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\n <option *ngFor=\"let pageSizeOption of pageSizeOptions\" value=\"{{ pageSizeOption }}\">{{ pageSizeOption }}</option>\n </select>\n </div>\n </div>\n @if ((length$ | async) > 0) {\n <div class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n }\n }\n </div>\n}\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n\n <ng-container *ngIf=\"isBasicMode; else normalMode\">\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n\n </ng-container>\n\n <ng-template #normalMode>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\"></eui-icon-svg>\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [".eui-paginator{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-base-spacing-s) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-selector .page-size__select{font-size:100%;min-height:var(--eui-base-spacing-xl);padding-bottom:0;padding-top:0}.eui-paginator__page-range{align-items:center;display:inline-flex;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.EuiSelectComponent, selector: "select[euiSelect]", inputs: ["placeholder", "readonly", "isInvalid"] }, { kind: "directive", type: i6.EuiNgSelectOptionDirective, selector: "option:not([eclSelectOption]):not([eclMultiselectOption]), option[euiOption]", inputs: ["selected", "label", "ngValue"] }, { kind: "directive", type: i6.EuiSelectControlValueAccessor, selector: "select:not([multiple])[formControlName][euiSelect],select:not([multiple])[formControl][euiSelect],select:not([multiple])[ngModel][euiSelect]", inputs: ["placeholder"] }, { kind: "directive", type: i6.EuiSelectMultipleOption, selector: "option, option[euiOption]", inputs: ["ngValue", "value"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
190
197
  }
191
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuiPaginatorComponent, decorators: [{
192
199
  type: Component,
193
- args: [{ selector: 'eui-paginator', encapsulation: ViewEncapsulation.None, providers: [DecimalPipe], template: "<div *ngIf=\"!isHidden && !(EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page\">\n <div class=\"eui-paginator__page-selector\">\n <div>{{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:</div>\n <div class=\"eui-u-pl-xs eui-u-pb-2xs\">\n <select euiSelect class=\"page-size__select\" aria-label=\"Page size selected\" [(ngModel)]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\n <option *ngFor=\"let pageSizeOption of pageSizeOptions\" value=\"{{ pageSizeOption }}\">{{ pageSizeOption }}</option>\n </select>\n </div>\n </div>\n <div *ngIf=\"(length$ | async) > 0\" class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n</div>\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n\n <ng-container *ngIf=\"isBasicMode; else normalMode\">\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n\n </ng-container>\n\n <ng-template #normalMode>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\"></eui-icon-svg>\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [".eui-paginator{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-base-spacing-s) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-selector .page-size__select{font-size:100%;min-height:var(--eui-base-spacing-xl);padding-bottom:0;padding-top:0}.eui-paginator__page-range{align-items:center;display:inline-flex;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"] }]
200
+ args: [{ selector: 'eui-paginator', encapsulation: ViewEncapsulation.None, providers: [DecimalPipe], template: "@if (!isHidden && !(EuiAppShellService.breakpoints$ | async).isMobile) {\n <div class=\"eui-paginator__page\">\n @if (!isBasicMode || hasPageSize) {\n <div class=\"eui-paginator__page-selector\">\n <div>{{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:</div>\n <div class=\"eui-u-pl-xs eui-u-pb-2xs\">\n <select euiSelect class=\"page-size__select\" aria-label=\"Page size selected\" [(ngModel)]=\"pageSize\" (ngModelChange)=\"changePageSize($event)\">\n <option *ngFor=\"let pageSizeOption of pageSizeOptions\" value=\"{{ pageSizeOption }}\">{{ pageSizeOption }}</option>\n </select>\n </div>\n </div>\n @if ((length$ | async) > 0) {\n <div class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n }\n }\n </div>\n}\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n\n <ng-container *ngIf=\"isBasicMode; else normalMode\">\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n\n </ng-container>\n\n <ng-template #normalMode>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page === 0 || length === 0\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n euiPrimary\n [euiDisabled]=\"page + 1 === nbPage || length === 0\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\"></eui-icon-svg>\n </button>\n </div>\n </ng-template>\n</div>\n", styles: [".eui-paginator{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-base-spacing-s) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-selector .page-size__select{font-size:100%;min-height:var(--eui-base-spacing-xl);padding-bottom:0;padding-top:0}.eui-paginator__page-range{align-items:center;display:inline-flex;font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"] }]
194
201
  }], ctorParameters: () => [{ type: i1.EuiAppShellService }, { type: i2.DecimalPipe }], propDecorators: { e2eAttr: [{
195
202
  type: HostBinding,
196
203
  args: ['attr.data-e2e']
@@ -213,6 +220,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
213
220
  type: Input
214
221
  }], isHidden: [{
215
222
  type: Input
223
+ }], hasPageSize: [{
224
+ type: Input
216
225
  }], pageChange: [{
217
226
  type: Output
218
227
  }], hasPageNumberNavigation: [{
@@ -220,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
220
229
  }], hasDynamicLength: [{
221
230
  type: Input
222
231
  }] } });
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktcGFnaW5hdG9yL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBhZ2luYXRvci9ldWktcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUVMLFlBQVksRUFDWixNQUFNLEVBR04sV0FBVyxFQUNYLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBUzlDLE1BQU0sT0FBTyxxQkFBcUI7SUFROUIsSUFDSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFtQjtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQVlELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFD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Q0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sVUFBVTtRQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLEVB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SztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUYsV0FBVztzQkFEZCxLQUFLO2dCQVNGLFFBQVE7c0JBRFgsS0FBSztnQkFVSSxVQUFVO3NCQUFuQixNQUFNO2dCQVNILHVCQUF1QjtzQkFEMUIsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPdXRwdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcblxuaW1wb3J0IHsgRXVpUGFnaW5hdGlvbkV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbi1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBhZ2luYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKSBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1wYWdpbmF0b3InO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXBhZ2luYXRvcic7XG4gICAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDUwLCAxMDBdO1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XG4gICAgQElucHV0KCkgcGFnZSA9IDA7XG4gICAgQElucHV0KCkgbGVuZ3RoID0gMDtcbiAgICBASW5wdXQoKSBuYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uID0gNTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0Jhc2ljTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQmFzaWNNb2RlO1xuICAgIH1cbiAgICBzZXQgaXNCYXNpY01vZGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0Jhc2ljTW9kZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hpZGRlbjtcbiAgICB9XG4gICAgc2V0IGlzSGlkZGVuKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNIaWRkZW4gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBfaXNIaWRkZW4gPSBmYWxzZTtcbiAgICBfaXNCYXNpY01vZGUgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFdWlQYWdpbmF0aW9uRXZlbnQ+KCk7XG5cbiAgICBwdWJsaWMgcGFnZSQ6IEJlaGF2aW9yU3ViamVjdDxFdWlQYWdpbmF0aW9uRXZlbnQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgICBwdWJsaWMgbGVuZ3RoJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApO1xuICAgIHB1YmxpYyByYW5nZTogc3RyaW5nO1xuICAgIHB1YmxpYyByYW5nZUxlbmd0aDogc3RyaW5nO1xuICAgIHB1YmxpYyBuYlBhZ2U6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzUGFnZU51bWJlck5hdmlnYXRpb247XG4gICAgfVxuICAgIHNldCBoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzUGFnZU51bWJlck5hdmlnYXRpb24gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNEeW5hbWljTGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzRHluYW1pY0xlbmd0aDtcbiAgICB9XG4gICAgc2V0IGhhc0R5bmFtaWNMZW5ndGgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oYXNEeW5hbWljTGVuZ3RoID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzRHluYW1pY0xlbmd0aCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBuYlBhZ2VOdW1iZXJOYXY6IG51bWJlcjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgRXVpQXBwU2hlbGxTZXJ2aWNlOiBFdWlBcHBTaGVsbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGVjaW1hbDogRGVjaW1hbFBpcGUsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYyAmJiBjLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5sZW5ndGgkLm5leHQoYy5sZW5ndGguY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYyAmJiBjLnBhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IGMucGFnZS5jdXJyZW50VmFsdWUsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjICYmIGMucGFnZVNpemUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IGMucGFnZVNpemUuY3VycmVudFZhbHVlLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQYWdlU2l6ZShjLnBhZ2VTaXplLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCQubmV4dCh0aGlzLmxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlTnVtYmVyTmF2aWdhdGlvbjtcblxuICAgICAgICB0aGlzLmxlbmd0aCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgobGVuZ3RoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMubmJQYWdlID0gTWF0aC5jZWlsKHRoaXMubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaGFzRHluYW1pY0xlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm5iUGFnZSA8IHRoaXMubmJQYWdlTnVtYmVyTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHBhZ2VOdW1iZXJOYXZpZ2F0aW9uKCk6IG51bWJlcltdIHtcbiAgICAgICAgY29uc3QgcGFnZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm5iUGFnZTsgaSsrKSB7XG4gICAgICAgICAgICBwYWdlcy5wdXNoKGkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVsdGEgPSBNYXRoLmZsb29yKHRoaXMubmJQYWdlTnVtYmVyTmF2IC8gMik7XG4gICAgICAgIGxldCBzdGFydCA9IDA7XG4gICAgICAgIGlmICh0aGlzLnBhZ2UgLSBkZWx0YSA+IDApIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5wYWdlIC0gZGVsdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uYlBhZ2UgLSB0aGlzLnBhZ2UgPD0gdGhpcy5uYlBhZ2VOdW1iZXJOYXYgLSAoZGVsdGEgKyAxKSkge1xuICAgICAgICAgICAgc3RhcnQgPSB0aGlzLm5iUGFnZSAtIHRoaXMubmJQYWdlTnVtYmVyTmF2O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXJ0IDwgMCkge1xuICAgICAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLm5iUGFnZU51bWJlck5hdjtcbiAgICAgICAgcmV0dXJuIHBhZ2VzLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2VQYWdlU2l6ZShzaXplOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhcnNlSW50KHNpemUsIDEwKTtcbiAgICAgICAgdGhpcy5uYlBhZ2UgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLm5iUGFnZSA8IHRoaXMubmJQYWdlTnVtYmVyTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvRmlyc3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29QcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZS0tO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29OZXh0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlKys7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb0xhc3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSB0aGlzLm5iUGFnZSAtIDE7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYWdlKHBhZ2U6IEV1aVBhZ2luYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQocGFnZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldExlbmd0aChsZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmxlbmd0aCQubmV4dChsZW5ndGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZnJvbSA9IHRoaXMubGVuZ3RoID4gMCA/IHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyAxIDogMDtcbiAgICAgICAgY29uc3QgbGltaXQgPSB0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZTtcbiAgICAgICAgY29uc3QgdG8gPSBsaW1pdCA8PSB0aGlzLmxlbmd0aCA/IGxpbWl0IDogdGhpcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucmFuZ2UgPSBmcm9tICYmIHRvICYmIHRoaXMubGVuZ3RoID8gdGhpcy5kZWNpbWFsLnRyYW5zZm9ybShmcm9tKSArICfigJMnICsgdGhpcy5kZWNpbWFsLnRyYW5zZm9ybSh0bykgOiAnJztcbiAgICAgICAgdGhpcy5yYW5nZUxlbmd0aCA9IHRoaXMubGVuZ3RoID8gdGhpcy5sZW5ndGgudG9TdHJpbmcoKSA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSB0aGUgcGFnaW5hdGlvbiB0byB0aGUgZ2l2ZW4gcGFnZSBudW1iZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdlIDAtYmFzZWQgcGFnZSBudW1iZXIgdG8gYmUgZGlzcGxheWVkXG4gICAgICovXG4gICAgcHVibGljIGdldFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZShwYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFpc0hpZGRlbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2Pnt7ICdldWkuZXVpdGFibGUuSVRFTVMtUEVSLVBBR0UnIHwgdHJhbnNsYXRlIH19OjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtcGwteHMgZXVpLXUtcGItMnhzXCI+XG4gICAgICAgICAgICA8c2VsZWN0IGV1aVNlbGVjdCBjbGFzcz1cInBhZ2Utc2l6ZV9fc2VsZWN0XCIgYXJpYS1sYWJlbD1cIlBhZ2Ugc2l6ZSBzZWxlY3RlZFwiIFsobmdNb2RlbCldPVwicGFnZVNpemVcIiAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VQYWdlU2l6ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZVNpemVPcHRpb24gb2YgcGFnZVNpemVPcHRpb25zXCIgdmFsdWU9XCJ7eyBwYWdlU2l6ZU9wdGlvbiB9fVwiPnt7IHBhZ2VTaXplT3B0aW9uIH19PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIihsZW5ndGgkIHwgYXN5bmMpID4gMFwiIGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1yYW5nZVwiPlxuICAgICAgICB7eyAnZXVpLmV1aXRhYmxlLlNIT1dJTkctUkFOR0UnIHwgdHJhbnNsYXRlOiB7IHJhbmdlOiByYW5nZSB9IH19IHt7ICdldWkuZXVpdGFibGUuUkFOR0UtTEFCRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIHt7IHJhbmdlTGVuZ3RoIHwgbnVtYmVyIH19XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFpc0hpZGRlblwiIGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1uYXZpZ2F0aW9uXCI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCYXNpY01vZGU7IGVsc2Ugbm9ybWFsTW9kZVwiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIlxuICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cInBhZ2UgPT09IDAgfHwgbGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29QcmV2aW91c1BhZ2UoKVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gdG8gYmUgY29tcGxpYW50IHdpdGggRFMgYXMgcGxheS1iYWNrIGlzIG5vdCBleGlzdGluZyBpbiBpb25pY29ucyAtLT5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtbGVmdFwiIGFyaWEtbGFiZWw9XCJHbyB0byBwcmV2aW91cyBwYWdlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwicGFnZSArIDEgPT09IG5iUGFnZSB8fCBsZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb05leHRQYWdlKClcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtcmlnaHRcIiBhcmlhLWxhYmVsPVwiR28gdG8gbmV4dCBwYWdlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsTW9kZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwicGFnZSA9PT0gMCB8fCBsZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb0ZpcnN0UGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNhcmV0LWZpcnN0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIGZpcnN0IHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwicGFnZSA9PT0gMCB8fCBsZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1ByZXZpb3VzUGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgPCEtLSB0byBiZSBjb21wbGlhbnQgd2l0aCBEUyBhcyBwbGF5LWJhY2sgaXMgbm90IGV4aXN0aW5nIGluIGlvbmljb25zIC0tPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sZWZ0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIHByZXZpb3VzIHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24tbnVtYmVyc1wiXG4gICAgICAgICAgICAqbmdJZj1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGV1aVNpemVTXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2VOdW1iZXIgb2YgcGFnZU51bWJlck5hdmlnYXRpb25cIlxuICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgW2V1aU91dGxpbmVdPVwicGFnZU51bWJlciA9PT0gcGFnZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHBhZ2VOdW1iZXIpXCI+XG4gICAgICAgICAgICAgICAge3sgcGFnZU51bWJlciArIDEgfCBudW1iZXIgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIihsZW5ndGgkIHwgYXN5bmMpID4gMCAmJiAoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiIGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1yYW5nZVwiPlxuICAgICAgICAgICAge3sgcmFuZ2UgfX0ge3sgJ2V1aS5ldWl0YWJsZS5SQU5HRS1MQUJFTCcgfCB0cmFuc2xhdGUgfX0ge3sgcmFuZ2VMZW5ndGggfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIlxuICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cInBhZ2UgKyAxID09PSBuYlBhZ2UgfHwgbGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0UGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNhcmV0LXJpZ2h0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIG5leHQgcGFnZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZXVpU2l6ZVNdPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCJcbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTGFzdFBhZ2UoKVwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sYXN0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIGxhc3QgcGFnZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktcGFnaW5hdG9yL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBhZ2luYXRvci9ldWktcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUVMLFlBQVksRUFDWixNQUFNLEVBR04sV0FBVyxFQUNYLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBUzlDLE1BQU0sT0FBTyxxQkFBcUI7SUFROUIsSUFDSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFtQjtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBbUI7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QyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLElBQUks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Q0FBQztpSEFHZSxPQUFPO3NCQUE3QyxXQUFXO3VCQUFDLGVBQWU7O3NCQUFHLEtBQUs7Z0JBQ2QsTUFBTTtzQkFBM0IsV0FBVzt1QkFBQyxPQUFPO2dCQUNYLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFFRixXQUFXO3NCQURkLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVNGLFdBQVc7c0JBRGQsS0FBSztnQkFZSSxVQUFVO3NCQUFuQixNQUFNO2dCQVNILHVCQUF1QjtzQkFEMUIsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPdXRwdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcblxuaW1wb3J0IHsgRXVpUGFnaW5hdGlvbkV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbi1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBhZ2luYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKSBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1wYWdpbmF0b3InO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXBhZ2luYXRvcic7XG4gICAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDUwLCAxMDBdO1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XG4gICAgQElucHV0KCkgcGFnZSA9IDA7XG4gICAgQElucHV0KCkgbGVuZ3RoID0gMDtcbiAgICBASW5wdXQoKSBuYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uID0gNTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0Jhc2ljTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQmFzaWNNb2RlO1xuICAgIH1cbiAgICBzZXQgaXNCYXNpY01vZGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0Jhc2ljTW9kZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNIaWRkZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0hpZGRlbjtcbiAgICB9XG4gICAgc2V0IGlzSGlkZGVuKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNIaWRkZW4gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc1BhZ2VTaXplKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzUGFnZVNpemU7XG4gICAgfVxuICAgIHNldCBoYXNQYWdlU2l6ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc1BhZ2VTaXplID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBfaXNIaWRkZW4gPSBmYWxzZTtcbiAgICBfaXNCYXNpY01vZGUgPSBmYWxzZTtcbiAgICBfaGFzUGFnZVNpemUgPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV1aVBhZ2luYXRpb25FdmVudD4oKTtcblxuICAgIHB1YmxpYyBwYWdlJDogQmVoYXZpb3JTdWJqZWN0PEV1aVBhZ2luYXRpb25FdmVudD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICAgIHB1YmxpYyBsZW5ndGgkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gICAgcHVibGljIHJhbmdlOiBzdHJpbmc7XG4gICAgcHVibGljIHJhbmdlTGVuZ3RoOiBzdHJpbmc7XG4gICAgcHVibGljIG5iUGFnZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzUGFnZU51bWJlck5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzUGFnZU51bWJlck5hdmlnYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc0R5bmFtaWNMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEeW5hbWljTGVuZ3RoO1xuICAgIH1cbiAgICBzZXQgaGFzRHluYW1pY0xlbmd0aCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc0R5bmFtaWNMZW5ndGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNEeW5hbWljTGVuZ3RoID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG5iUGFnZU51bWJlck5hdjogbnVtYmVyO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBFdWlBcHBTaGVsbFNlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZWNpbWFsOiBEZWNpbWFsUGlwZSxcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjICYmIGMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCQubmV4dChjLmxlbmd0aC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjICYmIGMucGFnZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogYy5wYWdlLmN1cnJlbnRWYWx1ZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgJiYgYy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogYy5wYWdlU2l6ZS5jdXJyZW50VmFsdWUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2VTaXplKGMucGFnZVNpemUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KHRoaXMubGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuXG4gICAgICAgIHRoaXMubGVuZ3RoJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChsZW5ndGgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2UgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5oYXNEeW5hbWljTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubmJQYWdlIDwgdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBnZXQgcGFnZU51bWJlck5hdmlnYXRpb24oKTogbnVtYmVyW10ge1xuICAgICAgICBjb25zdCBwYWdlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubmJQYWdlOyBpKyspIHtcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goaSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWx0YSA9IE1hdGguZmxvb3IodGhpcy5uYlBhZ2VOdW1iZXJOYXYgLyAyKTtcbiAgICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgICAgaWYgKHRoaXMucGFnZSAtIGRlbHRhID4gMCkge1xuICAgICAgICAgICAgc3RhcnQgPSB0aGlzLnBhZ2UgLSBkZWx0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5iUGFnZSAtIHRoaXMucGFnZSA8PSB0aGlzLm5iUGFnZU51bWJlck5hdiAtIChkZWx0YSArIDEpKSB7XG4gICAgICAgICAgICBzdGFydCA9IHRoaXMubmJQYWdlIC0gdGhpcy5uYlBhZ2VOdW1iZXJOYXY7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMubmJQYWdlTnVtYmVyTmF2O1xuICAgICAgICByZXR1cm4gcGFnZXMuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVBhZ2VTaXplKHNpemU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2VTaXplID0gcGFyc2VJbnQoc2l6ZSwgMTApO1xuICAgICAgICB0aGlzLm5iUGFnZSA9IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmJQYWdlIDwgdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9QYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29GaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSA9IDA7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1ByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlLS07XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb05leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UrKztcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvTGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSA9IHRoaXMubmJQYWdlIC0gMTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhZ2UocGFnZTogRXVpUGFnaW5hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChwYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KGxlbmd0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJhbmdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmcm9tID0gdGhpcy5sZW5ndGggPiAwID8gdGhpcy5wYWdlICogdGhpcy5wYWdlU2l6ZSArIDEgOiAwO1xuICAgICAgICBjb25zdCBsaW1pdCA9IHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyB0aGlzLnBhZ2VTaXplO1xuICAgICAgICBjb25zdCB0byA9IGxpbWl0IDw9IHRoaXMubGVuZ3RoID8gbGltaXQgOiB0aGlzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5yYW5nZSA9IGZyb20gJiYgdG8gJiYgdGhpcy5sZW5ndGggPyB0aGlzLmRlY2ltYWwudHJhbnNmb3JtKGZyb20pICsgJ+KAkycgKyB0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHRvKSA6ICcnO1xuICAgICAgICB0aGlzLnJhbmdlTGVuZ3RoID0gdGhpcy5sZW5ndGggPyB0aGlzLmxlbmd0aC50b1N0cmluZygpIDogJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBwYWdpbmF0aW9uIHRvIHRoZSBnaXZlbiBwYWdlIG51bWJlclxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2UgMC1iYXNlZCBwYWdlIG51bWJlciB0byBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdvVG9QYWdlKHBhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJAaWYgKCFpc0hpZGRlbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZVwiPlxuICAgICAgICBAaWYgKCFpc0Jhc2ljTW9kZSB8fCBoYXNQYWdlU2l6ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2Utc2VsZWN0b3JcIj5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7ICdldWkuZXVpdGFibGUuSVRFTVMtUEVSLVBBR0UnIHwgdHJhbnNsYXRlIH19OjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdS1wbC14cyBldWktdS1wYi0yeHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBldWlTZWxlY3QgY2xhc3M9XCJwYWdlLXNpemVfX3NlbGVjdFwiIGFyaWEtbGFiZWw9XCJQYWdlIHNpemUgc2VsZWN0ZWRcIiBbKG5nTW9kZWwpXT1cInBhZ2VTaXplXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlUGFnZVNpemUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZVNpemVPcHRpb24gb2YgcGFnZVNpemVPcHRpb25zXCIgdmFsdWU9XCJ7eyBwYWdlU2l6ZU9wdGlvbiB9fVwiPnt7IHBhZ2VTaXplT3B0aW9uIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKChsZW5ndGgkIHwgYXN5bmMpID4gMCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLXJhbmdlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdldWkuZXVpdGFibGUuU0hPV0lORy1SQU5HRScgfCB0cmFuc2xhdGU6IHsgcmFuZ2U6IHJhbmdlIH0gfX0ge3sgJ2V1aS5ldWl0YWJsZS5SQU5HRS1MQUJFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAge3sgcmFuZ2VMZW5ndGggfCBudW1iZXIgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuXG48ZGl2ICpuZ0lmPVwiIWlzSGlkZGVuXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb25cIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Jhc2ljTW9kZTsgZWxzZSBub3JtYWxNb2RlXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwicGFnZSA9PT0gMCB8fCBsZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1ByZXZpb3VzUGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgPCEtLSB0byBiZSBjb21wbGlhbnQgd2l0aCBEUyBhcyBwbGF5LWJhY2sgaXMgbm90IGV4aXN0aW5nIGluIGlvbmljb25zIC0tPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sZWZ0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIHByZXZpb3VzIHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZXVpU2l6ZVNdPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCJcbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dFBhZ2UoKVwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1yaWdodFwiIGFyaWEtbGFiZWw9XCJHbyB0byBuZXh0IHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNub3JtYWxNb2RlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZXVpU2l6ZVNdPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCJcbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJwYWdlID09PSAwIHx8IGxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvRmlyc3RQYWdlKClcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtZmlyc3RcIiBhcmlhLWxhYmVsPVwiR28gdG8gZmlyc3QgcGFnZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZXVpU2l6ZVNdPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCJcbiAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJwYWdlID09PSAwIHx8IGxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvUHJldmlvdXNQYWdlKClcIj5cbiAgICAgICAgICAgICAgICA8IS0tIHRvIGJlIGNvbXBsaWFudCB3aXRoIERTIGFzIHBsYXktYmFjayBpcyBub3QgZXhpc3RpbmcgaW4gaW9uaWNvbnMgLS0+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNhcmV0LWxlZnRcIiBhcmlhLWxhYmVsPVwiR28gdG8gcHJldmlvdXMgcGFnZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1udW1iZXJzXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZU51bWJlciBvZiBwYWdlTnVtYmVyTmF2aWdhdGlvblwiXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBbZXVpT3V0bGluZV09XCJwYWdlTnVtYmVyID09PSBwYWdlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UocGFnZU51bWJlcilcIj5cbiAgICAgICAgICAgICAgICB7eyBwYWdlTnVtYmVyICsgMSB8IG51bWJlciB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiKGxlbmd0aCQgfCBhc3luYykgPiAwICYmIChFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLXJhbmdlXCI+XG4gICAgICAgICAgICB7eyByYW5nZSB9fSB7eyAnZXVpLmV1aXRhYmxlLlJBTkdFLUxBQkVMJyB8IHRyYW5zbGF0ZSB9fSB7eyByYW5nZUxlbmd0aCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwicGFnZSArIDEgPT09IG5iUGFnZSB8fCBsZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnb05leHRQYWdlKClcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtcmlnaHRcIiBhcmlhLWxhYmVsPVwiR28gdG8gbmV4dCBwYWdlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIlxuICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cInBhZ2UgKyAxID09PSBuYlBhZ2UgfHwgbGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29MYXN0UGFnZSgpXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNhcmV0LWxhc3RcIiBhcmlhLWxhYmVsPVwiR28gdG8gbGFzdCBwYWdlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -19,8 +19,11 @@ export declare class EuiPaginatorComponent implements OnInit, OnDestroy, OnChang
19
19
  set isBasicMode(value: BooleanInput);
20
20
  get isHidden(): boolean;
21
21
  set isHidden(value: BooleanInput);
22
+ get hasPageSize(): boolean;
23
+ set hasPageSize(value: BooleanInput);
22
24
  _isHidden: boolean;
23
25
  _isBasicMode: boolean;
26
+ _hasPageSize: boolean;
24
27
  pageChange: EventEmitter<EuiPaginationEvent>;
25
28
  page$: BehaviorSubject<EuiPaginationEvent>;
26
29
  length$: BehaviorSubject<number>;
@@ -56,6 +59,6 @@ export declare class EuiPaginatorComponent implements OnInit, OnDestroy, OnChang
56
59
  */
57
60
  getPage(page: number): void;
58
61
  static ɵfac: i0.ɵɵFactoryDeclaration<EuiPaginatorComponent, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<EuiPaginatorComponent, "eui-paginator", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "page": { "alias": "page"; "required": false; }; "length": { "alias": "length"; "required": false; }; "nbPageNumberNavigation": { "alias": "nbPageNumberNavigation"; "required": false; }; "isBasicMode": { "alias": "isBasicMode"; "required": false; }; "isHidden": { "alias": "isHidden"; "required": false; }; "hasPageNumberNavigation": { "alias": "hasPageNumberNavigation"; "required": false; }; "hasDynamicLength": { "alias": "hasDynamicLength"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, false, never>;
62
+ static ɵcmp: i0.ɵɵComponentDeclaration<EuiPaginatorComponent, "eui-paginator", never, { "e2eAttr": { "alias": "e2eAttr"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "page": { "alias": "page"; "required": false; }; "length": { "alias": "length"; "required": false; }; "nbPageNumberNavigation": { "alias": "nbPageNumberNavigation"; "required": false; }; "isBasicMode": { "alias": "isBasicMode"; "required": false; }; "isHidden": { "alias": "isHidden"; "required": false; }; "hasPageSize": { "alias": "hasPageSize"; "required": false; }; "hasPageNumberNavigation": { "alias": "hasPageNumberNavigation"; "required": false; }; "hasDynamicLength": { "alias": "hasDynamicLength"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, false, never>;
60
63
  }
61
64
  //# sourceMappingURL=eui-paginator.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eui-paginator.component.d.ts","sourceRoot":"","sources":["../../eui-paginator/eui-paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,MAAM,EAEN,SAAS,EACT,YAAY,EAEZ,SAAS,EACT,aAAa,EAGhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAyB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAE9C,qBAOa,qBAAsB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAuD3D,kBAAkB,EAAE,kBAAkB;IAC7C,OAAO,CAAC,OAAO;IAvDoB,OAAO,SAAmB;IAC3C,MAAM,SAAmB;IACtC,eAAe,EAAE,MAAM,EAAE,CAAwB;IACjD,QAAQ,SAAM;IACd,IAAI,SAAK;IACT,MAAM,SAAK;IACX,sBAAsB,SAAK;IACpC,IACI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,EAElC;IAED,IACI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,EAE/B;IACD,SAAS,UAAS;IAClB,YAAY,UAAS;IAEX,UAAU,mCAA0C;IAEvD,KAAK,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAA6B;IACvE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAA0B;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAEtB,IACI,uBAAuB,IAAI,OAAO,CAErC;IACD,IAAI,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAE9C;IACD,OAAO,CAAC,wBAAwB,CAAS;IACzC,IACI,gBAAgB,IAAI,OAAO,CAE9B;IACD,IAAI,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAEvC;IACD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAA4C;gBAGjD,kBAAkB,EAAE,kBAAkB,EACrC,OAAO,EAAE,WAAW;IAGhC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAgBnC,QAAQ,IAAI,IAAI;IA0BhB,WAAW,IAAI,IAAI;IAKnB,IAAI,oBAAoB,IAAI,MAAM,EAAE,CAwBnC;IAEM,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBlC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5B,WAAW,IAAI,IAAI;IAOnB,cAAc,IAAI,IAAI;IAOtB,UAAU,IAAI,IAAI;IAOlB,UAAU,IAAI,IAAI;IAOlB,OAAO,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAIvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,IAAI,IAAI;IAQvB;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;yCA5MzB,qBAAqB;2CAArB,qBAAqB;CAiNjC"}
1
+ {"version":3,"file":"eui-paginator.component.d.ts","sourceRoot":"","sources":["../../eui-paginator/eui-paginator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,MAAM,EAEN,SAAS,EACT,YAAY,EAEZ,SAAS,EACT,aAAa,EAGhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAW,eAAe,EAAE,MAAM,MAAM,CAAC;AAEhD,OAAO,EAAyB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAE9C,qBAOa,qBAAsB,YAAW,MAAM,EAAE,SAAS,EAAE,SAAS;IAiE3D,kBAAkB,EAAE,kBAAkB;IAC7C,OAAO,CAAC,OAAO;IAjEoB,OAAO,SAAmB;IAC3C,MAAM,SAAmB;IACtC,eAAe,EAAE,MAAM,EAAE,CAAwB;IACjD,QAAQ,SAAM;IACd,IAAI,SAAK;IACT,MAAM,SAAK;IACX,sBAAsB,SAAK;IACpC,IACI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,EAElC;IAED,IACI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,EAE/B;IAED,IACI,WAAW,IAAI,OAAO,CAEzB;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,EAElC;IAED,SAAS,UAAS;IAClB,YAAY,UAAS;IACrB,YAAY,UAAQ;IAEV,UAAU,mCAA0C;IAEvD,KAAK,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAA6B;IACvE,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,CAA0B;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IAEtB,IACI,uBAAuB,IAAI,OAAO,CAErC;IACD,IAAI,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAE9C;IACD,OAAO,CAAC,wBAAwB,CAAS;IACzC,IACI,gBAAgB,IAAI,OAAO,CAE9B;IACD,IAAI,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAEvC;IACD,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAA4C;gBAGjD,kBAAkB,EAAE,kBAAkB,EACrC,OAAO,EAAE,WAAW;IAGhC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAgBnC,QAAQ,IAAI,IAAI;IA0BhB,WAAW,IAAI,IAAI;IAKnB,IAAI,oBAAoB,IAAI,MAAM,EAAE,CAwBnC;IAEM,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAgBlC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5B,WAAW,IAAI,IAAI;IAOnB,cAAc,IAAI,IAAI;IAOtB,UAAU,IAAI,IAAI;IAOlB,UAAU,IAAI,IAAI;IAOlB,OAAO,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAIvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,IAAI,IAAI;IAQvB;;;;OAIG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;yCAtNzB,qBAAqB;2CAArB,qBAAqB;CA2NjC"}
@@ -95,7 +95,7 @@ class EuiAlertComponent {
95
95
  this.closeAlert.emit();
96
96
  }
97
97
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuiAlertComponent, deps: [{ token: i1.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
98
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: { ariaDescribedBy: "ariaDescribedBy", e2eAttr: "e2eAttr", isMuted: ["isMuted", "isMuted", booleanAttribute], isCloseable: ["isCloseable", "isCloseable", booleanAttribute], isFocusable: ["isFocusable", "isFocusable", booleanAttribute] }, outputs: { closeAlert: "closeAlert" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.aria-describedby": "this.ariaDescribedBy", "attr.tabindex": "this.tabindex", "attr.data-e2e": "this.e2eAttr" } }, queries: [{ propertyName: "alertTitle", first: true, predicate: i0.forwardRef(() => EuiAlertTitleDirective), descendants: true }], hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiVariant", "euiVariant"] }], ngImport: i0, template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert button\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-alert{--_border-color: var(--eui-alert-border-color, var(--eui-base-color-info-100));--_color: var(--eui-alert-color, var(--eui-base-color-info-130));--_bg-color: var(--eui-alert-type-container-bg-color, var(--eui-base-color-info-10))}.eui-alert{display:flex;background-color:var(--_bg-color);background-position:var(--eui-base-spacing-s);background-repeat:no-repeat;position:relative;border-left:var(--eui-base-spacing-2xs) solid var(--_border-color);border-radius:var(--eui-base-border-radius);flex-basis:auto;flex-shrink:1;overflow:auto;padding:var(--eui-base-spacing-m);width:100%}.eui-alert::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-alert::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-alert::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-alert::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-alert__type-container{align-items:center;display:flex;margin-right:var(--eui-base-spacing-s);height:var(--eui-base-spacing-l)}.eui-alert__content{display:flex;flex-direction:column;width:100%}.eui-alert__content-header{align-items:center;display:flex;flex:1 1 100%;justify-content:space-between;width:100%}.eui-alert__content-header--with-title{min-height:var(--eui-base-spacing-l)}.eui-alert__title{color:var(--_color);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-alert__close{align-self:flex-start;display:flex;margin-left:auto}.eui-alert__close:hover{text-decoration:underline}.eui-alert--info{--_border-color: var(--eui-base-color-info-100);--_bg-color: var(--eui-base-color-info-10);--_color: var(--eui-base-color-info-130)}.eui-alert--success{--_border-color: var(--eui-base-color-success-100);--_bg-color: var(--eui-base-color-success-10);--_color: var(--eui-base-color-success-130)}.eui-alert--danger{--_border-color: var(--eui-base-color-danger-100);--_bg-color: var(--eui-base-color-danger-10);--_color: var(--eui-base-color-danger-130)}.eui-alert--warning{--_border-color: var(--eui-base-color-warning-100);--_bg-color: var(--eui-base-color-warning-10);--_color: var(--eui-base-color-warning-140)}.eui-alert--hidden{display:none}.eui-alert--focusable:active:not([readonly]),.eui-alert--focusable:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-alert--focusable [tabindex=\"0\"]:active:not([readonly]),.eui-alert--focusable [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i4.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
98
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: EuiAlertComponent, selector: "div[euiAlert], eui-alert", inputs: { ariaDescribedBy: "ariaDescribedBy", e2eAttr: "e2eAttr", isMuted: ["isMuted", "isMuted", booleanAttribute], isCloseable: ["isCloseable", "isCloseable", booleanAttribute], isFocusable: ["isFocusable", "isFocusable", booleanAttribute] }, outputs: { closeAlert: "closeAlert" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.aria-describedby": "this.ariaDescribedBy", "attr.tabindex": "this.tabindex", "attr.data-e2e": "this.e2eAttr" } }, queries: [{ propertyName: "alertTitle", first: true, predicate: i0.forwardRef(() => EuiAlertTitleDirective), descendants: true }], hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiVariant", "euiVariant"] }], ngImport: i0, template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI success icon\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI warning icon\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI danger icon\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI info icon\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-alert{--_border-color: var(--eui-alert-border-color, var(--eui-base-color-info-100));--_color: var(--eui-alert-color, var(--eui-base-color-info-130));--_bg-color: var(--eui-alert-type-container-bg-color, var(--eui-base-color-info-10))}.eui-alert{display:flex;background-color:var(--_bg-color);background-position:var(--eui-base-spacing-s);background-repeat:no-repeat;position:relative;border-left:var(--eui-base-spacing-2xs) solid var(--_border-color);border-radius:var(--eui-base-border-radius);flex-basis:auto;flex-shrink:1;overflow:auto;padding:var(--eui-base-spacing-m);width:100%}.eui-alert::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-alert::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-alert::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-alert::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-alert__type-container{align-items:center;display:flex;margin-right:var(--eui-base-spacing-s);height:var(--eui-base-spacing-l)}.eui-alert__content{display:flex;flex-direction:column;width:100%}.eui-alert__content-header{align-items:center;display:flex;flex:1 1 100%;justify-content:space-between;width:100%}.eui-alert__content-header--with-title{min-height:var(--eui-base-spacing-l)}.eui-alert__title{color:var(--_color);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-alert__close{align-self:flex-start;display:flex;margin-left:auto}.eui-alert__close:hover{text-decoration:underline}.eui-alert--info{--_border-color: var(--eui-base-color-info-100);--_bg-color: var(--eui-base-color-info-10);--_color: var(--eui-base-color-info-130)}.eui-alert--success{--_border-color: var(--eui-base-color-success-100);--_bg-color: var(--eui-base-color-success-10);--_color: var(--eui-base-color-success-130)}.eui-alert--danger{--_border-color: var(--eui-base-color-danger-100);--_bg-color: var(--eui-base-color-danger-10);--_color: var(--eui-base-color-danger-130)}.eui-alert--warning{--_border-color: var(--eui-base-color-warning-100);--_bg-color: var(--eui-base-color-warning-10);--_color: var(--eui-base-color-warning-140)}.eui-alert--hidden{display:none}.eui-alert--focusable:active:not([readonly]),.eui-alert--focusable:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-alert--focusable [tabindex=\"0\"]:active:not([readonly]),.eui-alert--focusable [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i4.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
99
  }
100
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: EuiAlertComponent, decorators: [{
101
101
  type: Component,
@@ -111,7 +111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
111
111
  'euiVariant',
112
112
  ],
113
113
  },
114
- ], template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert button\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-alert{--_border-color: var(--eui-alert-border-color, var(--eui-base-color-info-100));--_color: var(--eui-alert-color, var(--eui-base-color-info-130));--_bg-color: var(--eui-alert-type-container-bg-color, var(--eui-base-color-info-10))}.eui-alert{display:flex;background-color:var(--_bg-color);background-position:var(--eui-base-spacing-s);background-repeat:no-repeat;position:relative;border-left:var(--eui-base-spacing-2xs) solid var(--_border-color);border-radius:var(--eui-base-border-radius);flex-basis:auto;flex-shrink:1;overflow:auto;padding:var(--eui-base-spacing-m);width:100%}.eui-alert::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-alert::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-alert::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-alert::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-alert__type-container{align-items:center;display:flex;margin-right:var(--eui-base-spacing-s);height:var(--eui-base-spacing-l)}.eui-alert__content{display:flex;flex-direction:column;width:100%}.eui-alert__content-header{align-items:center;display:flex;flex:1 1 100%;justify-content:space-between;width:100%}.eui-alert__content-header--with-title{min-height:var(--eui-base-spacing-l)}.eui-alert__title{color:var(--_color);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-alert__close{align-self:flex-start;display:flex;margin-left:auto}.eui-alert__close:hover{text-decoration:underline}.eui-alert--info{--_border-color: var(--eui-base-color-info-100);--_bg-color: var(--eui-base-color-info-10);--_color: var(--eui-base-color-info-130)}.eui-alert--success{--_border-color: var(--eui-base-color-success-100);--_bg-color: var(--eui-base-color-success-10);--_color: var(--eui-base-color-success-130)}.eui-alert--danger{--_border-color: var(--eui-base-color-danger-100);--_bg-color: var(--eui-base-color-danger-10);--_color: var(--eui-base-color-danger-130)}.eui-alert--warning{--_border-color: var(--eui-base-color-warning-100);--_bg-color: var(--eui-base-color-warning-10);--_color: var(--eui-base-color-warning-140)}.eui-alert--hidden{display:none}.eui-alert--focusable:active:not([readonly]),.eui-alert--focusable:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-alert--focusable [tabindex=\"0\"]:active:not([readonly]),.eui-alert--focusable [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}\n"] }]
114
+ ], template: "@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI success icon\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI warning icon\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI danger icon\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI info icon\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".eui-alert{--_border-color: var(--eui-alert-border-color, var(--eui-base-color-info-100));--_color: var(--eui-alert-color, var(--eui-base-color-info-130));--_bg-color: var(--eui-alert-type-container-bg-color, var(--eui-base-color-info-10))}.eui-alert{display:flex;background-color:var(--_bg-color);background-position:var(--eui-base-spacing-s);background-repeat:no-repeat;position:relative;border-left:var(--eui-base-spacing-2xs) solid var(--_border-color);border-radius:var(--eui-base-border-radius);flex-basis:auto;flex-shrink:1;overflow:auto;padding:var(--eui-base-spacing-m);width:100%}.eui-alert::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-base-color-grey-5)}.eui-alert::-webkit-scrollbar-thumb{background-color:var(--eui-base-color-grey-20);border-radius:5rem}.eui-alert::-webkit-scrollbar-thumb:hover{background-color:var(--eui-base-color-grey-50)}.eui-alert::-webkit-scrollbar-track{background-color:var(--eui-base-color-grey-5);border-radius:0}.eui-alert__type-container{align-items:center;display:flex;margin-right:var(--eui-base-spacing-s);height:var(--eui-base-spacing-l)}.eui-alert__content{display:flex;flex-direction:column;width:100%}.eui-alert__content-header{align-items:center;display:flex;flex:1 1 100%;justify-content:space-between;width:100%}.eui-alert__content-header--with-title{min-height:var(--eui-base-spacing-l)}.eui-alert__title{color:var(--_color);font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-alert__close{align-self:flex-start;display:flex;margin-left:auto}.eui-alert__close:hover{text-decoration:underline}.eui-alert--info{--_border-color: var(--eui-base-color-info-100);--_bg-color: var(--eui-base-color-info-10);--_color: var(--eui-base-color-info-130)}.eui-alert--success{--_border-color: var(--eui-base-color-success-100);--_bg-color: var(--eui-base-color-success-10);--_color: var(--eui-base-color-success-130)}.eui-alert--danger{--_border-color: var(--eui-base-color-danger-100);--_bg-color: var(--eui-base-color-danger-10);--_color: var(--eui-base-color-danger-130)}.eui-alert--warning{--_border-color: var(--eui-base-color-warning-100);--_bg-color: var(--eui-base-color-warning-10);--_color: var(--eui-base-color-warning-140)}.eui-alert--hidden{display:none}.eui-alert--focusable:active:not([readonly]),.eui-alert--focusable:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-alert--focusable [tabindex=\"0\"]:active:not([readonly]),.eui-alert--focusable [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}\n"] }]
115
115
  }], ctorParameters: () => [{ type: i1.BaseStatesDirective }], propDecorators: { cssClasses: [{
116
116
  type: HostBinding,
117
117
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-alert.mjs","sources":["../../eui-alert/eui-alert.component.ts","../../eui-alert/eui-alert.component.html","../../eui-alert/eui-alert.module.ts","../../eui-alert/eui-components-eui-alert.ts"],"sourcesContent":["// -------\n// IMPORTS\n// -------\n\n// Angular\nimport {\n Component,\n HostBinding,\n EventEmitter,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Output,\n OnInit,\n Directive,\n ContentChild,\n forwardRef,\n QueryList,\n booleanAttribute,\n} from '@angular/core';\n\n// 3rd party\nimport * as uuid from 'uuid';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\n\n// Sub content directives for projection - keep the component files tight\n\n/* eslint-disable */\n@Directive({ selector: 'eui-alert-title' })\nexport class EuiAlertTitleDirective {\n // host binding class assignment for the content directive, avoiding extra DOM templates wrapper\n @HostBinding('class') class = 'eui-alert__title';\n}\n/* eslint-enable */\n\n// --------------\n// MAIN COMPONENT\n// --------------\n@Component({\n templateUrl: './eui-alert.component.html', // respect component name convention\n selector: 'div[euiAlert], eui-alert', // if needed multi selectors\n styleUrl: './styles/_index.scss', // respect styles/_index.scss only import\n changeDetection: ChangeDetectionStrategy.OnPush, // OnPush by default for all\n encapsulation: ViewEncapsulation.None, // encapsulation.None by default for all\n\n // use of baseStatesDirective : defined here what the component needs as base props => reflected in styles / states.scss\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n // important to add the variant per type : euiVariant for colors / euiSizeVariant for sizes\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiAlertComponent implements OnInit {\n // class binding ALWAYS first (for binding against the baseStateDiretive)\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n // Always refer to the baseStatesDirective\n this.baseStatesDirective.getCssClasses('eui-alert'),\n\n // own cmp state => reflected with the scss states\n this.isMuted ? 'eui-alert--muted' : '',\n this.isFocusable ? 'eui-alert--focusable' : '',\n !this.isVisible ? 'eui-alert--hidden' : '',\n ]\n .join(' ')\n .trim();\n }\n\n // a11y bindings, ideally always on the host side / never in the sub wrapper within the HTML,\n // cleaner and also attacking the host DOM element rather than its children\n @HostBinding('attr.role') role = 'alert';\n @HostBinding('attr.aria-describedby')\n @Input()\n get ariaDescribedBy(): string {\n return `alertContent-${this.uniqueId}`;\n }\n @HostBinding('attr.tabindex')\n get tabindex(): string {\n return this.isFocusable ? '0' : '-1';\n }\n\n // for e2e unique attr to be defined / pass as input\n @HostBinding('attr.data-e2e')\n @Input()\n e2eAttr = 'eui-alert';\n\n // component own states\n // conventions if boolean : is / has prefix\n // new v17 usage of transform / act like coerce and included in Angular natively now\n @Input({ transform: booleanAttribute }) isMuted = false;\n @Input({ transform: booleanAttribute }) isCloseable = false;\n @Input({ transform: booleanAttribute }) isFocusable = false;\n\n // Output event definition\n // convention : verb(present)Component\n @Output() closeAlert = new EventEmitter<null>();\n\n // contentChild def / viewChild defs if needed\n @ContentChild(forwardRef(() => EuiAlertTitleDirective), { static: false }) alertTitle: QueryList<EuiAlertTitleDirective>;\n\n // public variables used in the template\n isVisible = true;\n alertIconType: string;\n alertIconFillColor: string;\n\n private uniqueId: string;\n\n // CONSTRUCTOR\n // -----------\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n // HOOKS\n // -----\n ngOnInit(): void {\n if (!this.baseStatesDirective.euiVariant) {\n this.baseStatesDirective.euiInfo = true;\n }\n this.uniqueId = uuid.v4();\n }\n\n // PUBLIC FUNCTIONS FROM TEMPLATE\n // ------------------------------\n onCloseClick(): void {\n this.isVisible = false;\n this.closeAlert.emit();\n }\n\n // PRIVATES\n // --------\n\n}\n","@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert button\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","// Angular\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// 3rd party\nimport { TranslateModule } from '@ngx-translate/core';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiButtonModule } from '@eui/components/eui-button';\n\n// component internals\nimport { EuiAlertComponent, EuiAlertTitleDirective } from './eui-alert.component';\n\nconst COMPONENTS = [\n EuiAlertComponent,\n EuiAlertTitleDirective,\n];\n\n// component main module\n@NgModule({\n imports: [\n // Angular and 3rd party\n CommonModule, TranslateModule,\n // eUI internals\n BaseStatesDirective,\n EuiIconModule, EuiLabelModule, EuiButtonModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\n// Always same naming convention for all : Eui[CMP_NAME]Module\nexport class EuiAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-alert.mjs","sources":["../../eui-alert/eui-alert.component.ts","../../eui-alert/eui-alert.component.html","../../eui-alert/eui-alert.module.ts","../../eui-alert/eui-components-eui-alert.ts"],"sourcesContent":["// -------\n// IMPORTS\n// -------\n\n// Angular\nimport {\n Component,\n HostBinding,\n EventEmitter,\n Input,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Output,\n OnInit,\n Directive,\n ContentChild,\n forwardRef,\n QueryList,\n booleanAttribute,\n} from '@angular/core';\n\n// 3rd party\nimport * as uuid from 'uuid';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\n\n// Sub content directives for projection - keep the component files tight\n\n/* eslint-disable */\n@Directive({ selector: 'eui-alert-title' })\nexport class EuiAlertTitleDirective {\n // host binding class assignment for the content directive, avoiding extra DOM templates wrapper\n @HostBinding('class') class = 'eui-alert__title';\n}\n/* eslint-enable */\n\n// --------------\n// MAIN COMPONENT\n// --------------\n@Component({\n templateUrl: './eui-alert.component.html', // respect component name convention\n selector: 'div[euiAlert], eui-alert', // if needed multi selectors\n styleUrl: './styles/_index.scss', // respect styles/_index.scss only import\n changeDetection: ChangeDetectionStrategy.OnPush, // OnPush by default for all\n encapsulation: ViewEncapsulation.None, // encapsulation.None by default for all\n\n // use of baseStatesDirective : defined here what the component needs as base props => reflected in styles / states.scss\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n // important to add the variant per type : euiVariant for colors / euiSizeVariant for sizes\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiAlertComponent implements OnInit {\n // class binding ALWAYS first (for binding against the baseStateDiretive)\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n // Always refer to the baseStatesDirective\n this.baseStatesDirective.getCssClasses('eui-alert'),\n\n // own cmp state => reflected with the scss states\n this.isMuted ? 'eui-alert--muted' : '',\n this.isFocusable ? 'eui-alert--focusable' : '',\n !this.isVisible ? 'eui-alert--hidden' : '',\n ]\n .join(' ')\n .trim();\n }\n\n // a11y bindings, ideally always on the host side / never in the sub wrapper within the HTML,\n // cleaner and also attacking the host DOM element rather than its children\n @HostBinding('attr.role') role = 'alert';\n @HostBinding('attr.aria-describedby')\n @Input()\n get ariaDescribedBy(): string {\n return `alertContent-${this.uniqueId}`;\n }\n @HostBinding('attr.tabindex')\n get tabindex(): string {\n return this.isFocusable ? '0' : '-1';\n }\n\n // for e2e unique attr to be defined / pass as input\n @HostBinding('attr.data-e2e')\n @Input()\n e2eAttr = 'eui-alert';\n\n // component own states\n // conventions if boolean : is / has prefix\n // new v17 usage of transform / act like coerce and included in Angular natively now\n @Input({ transform: booleanAttribute }) isMuted = false;\n @Input({ transform: booleanAttribute }) isCloseable = false;\n @Input({ transform: booleanAttribute }) isFocusable = false;\n\n // Output event definition\n // convention : verb(present)Component\n @Output() closeAlert = new EventEmitter<null>();\n\n // contentChild def / viewChild defs if needed\n @ContentChild(forwardRef(() => EuiAlertTitleDirective), { static: false }) alertTitle: QueryList<EuiAlertTitleDirective>;\n\n // public variables used in the template\n isVisible = true;\n alertIconType: string;\n alertIconFillColor: string;\n\n private uniqueId: string;\n\n // CONSTRUCTOR\n // -----------\n constructor(public baseStatesDirective: BaseStatesDirective) {}\n\n // HOOKS\n // -----\n ngOnInit(): void {\n if (!this.baseStatesDirective.euiVariant) {\n this.baseStatesDirective.euiInfo = true;\n }\n this.uniqueId = uuid.v4();\n }\n\n // PUBLIC FUNCTIONS FROM TEMPLATE\n // ------------------------------\n onCloseClick(): void {\n this.isVisible = false;\n this.closeAlert.emit();\n }\n\n // PRIVATES\n // --------\n\n}\n","@if (!isMuted) {\n <div class=\"eui-alert__type-container\">\n @if (baseStatesDirective.euiSuccess) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI success icon\" icon=\"eui-ecl-check-filled\" fillColor=\"success-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiWarning) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI warning icon\" icon=\"eui-ecl-warning\" fillColor=\"warning-100\"></eui-icon-svg>\n }\n @else if (baseStatesDirective.euiDanger) {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI danger icon\" icon=\"eui-ecl-error\" fillColor=\"danger-100\"></eui-icon-svg>\n }\n @else {\n <eui-icon-svg class=\"eui-alert__icon-type\" aria-label=\"eUI info icon\" icon=\"eui-ecl-information\" fillColor=\"info-100\"></eui-icon-svg>\n }\n </div>\n}\n\n<div id=\"{{ ariaDescribedBy }}\" class=\"eui-alert__content\">\n @if (alertTitle) {\n <ng-template *ngTemplateOutlet=\"contentWithTitle\"></ng-template>\n } @else {\n <ng-template *ngTemplateOutlet=\"contentNoTitle\"></ng-template>\n }\n</div>\n\n<ng-template #contentWithTitle>\n <div class=\"eui-alert__content-header eui-alert__content-header--with-title\">\n <ng-content select=\"eui-alert-title\"></ng-content>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n</ng-template>\n\n<ng-template #contentNoTitle>\n <div class=\"eui-alert__content-header\">\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n <ng-template *ngTemplateOutlet=\"closeButton\"></ng-template>\n </div>\n</ng-template>\n\n<ng-template #closeButton>\n <div class=\"eui-alert__close\">\n <button *ngIf=\"isCloseable\"\n euiButton\n euiBasicButton\n euiPrimary\n euiSizeS\n aria-label=\"Close alert\"\n class=\"eui-u-ml-s\"\n (click)=\"onCloseClick()\">\n <span euiLabel class=\"eui-u-display-hidden-mobile\">{{ 'eui.CLOSE' | translate }}</span>\n <eui-icon-svg icon=\"eui-ecl-close\" class=\"eui-u-ml-xs\"></eui-icon-svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #content>\n <div [class.eui-u-mt-xs]=\"alertTitle\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","// Angular\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// 3rd party\nimport { TranslateModule } from '@ngx-translate/core';\n\n// eUI internals\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiButtonModule } from '@eui/components/eui-button';\n\n// component internals\nimport { EuiAlertComponent, EuiAlertTitleDirective } from './eui-alert.component';\n\nconst COMPONENTS = [\n EuiAlertComponent,\n EuiAlertTitleDirective,\n];\n\n// component main module\n@NgModule({\n imports: [\n // Angular and 3rd party\n CommonModule, TranslateModule,\n // eUI internals\n BaseStatesDirective,\n EuiIconModule, EuiLabelModule, EuiButtonModule,\n ],\n declarations: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\n// Always same naming convention for all : Eui[CMP_NAME]Module\nexport class EuiAlertModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}