@eui/components 17.0.0-next.19 → 17.0.0-next.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/docs/components/EuiAvatarComponent.html +48 -0
  2. package/docs/components/EuiDashboardCardComponent.html +173 -426
  3. package/docs/components/EuiPaginatorComponent.html +1 -1
  4. package/docs/dependencies.html +2 -2
  5. package/docs/js/menu-wc.js +3 -3
  6. package/docs/js/menu-wc_es5.js +1 -1
  7. package/docs/js/search/search_index.js +2 -2
  8. package/docs/modules/EuiDashboardCardModule.html +16 -0
  9. package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +3 -3
  10. package/esm2022/eui-avatar/eui-avatar.component.mjs +17 -3
  11. package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +2 -2
  12. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +96 -82
  13. package/esm2022/eui-label/eui-label.component.mjs +2 -2
  14. package/esm2022/eui-paginator/eui-paginator.component.mjs +3 -3
  15. package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +1 -1
  16. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +1 -1
  17. package/eui-avatar/eui-avatar.component.d.ts +3 -1
  18. package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
  19. package/eui-dashboard-card/eui-dashboard-card.component.d.ts +25 -34
  20. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  21. package/fesm2022/eui-components-directives.mjs +2 -2
  22. package/fesm2022/eui-components-directives.mjs.map +1 -1
  23. package/fesm2022/eui-components-eui-avatar.mjs +16 -2
  24. package/fesm2022/eui-components-eui-avatar.mjs.map +1 -1
  25. package/fesm2022/eui-components-eui-dashboard-button.mjs +2 -2
  26. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  27. package/fesm2022/eui-components-eui-dashboard-card.mjs +95 -81
  28. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  29. package/fesm2022/eui-components-eui-label.mjs +2 -2
  30. package/fesm2022/eui-components-eui-label.mjs.map +1 -1
  31. package/fesm2022/eui-components-eui-paginator.mjs +2 -2
  32. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  33. package/fesm2022/eui-components-layout.mjs +2 -2
  34. package/fesm2022/eui-components-layout.mjs.map +1 -1
  35. package/package.json +7 -7
@@ -1,127 +1,141 @@
1
- import { Component, EventEmitter, Output, Input, NgModule } from '@angular/core';
1
+ import { __decorate } from "tslib";
2
+ import { Component, NgModule, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Input, HostListener, Output, EventEmitter, } from '@angular/core';
2
3
  import { CommonModule } from '@angular/common';
3
4
  import { RouterModule } from '@angular/router';
4
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
+ import { BaseStatesDirective } from '@eui/components/shared';
6
+ import { EuiAvatarModule } from '@eui/components/eui-avatar';
7
+ import { coerceBoolean } from '@eui/base';
8
+ import { EuiLabelModule } from '@eui/components/eui-label';
9
+ import { EuiIconModule } from '@eui/components/eui-icon';
5
10
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/router";
11
+ import * as i1 from "@eui/components/shared";
7
12
  import * as i2 from "@angular/common";
13
+ import * as i3 from "@angular/router";
14
+ import * as i4 from "@eui/components/eui-avatar";
15
+ import * as i5 from "@eui/components/eui-label";
16
+ import * as i6 from "@eui/components/eui-icon";
8
17
  export class EuiDashboardCardComponent {
9
- get isIconCompact() {
10
- return this._isIconCompact;
18
+ get cssClasses() {
19
+ return this.getCssClasses();
11
20
  }
12
- set isIconCompact(value) {
13
- this._isIconCompact = coerceBooleanProperty(value);
14
- }
15
- get isClickable() {
16
- return this._isClickable;
17
- }
18
- set isClickable(value) {
19
- this._isClickable = coerceBooleanProperty(value);
20
- }
21
- get isHorizontalLayout() {
22
- return this._isHorizontalLayout;
23
- }
24
- set isHorizontalLayout(value) {
25
- this._isHorizontalLayout = coerceBooleanProperty(value);
26
- }
27
- constructor(router) {
28
- this.router = router;
29
- this.imageWidth = '64';
30
- this.imageHeight = '64';
31
- this.urlExternalTarget = '_blank';
32
- this.buttonStyleClass = 'eui-button--info';
21
+ constructor(baseStatesDirective) {
22
+ this.baseStatesDirective = baseStatesDirective;
23
+ // @HostBinding('attr.tabindex') tabIndex = '0';
33
24
  this.e2eAttr = 'eui-dashboard-card';
25
+ this.iconSvgSize = 'm';
26
+ this.urlExternalTarget = '_blank';
27
+ this.isHorizontal = false;
28
+ this.isDisabled = false;
29
+ this.isFlatAvatar = false;
30
+ this.hasNoBackgroundAvatar = false;
34
31
  this.cardClick = new EventEmitter();
35
- this._isIconCompact = true;
36
- this._isClickable = false;
37
- this._isHorizontalLayout = false;
38
- }
39
- get stateTypeClass() {
40
- let classes = '';
41
- if (this.typeClass) {
42
- classes = 'eui-dashboard-card--' + this.typeClass;
43
- }
44
- return classes;
45
- }
46
- onKeyDown(keyCode) {
47
- if (this.isClickable && keyCode === 13) {
48
- this.openLink();
49
- }
50
32
  }
51
33
  onClick(event) {
52
- if (this.isClickable) {
53
- this.openLink();
54
- this.cardClick.emit(event);
55
- }
34
+ this.cardClick.emit(event);
56
35
  }
57
- openLink() {
58
- if (this.url) {
59
- this.router.navigate([this.url]);
36
+ ngOnInit() {
37
+ if (!this.baseStatesDirective.euiSizeVariant) {
38
+ this.baseStatesDirective.euiSizeXL = true;
60
39
  }
61
- if (this.urlExternal) {
62
- window.open(this.urlExternal, this.urlExternalTarget);
40
+ if (!this.baseStatesDirective.euiVariant) {
41
+ this.baseStatesDirective.euiSecondary = true;
63
42
  }
64
43
  }
65
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
66
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: EuiDashboardCardComponent, selector: "eui-dashboard-card", inputs: { styleClass: "styleClass", typeClass: "typeClass", iconClass: "iconClass", iconTypeClass: "iconTypeClass", imageUrl: "imageUrl", imageWidth: "imageWidth", imageHeight: "imageHeight", isIconCompact: "isIconCompact", label: "label", subLabel: "subLabel", urlExternal: "urlExternal", urlExternalTarget: "urlExternalTarget", url: "url", buttonLinkLabel: "buttonLinkLabel", buttonStyleClass: "buttonStyleClass", isClickable: "isClickable", isHorizontalLayout: "isHorizontalLayout", labelMaxLines: "labelMaxLines", subLabelMaxLines: "subLabelMaxLines", e2eAttr: "e2eAttr" }, outputs: { cardClick: "cardClick" }, ngImport: i0, template: "<div\n class=\"eui-dashboard-card {{ styleClass }} {{ stateTypeClass }}\"\n tabindex=\"0\"\n [class.row]=\"isHorizontalLayout\"\n [class.eui-dashboard-card--clickable]=\"isClickable\"\n [class.eui-dashboard-card--icon-compact]=\"isIconCompact\"\n [class.eui-dashboard-card--horizontal]=\"isHorizontalLayout\"\n [class.eui-dashboard-card--horizontal--icon-compact]=\"isIconCompact && isHorizontalLayout\"\n (click)=\"onClick($event)\"\n (keydown)=\"onKeyDown($event.keyCode)\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div *ngIf=\"iconClass\" [class.col-4]=\"isHorizontalLayout\" class=\"eui-dashboard-card__icon-container\">\n <div class=\"eui-dashboard-card__icon-wrapper eui-dashboard-card__icon-wrapper--{{ iconTypeClass }}\">\n <span class=\"{{ iconClass }} eui-icon-fw eui-dashboard-card__icon-wrapper-icon\"></span>\n </div>\n </div>\n\n <div *ngIf=\"imageUrl\" [class.col-4]=\"isHorizontalLayout\" class=\"eui-dashboard-card__image-container\">\n <div class=\"eui-dashboard-card__image-wrapper\">\n <img [style.height.px]=\"imageHeight\" [style.width.px]=\"imageWidth\" src=\"{{ imageUrl }}\" alt=\"{{ imageUrl }}\" />\n </div>\n </div>\n\n <div class=\"eui-dashboard-card__content-wrapper\" [class.col-8]=\"isHorizontalLayout\">\n <div class=\"eui-dashboard-card__content\">\n <div class=\"eui-dashboard-card__content-label eui-dashboard-card__content-label--lines-{{ labelMaxLines }}\">\n {{ label }}\n </div>\n <div class=\"eui-dashboard-card__content-sub-label eui-dashboard-card__content-sub-label--lines-{{ subLabelMaxLines }}\">\n {{ subLabel }}\n </div>\n <div *ngIf=\"!isClickable\" class=\"eui-dashboard-card__content-link\">\n <a\n *ngIf=\"urlExternal\"\n href=\"{{ urlExternal }}\"\n target=\"{{ urlExternalTarget }}\"\n class=\"eui-button {{ buttonStyleClass }}\"\n tabindex=\"0\"\n >{{ buttonLinkLabel }}</a\n >\n <a *ngIf=\"url\" [routerLink]=\"[url]\" class=\"eui-button {{ buttonStyleClass }}\" tabindex=\"0\">{{ buttonLinkLabel }}</a>\n </div>\n </div>\n </div>\n</div>\n", styles: [".eui-dashboard-card{background-color:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);margin-bottom:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-m);width:100%;box-shadow:var(--eui-base-shadow-1)}.eui-dashboard-card__image-wrapper{height:6rem;justify-content:center;margin:var(--eui-base-spacing-m) auto var(--eui-base-spacing-m) auto;padding:calc(var(--eui-base-spacing-m) /2);align-items:center;display:flex;width:100%}.eui-dashboard-card__icon-wrapper{align-items:center;border-radius:4rem;display:flex;height:8rem;justify-content:center;margin:var(--eui-base-spacing-m) auto var(--eui-base-spacing-m) auto;padding:var(--eui-base-spacing-m);width:8rem;background-color:var(--eui-base-color-grey-15);border-color:var(--eui-base-color-grey-15);color:var(--eui-base-color-grey-15-contrast)}.eui-dashboard-card__icon-wrapper .eui-icon-svg svg{color:var(--eui-base-color-grey-15-contrast);fill:var(--eui-base-color-grey-15-contrast)}.eui-dashboard-card__icon-wrapper--primary{background-color:var(--eui-base-color-primary-75);border-color:var(--eui-base-color-primary-75);color:var(--eui-base-color-primary-75-contrast)}.eui-dashboard-card__icon-wrapper--primary .eui-icon-svg svg{color:var(--eui-base-color-primary-75-contrast);fill:var(--eui-base-color-primary-75-contrast)}.eui-dashboard-card__icon-wrapper--info{background-color:var(--eui-base-color-info-50);border-color:var(--eui-base-color-info-50);color:var(--eui-base-color-info-50-contrast)}.eui-dashboard-card__icon-wrapper--info .eui-icon-svg svg{color:var(--eui-base-color-info-50-contrast);fill:var(--eui-base-color-info-50-contrast)}.eui-dashboard-card__icon-wrapper--warning{background-color:var(--eui-base-color-warning-75);border-color:var(--eui-base-color-warning-75);color:var(--eui-base-color-warning-75-contrast)}.eui-dashboard-card__icon-wrapper--warning .eui-icon-svg svg{color:var(--eui-base-color-warning-75-contrast);fill:var(--eui-base-color-warning-75-contrast)}.eui-dashboard-card__icon-wrapper--danger{background-color:var(--eui-base-color-danger-75);border-color:var(--eui-base-color-danger-75);color:var(--eui-base-color-danger-75-contrast)}.eui-dashboard-card__icon-wrapper--danger .eui-icon-svg svg{color:var(--eui-base-color-danger-75-contrast);fill:var(--eui-base-color-danger-75-contrast)}.eui-dashboard-card__icon-wrapper--success{background-color:var(--eui-base-color-success-75);border-color:var(--eui-base-color-success-75);color:var(--eui-base-color-success-75-contrast)}.eui-dashboard-card__icon-wrapper--success .eui-icon-svg svg{color:var(--eui-base-color-success-75-contrast);fill:var(--eui-base-color-success-75-contrast)}.eui-dashboard-card__icon-wrapper-icon{font-size:4rem;width:100%}.eui-dashboard-card__content-wrapper{align-items:center;display:flex}.eui-dashboard-card__content{text-align:center;width:100%}.eui-dashboard-card__content-label{margin-bottom:var(--eui-base-spacing-s);font:normal normal 400 1.25rem/1.5rem var(--eui-base-font-family)}.eui-dashboard-card__content-label--lines-1{height:var(--eui-base-font-size-xl);overflow:hidden}.eui-dashboard-card__content-label--lines-2{height:calc(var(--eui-base-font-size-xl) * 2.33);overflow:hidden}.eui-dashboard-card__content-label--lines-3{height:calc(var(--eui-base-font-size-xl) * 3.5);overflow:hidden}.eui-dashboard-card__content-label--lines-4{height:calc(var(--eui-base-font-size-xl) * 4.75);overflow:hidden}.eui-dashboard-card__content-label--lines-5{height:calc(var(--eui-base-font-size-xl) * 6);overflow:hidden}.eui-dashboard-card__content-sub-label{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-m);margin-bottom:var(--eui-base-spacing-s)}.eui-dashboard-card__content-sub-label--lines-1{height:calc(var(--eui-base-font-size-m) * 1.25);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-2{height:calc(var(--eui-base-font-size-m) * 2.5);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-3{height:calc(var(--eui-base-font-size-m) * 3.75);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-4{height:calc(var(--eui-base-font-size-m) * 4.75);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-5{height:calc(var(--eui-base-font-size-m) * 6);overflow:hidden}.eui-dashboard-card__content-link{margin-top:var(--eui-base-spacing-m)}.eui-dashboard-card--horizontal .eui-dashboard-card__content{border-left:2px solid var(--eui-base-color-grey-10);margin-left:var(--eui-base-spacing-m);padding-left:var(--eui-base-spacing-m)}.eui-dashboard-card--horizontal .eui-dashboard-card__icon-wrapper,.eui-dashboard-card--horizontal--icon-compact .eui-dashboard-card__icon-wrapper{margin:var(--eui-base-spacing-m) auto var(--eui-base-spacing-m) auto}.eui-dashboard-card--horizontal .eui-dashboard-card__image-wrapper{padding:var(--eui-base-spacing-m)}.eui-dashboard-card--icon-compact .eui-dashboard-card__icon-wrapper{height:5rem;padding:var(--eui-base-spacing-s);width:5rem}.eui-dashboard-card--icon-compact .eui-dashboard-card__icon-wrapper-icon{font-size:2.5rem}.eui-dashboard-card--clickable{cursor:pointer}.eui-dashboard-card--clickable:focus,.eui-dashboard-card--clickable:hover{outline:0;box-shadow:var(--eui-base-shadow-2)}.eui-dashboard-card--primary{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-primary-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--secondary{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-grey-50);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--info{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-info-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--warning{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-warning-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--success{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-success-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--danger{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-danger-100);margin-left:var(--eui-base-spacing-xs)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
44
+ getCssClasses() {
45
+ return [
46
+ this.baseStatesDirective.getCssClasses('eui-dashboard-card'),
47
+ this.isHorizontal ? 'eui-dashboard-card--horizontal' : '',
48
+ this.isDisabled ? 'eui-dashboard-card--disabled' : '',
49
+ ]
50
+ .join(' ')
51
+ .trim();
52
+ }
53
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardComponent, deps: [{ token: i1.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
54
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: EuiDashboardCardComponent, selector: "eui-dashboard-card", inputs: { e2eAttr: "e2eAttr", label: "label", subLabel: "subLabel", imageUrl: "imageUrl", iconSvgName: "iconSvgName", iconSvgSize: "iconSvgSize", url: "url", urlExternal: "urlExternal", urlExternalTarget: "urlExternalTarget", isHorizontal: "isHorizontal", isDisabled: "isDisabled", isFlatAvatar: "isFlatAvatar", hasNoBackgroundAvatar: "hasNoBackgroundAvatar" }, outputs: { cardClick: "cardClick" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr" } }, hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiVariant", "euiVariant", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "<ng-container *ngIf=\"url || urlExternal; else noLink\">\n <a *ngIf=\"urlExternal\" href=\"{{ urlExternal }}\" target=\"{{ urlExternalTarget }}\" class=\"eui-dashboard-card__anchor-wrapper\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <a *ngIf=\"url\" [routerLink]=\"[url]\" class=\"eui-dashboard-card__anchor-wrapper\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<ng-template #noLink>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <div class=\"eui-dashboard-card__avatar-wrapper\" *ngIf=\"iconSvgName || imageUrl\">\n <eui-avatar\n [euiVariant]=\"baseStatesDirective.euiVariant\"\n [euiSizeVariant]=\"baseStatesDirective.euiSizeVariant\"\n [isFlat]=\"isFlatAvatar\"\n [hasNoBackground]=\"hasNoBackgroundAvatar\">\n <eui-avatar-icon>\n <eui-icon-svg *ngIf=\"iconSvgName\" [icon]=\"iconSvgName\" [size]=\"iconSvgSize\"></eui-icon-svg>\n </eui-avatar-icon>\n <eui-avatar-image *ngIf=\"imageUrl\" imageUrl=\"{{ imageUrl }}\"></eui-avatar-image>\n </eui-avatar>\n </div>\n <div class=\"eui-dashboard-card__content-wrapper\">\n <div class=\"eui-dashboard-card__label-content\">\n <eui-label *ngIf=\"label\">\n <eui-label class=\"eui-dashboard-card__label\" [ngClass]=\"subLabel ? 'eui-dashboard-card__label--with-sublabel' : ''\">{{\n label\n }}</eui-label>\n <eui-label class=\"eui-dashboard-card__sublabel\" *ngIf=\"subLabel\" euiSublabel>{{ subLabel }}</eui-label>\n </eui-label>\n </div>\n <div class=\"eui-dashboard-card__sub-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-dashboard-card{display:flex;align-items:center;flex-direction:column;width:100%;background-color:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);border:1px solid var(--eui-base-color-grey-10);box-shadow:var(--eui-base-shadow-1);padding:var(--eui-base-spacing-s);cursor:pointer}.eui-dashboard-card:active,.eui-dashboard-card:focus,.eui-dashboard-card:hover{outline:0;box-shadow:var(--eui-base-shadow-3)}.eui-dashboard-card:active:active:not([readonly]),.eui-dashboard-card:active:focus:not([readonly]),.eui-dashboard-card:focus:active:not([readonly]),.eui-dashboard-card:focus:focus:not([readonly]),.eui-dashboard-card:hover:active:not([readonly]),.eui-dashboard-card:hover:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-dashboard-card:active [tabindex=\"0\"]:active:not([readonly]),.eui-dashboard-card:active [tabindex=\"0\"]:focus:not([readonly]),.eui-dashboard-card:focus [tabindex=\"0\"]:active:not([readonly]),.eui-dashboard-card:focus [tabindex=\"0\"]:focus:not([readonly]),.eui-dashboard-card:hover [tabindex=\"0\"]:active:not([readonly]),.eui-dashboard-card:hover [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-dashboard-card__anchor-wrapper{display:flex;width:100%;flex-direction:column}.eui-dashboard-card__avatar-wrapper,.eui-dashboard-card__content-wrapper{display:flex;justify-content:center}.eui-dashboard-card__avatar-wrapper{padding-top:var(--eui-base-spacing-s)}.eui-dashboard-card__content-wrapper{flex-direction:column;padding:var(--eui-base-spacing-s)}.eui-dashboard-card__label-content{text-align:center}.eui-dashboard-card__label-content .eui-dashboard-card__label{font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700;color:var(--eui-base-color-grey-75);margin-bottom:var(--eui-base-spacing-m)}.eui-dashboard-card__label-content .eui-dashboard-card__label--with-sublabel{margin-bottom:0}.eui-dashboard-card__label-content .eui-dashboard-card__sublabel{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);margin-bottom:var(--eui-base-spacing-m)}.eui-dashboard-card__sub-content{display:block;text-align:center}.eui-dashboard-card__sub-content:empty{margin-top:calc(-1 * var(--eui-base-spacing-m))}.eui-dashboard-card--horizontal,.eui-dashboard-card--horizontal .eui-dashboard-card__anchor-wrapper{flex-direction:row}.eui-dashboard-card--horizontal .eui-dashboard-card__avatar-wrapper,.eui-dashboard-card--horizontal .eui-dashboard-card__content-wrapper{width:50%}.eui-dashboard-card--horizontal .eui-dashboard-card__avatar-wrapper{border-right:1px solid var(--eui-base-color-grey-50);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-s) 0}.eui-dashboard-card--disabled{opacity:.65;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i4.EuiAvatarComponent, selector: "div[euiAvatar], span[euiAvatar], eui-avatar", inputs: ["e2eAttr", "aria-label", "hasShadow", "isShapeSquare", "isFlat", "hasNoBackground"] }, { kind: "component", type: i4.EuiAvatarIconComponent, selector: "eui-avatar-icon" }, { kind: "component", type: i4.EuiAvatarImageComponent, selector: "eui-avatar-image", inputs: ["imageUrl"] }, { kind: "component", type: i5.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: i6.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
55
  }
56
+ __decorate([
57
+ coerceBoolean
58
+ ], EuiDashboardCardComponent.prototype, "isHorizontal", void 0);
59
+ __decorate([
60
+ coerceBoolean
61
+ ], EuiDashboardCardComponent.prototype, "isDisabled", void 0);
62
+ __decorate([
63
+ coerceBoolean
64
+ ], EuiDashboardCardComponent.prototype, "isFlatAvatar", void 0);
65
+ __decorate([
66
+ coerceBoolean
67
+ ], EuiDashboardCardComponent.prototype, "hasNoBackgroundAvatar", void 0);
68
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardComponent, decorators: [{
69
69
  type: Component,
70
- args: [{ selector: 'eui-dashboard-card', template: "<div\n class=\"eui-dashboard-card {{ styleClass }} {{ stateTypeClass }}\"\n tabindex=\"0\"\n [class.row]=\"isHorizontalLayout\"\n [class.eui-dashboard-card--clickable]=\"isClickable\"\n [class.eui-dashboard-card--icon-compact]=\"isIconCompact\"\n [class.eui-dashboard-card--horizontal]=\"isHorizontalLayout\"\n [class.eui-dashboard-card--horizontal--icon-compact]=\"isIconCompact && isHorizontalLayout\"\n (click)=\"onClick($event)\"\n (keydown)=\"onKeyDown($event.keyCode)\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <div *ngIf=\"iconClass\" [class.col-4]=\"isHorizontalLayout\" class=\"eui-dashboard-card__icon-container\">\n <div class=\"eui-dashboard-card__icon-wrapper eui-dashboard-card__icon-wrapper--{{ iconTypeClass }}\">\n <span class=\"{{ iconClass }} eui-icon-fw eui-dashboard-card__icon-wrapper-icon\"></span>\n </div>\n </div>\n\n <div *ngIf=\"imageUrl\" [class.col-4]=\"isHorizontalLayout\" class=\"eui-dashboard-card__image-container\">\n <div class=\"eui-dashboard-card__image-wrapper\">\n <img [style.height.px]=\"imageHeight\" [style.width.px]=\"imageWidth\" src=\"{{ imageUrl }}\" alt=\"{{ imageUrl }}\" />\n </div>\n </div>\n\n <div class=\"eui-dashboard-card__content-wrapper\" [class.col-8]=\"isHorizontalLayout\">\n <div class=\"eui-dashboard-card__content\">\n <div class=\"eui-dashboard-card__content-label eui-dashboard-card__content-label--lines-{{ labelMaxLines }}\">\n {{ label }}\n </div>\n <div class=\"eui-dashboard-card__content-sub-label eui-dashboard-card__content-sub-label--lines-{{ subLabelMaxLines }}\">\n {{ subLabel }}\n </div>\n <div *ngIf=\"!isClickable\" class=\"eui-dashboard-card__content-link\">\n <a\n *ngIf=\"urlExternal\"\n href=\"{{ urlExternal }}\"\n target=\"{{ urlExternalTarget }}\"\n class=\"eui-button {{ buttonStyleClass }}\"\n tabindex=\"0\"\n >{{ buttonLinkLabel }}</a\n >\n <a *ngIf=\"url\" [routerLink]=\"[url]\" class=\"eui-button {{ buttonStyleClass }}\" tabindex=\"0\">{{ buttonLinkLabel }}</a>\n </div>\n </div>\n </div>\n</div>\n", styles: [".eui-dashboard-card{background-color:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);margin-bottom:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-m);width:100%;box-shadow:var(--eui-base-shadow-1)}.eui-dashboard-card__image-wrapper{height:6rem;justify-content:center;margin:var(--eui-base-spacing-m) auto var(--eui-base-spacing-m) auto;padding:calc(var(--eui-base-spacing-m) /2);align-items:center;display:flex;width:100%}.eui-dashboard-card__icon-wrapper{align-items:center;border-radius:4rem;display:flex;height:8rem;justify-content:center;margin:var(--eui-base-spacing-m) auto var(--eui-base-spacing-m) auto;padding:var(--eui-base-spacing-m);width:8rem;background-color:var(--eui-base-color-grey-15);border-color:var(--eui-base-color-grey-15);color:var(--eui-base-color-grey-15-contrast)}.eui-dashboard-card__icon-wrapper .eui-icon-svg svg{color:var(--eui-base-color-grey-15-contrast);fill:var(--eui-base-color-grey-15-contrast)}.eui-dashboard-card__icon-wrapper--primary{background-color:var(--eui-base-color-primary-75);border-color:var(--eui-base-color-primary-75);color:var(--eui-base-color-primary-75-contrast)}.eui-dashboard-card__icon-wrapper--primary .eui-icon-svg svg{color:var(--eui-base-color-primary-75-contrast);fill:var(--eui-base-color-primary-75-contrast)}.eui-dashboard-card__icon-wrapper--info{background-color:var(--eui-base-color-info-50);border-color:var(--eui-base-color-info-50);color:var(--eui-base-color-info-50-contrast)}.eui-dashboard-card__icon-wrapper--info .eui-icon-svg svg{color:var(--eui-base-color-info-50-contrast);fill:var(--eui-base-color-info-50-contrast)}.eui-dashboard-card__icon-wrapper--warning{background-color:var(--eui-base-color-warning-75);border-color:var(--eui-base-color-warning-75);color:var(--eui-base-color-warning-75-contrast)}.eui-dashboard-card__icon-wrapper--warning .eui-icon-svg svg{color:var(--eui-base-color-warning-75-contrast);fill:var(--eui-base-color-warning-75-contrast)}.eui-dashboard-card__icon-wrapper--danger{background-color:var(--eui-base-color-danger-75);border-color:var(--eui-base-color-danger-75);color:var(--eui-base-color-danger-75-contrast)}.eui-dashboard-card__icon-wrapper--danger .eui-icon-svg svg{color:var(--eui-base-color-danger-75-contrast);fill:var(--eui-base-color-danger-75-contrast)}.eui-dashboard-card__icon-wrapper--success{background-color:var(--eui-base-color-success-75);border-color:var(--eui-base-color-success-75);color:var(--eui-base-color-success-75-contrast)}.eui-dashboard-card__icon-wrapper--success .eui-icon-svg svg{color:var(--eui-base-color-success-75-contrast);fill:var(--eui-base-color-success-75-contrast)}.eui-dashboard-card__icon-wrapper-icon{font-size:4rem;width:100%}.eui-dashboard-card__content-wrapper{align-items:center;display:flex}.eui-dashboard-card__content{text-align:center;width:100%}.eui-dashboard-card__content-label{margin-bottom:var(--eui-base-spacing-s);font:normal normal 400 1.25rem/1.5rem var(--eui-base-font-family)}.eui-dashboard-card__content-label--lines-1{height:var(--eui-base-font-size-xl);overflow:hidden}.eui-dashboard-card__content-label--lines-2{height:calc(var(--eui-base-font-size-xl) * 2.33);overflow:hidden}.eui-dashboard-card__content-label--lines-3{height:calc(var(--eui-base-font-size-xl) * 3.5);overflow:hidden}.eui-dashboard-card__content-label--lines-4{height:calc(var(--eui-base-font-size-xl) * 4.75);overflow:hidden}.eui-dashboard-card__content-label--lines-5{height:calc(var(--eui-base-font-size-xl) * 6);overflow:hidden}.eui-dashboard-card__content-sub-label{color:var(--eui-base-color-grey-80);font-size:var(--eui-base-font-size-m);margin-bottom:var(--eui-base-spacing-s)}.eui-dashboard-card__content-sub-label--lines-1{height:calc(var(--eui-base-font-size-m) * 1.25);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-2{height:calc(var(--eui-base-font-size-m) * 2.5);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-3{height:calc(var(--eui-base-font-size-m) * 3.75);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-4{height:calc(var(--eui-base-font-size-m) * 4.75);overflow:hidden}.eui-dashboard-card__content-sub-label--lines-5{height:calc(var(--eui-base-font-size-m) * 6);overflow:hidden}.eui-dashboard-card__content-link{margin-top:var(--eui-base-spacing-m)}.eui-dashboard-card--horizontal .eui-dashboard-card__content{border-left:2px solid var(--eui-base-color-grey-10);margin-left:var(--eui-base-spacing-m);padding-left:var(--eui-base-spacing-m)}.eui-dashboard-card--horizontal .eui-dashboard-card__icon-wrapper,.eui-dashboard-card--horizontal--icon-compact .eui-dashboard-card__icon-wrapper{margin:var(--eui-base-spacing-m) auto var(--eui-base-spacing-m) auto}.eui-dashboard-card--horizontal .eui-dashboard-card__image-wrapper{padding:var(--eui-base-spacing-m)}.eui-dashboard-card--icon-compact .eui-dashboard-card__icon-wrapper{height:5rem;padding:var(--eui-base-spacing-s);width:5rem}.eui-dashboard-card--icon-compact .eui-dashboard-card__icon-wrapper-icon{font-size:2.5rem}.eui-dashboard-card--clickable{cursor:pointer}.eui-dashboard-card--clickable:focus,.eui-dashboard-card--clickable:hover{outline:0;box-shadow:var(--eui-base-shadow-2)}.eui-dashboard-card--primary{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-primary-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--secondary{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-grey-50);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--info{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-info-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--warning{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-warning-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--success{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-success-100);margin-left:var(--eui-base-spacing-xs)}.eui-dashboard-card--danger{border-left:var(--eui-base-spacing-xs) solid var(--eui-base-color-danger-100);margin-left:var(--eui-base-spacing-xs)}\n"] }]
71
- }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { styleClass: [{
72
- type: Input
73
- }], typeClass: [{
70
+ args: [{ selector: 'eui-dashboard-card', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [
71
+ {
72
+ directive: BaseStatesDirective,
73
+ inputs: [
74
+ 'euiPrimary',
75
+ 'euiSecondary',
76
+ 'euiSuccess',
77
+ 'euiInfo',
78
+ 'euiWarning',
79
+ 'euiDanger',
80
+ 'euiAccent',
81
+ 'euiSizeM',
82
+ 'euiSizeL',
83
+ 'euiSizeXL',
84
+ 'euiSize2XL',
85
+ 'euiVariant',
86
+ 'euiSizeVariant',
87
+ ],
88
+ },
89
+ ], template: "<ng-container *ngIf=\"url || urlExternal; else noLink\">\n <a *ngIf=\"urlExternal\" href=\"{{ urlExternal }}\" target=\"{{ urlExternalTarget }}\" class=\"eui-dashboard-card__anchor-wrapper\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <a *ngIf=\"url\" [routerLink]=\"[url]\" class=\"eui-dashboard-card__anchor-wrapper\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<ng-template #noLink>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <div class=\"eui-dashboard-card__avatar-wrapper\" *ngIf=\"iconSvgName || imageUrl\">\n <eui-avatar\n [euiVariant]=\"baseStatesDirective.euiVariant\"\n [euiSizeVariant]=\"baseStatesDirective.euiSizeVariant\"\n [isFlat]=\"isFlatAvatar\"\n [hasNoBackground]=\"hasNoBackgroundAvatar\">\n <eui-avatar-icon>\n <eui-icon-svg *ngIf=\"iconSvgName\" [icon]=\"iconSvgName\" [size]=\"iconSvgSize\"></eui-icon-svg>\n </eui-avatar-icon>\n <eui-avatar-image *ngIf=\"imageUrl\" imageUrl=\"{{ imageUrl }}\"></eui-avatar-image>\n </eui-avatar>\n </div>\n <div class=\"eui-dashboard-card__content-wrapper\">\n <div class=\"eui-dashboard-card__label-content\">\n <eui-label *ngIf=\"label\">\n <eui-label class=\"eui-dashboard-card__label\" [ngClass]=\"subLabel ? 'eui-dashboard-card__label--with-sublabel' : ''\">{{\n label\n }}</eui-label>\n <eui-label class=\"eui-dashboard-card__sublabel\" *ngIf=\"subLabel\" euiSublabel>{{ subLabel }}</eui-label>\n </eui-label>\n </div>\n <div class=\"eui-dashboard-card__sub-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", styles: [".eui-dashboard-card{display:flex;align-items:center;flex-direction:column;width:100%;background-color:var(--eui-base-color-white);border-radius:var(--eui-base-border-radius);border:1px solid var(--eui-base-color-grey-10);box-shadow:var(--eui-base-shadow-1);padding:var(--eui-base-spacing-s);cursor:pointer}.eui-dashboard-card:active,.eui-dashboard-card:focus,.eui-dashboard-card:hover{outline:0;box-shadow:var(--eui-base-shadow-3)}.eui-dashboard-card:active:active:not([readonly]),.eui-dashboard-card:active:focus:not([readonly]),.eui-dashboard-card:focus:active:not([readonly]),.eui-dashboard-card:focus:focus:not([readonly]),.eui-dashboard-card:hover:active:not([readonly]),.eui-dashboard-card:hover:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-dashboard-card:active [tabindex=\"0\"]:active:not([readonly]),.eui-dashboard-card:active [tabindex=\"0\"]:focus:not([readonly]),.eui-dashboard-card:focus [tabindex=\"0\"]:active:not([readonly]),.eui-dashboard-card:focus [tabindex=\"0\"]:focus:not([readonly]),.eui-dashboard-card:hover [tabindex=\"0\"]:active:not([readonly]),.eui-dashboard-card:hover [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;transition:none}.eui-dashboard-card__anchor-wrapper{display:flex;width:100%;flex-direction:column}.eui-dashboard-card__avatar-wrapper,.eui-dashboard-card__content-wrapper{display:flex;justify-content:center}.eui-dashboard-card__avatar-wrapper{padding-top:var(--eui-base-spacing-s)}.eui-dashboard-card__content-wrapper{flex-direction:column;padding:var(--eui-base-spacing-s)}.eui-dashboard-card__label-content{text-align:center}.eui-dashboard-card__label-content .eui-dashboard-card__label{font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700;color:var(--eui-base-color-grey-75);margin-bottom:var(--eui-base-spacing-m)}.eui-dashboard-card__label-content .eui-dashboard-card__label--with-sublabel{margin-bottom:0}.eui-dashboard-card__label-content .eui-dashboard-card__sublabel{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);margin-bottom:var(--eui-base-spacing-m)}.eui-dashboard-card__sub-content{display:block;text-align:center}.eui-dashboard-card__sub-content:empty{margin-top:calc(-1 * var(--eui-base-spacing-m))}.eui-dashboard-card--horizontal,.eui-dashboard-card--horizontal .eui-dashboard-card__anchor-wrapper{flex-direction:row}.eui-dashboard-card--horizontal .eui-dashboard-card__avatar-wrapper,.eui-dashboard-card--horizontal .eui-dashboard-card__content-wrapper{width:50%}.eui-dashboard-card--horizontal .eui-dashboard-card__avatar-wrapper{border-right:1px solid var(--eui-base-color-grey-50);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-s) 0}.eui-dashboard-card--disabled{opacity:.65;pointer-events:none}\n"] }]
90
+ }], ctorParameters: () => [{ type: i1.BaseStatesDirective }], propDecorators: { cssClasses: [{
91
+ type: HostBinding,
92
+ args: ['class']
93
+ }], e2eAttr: [{
94
+ type: HostBinding,
95
+ args: ['attr.data-e2e']
96
+ }, {
74
97
  type: Input
75
- }], iconClass: [{
98
+ }], label: [{
76
99
  type: Input
77
- }], iconTypeClass: [{
100
+ }], subLabel: [{
78
101
  type: Input
79
102
  }], imageUrl: [{
80
103
  type: Input
81
- }], imageWidth: [{
82
- type: Input
83
- }], imageHeight: [{
84
- type: Input
85
- }], isIconCompact: [{
104
+ }], iconSvgName: [{
86
105
  type: Input
87
- }], label: [{
106
+ }], iconSvgSize: [{
88
107
  type: Input
89
- }], subLabel: [{
108
+ }], url: [{
90
109
  type: Input
91
110
  }], urlExternal: [{
92
111
  type: Input
93
112
  }], urlExternalTarget: [{
94
113
  type: Input
95
- }], url: [{
114
+ }], isHorizontal: [{
96
115
  type: Input
97
- }], buttonLinkLabel: [{
116
+ }], isDisabled: [{
98
117
  type: Input
99
- }], buttonStyleClass: [{
118
+ }], isFlatAvatar: [{
100
119
  type: Input
101
- }], isClickable: [{
102
- type: Input
103
- }], isHorizontalLayout: [{
104
- type: Input
105
- }], labelMaxLines: [{
106
- type: Input
107
- }], subLabelMaxLines: [{
108
- type: Input
109
- }], e2eAttr: [{
120
+ }], hasNoBackgroundAvatar: [{
110
121
  type: Input
111
122
  }], cardClick: [{
112
123
  type: Output
124
+ }], onClick: [{
125
+ type: HostListener,
126
+ args: ['click', ['$event']]
113
127
  }] } });
114
128
  export class EuiDashboardCardModule {
115
129
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
116
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardModule, declarations: [EuiDashboardCardComponent], imports: [CommonModule, RouterModule], exports: [EuiDashboardCardComponent] }); }
117
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardModule, imports: [CommonModule, RouterModule] }); }
130
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardModule, declarations: [EuiDashboardCardComponent], imports: [CommonModule, RouterModule, EuiAvatarModule, EuiLabelModule, EuiIconModule], exports: [EuiDashboardCardComponent] }); }
131
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardModule, imports: [CommonModule, RouterModule, EuiAvatarModule, EuiLabelModule, EuiIconModule] }); }
118
132
  }
119
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiDashboardCardModule, decorators: [{
120
134
  type: NgModule,
121
135
  args: [{
122
- imports: [CommonModule, RouterModule],
123
- exports: [EuiDashboardCardComponent],
136
+ imports: [CommonModule, RouterModule, EuiAvatarModule, EuiLabelModule, EuiIconModule],
124
137
  declarations: [EuiDashboardCardComponent],
138
+ exports: [EuiDashboardCardComponent],
125
139
  }]
126
140
  }] });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRhc2hib2FyZC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kYXNoYm9hcmQtY2FyZC9ldWktZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRhc2hib2FyZC1jYXJkL2V1aS1kYXNoYm9hcmQtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQU81RSxNQUFNLE9BQU8seUJBQXlCO0lBUWxDLElBQ0ksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBUUQsSUFDSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFtQjtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxJQUNJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxLQUFtQjtRQUN0QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFD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QkFBeUIsQ0FBQztvQkFDcEMsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgSW5wdXQsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1kYXNoYm9hcmQtY2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1kYXNoYm9hcmQtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEV1aURhc2hib2FyZENhcmRDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZztcbiAgICBASW5wdXQoKSB0eXBlQ2xhc3M6IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uQ2xhc3M6IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaW1hZ2VVcmw6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbWFnZVdpZHRoID0gJzY0JztcbiAgICBASW5wdXQoKSBpbWFnZUhlaWdodCA9ICc2NCc7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNJY29uQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSWNvbkNvbXBhY3Q7XG4gICAgfVxuICAgIHNldCBpc0ljb25Db21wYWN0KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNJY29uQ29tcGFjdCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3ViTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSB1cmxFeHRlcm5hbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHVybEV4dGVybmFsVGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYnV0dG9uTGlua0xhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYnV0dG9uU3R5bGVDbGFzcyA9ICdldWktYnV0dG9uLS1pbmZvJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0NsaWNrYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQ2xpY2thYmxlO1xuICAgIH1cbiAgICBzZXQgaXNDbGlja2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0NsaWNrYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSG9yaXpvbnRhbExheW91dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSG9yaXpvbnRhbExheW91dDtcbiAgICB9XG4gICAgc2V0IGlzSG9yaXpvbnRhbExheW91dCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSG9yaXpvbnRhbExheW91dCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGxhYmVsTWF4TGluZXM6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHN1YkxhYmVsTWF4TGluZXM6IHN0cmluZztcbiAgICBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1kYXNoYm9hcmQtY2FyZCc7XG4gICAgQE91dHB1dCgpIGNhcmRDbGljaz0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSBfaXNJY29uQ29tcGFjdCA9IHRydWU7XG4gICAgcHJpdmF0ZSBfaXNDbGlja2FibGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0hvcml6b250YWxMYXlvdXQgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgICBnZXQgc3RhdGVUeXBlQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNsYXNzZXMgPSAnJztcblxuICAgICAgICBpZiAodGhpcy50eXBlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNsYXNzZXMgPSAnZXVpLWRhc2hib2FyZC1jYXJkLS0nICsgdGhpcy50eXBlQ2xhc3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9XG5cbiAgICBvbktleURvd24oa2V5Q29kZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2xpY2thYmxlICYmIGtleUNvZGUgPT09IDEzKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5MaW5rKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2xpY2thYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5MaW5rKCk7XG4gICAgICAgICAgICB0aGlzLmNhcmRDbGljay5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5MaW5rKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy51cmwpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnVybF0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnVybEV4dGVybmFsKSB7XG4gICAgICAgICAgICB3aW5kb3cub3Blbih0aGlzLnVybEV4dGVybmFsLCB0aGlzLnVybEV4dGVybmFsVGFyZ2V0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdWlEYXNoYm9hcmRDYXJkQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlEYXNoYm9hcmRDYXJkQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRGFzaGJvYXJkQ2FyZE1vZHVsZSB7fVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiZXVpLWRhc2hib2FyZC1jYXJkIHt7IHN0eWxlQ2xhc3MgfX0ge3sgc3RhdGVUeXBlQ2xhc3MgfX1cIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gICAgW2NsYXNzLnJvd109XCJpc0hvcml6b250YWxMYXlvdXRcIlxuICAgIFtjbGFzcy5ldWktZGFzaGJvYXJkLWNhcmQtLWNsaWNrYWJsZV09XCJpc0NsaWNrYWJsZVwiXG4gICAgW2NsYXNzLmV1aS1kYXNoYm9hcmQtY2FyZC0taWNvbi1jb21wYWN0XT1cImlzSWNvbkNvbXBhY3RcIlxuICAgIFtjbGFzcy5ldWktZGFzaGJvYXJkLWNhcmQtLWhvcml6b250YWxdPVwiaXNIb3Jpem9udGFsTGF5b3V0XCJcbiAgICBbY2xhc3MuZXVpLWRhc2hib2FyZC1jYXJkLS1ob3Jpem9udGFsLS1pY29uLWNvbXBhY3RdPVwiaXNJY29uQ29tcGFjdCAmJiBpc0hvcml6b250YWxMYXlvdXRcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQua2V5Q29kZSlcIlxuICAgIGF0dHIuZGF0YS1lMmU9XCJ7eyBlMmVBdHRyIH19XCI+XG4gICAgPGRpdiAqbmdJZj1cImljb25DbGFzc1wiIFtjbGFzcy5jb2wtNF09XCJpc0hvcml6b250YWxMYXlvdXRcIiBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9faWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9faWNvbi13cmFwcGVyIGV1aS1kYXNoYm9hcmQtY2FyZF9faWNvbi13cmFwcGVyLS17eyBpY29uVHlwZUNsYXNzIH19XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7IGljb25DbGFzcyB9fSBldWktaWNvbi1mdyBldWktZGFzaGJvYXJkLWNhcmRfX2ljb24td3JhcHBlci1pY29uXCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJpbWFnZVVybFwiIFtjbGFzcy5jb2wtNF09XCJpc0hvcml6b250YWxMYXlvdXRcIiBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9faW1hZ2UtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktZGFzaGJvYXJkLWNhcmRfX2ltYWdlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxpbWcgW3N0eWxlLmhlaWdodC5weF09XCJpbWFnZUhlaWdodFwiIFtzdHlsZS53aWR0aC5weF09XCJpbWFnZVdpZHRoXCIgc3JjPVwie3sgaW1hZ2VVcmwgfX1cIiBhbHQ9XCJ7eyBpbWFnZVVybCB9fVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9fY29udGVudC13cmFwcGVyXCIgW2NsYXNzLmNvbC04XT1cImlzSG9yaXpvbnRhbExheW91dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLWRhc2hib2FyZC1jYXJkX19jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLWRhc2hib2FyZC1jYXJkX19jb250ZW50LWxhYmVsIGV1aS1kYXNoYm9hcmQtY2FyZF9fY29udGVudC1sYWJlbC0tbGluZXMte3sgbGFiZWxNYXhMaW5lcyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktZGFzaGJvYXJkLWNhcmRfX2NvbnRlbnQtc3ViLWxhYmVsIGV1aS1kYXNoYm9hcmQtY2FyZF9fY29udGVudC1zdWItbGFiZWwtLWxpbmVzLXt7IHN1YkxhYmVsTWF4TGluZXMgfX1cIj5cbiAgICAgICAgICAgICAgICB7eyBzdWJMYWJlbCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzQ2xpY2thYmxlXCIgY2xhc3M9XCJldWktZGFzaGJvYXJkLWNhcmRfX2NvbnRlbnQtbGlua1wiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXJsRXh0ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPVwie3sgdXJsRXh0ZXJuYWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJ7eyB1cmxFeHRlcm5hbFRhcmdldCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLWJ1dHRvbiB7eyBidXR0b25TdHlsZUNsYXNzIH19XCJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGJ1dHRvbkxpbmtMYWJlbCB9fTwvYVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cInVybFwiIFtyb3V0ZXJMaW5rXT1cIlt1cmxdXCIgY2xhc3M9XCJldWktYnV0dG9uIHt7IGJ1dHRvblN0eWxlQ2xhc3MgfX1cIiB0YWJpbmRleD1cIjBcIj57eyBidXR0b25MaW5rTGFiZWwgfX08L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWRhc2hib2FyZC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1kYXNoYm9hcmQtY2FyZC9ldWktZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWRhc2hib2FyZC1jYXJkL2V1aS1kYXNoYm9hcmQtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsS0FBSyxFQUNMLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUE2QnpELE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFpQ0QsWUFBbUIsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFoQzNELGdEQUFnRDtRQUdoRCxZQUFPLEdBQUcsb0JBQW9CLENBQUM7UUFNdEIsZ0JBQVcsR0FBa0UsR0FBRyxDQUFDO1FBR2pGLHNCQUFpQixHQUFHLFFBQVEsQ0FB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Z0dBSTNFLHNCQUFzQjtrQkFMbEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDO29CQUNyRixZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgTmdNb2R1bGUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT25Jbml0LFxuICAgIElucHV0LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBCYXNlU3RhdGVzRGlyZWN0aXZlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL3NoYXJlZCc7XG5pbXBvcnQgeyBFdWlBdmF0YXJNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWF2YXRhcic7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFdWlMYWJlbE1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktbGFiZWwnO1xuaW1wb3J0IHsgRXVpSWNvbk1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZGFzaGJvYXJkLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAnZXVpLWRhc2hib2FyZC1jYXJkJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogQmFzZVN0YXRlc0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogW1xuICAgICAgICAgICAgICAgICdldWlQcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAnZXVpU2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgICAnZXVpU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgJ2V1aUluZm8nLFxuICAgICAgICAgICAgICAgICdldWlXYXJuaW5nJyxcbiAgICAgICAgICAgICAgICAnZXVpRGFuZ2VyJyxcbiAgICAgICAgICAgICAgICAnZXVpQWNjZW50JyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZU0nLFxuICAgICAgICAgICAgICAgICdldWlTaXplTCcsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemVYTCcsXG4gICAgICAgICAgICAgICAgJ2V1aVNpemUyWEwnLFxuICAgICAgICAgICAgICAgICdldWlWYXJpYW50JyxcbiAgICAgICAgICAgICAgICAnZXVpU2l6ZVZhcmlhbnQnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlEYXNoYm9hcmRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3NzQ2xhc3NlcygpO1xuICAgIH1cbiAgICAvLyBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSB0YWJJbmRleCA9ICcwJztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKVxuICAgIEBJbnB1dCgpXG4gICAgZTJlQXR0ciA9ICdldWktZGFzaGJvYXJkLWNhcmQnO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBzdWJMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGltYWdlVXJsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvblN2Z05hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uU3ZnU2l6ZTogJzJ4cycgfCAneHMnIHwgJ3MnIHwgJ20nIHwgJ2wnIHwgJ3hsJyB8ICcyeGwnIHwgJzN4bCcgfCAnNHhsJyA9ICdtJztcbiAgICBASW5wdXQoKSB1cmw6IHN0cmluZztcbiAgICBASW5wdXQoKSB1cmxFeHRlcm5hbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHVybEV4dGVybmFsVGFyZ2V0ID0gJ19ibGFuayc7XG5cbiAgICBASW5wdXQoKVxuICAgIEBjb2VyY2VCb29sZWFuXG4gICAgaXNIb3Jpem9udGFsOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0Rpc2FibGVkOiBCb29sZWFuSW5wdXQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBpc0ZsYXRBdmF0YXI6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAY29lcmNlQm9vbGVhblxuICAgIGhhc05vQmFja2dyb3VuZEF2YXRhcjogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgY2FyZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJhc2VTdGF0ZXNEaXJlY3RpdmU6IEJhc2VTdGF0ZXNEaXJlY3RpdmUpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhcmRDbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZXVpU2l6ZVZhcmlhbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTaXplWEwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVZhcmlhbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYmFzZVN0YXRlc0RpcmVjdGl2ZS5ldWlTZWNvbmRhcnkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZ2V0Q3NzQ2xhc3NlcygnZXVpLWRhc2hib2FyZC1jYXJkJyksXG4gICAgICAgICAgICB0aGlzLmlzSG9yaXpvbnRhbCA/ICdldWktZGFzaGJvYXJkLWNhcmQtLWhvcml6b250YWwnIDogJycsXG4gICAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPyAnZXVpLWRhc2hib2FyZC1jYXJkLS1kaXNhYmxlZCcgOiAnJyxcbiAgICAgICAgXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBFdWlBdmF0YXJNb2R1bGUsIEV1aUxhYmVsTW9kdWxlLCBFdWlJY29uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlEYXNoYm9hcmRDYXJkQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbRXVpRGFzaGJvYXJkQ2FyZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aURhc2hib2FyZENhcmRNb2R1bGUge31cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ1cmwgfHwgdXJsRXh0ZXJuYWw7IGVsc2Ugbm9MaW5rXCI+XG4gICAgPGEgKm5nSWY9XCJ1cmxFeHRlcm5hbFwiIGhyZWY9XCJ7eyB1cmxFeHRlcm5hbCB9fVwiIHRhcmdldD1cInt7IHVybEV4dGVybmFsVGFyZ2V0IH19XCIgY2xhc3M9XCJldWktZGFzaGJvYXJkLWNhcmRfX2FuY2hvci13cmFwcGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuICAgIDxhICpuZ0lmPVwidXJsXCIgW3JvdXRlckxpbmtdPVwiW3VybF1cIiBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9fYW5jaG9yLXdyYXBwZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjbm9MaW5rPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9fYXZhdGFyLXdyYXBwZXJcIiAqbmdJZj1cImljb25TdmdOYW1lIHx8IGltYWdlVXJsXCI+XG4gICAgICAgIDxldWktYXZhdGFyXG4gICAgICAgICAgICBbZXVpVmFyaWFudF09XCJiYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVZhcmlhbnRcIlxuICAgICAgICAgICAgW2V1aVNpemVWYXJpYW50XT1cImJhc2VTdGF0ZXNEaXJlY3RpdmUuZXVpU2l6ZVZhcmlhbnRcIlxuICAgICAgICAgICAgW2lzRmxhdF09XCJpc0ZsYXRBdmF0YXJcIlxuICAgICAgICAgICAgW2hhc05vQmFja2dyb3VuZF09XCJoYXNOb0JhY2tncm91bmRBdmF0YXJcIj5cbiAgICAgICAgICAgIDxldWktYXZhdGFyLWljb24+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyAqbmdJZj1cImljb25TdmdOYW1lXCIgW2ljb25dPVwiaWNvblN2Z05hbWVcIiBbc2l6ZV09XCJpY29uU3ZnU2l6ZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPC9ldWktYXZhdGFyLWljb24+XG4gICAgICAgICAgICA8ZXVpLWF2YXRhci1pbWFnZSAqbmdJZj1cImltYWdlVXJsXCIgaW1hZ2VVcmw9XCJ7eyBpbWFnZVVybCB9fVwiPjwvZXVpLWF2YXRhci1pbWFnZT5cbiAgICAgICAgPC9ldWktYXZhdGFyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJldWktZGFzaGJvYXJkLWNhcmRfX2NvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLWRhc2hib2FyZC1jYXJkX19sYWJlbC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZXVpLWxhYmVsICpuZ0lmPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWxhYmVsIGNsYXNzPVwiZXVpLWRhc2hib2FyZC1jYXJkX19sYWJlbFwiIFtuZ0NsYXNzXT1cInN1YkxhYmVsID8gJ2V1aS1kYXNoYm9hcmQtY2FyZF9fbGFiZWwtLXdpdGgtc3VibGFiZWwnIDogJydcIj57e1xuICAgICAgICAgICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgICAgIH19PC9ldWktbGFiZWw+XG4gICAgICAgICAgICAgICAgPGV1aS1sYWJlbCBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9fc3VibGFiZWxcIiAqbmdJZj1cInN1YkxhYmVsXCIgZXVpU3VibGFiZWw+e3sgc3ViTGFiZWwgfX08L2V1aS1sYWJlbD5cbiAgICAgICAgICAgIDwvZXVpLWxhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1kYXNoYm9hcmQtY2FyZF9fc3ViLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -39,12 +39,12 @@ export class EuiLabelComponent extends BaseDirective {
39
39
  .trim();
40
40
  }
41
41
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label,\n label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: { euiRequired: "euiRequired", euiReadonly: "euiReadonly", euiSublabel: "euiSublabel" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".eui-label{display:inline-block;font-family:var(--eui-base-font-family)}.eui-label__sublabel{color:var(--eui-base-color-grey-75);display:block;font-family:var(--eui-base-font-family);margin-bottom:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-label--required:after{color:var(--eui-base-color-danger-100);content:\"*\";line-height:1;padding-left:var(--eui-base-spacing-2xs);font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700}.eui-label--disabled{color:var(--eui-base-color-grey-50)}.eui-label--readonly{color:var(--eui-base-color-grey-75)}.eui-label--selected{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-label--size-s{font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-label--size-m{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-label--primary{color:var(--eui-base-color-primary-100)}.eui-label--secondary{color:var(--eui-base-color-grey-75)}.eui-label--info{color:var(--eui-base-color-info-100)}.eui-label--success{color:var(--eui-base-color-success-100)}.eui-label--warning{color:var(--eui-base-color-warning-130)}.eui-label--danger{color:var(--eui-base-color-danger-100)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
42
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label,\n label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: { euiRequired: "euiRequired", euiReadonly: "euiReadonly", euiSublabel: "euiSublabel" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".eui-label{display:inline-block;font-family:var(--eui-base-font-family)}.eui-label__sublabel{color:var(--eui-base-color-grey-75);display:block;font-family:var(--eui-base-font-family);margin-bottom:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-label--required:after{color:var(--eui-base-color-danger-100);content:\"*\";line-height:1;padding-left:var(--eui-base-spacing-2xs);font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700}.eui-label--disabled{color:var(--eui-base-color-grey-50)}.eui-label--readonly{color:var(--eui-base-color-grey-75)}.eui-label--selected{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-label--size-s{font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-label--size-m{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-label--size-l{font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.eui-label--primary{color:var(--eui-base-color-primary-100)}.eui-label--secondary{color:var(--eui-base-color-grey-75)}.eui-label--info{color:var(--eui-base-color-info-100)}.eui-label--success{color:var(--eui-base-color-success-100)}.eui-label--warning{color:var(--eui-base-color-warning-130)}.eui-label--danger{color:var(--eui-base-color-danger-100)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
43
43
  }
44
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiLabelComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: `label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label,
47
- label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel`, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".eui-label{display:inline-block;font-family:var(--eui-base-font-family)}.eui-label__sublabel{color:var(--eui-base-color-grey-75);display:block;font-family:var(--eui-base-font-family);margin-bottom:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-label--required:after{color:var(--eui-base-color-danger-100);content:\"*\";line-height:1;padding-left:var(--eui-base-spacing-2xs);font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700}.eui-label--disabled{color:var(--eui-base-color-grey-50)}.eui-label--readonly{color:var(--eui-base-color-grey-75)}.eui-label--selected{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-label--size-s{font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-label--size-m{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-label--primary{color:var(--eui-base-color-primary-100)}.eui-label--secondary{color:var(--eui-base-color-grey-75)}.eui-label--info{color:var(--eui-base-color-info-100)}.eui-label--success{color:var(--eui-base-color-success-100)}.eui-label--warning{color:var(--eui-base-color-warning-130)}.eui-label--danger{color:var(--eui-base-color-danger-100)}\n"] }]
47
+ label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel`, template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".eui-label{display:inline-block;font-family:var(--eui-base-font-family)}.eui-label__sublabel{color:var(--eui-base-color-grey-75);display:block;font-family:var(--eui-base-font-family);margin-bottom:var(--eui-base-spacing-xs);margin-top:var(--eui-base-spacing-xs)}.eui-label--required:after{color:var(--eui-base-color-danger-100);content:\"*\";line-height:1;padding-left:var(--eui-base-spacing-2xs);font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family);font-weight:700}.eui-label--disabled{color:var(--eui-base-color-grey-50)}.eui-label--readonly{color:var(--eui-base-color-grey-75)}.eui-label--selected{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family);font-weight:700}.eui-label--size-s{font:normal normal 400 .875rem/1rem var(--eui-base-font-family)}.eui-label--size-m{font:normal normal 400 1rem/1.25rem var(--eui-base-font-family)}.eui-label--size-l{font:normal normal 400 1.125rem/1.5rem var(--eui-base-font-family)}.eui-label--primary{color:var(--eui-base-color-primary-100)}.eui-label--secondary{color:var(--eui-base-color-grey-75)}.eui-label--info{color:var(--eui-base-color-info-100)}.eui-label--success{color:var(--eui-base-color-success-100)}.eui-label--warning{color:var(--eui-base-color-warning-130)}.eui-label--danger{color:var(--eui-base-color-danger-100)}\n"] }]
48
48
  }], ctorParameters: () => [], propDecorators: { cssClasses: [{
49
49
  type: HostBinding,
50
50
  args: ['class']
@@ -178,11 +178,11 @@ export class EuiPaginatorComponent {
178
178
  });
179
179
  }
180
180
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiPaginatorComponent, deps: [{ token: i1.EuiAppShellService }, { token: i2.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
181
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: EuiPaginatorComponent, selector: "eui-paginator", inputs: { e2eAttr: "e2eAttr", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", page: "page", length: "length", nbPageNumberNavigation: "nbPageNumberNavigation", 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 {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n fillColor=\"primary-100\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\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 <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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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</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-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.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "component", type: i4.EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: ["subDropdown", "isActive"] }, { kind: "directive", type: i4.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
181
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-rc.1", type: EuiPaginatorComponent, selector: "eui-paginator", inputs: { e2eAttr: "e2eAttr", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", page: "page", length: "length", nbPageNumberNavigation: "nbPageNumberNavigation", 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 {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS euiPrimary>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\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 <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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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</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-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.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "component", type: i4.EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: ["subDropdown", "isActive"] }, { kind: "directive", type: i4.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
182
182
  }
183
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ngImport: i0, type: EuiPaginatorComponent, decorators: [{
184
184
  type: Component,
185
- 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 {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n fillColor=\"primary-100\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\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 <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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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</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-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"] }]
185
+ 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 {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS euiPrimary>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\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 <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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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 [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\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</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-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"] }]
186
186
  }], ctorParameters: () => [{ type: i1.EuiAppShellService }, { type: i2.DecimalPipe }], propDecorators: { e2eAttr: [{
187
187
  type: HostBinding,
188
188
  args: ['attr.data-e2e']
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
210
210
  }], hasDynamicLength: [{
211
211
  type: Input
212
212
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktcGFnaW5hdG9yL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBhZ2luYXRvci9ldWktcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUVMLFlBQVksRUFDWixNQUFNLEVBR04sV0FBVyxFQUNYLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFTOUMsTUFBTSxPQUFPLHFCQUFxQjtJQVE5QixJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQVdELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFDLEtBQW1CO1FBQzNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksZ0JB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VSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQXdCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sUUFBUTtRQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDeEQsTUFBTSxFQUFFLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPLENBQUMsSUFBWTtRQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7c0lBdk1RLHFCQUFxQjswSEFBckIscUJBQXFCLDhiQUZuQixDQUFDLFdBQVcsQ0FBQywrQ0N6QjVCLGl3SkFrSEE7O2dHRHZGYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0ksZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsV0FBVyxDQUFDO2lIQUdlLE9BQU87c0JBQTdDLFdBQVc7dUJBQUMsZUFBZTs7c0JBQUcsS0FBSztnQkFDZCxNQUFNO3NCQUEzQixXQUFXO3VCQUFDLE9BQU87Z0JBQ1gsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVGLFFBQVE7c0JBRFgsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQVNILHVCQUF1QjtzQkFEMUIsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPdXRwdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcblxuaW1wb3J0IHsgRXVpUGFnaW5hdGlvbkV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbi1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBhZ2luYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKSBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1wYWdpbmF0b3InO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXBhZ2luYXRvcic7XG4gICAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDUwLCAxMDBdO1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XG4gICAgQElucHV0KCkgcGFnZSA9IDA7XG4gICAgQElucHV0KCkgbGVuZ3RoID0gMDtcbiAgICBASW5wdXQoKSBuYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uID0gNTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGlkZGVuO1xuICAgIH1cbiAgICBzZXQgaXNIaWRkZW4odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hpZGRlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIF9pc0hpZGRlbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV1aVBhZ2luYXRpb25FdmVudD4oKTtcblxuICAgIHB1YmxpYyBwYWdlJDogQmVoYXZpb3JTdWJqZWN0PEV1aVBhZ2luYXRpb25FdmVudD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICAgIHB1YmxpYyBsZW5ndGgkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gICAgcHVibGljIHJhbmdlOiBzdHJpbmc7XG4gICAgcHVibGljIHJhbmdlTGVuZ3RoOiBzdHJpbmc7XG4gICAgcHVibGljIG5iUGFnZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzUGFnZU51bWJlck5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzUGFnZU51bWJlck5hdmlnYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc0R5bmFtaWNMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEeW5hbWljTGVuZ3RoO1xuICAgIH1cbiAgICBzZXQgaGFzRHluYW1pY0xlbmd0aCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc0R5bmFtaWNMZW5ndGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNEeW5hbWljTGVuZ3RoID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG5iUGFnZU51bWJlck5hdjogbnVtYmVyO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBFdWlBcHBTaGVsbFNlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZWNpbWFsOiBEZWNpbWFsUGlwZSxcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjICYmIGMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCQubmV4dChjLmxlbmd0aC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjICYmIGMucGFnZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogYy5wYWdlLmN1cnJlbnRWYWx1ZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgJiYgYy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogYy5wYWdlU2l6ZS5jdXJyZW50VmFsdWUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2VTaXplKGMucGFnZVNpemUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KHRoaXMubGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuXG4gICAgICAgIHRoaXMubGVuZ3RoJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChsZW5ndGgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2UgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5oYXNEeW5hbWljTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubmJQYWdlIDwgdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBnZXQgcGFnZU51bWJlck5hdmlnYXRpb24oKTogbnVtYmVyW10ge1xuICAgICAgICBjb25zdCBwYWdlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubmJQYWdlOyBpKyspIHtcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goaSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWx0YSA9IE1hdGguZmxvb3IodGhpcy5uYlBhZ2VOdW1iZXJOYXYgLyAyKTtcbiAgICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgICAgaWYgKHRoaXMucGFnZSAtIGRlbHRhID4gMCkge1xuICAgICAgICAgICAgc3RhcnQgPSB0aGlzLnBhZ2UgLSBkZWx0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5iUGFnZSAtIHRoaXMucGFnZSA8PSB0aGlzLm5iUGFnZU51bWJlck5hdiAtIChkZWx0YSArIDEpKSB7XG4gICAgICAgICAgICBzdGFydCA9IHRoaXMubmJQYWdlIC0gdGhpcy5uYlBhZ2VOdW1iZXJOYXY7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMubmJQYWdlTnVtYmVyTmF2O1xuICAgICAgICByZXR1cm4gcGFnZXMuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVBhZ2VTaXplKHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2VTaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5uYlBhZ2UgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLm5iUGFnZSA8IHRoaXMubmJQYWdlTnVtYmVyTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvRmlyc3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29QcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZS0tO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29OZXh0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlKys7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb0xhc3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSB0aGlzLm5iUGFnZSAtIDE7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYWdlKHBhZ2U6IEV1aVBhZ2luYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQocGFnZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldExlbmd0aChsZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmxlbmd0aCQubmV4dChsZW5ndGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZnJvbSA9IHRoaXMubGVuZ3RoID4gMCA/IHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyAxIDogMDtcbiAgICAgICAgY29uc3QgbGltaXQgPSB0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZTtcbiAgICAgICAgY29uc3QgdG8gPSBsaW1pdCA8PSB0aGlzLmxlbmd0aCA/IGxpbWl0IDogdGhpcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucmFuZ2UgPSBmcm9tICYmIHRvICYmIHRoaXMubGVuZ3RoID8gdGhpcy5kZWNpbWFsLnRyYW5zZm9ybShmcm9tKSArICfigJMnICsgdGhpcy5kZWNpbWFsLnRyYW5zZm9ybSh0bykgOiAnJztcbiAgICAgICAgdGhpcy5yYW5nZUxlbmd0aCA9IHRoaXMubGVuZ3RoID8gdGhpcy5sZW5ndGgudG9TdHJpbmcoKSA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSB0aGUgcGFnaW5hdGlvbiB0byB0aGUgZ2l2ZW4gcGFnZSBudW1iZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdlIDAtYmFzZWQgcGFnZSBudW1iZXIgdG8gYmUgZGlzcGxheWVkXG4gICAgICovXG4gICAgcHVibGljIGdldFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZShwYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFpc0hpZGRlbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1zZWxlY3RvclwiPlxuICAgICAgICB7eyAnZXVpLmV1aXRhYmxlLklURU1TLVBFUi1QQUdFJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPGV1aS1kcm9wZG93bj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGV1aUJ1dHRvbiBldWlCYXNpY0J1dHRvbiBldWlTaXplUz5cbiAgICAgICAgICAgICAgICA8c3BhbiBldWlMYWJlbFxuICAgICAgICAgICAgICAgICAgICA+PHN0cm9uZz57eyBwYWdlU2l6ZSB8IG51bWJlciB9fTwvc3Ryb25nPjwvc3BhblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJldWktY2FyZXQtZG93blwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGxDb2xvcj1cInByaW1hcnktMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IEl0ZW1zIHBlciBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdS1tbC0yeHNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGV1aS1kcm9wZG93bi1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2VTaXplT3B0aW9uIG9mIHBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZVNpemUocGFnZVNpemVPcHRpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwYWdlU2l6ZU9wdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIobGVuZ3RoJCB8IGFzeW5jKSA+IDBcIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtcmFuZ2VcIj5cbiAgICAgICAge3sgJ2V1aS5ldWl0YWJsZS5TSE9XSU5HLVJBTkdFJyB8IHRyYW5zbGF0ZTogeyByYW5nZTogcmFuZ2UgfSB9fSB7eyAnZXVpLmV1aXRhYmxlLlJBTkdFLUxBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICB7eyByYW5nZUxlbmd0aCB8IG51bWJlciB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhaXNIaWRkZW5cIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIlxuICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwicGFnZSA9PT0gMCB8fCBsZW5ndGggPT09IDAgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29GaXJzdFBhZ2UoKVwiPlxuICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNhcmV0LWZpcnN0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIGZpcnN0IHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlID09PSAwIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb1ByZXZpb3VzUGFnZSgpXCI+XG4gICAgICAgICAgICA8IS0tIHRvIGJlIGNvbXBsaWFudCB3aXRoIERTIGFzIHBsYXktYmFjayBpcyBub3QgZXhpc3RpbmcgaW4gaW9uaWNvbnMgLS0+XG4gICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtbGVmdFwiIGFyaWEtbGFiZWw9XCJHbyB0byBwcmV2aW91cyBwYWdlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24tbnVtYmVyc1wiXG4gICAgICAgICpuZ0lmPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlTnVtYmVyIG9mIHBhZ2VOdW1iZXJOYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIFtldWlPdXRsaW5lXT1cInBhZ2VOdW1iZXIgPT09IHBhZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHBhZ2VOdW1iZXIpXCI+XG4gICAgICAgICAgICB7eyBwYWdlTnVtYmVyICsgMSB8IG51bWJlciB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGxlbmd0aCQgfCBhc3luYykgPiAwICYmIChFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLXJhbmdlXCI+XG4gICAgICAgIHt7IHJhbmdlIH19IHt7ICdldWkuZXVpdGFibGUuUkFOR0UtTEFCRUwnIHwgdHJhbnNsYXRlIH19IHt7IHJhbmdlTGVuZ3RoIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb05leHRQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1yaWdodFwiIGFyaWEtbGFiZWw9XCJHbyB0byBuZXh0IHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0xhc3RQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sYXN0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIGxhc3QgcGFnZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktcGFnaW5hdG9yL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBhZ2luYXRvci9ldWktcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUVMLFlBQVksRUFDWixNQUFNLEVBR04sV0FBVyxFQUNYLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFTOUMsTUFBTSxPQUFPLHFCQUFxQjtJQVE5QixJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLEtBQW1CO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQVdELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFDLEtBQW1CO1FBQzNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksZ0JB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VSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQXdCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBYztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sUUFBUTtRQUNYLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDeEQsTUFBTSxFQUFFLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxPQUFPLENBQUMsSUFBWTtRQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7c0lBdk1RLHFCQUFxQjswSEFBckIscUJBQXFCLDhiQUZuQixDQUFDLFdBQVcsQ0FBQywrQ0N6QjVCLDZ0SkFpSEE7O2dHRHRGYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBQ0ksZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsV0FBVyxDQUFDO2lIQUdlLE9BQU87c0JBQTdDLFdBQVc7dUJBQUMsZUFBZTs7c0JBQUcsS0FBSztnQkFDZCxNQUFNO3NCQUEzQixXQUFXO3VCQUFDLE9BQU87Z0JBQ1gsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUVGLFFBQVE7c0JBRFgsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQVNILHVCQUF1QjtzQkFEMUIsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPdXRwdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRXVpQXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcblxuaW1wb3J0IHsgRXVpUGFnaW5hdGlvbkV2ZW50IH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbi1ldmVudC5tb2RlbCc7XG5pbXBvcnQgeyBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLXBhZ2luYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKSBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1wYWdpbmF0b3InO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXBhZ2luYXRvcic7XG4gICAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDUwLCAxMDBdO1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XG4gICAgQElucHV0KCkgcGFnZSA9IDA7XG4gICAgQElucHV0KCkgbGVuZ3RoID0gMDtcbiAgICBASW5wdXQoKSBuYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uID0gNTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGlkZGVuO1xuICAgIH1cbiAgICBzZXQgaXNIaWRkZW4odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hpZGRlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIF9pc0hpZGRlbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV1aVBhZ2luYXRpb25FdmVudD4oKTtcblxuICAgIHB1YmxpYyBwYWdlJDogQmVoYXZpb3JTdWJqZWN0PEV1aVBhZ2luYXRpb25FdmVudD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICAgIHB1YmxpYyBsZW5ndGgkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gICAgcHVibGljIHJhbmdlOiBzdHJpbmc7XG4gICAgcHVibGljIHJhbmdlTGVuZ3RoOiBzdHJpbmc7XG4gICAgcHVibGljIG5iUGFnZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzUGFnZU51bWJlck5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzUGFnZU51bWJlck5hdmlnYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc0R5bmFtaWNMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEeW5hbWljTGVuZ3RoO1xuICAgIH1cbiAgICBzZXQgaGFzRHluYW1pY0xlbmd0aCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc0R5bmFtaWNMZW5ndGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNEeW5hbWljTGVuZ3RoID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG5iUGFnZU51bWJlck5hdjogbnVtYmVyO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBFdWlBcHBTaGVsbFNlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZWNpbWFsOiBEZWNpbWFsUGlwZSxcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjICYmIGMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCQubmV4dChjLmxlbmd0aC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjICYmIGMucGFnZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogYy5wYWdlLmN1cnJlbnRWYWx1ZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgJiYgYy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogYy5wYWdlU2l6ZS5jdXJyZW50VmFsdWUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2VTaXplKGMucGFnZVNpemUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KHRoaXMubGVuZ3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuXG4gICAgICAgIHRoaXMubGVuZ3RoJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChsZW5ndGgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2UgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5oYXNEeW5hbWljTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMubmJQYWdlIDwgdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBnZXQgcGFnZU51bWJlck5hdmlnYXRpb24oKTogbnVtYmVyW10ge1xuICAgICAgICBjb25zdCBwYWdlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubmJQYWdlOyBpKyspIHtcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goaSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZWx0YSA9IE1hdGguZmxvb3IodGhpcy5uYlBhZ2VOdW1iZXJOYXYgLyAyKTtcbiAgICAgICAgbGV0IHN0YXJ0ID0gMDtcbiAgICAgICAgaWYgKHRoaXMucGFnZSAtIGRlbHRhID4gMCkge1xuICAgICAgICAgICAgc3RhcnQgPSB0aGlzLnBhZ2UgLSBkZWx0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5iUGFnZSAtIHRoaXMucGFnZSA8PSB0aGlzLm5iUGFnZU51bWJlck5hdiAtIChkZWx0YSArIDEpKSB7XG4gICAgICAgICAgICBzdGFydCA9IHRoaXMubmJQYWdlIC0gdGhpcy5uYlBhZ2VOdW1iZXJOYXY7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgICAgICAgICBzdGFydCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMubmJQYWdlTnVtYmVyTmF2O1xuICAgICAgICByZXR1cm4gcGFnZXMuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZVBhZ2VTaXplKHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2VTaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5uYlBhZ2UgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICAgICAgdGhpcy5wYWdlID0gMDtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLm5iUGFnZSA8IHRoaXMubmJQYWdlTnVtYmVyTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmJQYWdlTnVtYmVyTmF2ID0gdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlID0gcGFnZTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvRmlyc3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29QcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZS0tO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29OZXh0UGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlKys7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb0xhc3RQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSB0aGlzLm5iUGFnZSAtIDE7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRQYWdlKHBhZ2U6IEV1aVBhZ2luYXRpb25FdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQocGFnZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldExlbmd0aChsZW5ndGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmxlbmd0aCQubmV4dChsZW5ndGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZnJvbSA9IHRoaXMubGVuZ3RoID4gMCA/IHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyAxIDogMDtcbiAgICAgICAgY29uc3QgbGltaXQgPSB0aGlzLnBhZ2UgKiB0aGlzLnBhZ2VTaXplICsgdGhpcy5wYWdlU2l6ZTtcbiAgICAgICAgY29uc3QgdG8gPSBsaW1pdCA8PSB0aGlzLmxlbmd0aCA/IGxpbWl0IDogdGhpcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucmFuZ2UgPSBmcm9tICYmIHRvICYmIHRoaXMubGVuZ3RoID8gdGhpcy5kZWNpbWFsLnRyYW5zZm9ybShmcm9tKSArICfigJMnICsgdGhpcy5kZWNpbWFsLnRyYW5zZm9ybSh0bykgOiAnJztcbiAgICAgICAgdGhpcy5yYW5nZUxlbmd0aCA9IHRoaXMubGVuZ3RoID8gdGhpcy5sZW5ndGgudG9TdHJpbmcoKSA6ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZSB0aGUgcGFnaW5hdGlvbiB0byB0aGUgZ2l2ZW4gcGFnZSBudW1iZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdlIDAtYmFzZWQgcGFnZSBudW1iZXIgdG8gYmUgZGlzcGxheWVkXG4gICAgICovXG4gICAgcHVibGljIGdldFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nb1RvUGFnZShwYWdlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFpc0hpZGRlbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1zZWxlY3RvclwiPlxuICAgICAgICB7eyAnZXVpLmV1aXRhYmxlLklURU1TLVBFUi1QQUdFJyB8IHRyYW5zbGF0ZSB9fTpcbiAgICAgICAgPGV1aS1kcm9wZG93bj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGV1aUJ1dHRvbiBldWlCYXNpY0J1dHRvbiBldWlTaXplUyBldWlQcmltYXJ5PlxuICAgICAgICAgICAgICAgIDxzcGFuIGV1aUxhYmVsXG4gICAgICAgICAgICAgICAgICAgID48c3Ryb25nPnt7IHBhZ2VTaXplIHwgbnVtYmVyIH19PC9zdHJvbmc+PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1jYXJldC1kb3duXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IEl0ZW1zIHBlciBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdS1tbC0yeHNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGV1aS1kcm9wZG93bi1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2VTaXplT3B0aW9uIG9mIHBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZVNpemUocGFnZVNpemVPcHRpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwYWdlU2l6ZU9wdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIobGVuZ3RoJCB8IGFzeW5jKSA+IDBcIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtcmFuZ2VcIj5cbiAgICAgICAge3sgJ2V1aS5ldWl0YWJsZS5TSE9XSU5HLVJBTkdFJyB8IHRyYW5zbGF0ZTogeyByYW5nZTogcmFuZ2UgfSB9fSB7eyAnZXVpLmV1aXRhYmxlLlJBTkdFLUxBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICB7eyByYW5nZUxlbmd0aCB8IG51bWJlciB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhaXNIaWRkZW5cIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIlxuICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwicGFnZSA9PT0gMCB8fCBsZW5ndGggPT09IDAgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29GaXJzdFBhZ2UoKVwiPlxuICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWNhcmV0LWZpcnN0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIGZpcnN0IHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlID09PSAwIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb1ByZXZpb3VzUGFnZSgpXCI+XG4gICAgICAgICAgICA8IS0tIHRvIGJlIGNvbXBsaWFudCB3aXRoIERTIGFzIHBsYXktYmFjayBpcyBub3QgZXhpc3RpbmcgaW4gaW9uaWNvbnMgLS0+XG4gICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtbGVmdFwiIGFyaWEtbGFiZWw9XCJHbyB0byBwcmV2aW91cyBwYWdlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24tbnVtYmVyc1wiXG4gICAgICAgICpuZ0lmPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlTnVtYmVyIG9mIHBhZ2VOdW1iZXJOYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIFtldWlPdXRsaW5lXT1cInBhZ2VOdW1iZXIgPT09IHBhZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHBhZ2VOdW1iZXIpXCI+XG4gICAgICAgICAgICB7eyBwYWdlTnVtYmVyICsgMSB8IG51bWJlciB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGxlbmd0aCQgfCBhc3luYykgPiAwICYmIChFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLXJhbmdlXCI+XG4gICAgICAgIHt7IHJhbmdlIH19IHt7ICdldWkuZXVpdGFibGUuUkFOR0UtTEFCRUwnIHwgdHJhbnNsYXRlIH19IHt7IHJhbmdlTGVuZ3RoIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb05leHRQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1yaWdodFwiIGFyaWEtbGFiZWw9XCJHbyB0byBuZXh0IHBhZ2VcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBldWlQcmltYXJ5XG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0xhc3RQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sYXN0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIGxhc3QgcGFnZVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19