@eui/components 18.0.2-snapshot-1718810080189 → 18.0.2-snapshot-1719036664854
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.
- package/docs/components/EuiChipListComponent.html +1 -1
- package/docs/components/EuiFeedbackMessageComponent.html +41 -4
- package/docs/dependencies.html +2 -2
- package/docs/js/menu-wc.js +3 -3
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/modules/EuiFeedbackMessageModule.html +10 -0
- package/esm2022/eui-chip-list/eui-chip-list.component.mjs +7 -8
- package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +14 -6
- package/esm2022/eui-feedback-message/eui-feedback-message.module.mjs +6 -4
- package/esm2022/eui-fieldset/eui-fieldset.component.mjs +2 -2
- package/esm2022/eui-input-group/eui-input-group.component.mjs +2 -2
- package/esm2022/eui-page/eui-page.component.mjs +2 -2
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +3 -3
- package/esm2022/eui-table/eui-table.component.mjs +2 -2
- package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +1 -1
- package/esm2022/eui-table-v2/eui-table-v2.component.mjs +2 -2
- package/esm2022/eui-tabs/eui-tabs.component.mjs +2 -2
- package/eui-feedback-message/eui-feedback-message.component.d.ts +3 -1
- package/eui-feedback-message/eui-feedback-message.component.d.ts.map +1 -1
- package/eui-feedback-message/eui-feedback-message.module.d.ts +2 -1
- package/eui-feedback-message/eui-feedback-message.module.d.ts.map +1 -1
- package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-chip-list.mjs +7 -8
- package/fesm2022/eui-components-eui-chip-list.mjs.map +1 -1
- package/fesm2022/eui-components-eui-feedback-message.mjs +17 -8
- package/fesm2022/eui-components-eui-feedback-message.mjs.map +1 -1
- package/fesm2022/eui-components-eui-fieldset.mjs +2 -2
- package/fesm2022/eui-components-eui-fieldset.mjs.map +1 -1
- package/fesm2022/eui-components-eui-input-group.mjs +2 -2
- package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
- package/fesm2022/eui-components-eui-page.mjs +2 -2
- package/fesm2022/eui-components-eui-page.mjs.map +1 -1
- package/fesm2022/eui-components-eui-sidebar-menu.mjs +2 -2
- package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table-v2.mjs +2 -2
- package/fesm2022/eui-components-eui-table-v2.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table.mjs +3 -3
- package/fesm2022/eui-components-eui-table.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tabs.mjs +1 -1
- package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
- package/package.json +3 -3
@@ -480,7 +480,7 @@ export class EuiTableV2Component {
|
|
480
480
|
return prop ? prop.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), obj || self) : null;
|
481
481
|
}
|
482
482
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: EuiTableV2Component, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.EuiTableV2SelectableRowService }, { token: i2.EuiTableV2SortService }, { token: i3.BaseStatesDirective }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
483
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: EuiTableV2Component, selector: "eui-table-v2, table[euiTableV2]", inputs: { data: "data", propId: "propId", itemSize: "itemSize", paginator: "paginator", filter: "filter", preselectedRows: "preselectedRows", isVirtualScroll: ["isVirtualScroll", "isVirtualScroll", booleanAttribute], isVirtualScrollCache: ["isVirtualScrollCache", "isVirtualScrollCache", booleanAttribute], hasStickyHeader: ["hasStickyHeader", "hasStickyHeader", booleanAttribute], hasStickyFooter: ["hasStickyFooter", "hasStickyFooter", booleanAttribute], hasStickyCols: ["hasStickyCols", "hasStickyCols", booleanAttribute], isTableResponsive: ["isTableResponsive", "isTableResponsive", booleanAttribute], isAsync: ["isAsync", "isAsync", booleanAttribute], virtualScrollAsyncItemsLength: ["virtualScrollAsyncItemsLength", "virtualScrollAsyncItemsLength", numberAttribute], virtualScrollNbRows: ["virtualScrollNbRows", "virtualScrollNbRows", numberAttribute], isColsOrderable: ["isColsOrderable", "isColsOrderable", booleanAttribute], isLoading: ["isLoading", "isLoading", booleanAttribute], isSelectOnlyVisibleRows: ["isSelectOnlyVisibleRows", "isSelectOnlyVisibleRows", booleanAttribute], isTableBordered: ["isTableBordered", "isTableBordered", booleanAttribute], isTableCondensed: ["isTableCondensed", "isTableCondensed", booleanAttribute] }, outputs: { scrollChange: "scrollChange", rowsSelect: "rowsSelect", sortChange: "sortChange" }, host: { properties: { "class": "this.cssClasses" } }, providers: [EuiTableV2SelectableRowService, EuiTableV2SortService], queries: [{ propertyName: "templates", predicate: EuiTemplateDirective }], viewQueries: [{ propertyName: "cdkVirtualScrollViewport", first: true, predicate: ["cdkVirtualScrollViewport"], descendants: true }, { propertyName: "cdkVirtualScrollViewportElement", first: true, predicate: ["cdkVirtualScrollViewportElement"], descendants: true, read: ElementRef }, { propertyName: "theadRef", first: true, predicate: ["theadRef"], descendants: true }, { propertyName: "tbodyRef", first: true, predicate: ["tbodyRef"], descendants: true }, { propertyName: "tfootRef", first: true, predicate: ["tfootRef"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i3.BaseStatesDirective }], ngImport: i0, template: "<!-- <button (click)=\"test(19250)\">19250</button>\n<button (click)=\"test(7895)\">7895</button>\n<button (click)=\"test(16860)\">16860</button>\n<button (click)=\"test(16870)\">16870</button>\n<button (click)=\"test(16880)\">16880</button>\n<button (click)=\"test(16890)\">16890</button>\n<button (click)=\"test(16900)\">16900</button>\n<button (click)=\"test(26998)\">26998</button>\n<button (click)=\"test(28000)\">28000</button> -->\n@if (isVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #cdkVirtualScrollViewport\n #cdkVirtualScrollViewportElement\n class=\"eui-table-v2__scroll-viewport\"\n [itemSize]=\"itemSize\"\n [style.overflow]=\"cdkVirtualScrollViewportOverflowValue\"\n tabindex=\"0\">\n <table class=\"{{ cssClasses }}\" [style.width]=\"hostWidth\">\n @if (headerTemplate) {\n <thead #theadRef [style.top]=\"stickyHeaderTopPosition\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n <ng-container *cdkVirtualFor=\"let row of dataRendered; let i = index; trackBy: trackByFn\">\n @if (row) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"skeletonLoading\"></ng-template>\n }\n </ng-container>\n\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef [style.bottom]=\"stickyFooterBottomPosition\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n} @else {\n @if (headerTemplate) {\n <thead #theadRef>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n @for (row of dataRendered; let i = $index; track row) {\n <ng-container>\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n </ng-container>\n }\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n}\n\n<ng-template #skeletonLoading>\n <tr [style.height.px]=\"itemSize\">\n <td *ngFor=\"let __ of nbCols\"><eui-skeleton line euiRounded></eui-skeleton></td>\n </tr>\n</ng-template>\n", styles: [".eui-table-v2__scroll-viewport{min-height:100%;width:100%}.eui-table-v2__orderable-cols-preview,.eui-table-v2__orderable-rows-preview{display:none}.eui-table-v2__scrollable-wrapper{overflow:auto}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-c-neutral-bg-light)}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}@-moz-document url-prefix(){.eui-table-v2__scrollable-wrapper{scrollbar-color:var(--eui-c-neutral-bg-light);scrollbar-width:thin}}.eui-table-v2--condensed thead tr th{padding:var(--eui-s-2xs) var(--eui-s-xs);font:var(--eui-f-s-bold)}.eui-table-v2--condensed tbody tr td,.eui-table-v2--condensed tfoot tr td{padding:var(--eui-s-2xs) var(--eui-s-xs);font:var(--eui-f-s)}.eui-table-v2--highlighted{background-color:var(--eui-c-accent);text-decoration:none}.eui-table-v2--virtual-scroll{width:100%;height:100%}.eui-table-v2--cols-orderable .cdk-drag-placeholder{background-color:var(--eui-c-white);color:var(--eui-c-info);cursor:move;opacity:1}.eui-table-v2--cols-orderable tr{display:table-row}.eui-table-v2--cols-orderable tr th.cdk-drag:not(.cdk-drag-disabled){cursor:move}.eui-table-v2--loading:before{animation:.8s linear infinite spin;border:8px solid transparent;border-radius:50%;border-top-color:var(--eui-c-primary);content:\"\";display:block;height:80px;left:50%;margin:-40px 0 0 -40px;position:absolute;top:50%;width:80px;z-index:1000001}.eui-table-v2--loading:after{background-color:#fff6;content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.eui-table-v2--sticky{max-width:none!important}.eui-table-v2--sticky-header thead{position:sticky;top:0;z-index:8}.eui-table-v2--sticky-header thead th,.eui-table-v2--sticky-header thead td{background-color:inherit}.eui-table-v2--sticky-header.eui-table-v2-sticky-col thead{z-index:9}.eui-table-v2--sticky tbody tr:nth-of-type(odd) td{background-color:inherit}.eui-table-v2--sticky tbody tr:nth-of-type(2n) td{background-color:inherit}.eui-table-v2--sticky-footer tfoot{position:sticky;bottom:-1px;z-index:8}.eui-table-v2--sticky-footer tfoot tr td{background-color:inherit}.eui-table-v2--sticky-cols .eui-table-v2__col--sticky{position:sticky;z-index:1}.eui-table-v2--sticky-cols th.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first,.eui-table-v2--sticky-cols tbody td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first,.eui-table-v2--sticky-cols tfoot td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first{box-shadow:inset -5px 0 8px -8px #0003}.eui-table-v2--sticky-cols th.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last,.eui-table-v2--sticky-cols tbody td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last,.eui-table-v2--sticky-cols tfoot td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last{box-shadow:inset 5px 0 8px -8px #0003}.eui-table-v2__row--selected td{background-color:var(--eui-c-primary-lightest)}@media screen and (max-width: 767px){.eui-table-v2.eui-table-default--responsive{width:100%!important}.eui-table-v2.eui-table-default--responsive thead,.eui-table-v2.eui-table-default--responsive tbody,.eui-table-v2.eui-table-default--responsive tfoot,.eui-table-v2.eui-table-default--responsive th,.eui-table-v2.eui-table-default--responsive td,.eui-table-v2.eui-table-default--responsive tr{display:block}.eui-table-v2.eui-table-default--responsive thead tr{left:-9999px;position:absolute;top:-9999px}.eui-table-v2.eui-table-default--responsive tr{height:auto}.eui-table-v2.eui-table-default--responsive td{border:var(--eui-bw-none);border-bottom:1px solid var(--eui-c-neutral-bg);padding-left:50%;position:relative;text-align:left!important;left:unset!important;right:unset!important}.eui-table-v2.eui-table-default--responsive td:before{color:var(--eui-c-neutral-light);content:attr(data-col-label);left:var(--eui-s-xs);padding-right:var(--eui-s-xs);position:absolute;width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--eui-f-m-bold)}.eui-table-v2.eui-table-default--responsive tfoot tr td:empty{display:none!important}.eui-table-v2 .actionsColumn,.eui-table-v2 .actions-column{justify-content:flex-start;text-align:left;width:100%}.eui-table-v2__sticky-container{height:auto;width:auto!important}.eui-table-v2--sticky-cols th,.eui-table-v2--sticky-cols td,.eui-table-v2--sticky-cols th .eui-table__col--sticky,.eui-table-v2--sticky-cols td .eui-table__col--sticky{width:auto;z-index:auto}.eui-table-v2--sticky-cols th .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table-v2--sticky-cols th .eui-table__col--sticky.eui-table__col--sticky-shadowed-last,.eui-table-v2--sticky-cols td .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table-v2--sticky-cols td .eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:none!important}.eui-table-v2--sticky-cols tfoot tr td:empty{display:none!important}}.eui-table-v2__filter{align-items:center;display:flex;justify-content:flex-end;position:relative}.eui-table-v2__filter--responsive{width:100%}.eui-table-v2__filter-input{padding-left:var(--eui-s-2xl)!important}.eui-table-v2__filter-search-icon{left:var(--eui-s-xs);position:absolute;top:calc(var(--eui-s-xs) + 2px)}.eui-table-v2__sortable-col-multisort-index{font:var(--eui-f-s)}.eui-table-v2__sortable-col .eui-table-v2__sortable-col-content{align-items:center;display:flex;vertical-align:middle;white-space:nowrap;justify-content:space-between}.eui-table-v2__sortable-col .eui-table-v2__sortable-col-content .eui-table-v2__sortable-col-content-label{align-items:center;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i5.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i6.EuiSkeletonComponent, selector: "eui-skeleton", inputs: ["circle", "line", "square", "rectangle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
483
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: EuiTableV2Component, selector: "eui-table-v2, table[euiTableV2]", inputs: { data: "data", propId: "propId", itemSize: "itemSize", paginator: "paginator", filter: "filter", preselectedRows: "preselectedRows", isVirtualScroll: ["isVirtualScroll", "isVirtualScroll", booleanAttribute], isVirtualScrollCache: ["isVirtualScrollCache", "isVirtualScrollCache", booleanAttribute], hasStickyHeader: ["hasStickyHeader", "hasStickyHeader", booleanAttribute], hasStickyFooter: ["hasStickyFooter", "hasStickyFooter", booleanAttribute], hasStickyCols: ["hasStickyCols", "hasStickyCols", booleanAttribute], isTableResponsive: ["isTableResponsive", "isTableResponsive", booleanAttribute], isAsync: ["isAsync", "isAsync", booleanAttribute], virtualScrollAsyncItemsLength: ["virtualScrollAsyncItemsLength", "virtualScrollAsyncItemsLength", numberAttribute], virtualScrollNbRows: ["virtualScrollNbRows", "virtualScrollNbRows", numberAttribute], isColsOrderable: ["isColsOrderable", "isColsOrderable", booleanAttribute], isLoading: ["isLoading", "isLoading", booleanAttribute], isSelectOnlyVisibleRows: ["isSelectOnlyVisibleRows", "isSelectOnlyVisibleRows", booleanAttribute], isTableBordered: ["isTableBordered", "isTableBordered", booleanAttribute], isTableCondensed: ["isTableCondensed", "isTableCondensed", booleanAttribute] }, outputs: { scrollChange: "scrollChange", rowsSelect: "rowsSelect", sortChange: "sortChange" }, host: { properties: { "class": "this.cssClasses" } }, providers: [EuiTableV2SelectableRowService, EuiTableV2SortService], queries: [{ propertyName: "templates", predicate: EuiTemplateDirective }], viewQueries: [{ propertyName: "cdkVirtualScrollViewport", first: true, predicate: ["cdkVirtualScrollViewport"], descendants: true }, { propertyName: "cdkVirtualScrollViewportElement", first: true, predicate: ["cdkVirtualScrollViewportElement"], descendants: true, read: ElementRef }, { propertyName: "theadRef", first: true, predicate: ["theadRef"], descendants: true }, { propertyName: "tbodyRef", first: true, predicate: ["tbodyRef"], descendants: true }, { propertyName: "tfootRef", first: true, predicate: ["tfootRef"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i3.BaseStatesDirective }], ngImport: i0, template: "<!-- <button (click)=\"test(19250)\">19250</button>\n<button (click)=\"test(7895)\">7895</button>\n<button (click)=\"test(16860)\">16860</button>\n<button (click)=\"test(16870)\">16870</button>\n<button (click)=\"test(16880)\">16880</button>\n<button (click)=\"test(16890)\">16890</button>\n<button (click)=\"test(16900)\">16900</button>\n<button (click)=\"test(26998)\">26998</button>\n<button (click)=\"test(28000)\">28000</button> -->\n@if (isVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #cdkVirtualScrollViewport\n #cdkVirtualScrollViewportElement\n class=\"eui-table-v2__scroll-viewport\"\n [itemSize]=\"itemSize\"\n [style.overflow]=\"cdkVirtualScrollViewportOverflowValue\"\n tabindex=\"0\">\n <table class=\"{{ cssClasses }}\" [style.width]=\"hostWidth\">\n @if (headerTemplate) {\n <thead #theadRef [style.top]=\"stickyHeaderTopPosition\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n <ng-container *cdkVirtualFor=\"let row of dataRendered; let i = index; trackBy: trackByFn\">\n @if (row) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"skeletonLoading\"></ng-template>\n }\n </ng-container>\n\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef [style.bottom]=\"stickyFooterBottomPosition\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n} @else {\n @if (headerTemplate) {\n <thead #theadRef>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n @for (row of dataRendered; let i = $index; track row) {\n <ng-container>\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n </ng-container>\n }\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n}\n\n<ng-template #skeletonLoading>\n <tr [style.height.px]=\"itemSize\">\n <td *ngFor=\"let __ of nbCols\"><eui-skeleton line euiRounded></eui-skeleton></td>\n </tr>\n</ng-template>\n", styles: [".eui-table-v2__scroll-viewport{min-height:100%;width:100%}.eui-table-v2__scrollable-wrapper{overflow:auto;will-change:transform}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-c-neutral-bg-light)}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}@-moz-document url-prefix(){.eui-table-v2__scrollable-wrapper{scrollbar-color:var(--eui-c-neutral-bg-light);scrollbar-width:thin}}.eui-table-v2__orderable-cols-preview,.eui-table-v2__orderable-rows-preview{display:none}.eui-table-v2--condensed thead tr th{padding:var(--eui-s-2xs) var(--eui-s-xs);font:var(--eui-f-s-bold)}.eui-table-v2--condensed tbody tr td,.eui-table-v2--condensed tfoot tr td{padding:var(--eui-s-2xs) var(--eui-s-xs);font:var(--eui-f-s)}.eui-table-v2--highlighted{background-color:var(--eui-c-accent);text-decoration:none}.eui-table-v2--virtual-scroll{width:100%;height:100%}.eui-table-v2--cols-orderable .cdk-drag-placeholder{background-color:var(--eui-c-white);color:var(--eui-c-info);cursor:move;opacity:1}.eui-table-v2--cols-orderable tr{display:table-row}.eui-table-v2--cols-orderable tr th.cdk-drag:not(.cdk-drag-disabled){cursor:move}.eui-table-v2--loading:before{animation:.8s linear infinite spin;border:8px solid transparent;border-radius:50%;border-top-color:var(--eui-c-primary);content:\"\";display:block;height:80px;left:50%;margin:-40px 0 0 -40px;position:absolute;top:50%;width:80px;z-index:1000001}.eui-table-v2--loading:after{background-color:#fff6;content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.eui-table-v2--sticky{max-width:none!important}.eui-table-v2--sticky-header thead{position:sticky;top:0;z-index:8}.eui-table-v2--sticky-header thead th,.eui-table-v2--sticky-header thead td{background-color:inherit}.eui-table-v2--sticky-header.eui-table-v2-sticky-col thead{z-index:9}.eui-table-v2--sticky tbody tr:nth-of-type(odd) td{background-color:inherit}.eui-table-v2--sticky tbody tr:nth-of-type(2n) td{background-color:inherit}.eui-table-v2--sticky-footer tfoot{position:sticky;bottom:-1px;z-index:8}.eui-table-v2--sticky-footer tfoot tr td{background-color:inherit}.eui-table-v2--sticky-cols .eui-table-v2__col--sticky{position:sticky;z-index:1}.eui-table-v2--sticky-cols th.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first,.eui-table-v2--sticky-cols tbody td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first,.eui-table-v2--sticky-cols tfoot td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first{box-shadow:inset -5px 0 8px -8px #0003}.eui-table-v2--sticky-cols th.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last,.eui-table-v2--sticky-cols tbody td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last,.eui-table-v2--sticky-cols tfoot td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last{box-shadow:inset 5px 0 8px -8px #0003}.eui-table-v2__row--selected td{background-color:var(--eui-c-primary-lightest)}@media screen and (max-width: 767px){.eui-table-v2.eui-table-default--responsive{width:100%!important}.eui-table-v2.eui-table-default--responsive thead,.eui-table-v2.eui-table-default--responsive tbody,.eui-table-v2.eui-table-default--responsive tfoot,.eui-table-v2.eui-table-default--responsive th,.eui-table-v2.eui-table-default--responsive td,.eui-table-v2.eui-table-default--responsive tr{display:block}.eui-table-v2.eui-table-default--responsive thead tr{left:-9999px;position:absolute;top:-9999px}.eui-table-v2.eui-table-default--responsive tr{height:auto}.eui-table-v2.eui-table-default--responsive td{border:var(--eui-bw-none);border-bottom:1px solid var(--eui-c-neutral-bg);padding-left:50%;position:relative;text-align:left!important;left:unset!important;right:unset!important}.eui-table-v2.eui-table-default--responsive td:before{color:var(--eui-c-neutral-light);content:attr(data-col-label);left:var(--eui-s-xs);padding-right:var(--eui-s-xs);position:absolute;width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--eui-f-m-bold)}.eui-table-v2.eui-table-default--responsive tfoot tr td:empty{display:none!important}.eui-table-v2 .actionsColumn,.eui-table-v2 .actions-column{justify-content:flex-start;text-align:left;width:100%}.eui-table-v2__sticky-container{height:auto;width:auto!important}.eui-table-v2--sticky-cols th,.eui-table-v2--sticky-cols td,.eui-table-v2--sticky-cols th .eui-table__col--sticky,.eui-table-v2--sticky-cols td .eui-table__col--sticky{width:auto;z-index:auto}.eui-table-v2--sticky-cols th .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table-v2--sticky-cols th .eui-table__col--sticky.eui-table__col--sticky-shadowed-last,.eui-table-v2--sticky-cols td .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table-v2--sticky-cols td .eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:none!important}.eui-table-v2--sticky-cols tfoot tr td:empty{display:none!important}}.eui-table-v2__filter{align-items:center;display:flex;justify-content:flex-end;position:relative}.eui-table-v2__filter--responsive{width:100%}.eui-table-v2__filter-input{padding-left:var(--eui-s-2xl)!important}.eui-table-v2__filter-search-icon{left:var(--eui-s-xs);position:absolute;top:calc(var(--eui-s-xs) + 2px)}.eui-table-v2__sortable-col-multisort-index{font:var(--eui-f-s)}.eui-table-v2__sortable-col .eui-table-v2__sortable-col-content{align-items:center;display:flex;vertical-align:middle;white-space:nowrap;justify-content:space-between}.eui-table-v2__sortable-col .eui-table-v2__sortable-col-content .eui-table-v2__sortable-col-content-label{align-items:center;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i5.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i6.EuiSkeletonComponent, selector: "eui-skeleton", inputs: ["circle", "line", "square", "rectangle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
484
484
|
}
|
485
485
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: EuiTableV2Component, decorators: [{
|
486
486
|
type: Component,
|
@@ -489,7 +489,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
489
489
|
directive: BaseStatesDirective,
|
490
490
|
inputs: [],
|
491
491
|
},
|
492
|
-
], template: "<!-- <button (click)=\"test(19250)\">19250</button>\n<button (click)=\"test(7895)\">7895</button>\n<button (click)=\"test(16860)\">16860</button>\n<button (click)=\"test(16870)\">16870</button>\n<button (click)=\"test(16880)\">16880</button>\n<button (click)=\"test(16890)\">16890</button>\n<button (click)=\"test(16900)\">16900</button>\n<button (click)=\"test(26998)\">26998</button>\n<button (click)=\"test(28000)\">28000</button> -->\n@if (isVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #cdkVirtualScrollViewport\n #cdkVirtualScrollViewportElement\n class=\"eui-table-v2__scroll-viewport\"\n [itemSize]=\"itemSize\"\n [style.overflow]=\"cdkVirtualScrollViewportOverflowValue\"\n tabindex=\"0\">\n <table class=\"{{ cssClasses }}\" [style.width]=\"hostWidth\">\n @if (headerTemplate) {\n <thead #theadRef [style.top]=\"stickyHeaderTopPosition\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n <ng-container *cdkVirtualFor=\"let row of dataRendered; let i = index; trackBy: trackByFn\">\n @if (row) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"skeletonLoading\"></ng-template>\n }\n </ng-container>\n\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef [style.bottom]=\"stickyFooterBottomPosition\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n} @else {\n @if (headerTemplate) {\n <thead #theadRef>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n @for (row of dataRendered; let i = $index; track row) {\n <ng-container>\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n </ng-container>\n }\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n}\n\n<ng-template #skeletonLoading>\n <tr [style.height.px]=\"itemSize\">\n <td *ngFor=\"let __ of nbCols\"><eui-skeleton line euiRounded></eui-skeleton></td>\n </tr>\n</ng-template>\n", styles: [".eui-table-v2__scroll-viewport{min-height:100%;width:100%}.eui-table-
|
492
|
+
], template: "<!-- <button (click)=\"test(19250)\">19250</button>\n<button (click)=\"test(7895)\">7895</button>\n<button (click)=\"test(16860)\">16860</button>\n<button (click)=\"test(16870)\">16870</button>\n<button (click)=\"test(16880)\">16880</button>\n<button (click)=\"test(16890)\">16890</button>\n<button (click)=\"test(16900)\">16900</button>\n<button (click)=\"test(26998)\">26998</button>\n<button (click)=\"test(28000)\">28000</button> -->\n@if (isVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #cdkVirtualScrollViewport\n #cdkVirtualScrollViewportElement\n class=\"eui-table-v2__scroll-viewport\"\n [itemSize]=\"itemSize\"\n [style.overflow]=\"cdkVirtualScrollViewportOverflowValue\"\n tabindex=\"0\">\n <table class=\"{{ cssClasses }}\" [style.width]=\"hostWidth\">\n @if (headerTemplate) {\n <thead #theadRef [style.top]=\"stickyHeaderTopPosition\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n <ng-container *cdkVirtualFor=\"let row of dataRendered; let i = index; trackBy: trackByFn\">\n @if (row) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"skeletonLoading\"></ng-template>\n }\n </ng-container>\n\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef [style.bottom]=\"stickyFooterBottomPosition\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n} @else {\n @if (headerTemplate) {\n <thead #theadRef>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n @for (row of dataRendered; let i = $index; track row) {\n <ng-container>\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n </ng-container>\n }\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n}\n\n<ng-template #skeletonLoading>\n <tr [style.height.px]=\"itemSize\">\n <td *ngFor=\"let __ of nbCols\"><eui-skeleton line euiRounded></eui-skeleton></td>\n </tr>\n</ng-template>\n", styles: [".eui-table-v2__scroll-viewport{min-height:100%;width:100%}.eui-table-v2__scrollable-wrapper{overflow:auto;will-change:transform}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar{display:inherit;height:8px;width:8px;background-color:var(--eui-c-neutral-bg-light)}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-thumb{background-color:var(--eui-c-neutral-lightest);border-radius:5rem}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--eui-c-neutral-lighter)}.eui-table-v2__scrollable-wrapper::-webkit-scrollbar-track{background-color:var(--eui-c-neutral-bg-light);border-radius:0}@-moz-document url-prefix(){.eui-table-v2__scrollable-wrapper{scrollbar-color:var(--eui-c-neutral-bg-light);scrollbar-width:thin}}.eui-table-v2__orderable-cols-preview,.eui-table-v2__orderable-rows-preview{display:none}.eui-table-v2--condensed thead tr th{padding:var(--eui-s-2xs) var(--eui-s-xs);font:var(--eui-f-s-bold)}.eui-table-v2--condensed tbody tr td,.eui-table-v2--condensed tfoot tr td{padding:var(--eui-s-2xs) var(--eui-s-xs);font:var(--eui-f-s)}.eui-table-v2--highlighted{background-color:var(--eui-c-accent);text-decoration:none}.eui-table-v2--virtual-scroll{width:100%;height:100%}.eui-table-v2--cols-orderable .cdk-drag-placeholder{background-color:var(--eui-c-white);color:var(--eui-c-info);cursor:move;opacity:1}.eui-table-v2--cols-orderable tr{display:table-row}.eui-table-v2--cols-orderable tr th.cdk-drag:not(.cdk-drag-disabled){cursor:move}.eui-table-v2--loading:before{animation:.8s linear infinite spin;border:8px solid transparent;border-radius:50%;border-top-color:var(--eui-c-primary);content:\"\";display:block;height:80px;left:50%;margin:-40px 0 0 -40px;position:absolute;top:50%;width:80px;z-index:1000001}.eui-table-v2--loading:after{background-color:#fff6;content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.eui-table-v2--sticky{max-width:none!important}.eui-table-v2--sticky-header thead{position:sticky;top:0;z-index:8}.eui-table-v2--sticky-header thead th,.eui-table-v2--sticky-header thead td{background-color:inherit}.eui-table-v2--sticky-header.eui-table-v2-sticky-col thead{z-index:9}.eui-table-v2--sticky tbody tr:nth-of-type(odd) td{background-color:inherit}.eui-table-v2--sticky tbody tr:nth-of-type(2n) td{background-color:inherit}.eui-table-v2--sticky-footer tfoot{position:sticky;bottom:-1px;z-index:8}.eui-table-v2--sticky-footer tfoot tr td{background-color:inherit}.eui-table-v2--sticky-cols .eui-table-v2__col--sticky{position:sticky;z-index:1}.eui-table-v2--sticky-cols th.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first,.eui-table-v2--sticky-cols tbody td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first,.eui-table-v2--sticky-cols tfoot td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-first{box-shadow:inset -5px 0 8px -8px #0003}.eui-table-v2--sticky-cols th.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last,.eui-table-v2--sticky-cols tbody td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last,.eui-table-v2--sticky-cols tfoot td.eui-table-v2__col--sticky.eui-table-v2__col--sticky-shadowed-last{box-shadow:inset 5px 0 8px -8px #0003}.eui-table-v2__row--selected td{background-color:var(--eui-c-primary-lightest)}@media screen and (max-width: 767px){.eui-table-v2.eui-table-default--responsive{width:100%!important}.eui-table-v2.eui-table-default--responsive thead,.eui-table-v2.eui-table-default--responsive tbody,.eui-table-v2.eui-table-default--responsive tfoot,.eui-table-v2.eui-table-default--responsive th,.eui-table-v2.eui-table-default--responsive td,.eui-table-v2.eui-table-default--responsive tr{display:block}.eui-table-v2.eui-table-default--responsive thead tr{left:-9999px;position:absolute;top:-9999px}.eui-table-v2.eui-table-default--responsive tr{height:auto}.eui-table-v2.eui-table-default--responsive td{border:var(--eui-bw-none);border-bottom:1px solid var(--eui-c-neutral-bg);padding-left:50%;position:relative;text-align:left!important;left:unset!important;right:unset!important}.eui-table-v2.eui-table-default--responsive td:before{color:var(--eui-c-neutral-light);content:attr(data-col-label);left:var(--eui-s-xs);padding-right:var(--eui-s-xs);position:absolute;width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--eui-f-m-bold)}.eui-table-v2.eui-table-default--responsive tfoot tr td:empty{display:none!important}.eui-table-v2 .actionsColumn,.eui-table-v2 .actions-column{justify-content:flex-start;text-align:left;width:100%}.eui-table-v2__sticky-container{height:auto;width:auto!important}.eui-table-v2--sticky-cols th,.eui-table-v2--sticky-cols td,.eui-table-v2--sticky-cols th .eui-table__col--sticky,.eui-table-v2--sticky-cols td .eui-table__col--sticky{width:auto;z-index:auto}.eui-table-v2--sticky-cols th .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table-v2--sticky-cols th .eui-table__col--sticky.eui-table__col--sticky-shadowed-last,.eui-table-v2--sticky-cols td .eui-table__col--sticky.eui-table__col--sticky-shadowed-first,.eui-table-v2--sticky-cols td .eui-table__col--sticky.eui-table__col--sticky-shadowed-last{box-shadow:none!important}.eui-table-v2--sticky-cols tfoot tr td:empty{display:none!important}}.eui-table-v2__filter{align-items:center;display:flex;justify-content:flex-end;position:relative}.eui-table-v2__filter--responsive{width:100%}.eui-table-v2__filter-input{padding-left:var(--eui-s-2xl)!important}.eui-table-v2__filter-search-icon{left:var(--eui-s-xs);position:absolute;top:calc(var(--eui-s-xs) + 2px)}.eui-table-v2__sortable-col-multisort-index{font:var(--eui-f-s)}.eui-table-v2__sortable-col .eui-table-v2__sortable-col-content{align-items:center;display:flex;vertical-align:middle;white-space:nowrap;justify-content:space-between}.eui-table-v2__sortable-col .eui-table-v2__sortable-col-content .eui-table-v2__sortable-col-content-label{align-items:center;display:flex;-webkit-user-select:none;-ms-user-select:none;user-select:none}\n"] }]
|
493
493
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.EuiTableV2SelectableRowService }, { type: i2.EuiTableV2SortService }, { type: i3.BaseStatesDirective }, { type: i0.Renderer2 }], propDecorators: { cssClasses: [{
|
494
494
|
type: HostBinding,
|
495
495
|
args: ['class']
|
@@ -166,7 +166,7 @@ export class EuiTabsComponent {
|
|
166
166
|
const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(index);
|
167
167
|
const containerWidth = this.euiTabsItems.nativeElement.clientWidth;
|
168
168
|
const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;
|
169
|
-
if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs) {
|
169
|
+
if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs && !this.isMainNavigation) {
|
170
170
|
let scrollTo = 0;
|
171
171
|
let subsetWidth = 0;
|
172
172
|
for (let i = 0; i <= index; i++) {
|
@@ -376,4 +376,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
376
376
|
type: HostBinding,
|
377
377
|
args: ['class']
|
378
378
|
}] } });
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQXVELEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFROUQsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixJQUNJLFlBQVk7UUFDWixPQUFPO1lBQ0gsVUFBVTtZQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUEsQ0FBQyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUEsQ0FBQyxDQUFDLEVBQUU7U0FDakQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQTZDRCxZQUNZLEVBQXFCLEVBQ3JCLE1BQWMsRUFDZCxPQUF5QixFQUN6QixVQUFzQjtRQUh0QixPQUFF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QkFBbEIsTUFBTTtnQkFFcUUsS0FBSztzQkFBaEYsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUNULCtCQUErQjtzQkFBL0YsWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBQ0YsZ0JBQWdCO3NCQUE1RSxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNoQyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ1MsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFPUSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsY0FBYztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFpSXRDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBK003QyxvQkFBb0I7QUFFcEIsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUUwQixpQkFBWSxHQUFHLGlDQUFpQyxDQUFDO0tBQzFFOzhHQUZZLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFOzhCQUVwQixZQUFZO3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZixcbiAgICBPbkNoYW5nZXMsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ29udGVudENoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvbkZhY3RvcnksIEFuaW1hdGlvblBsYXllciwgc3R5bGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgRXVpVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktdGFiL2V1aS10YWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBlbGVtZW50Q2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdldWktdGFicycsXG4gICAgICAgICAgICB0aGlzLmlzTWFpbk5hdmlnYXRpb24gPyAnZXVpLXRhYnMtLW1haW4tbmF2aWdhdGlvbic6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1ZlcnRpY2FsVGFicyA/ICdldWktdGFicy0tdmVydGljYWwnOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSB0YWJzOiBFdWlUYWJDb21wb25lbnRbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGFjdGl2ZVRhYkluZGV4ID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKVxuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRhYnMnO1xuICAgIEBJbnB1dCgpIHBhdGhNYXRjaDogJ3ByZWZpeCcgfCAnZnVsbCcgPSAncHJlZml4JztcblxuICAgIEBPdXRwdXQoKSB0YWJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIEBPdXRwdXQoKSB0YWJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFdWlUYWJDb21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBfdGFiczogUXVlcnlMaXN0PEV1aVRhYkNvbXBvbmVudD47XG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVRhYnNSaWdodENvbnRlbnRUYWdEaXJlY3RpdmUpKSBldWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlOiBFdWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2V1aVRhYkxhYmVsSXRlbScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBldWlUYWJMYWJlbEl0ZW1zOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zJykgZXVpVGFic0l0ZW1zOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2V1aVRhYnNJdGVtc1dyYXBwZXInKSBldWlUYWJzSXRlbXNXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICBwdWJsaWMgbmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgY3VycmVudE9mZnNldCA9IDA7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNNYWluTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0hhbmRsZUNoYW5nZVRhYiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1N1YlRhYnMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNWZXJ0aWNhbFRhYnMgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBwbGF5ZXI6IEFuaW1hdGlvblBsYXllcjtcbiAgICBwcml2YXRlIG9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgICBwcml2YXRlIHN0ZXBNb3ZlID0gNDAwO1xuICAgIHByaXZhdGUgc2Nyb2xsT2Zmc2V0ID0gNjA7XG4gICAgLyoqXG4gICAgICogRm9yIHJhY2UgY29uZGl0aW9uIHJlYXNvbiwgdGhlIHdyYXBwZXIgd2lkdGggaXMgbm90IGNvcnJlY3RseSBjYWxjdWxhdGVkIHdoZW4gdGhlIGNvbXBvbmVudCBwYXNzZXMgZnJvbSBuby1zY3JvbGwgc3RhdGUgdG8gc2Nyb2xsXG4gICAgICogc3RhdGUuIFRvIGZpeCB0aGlzIGlzc3VlLCB3ZSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBnZXRTY3JvbGxpbmdTdGF0dXMgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICAgKlxuICAgICAqIFNjZW5hcmlvIDE6IFRoZSBudW1iZXIgb2YgdGFicyBkb2VzIG5vdCByZXF1aXJlIGFueSBzY3JvbGw6XG4gICAgICogLSBXaXRob3V0IGFueSBmaXggdGhlIHNjcm9sbCB3aWxsIGhhdmUgYSBkZWx0YSBvZiA2NCBhdCB0aGUgZmlyc3QgYWN0aXZhdGlvbiwgdGhlbiBvbiB0aGUgZmlyc3Qgbm8tc2Nyb2xsIHRvIHNjcm9sbCBzdGF0ZSxcbiAgICAgKiAtIHdlIGhhZCA2NCB0byB0aGUgbW92ZVxuICAgICAqXG4gICAgICogU2NlbmFyaW8gMjogVGhlIG51bWJlciBvZiB0YWJzIHJlcXVpcmVzIGEgc2Nyb2xsOlxuICAgICAqIC0gSW4gdGhpcyBjYXNlIHRoZSB3cmFwcGVyIHdpZHRoIGlzIGNvcnJlY3RseSBjYWxjdWxhdGVkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGFkZCB0aGUgZGVsdGFcbiAgICAgKi9cbiAgICBwcml2YXRlIHNjcm9sbGluZ0NvdW50ID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBidWlsZGVyOiBBbmltYXRpb25CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgdGhpcy5zY3JvbGxPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyB0aGlzLnNjcm9sbE9mZnNldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDAgPyA1MDAgOiAwLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5SZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5fdGFicy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVE9ETyB2MTggY2hlY2sgbmF2aWdhdGlvbkVuZCAoZGVwcmVjYXRpb24pXG4gICAgICAgICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoeyB1cmw6IHRoaXMucm91dGVyLnVybCB9KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWJzV2l0aFVybCA9IHRoaXMudGFicy5maWx0ZXIoKHQpID0+IHQudXJsICE9PSBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhYnNXaXRoVXJsLmxlbmd0aCA9PT0gdGhpcy50YWJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYXRoTWF0Y2ggPT09ICdmdWxsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID0gdGFic1dpdGhVcmwuZmluZEluZGV4KCh0KSA9PiBlLnVybCA9PT0gdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAodC51cmwgKyAnKC8/KScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZXgudGVzdChlLnVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5tYXAoKHQsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPT09IGkgPyBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IHRydWUgfSkgOiBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IGZhbHNlIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpICE9PSAtMSA/IHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRTY3JvbGxpbmdTdGF0dXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250ZW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRTY3JvbGxpbmdTdGF0dXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29Ub0xlZnQoKTogdm9pZCB7XG4gICAgICAgIGxldCBzY3JvbGxUbyA9IHRoaXMuY3VycmVudE9mZnNldCArIHRoaXMuc3RlcE1vdmU7XG4gICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgIHNjcm9sbFRvID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1RvUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgbGV0IHNjcm9sbFRvID0gdGhpcy5jdXJyZW50T2Zmc2V0IC0gdGhpcy5zdGVwTW92ZTtcblxuICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID4gd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgICAgIHNjcm9sbFRvID0gLSh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCkgLSB0aGlzLnNjcm9sbE9mZnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2VUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0hhbmRsZUNoYW5nZVRhYikge1xuICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzW2luZGV4XSAmJiAhdGhpcy50YWJzW2luZGV4XS5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFic1t0aGlzLmFjdGl2ZVRhYkluZGV4XSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0uaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzW2luZGV4XS5pc0FjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKGluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlVGFiICYmICF0aGlzLmlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYikgJiYgIXRoaXMuaXNWZXJ0aWNhbFRhYnMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN1YnNldFdpZHRoID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gaW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvID0gY29udGFpbmVyV2lkdGggLyAyIC0gc3Vic2V0V2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgdGhpcy5zY3JvbGxPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvID0gLSh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIHRoaXMuc2Nyb2xsT2Zmc2V0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJzW2luZGV4XS51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYlNlbGVjdC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy50YWJzW2luZGV4XS51cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbktleVVwKGU6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUuY29kZSA9PT0gJ0VudGVyJyB8fCBlLmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYnNbaW5kZXhdICYmICF0aGlzLnRhYnNbaW5kZXhdLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYnMubWFwKCh0LCBpKSA9PiAoaSA9PT0gaW5kZXggPyBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IHRydWUgfSkgOiBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IGZhbHNlIH0pKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFic1tpbmRleF0udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMudGFic1tpbmRleF0udXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgY2xvc2VUYWIoaW5kZXg6IG51bWJlciwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYiA9IHRoaXMudGFic1tpbmRleF07XG4gICAgICAgIGlmICghdGhpcy50YWJzW2luZGV4XS5pc0hhbmRsZUNsb3NlT25DbG9zZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZShlLmluZGV4KTtcbiAgICAgICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5maWx0ZXIoKHQsIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFiQ2xvc2UuZW1pdCh7IHRhYiwgaW5kZXggfSk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgYSB0YWIgcGFzcyBpbiBwYXJhbWV0ZXIuXG4gICAgICpcbiAgICAgKiBAdXNhZ2VOb3Rlc1xuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8ZXVpLXRhYnMgI3RhYnM+XG4gICAgICogICAgIDxldWktdGFiIGlzQ2xvc2FibGUgaXNIYW5kbGVDbG9zZU9uQ2xvc2U+XG4gICAgICogICAgICAgICA8ZXVpLXRhYi1sYWJlbD5UYWIgbGFiZWw8L2V1aS10YWItbGFiZWw+XG4gICAgICogICAgICAgICA8ZXVpLXRhYi1jb250ZW50PlRhYiBjb250ZW50PC9ldWktdGFiLWNvbnRlbnQ+XG4gICAgICogICAgIDwvZXVpLXRhYj5cbiAgICAgKiA8L2V1aS10YWJzPlxuICAgICAqIGBgYFxuICAgICAqIC4uLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLnRhYnMuY2xvc2UoMSk7XG4gICAgICogYGBgXG4gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSB0YWIgdG8gY2xvc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xvc2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMuYWN0aXZlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmlzaWJsZUluZGV4ID0gdGhpcy50YWJzLmluZGV4T2YodGhpcy50YWJzW2luZGV4IC0gMV0pO1xuXG4gICAgICAgICAgICBpZiAocHJldmlvdXNWaXNpYmxlSW5kZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VUYWIoMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVGFiKHByZXZpb3VzVmlzaWJsZUluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChpbmRleCA8IHRoaXMuYWN0aXZlVGFiSW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gdGhpcy5hY3RpdmVUYWJJbmRleCAtIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLnRhYnMuZmlsdGVyKCh0LCBpKSA9PiBpICE9PSBpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FjdGl2ZVRhYkZ1bGx5VmlzaWJsZShhY3RpdmVUYWI6IEhUTUxEaXZFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgcmV0dXJuIGFjdGl2ZVRhYi5vZmZzZXRMZWZ0IC0gNDggPj0gMCAmJiBhY3RpdmVUYWIub2Zmc2V0TGVmdCArIGFjdGl2ZVRhYi5jbGllbnRXaWR0aCA8IGNvbnRhaW5lcldpZHRoIC0gNDg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTY3JvbGxUbyhzY3JvbGxUbzogbnVtYmVyLCBpc0FuaW1hdGVkID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIGNvbnN0IHRpbWluZ3MgPSBpc0FuaW1hdGVkID8gJzUwMG1zIGN1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKScgOiAwO1xuICAgICAgICBjb25zdCBhbmltYXRpb246IEFuaW1hdGlvbkZhY3RvcnkgPSB0aGlzLmJ1aWxkZXIuYnVpbGQoW2FuaW1hdGUodGltaW5ncywgc3R5bGUoeyAnbWFyZ2luLWxlZnQnOiArc2Nyb2xsVG8gKyAncHgnIH0pKV0pO1xuXG4gICAgICAgIHRoaXMucGxheWVyID0gYW5pbWF0aW9uLmNyZWF0ZSh0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMucGxheWVyLnBsYXkoKTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRPZmZzZXQgPSBzY3JvbGxUbztcblxuICAgICAgICBpZiAoc2Nyb2xsVG8gPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKHRoaXMuY3VycmVudE9mZnNldCkgPCB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIHRoaXMuc2Nyb2xsT2Zmc2V0KSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE9mZnNldCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyhzY3JvbGxUbykgPT09IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgdGhpcy5zY3JvbGxPZmZzZXQpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTY3JvbGxpbmdTdGF0dXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgdGhpcy5zY3JvbGxpbmcgPSBjb250YWluZXJXaWR0aCA8IHdyYXBwZXJXaWR0aDtcblxuICAgICAgICBpZiAoIXRoaXMuc2Nyb2xsaW5nKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbGluZ0NvdW50ID0gMDtcbiAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAod3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggPD0gTWF0aC5hYnModGhpcy5jdXJyZW50T2Zmc2V0KSArIHRoaXMuc2Nyb2xsT2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVsdGFGaXggPSB0aGlzLnNjcm9sbGluZ0NvdW50ID09PSAwID8gdGhpcy5zY3JvbGxPZmZzZXQgKiAyIDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIC0gdGhpcy5zY3JvbGxPZmZzZXQgLSBkZWx0YUZpeDtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50T2Zmc2V0ID0gc2Nyb2xsVG87XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpIDwgd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyB0aGlzLnNjcm9sbE9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25SaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmdDb3VudCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnZXVpVGFic1JpZ2h0Q29udGVudCcgfSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZWxlbWVudENsYXNzID0gJ2V1aS10YWJzX19yaWdodC1jb250ZW50LXdyYXBwZXInO1xufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuIiwiPGRpdiBjbGFzcz1cImV1aS11LWZsZXhcIiBbY2xhc3MuZXVpLXRhYnNfX3dyYXBwZXItLWhvcml6b250YWxdPVwiIWlzVmVydGljYWxUYWJzXCIgW2NsYXNzLmV1aS10YWJzX193cmFwcGVyLS12ZXJ0aWNhbF09XCJpc1ZlcnRpY2FsVGFic1wiPlxuICAgIDxkaXZcbiAgICAgICAgI2V1aVRhYnNJdGVtc1xuICAgICAgICBjbGFzcz1cImV1aS10YWJzX19pdGVtc1wiXG4gICAgICAgIFtjbGFzcy5ldWktdGFic19faXRlbXMtLWhvcml6b250YWxdPVwiIWlzVmVydGljYWxUYWJzXCJcbiAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0tc2Nyb2xsaW5nXT1cInNjcm9sbGluZ1wiXG4gICAgICAgIChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2VzKClcIj5cbiAgICAgICAgPGRpdiAjZXVpVGFic0l0ZW1zV3JhcHBlciBjbGFzcz1cImV1aS10YWJzX19pdGVtcy13cmFwcGVyXCIgW2F0dHIuZGF0YS1vZmZzZXRdPVwiY3VycmVudE9mZnNldFwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICBAZm9yICh0YWIgb2YgdGFiczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIHRhYikge1xuICAgICAgICAgICAgICAgIEBpZiAodGFiLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10YWItaXRlbSBldWktdGFiLWl0ZW0tLXt7IHRhYi5iYXNlU3RhdGVzRGlyZWN0aXZlLmV1aVZhcmlhbnQgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tY2xvc2FibGVdPVwidGFiLmlzQ2xvc2FibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tYWN0aXZlXT1cImFjdGl2ZVRhYkluZGV4ID09PSBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGFiLWl0ZW0tLWRpc2FibGVkXT1cInRhYi5pc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidGFiLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVRhYihpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXVpVG9vbHRpcF09XCJ0YWIudG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQsIGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYi1pdGVtX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cInRhYi50ZW1wbGF0ZUxhYmVsLnRlbXBsYXRlUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICh0YWIuaXNDbG9zYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGFiLWl0ZW1fX2Nsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJjbG9zZTpvdXRsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiY2xvc2UgdGFiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cImNsb3NlVGFiKGksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldWlSb3VuZGVkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZXVpLWljb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uX19sZWZ0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvTGVmdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJuYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNjcm9sbCBsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImNoZXZyb24tYmFjazpzaGFycFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYnNfX25hdmlnYXRpb25fX3JpZ2h0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvUmlnaHQoKVwiXG4gICAgICAgICAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbZXVpRGlzYWJsZWRdPVwibmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIHJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImNoZXZyb24tZm9yd2FyZDpzaGFycFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChldWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fcmlnaHQtY29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZXVpVGFic1JpZ2h0Q29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG5cbkBmb3IgKHRhYiBvZiB0YWJzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgdGFiKSB7XG4gICAgQGlmIChpID09PSBhY3RpdmVUYWJJbmRleCAmJiB0YWIudGVtcGxhdGVDb250ZW50KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFiLWNvbnRlbnQtd3JhcHBlclwiIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwidGFiLnRlbXBsYXRlQ29udGVudC50ZW1wbGF0ZVBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbn1cbiJdfQ==
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRhYnMvZXVpLXRhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxFQUlULFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsWUFBWSxHQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQXVELEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFROUQsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixJQUNJLFlBQVk7UUFDWixPQUFPO1lBQ0gsVUFBVTtZQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUEsQ0FBQyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUEsQ0FBQyxDQUFDLEVBQUU7U0FDakQsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQTZDRCxZQUNZLEVBQXFCLEVBQ3JCLE1BQWMsRUFDZCxPQUF5QixFQUN6QixVQUFzQjtRQUh0QixPQUFF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QVE7c0JBQWpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFcUUsS0FBSztzQkFBaEYsZUFBZTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUNULCtCQUErQjtzQkFBL0YsWUFBWTt1QkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBQ0YsZ0JBQWdCO3NCQUE1RSxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNoQyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ1MsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQjtnQkFPUSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsY0FBYztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFpSXRDLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBK003QyxvQkFBb0I7QUFFcEIsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUUwQixpQkFBWSxHQUFHLGlDQUFpQyxDQUFDO0tBQzFFOzhHQUZZLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFOzhCQUVwQixZQUFZO3NCQUFqQyxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgZm9yd2FyZFJlZixcbiAgICBPbkNoYW5nZXMsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ29udGVudENoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkJ1aWxkZXIsIEFuaW1hdGlvbkZhY3RvcnksIEFuaW1hdGlvblBsYXllciwgc3R5bGUgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZmlsdGVyLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgRXVpVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9ldWktdGFiL2V1aS10YWIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBlbGVtZW50Q2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdldWktdGFicycsXG4gICAgICAgICAgICB0aGlzLmlzTWFpbk5hdmlnYXRpb24gPyAnZXVpLXRhYnMtLW1haW4tbmF2aWdhdGlvbic6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1ZlcnRpY2FsVGFicyA/ICdldWktdGFicy0tdmVydGljYWwnOiAnJyxcbiAgICAgICAgXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSB0YWJzOiBFdWlUYWJDb21wb25lbnRbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGFjdGl2ZVRhYkluZGV4ID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKVxuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRhYnMnO1xuICAgIEBJbnB1dCgpIHBhdGhNYXRjaDogJ3ByZWZpeCcgfCAnZnVsbCcgPSAncHJlZml4JztcblxuICAgIEBPdXRwdXQoKSB0YWJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IEV1aVRhYkNvbXBvbmVudDsgaW5kZXg6IG51bWJlciB9PigpO1xuICAgIEBPdXRwdXQoKSB0YWJTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBFdWlUYWJDb21wb25lbnQ7IGluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFdWlUYWJDb21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBfdGFiczogUXVlcnlMaXN0PEV1aVRhYkNvbXBvbmVudD47XG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+IEV1aVRhYnNSaWdodENvbnRlbnRUYWdEaXJlY3RpdmUpKSBldWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlOiBFdWlUYWJzUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2V1aVRhYkxhYmVsSXRlbScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBldWlUYWJMYWJlbEl0ZW1zOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG4gICAgQFZpZXdDaGlsZCgnZXVpVGFic0l0ZW1zJykgZXVpVGFic0l0ZW1zOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2V1aVRhYnNJdGVtc1dyYXBwZXInKSBldWlUYWJzSXRlbXNXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gICAgcHVibGljIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICBwdWJsaWMgbmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgY3VycmVudE9mZnNldCA9IDA7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNNYWluTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0hhbmRsZUNoYW5nZVRhYiA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1N1YlRhYnMgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNWZXJ0aWNhbFRhYnMgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBwbGF5ZXI6IEFuaW1hdGlvblBsYXllcjtcbiAgICBwcml2YXRlIG9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgICBwcml2YXRlIHN0ZXBNb3ZlID0gNDAwO1xuICAgIHByaXZhdGUgc2Nyb2xsT2Zmc2V0ID0gNjA7XG4gICAgLyoqXG4gICAgICogRm9yIHJhY2UgY29uZGl0aW9uIHJlYXNvbiwgdGhlIHdyYXBwZXIgd2lkdGggaXMgbm90IGNvcnJlY3RseSBjYWxjdWxhdGVkIHdoZW4gdGhlIGNvbXBvbmVudCBwYXNzZXMgZnJvbSBuby1zY3JvbGwgc3RhdGUgdG8gc2Nyb2xsXG4gICAgICogc3RhdGUuIFRvIGZpeCB0aGlzIGlzc3VlLCB3ZSBjb3VudCB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBnZXRTY3JvbGxpbmdTdGF0dXMgbWV0aG9kIGlzIGNhbGxlZC5cbiAgICAgKlxuICAgICAqIFNjZW5hcmlvIDE6IFRoZSBudW1iZXIgb2YgdGFicyBkb2VzIG5vdCByZXF1aXJlIGFueSBzY3JvbGw6XG4gICAgICogLSBXaXRob3V0IGFueSBmaXggdGhlIHNjcm9sbCB3aWxsIGhhdmUgYSBkZWx0YSBvZiA2NCBhdCB0aGUgZmlyc3QgYWN0aXZhdGlvbiwgdGhlbiBvbiB0aGUgZmlyc3Qgbm8tc2Nyb2xsIHRvIHNjcm9sbCBzdGF0ZSxcbiAgICAgKiAtIHdlIGhhZCA2NCB0byB0aGUgbW92ZVxuICAgICAqXG4gICAgICogU2NlbmFyaW8gMjogVGhlIG51bWJlciBvZiB0YWJzIHJlcXVpcmVzIGEgc2Nyb2xsOlxuICAgICAqIC0gSW4gdGhpcyBjYXNlIHRoZSB3cmFwcGVyIHdpZHRoIGlzIGNvcnJlY3RseSBjYWxjdWxhdGVkLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGFkZCB0aGUgZGVsdGFcbiAgICAgKi9cbiAgICBwcml2YXRlIHNjcm9sbGluZ0NvdW50ID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBidWlsZGVyOiBBbmltYXRpb25CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoYzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoYy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRhYiA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLml0ZW0oYy5hY3RpdmVUYWJJbmRleC5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdyYXBwZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVUYWIgJiYgIXRoaXMuaXNBY3RpdmVUYWJGdWxseVZpc2libGUoYWN0aXZlVGFiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzZXRXaWR0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0V2lkdGggKz0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKS5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA+IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgdGhpcy5zY3JvbGxPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IC0od3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyB0aGlzLnNjcm9sbE9mZnNldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbyA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFNjcm9sbFRvKHNjcm9sbFRvLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjLmFjdGl2ZVRhYkluZGV4LmlzRmlyc3RDaGFuZ2UoKSAmJiBjLmFjdGl2ZVRhYkluZGV4LmN1cnJlbnRWYWx1ZSA+IDAgPyA1MDAgOiAwLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5SZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldFNjcm9sbGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgdGhpcy5fdGFicy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVE9ETyB2MTggY2hlY2sgbmF2aWdhdGlvbkVuZCAoZGVwcmVjYXRpb24pXG4gICAgICAgICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoeyB1cmw6IHRoaXMucm91dGVyLnVybCB9KSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogTmF2aWdhdGlvbkVuZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWJzV2l0aFVybCA9IHRoaXMudGFicy5maWx0ZXIoKHQpID0+IHQudXJsICE9PSBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhYnNXaXRoVXJsLmxlbmd0aCA9PT0gdGhpcy50YWJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wYXRoTWF0Y2ggPT09ICdmdWxsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4ID0gdGFic1dpdGhVcmwuZmluZEluZGV4KCh0KSA9PiBlLnVybCA9PT0gdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleCA9IHRhYnNXaXRoVXJsLmZpbmRJbmRleCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAodC51cmwgKyAnKC8/KScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVnZXgudGVzdChlLnVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5tYXAoKHQsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXggPT09IGkgPyBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IHRydWUgfSkgOiBPYmplY3QuYXNzaWduKHQsIHsgaXNBY3RpdmU6IGZhbHNlIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLnRhYnMuZmluZEluZGV4KCh0KSA9PiB0LmlzQWN0aXZlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpICE9PSAtMSA/IHRoaXMudGFicy5maW5kSW5kZXgoKHQpID0+IHQuaXNBY3RpdmUpIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRTY3JvbGxpbmdTdGF0dXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db250ZW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRTY3JvbGxpbmdTdGF0dXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29Ub0xlZnQoKTogdm9pZCB7XG4gICAgICAgIGxldCBzY3JvbGxUbyA9IHRoaXMuY3VycmVudE9mZnNldCArIHRoaXMuc3RlcE1vdmU7XG4gICAgICAgIGlmIChzY3JvbGxUbyA+IDApIHtcbiAgICAgICAgICAgIHNjcm9sbFRvID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1RvUmlnaHQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgbGV0IHNjcm9sbFRvID0gdGhpcy5jdXJyZW50T2Zmc2V0IC0gdGhpcy5zdGVwTW92ZTtcblxuICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID4gd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGgpIHtcbiAgICAgICAgICAgIHNjcm9sbFRvID0gLSh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCkgLSB0aGlzLnNjcm9sbE9mZnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsVG8oc2Nyb2xsVG8pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2VUYWIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0hhbmRsZUNoYW5nZVRhYikge1xuICAgICAgICAgICAgdGhpcy50YWJTZWxlY3QuZW1pdCh7IHRhYjogdGhpcy50YWJzW2luZGV4XSwgaW5kZXggfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50YWJzW2luZGV4XSAmJiAhdGhpcy50YWJzW2luZGV4XS5pc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFic1t0aGlzLmFjdGl2ZVRhYkluZGV4XSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYnNbdGhpcy5hY3RpdmVUYWJJbmRleF0uaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzW2luZGV4XS5pc0FjdGl2ZSA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKGluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZXVpVGFic0l0ZW1zLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlVGFiICYmICF0aGlzLmlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYikgJiYgIXRoaXMuaXNWZXJ0aWNhbFRhYnMgJiYgIXRoaXMuaXNNYWluTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsVG8gPSAwO1xuICAgICAgICAgICAgICAgICAgICBsZXQgc3Vic2V0V2lkdGggPSAwO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBpbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzZXRXaWR0aCArPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5pdGVtKGkpLmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSBjb250YWluZXJXaWR0aCAvIDIgLSBzdWJzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoTWF0aC5hYnMoc2Nyb2xsVG8pID4gd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyB0aGlzLnNjcm9sbE9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSAtKHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgdGhpcy5zY3JvbGxPZmZzZXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbFRvID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8gPSAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxUbyhzY3JvbGxUbyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLnVybCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFiU2VsZWN0LmVtaXQoeyB0YWI6IHRoaXMudGFic1tpbmRleF0sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnRhYnNbaW5kZXhdLnVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uS2V5VXAoZTogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoZS5jb2RlID09PSAnRW50ZXInIHx8IGUuY29kZSA9PT0gJ1NwYWNlJykge1xuICAgICAgICAgICAgaWYgKHRoaXMudGFic1tpbmRleF0gJiYgIXRoaXMudGFic1tpbmRleF0uaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudGFicy5tYXAoKHQsIGkpID0+IChpID09PSBpbmRleCA/IE9iamVjdC5hc3NpZ24odCwgeyBpc0FjdGl2ZTogdHJ1ZSB9KSA6IE9iamVjdC5hc3NpZ24odCwgeyBpc0FjdGl2ZTogZmFsc2UgfSkpKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJzW2luZGV4XS51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVUYWJJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYlNlbGVjdC5lbWl0KHsgdGFiOiB0aGlzLnRhYnNbaW5kZXhdLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy50YWJzW2luZGV4XS51cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBjbG9zZVRhYihpbmRleDogbnVtYmVyLCBlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFiID0gdGhpcy50YWJzW2luZGV4XTtcbiAgICAgICAgaWYgKCF0aGlzLnRhYnNbaW5kZXhdLmlzSGFuZGxlQ2xvc2VPbkNsb3NlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKGUuaW5kZXgpO1xuICAgICAgICAgICAgdGhpcy50YWJzID0gdGhpcy50YWJzLmZpbHRlcigodCwgaSkgPT4gaSAhPT0gaW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50YWJDbG9zZS5lbWl0KHsgdGFiLCBpbmRleCB9KTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbG9zZSBhIHRhYiBwYXNzIGluIHBhcmFtZXRlci5cbiAgICAgKlxuICAgICAqIEB1c2FnZU5vdGVzXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxldWktdGFicyAjdGFicz5cbiAgICAgKiAgICAgPGV1aS10YWIgaXNDbG9zYWJsZSBpc0hhbmRsZUNsb3NlT25DbG9zZT5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWxhYmVsPlRhYiBsYWJlbDwvZXVpLXRhYi1sYWJlbD5cbiAgICAgKiAgICAgICAgIDxldWktdGFiLWNvbnRlbnQ+VGFiIGNvbnRlbnQ8L2V1aS10YWItY29udGVudD5cbiAgICAgKiAgICAgPC9ldWktdGFiPlxuICAgICAqIDwvZXVpLXRhYnM+XG4gICAgICogYGBgXG4gICAgICogLi4uXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMudGFicy5jbG9zZSgxKTtcbiAgICAgKiBgYGBcbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIHRhYiB0byBjbG9zZVxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWaXNpYmxlSW5kZXggPSB0aGlzLnRhYnMuaW5kZXhPZih0aGlzLnRhYnNbaW5kZXggLSAxXSk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c1Zpc2libGVJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVRhYigwKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VUYWIocHJldmlvdXNWaXNpYmxlSW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlVGFiSW5kZXggPSB0aGlzLmFjdGl2ZVRhYkluZGV4IC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFicyA9IHRoaXMudGFicy5maWx0ZXIoKHQsIGkpID0+IGkgIT09IGluZGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQWN0aXZlVGFiRnVsbHlWaXNpYmxlKGFjdGl2ZVRhYjogSFRNTERpdkVsZW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICByZXR1cm4gYWN0aXZlVGFiLm9mZnNldExlZnQgLSA0OCA+PSAwICYmIGFjdGl2ZVRhYi5vZmZzZXRMZWZ0ICsgYWN0aXZlVGFiLmNsaWVudFdpZHRoIDwgY29udGFpbmVyV2lkdGggLSA0ODtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFNjcm9sbFRvKHNjcm9sbFRvOiBudW1iZXIsIGlzQW5pbWF0ZWQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXMubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgY29uc3Qgd3JhcHBlcldpZHRoID0gdGhpcy5ldWlUYWJzSXRlbXNXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICAgICAgY29uc3QgdGltaW5ncyA9IGlzQW5pbWF0ZWQgPyAnNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyA6IDA7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbjogQW5pbWF0aW9uRmFjdG9yeSA9IHRoaXMuYnVpbGRlci5idWlsZChbYW5pbWF0ZSh0aW1pbmdzLCBzdHlsZSh7ICdtYXJnaW4tbGVmdCc6ICtzY3JvbGxUbyArICdweCcgfSkpXSk7XG5cbiAgICAgICAgdGhpcy5wbGF5ZXIgPSBhbmltYXRpb24uY3JlYXRlKHRoaXMuZXVpVGFic0l0ZW1zV3JhcHBlci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5wbGF5ZXIucGxheSgpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudE9mZnNldCA9IHNjcm9sbFRvO1xuXG4gICAgICAgIGlmIChzY3JvbGxUbyA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnModGhpcy5jdXJyZW50T2Zmc2V0KSA8IHdyYXBwZXJXaWR0aCAtIGNvbnRhaW5lcldpZHRoICsgdGhpcy5zY3JvbGxPZmZzZXQpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5jdXJyZW50T2Zmc2V0IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKHNjcm9sbFRvKSA9PT0gd3JhcHBlcldpZHRoIC0gY29udGFpbmVyV2lkdGggKyB0aGlzLnNjcm9sbE9mZnNldCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGluZ1N0YXR1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB3cmFwcGVyV2lkdGggPSB0aGlzLmV1aVRhYnNJdGVtc1dyYXBwZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICB0aGlzLnNjcm9sbGluZyA9IGNvbnRhaW5lcldpZHRoIDwgd3JhcHBlcldpZHRoO1xuXG4gICAgICAgIGlmICghdGhpcy5zY3JvbGxpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxUbygwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCA8PSBNYXRoLmFicyh0aGlzLmN1cnJlbnRPZmZzZXQpICsgdGhpcy5zY3JvbGxPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWx0YUZpeCA9IHRoaXMuc2Nyb2xsaW5nQ291bnQgPT09IDAgPyB0aGlzLnNjcm9sbE9mZnNldCAqIDIgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvID0gLSh3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCkgLSB0aGlzLnNjcm9sbE9mZnNldCAtIGRlbHRhRml4O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxUbyhzY3JvbGxUbyk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRPZmZzZXQgPSBzY3JvbGxUbztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHRoaXMuY3VycmVudE9mZnNldCkgPCB3cmFwcGVyV2lkdGggLSBjb250YWluZXJXaWR0aCArIHRoaXMuc2Nyb2xsT2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvblJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudE9mZnNldCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGluZ0NvdW50Kys7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdldWlUYWJzUmlnaHRDb250ZW50JyB9KVxuZXhwb3J0IGNsYXNzIEV1aVRhYnNSaWdodENvbnRlbnRUYWdEaXJlY3RpdmUge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBlbGVtZW50Q2xhc3MgPSAnZXVpLXRhYnNfX3JpZ2h0LWNvbnRlbnQtd3JhcHBlcic7XG59XG4vKiBlc2xpbnQtZW5hYmxlICovXG4iLCI8ZGl2IGNsYXNzPVwiZXVpLXUtZmxleFwiIFtjbGFzcy5ldWktdGFic19fd3JhcHBlci0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIiBbY2xhc3MuZXVpLXRhYnNfX3dyYXBwZXItLXZlcnRpY2FsXT1cImlzVmVydGljYWxUYWJzXCI+XG4gICAgPGRpdlxuICAgICAgICAjZXVpVGFic0l0ZW1zXG4gICAgICAgIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zXCJcbiAgICAgICAgW2NsYXNzLmV1aS10YWJzX19pdGVtcy0taG9yaXpvbnRhbF09XCIhaXNWZXJ0aWNhbFRhYnNcIlxuICAgICAgICBbY2xhc3MuZXVpLXRhYnNfX2l0ZW1zLS1zY3JvbGxpbmddPVwic2Nyb2xsaW5nXCJcbiAgICAgICAgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ29udGVudENoYW5nZXMoKVwiPlxuICAgICAgICA8ZGl2ICNldWlUYWJzSXRlbXNXcmFwcGVyIGNsYXNzPVwiZXVpLXRhYnNfX2l0ZW1zLXdyYXBwZXJcIiBbYXR0ci5kYXRhLW9mZnNldF09XCJjdXJyZW50T2Zmc2V0XCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgICAgIEBmb3IgKHRhYiBvZiB0YWJzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgdGFiKSB7XG4gICAgICAgICAgICAgICAgQGlmICh0YWIuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRhYi1pdGVtIGV1aS10YWItaXRlbS0te3sgdGFiLmJhc2VTdGF0ZXNEaXJlY3RpdmUuZXVpVmFyaWFudCB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1jbG9zYWJsZV09XCJ0YWIuaXNDbG9zYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRhYi1pdGVtLS1hY3RpdmVdPVwiYWN0aXZlVGFiSW5kZXggPT09IGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmV1aS10YWItaXRlbS0tZGlzYWJsZWRdPVwidGFiLmlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJ0YWIuaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlVGFiKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtldWlUb29sdGlwXT1cInRhYi50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFiLWl0ZW1fX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwidGFiLnRlbXBsYXRlTGFiZWwudGVtcGxhdGVQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRhYi5pc0Nsb3NhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10YWItaXRlbV9fY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImNsb3NlOm91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhTGFiZWw9XCJjbG9zZSB0YWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwiY2xvc2VUYWIoaSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV1aVJvdW5kZWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ldWktaWNvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19uYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRhYnNfX25hdmlnYXRpb25fX2xlZnQtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9MZWZ0KClcIlxuICAgICAgICAgICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2V1aURpc2FibGVkXT1cIm5hdmlnYXRpb25MZWZ0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIGxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1iYWNrOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGFic19fbmF2aWdhdGlvbl9fcmlnaHQtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9SaWdodCgpXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtldWlEaXNhYmxlZF09XCJuYXZpZ2F0aW9uUmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJTY3JvbGwgcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiY2hldnJvbi1mb3J3YXJkOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGV1aVRhYnNSaWdodENvbnRlbnRUYWdEaXJlY3RpdmUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWJzX19yaWdodC1jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWlUYWJzUmlnaHRDb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuQGZvciAodGFiIG9mIHRhYnM7IGxldCBpID0gJGluZGV4OyB0cmFjayB0YWIpIHtcbiAgICBAaWYgKGkgPT09IGFjdGl2ZVRhYkluZGV4ICYmIHRhYi50ZW1wbGF0ZUNvbnRlbnQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10YWItY29udGVudC13cmFwcGVyXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVDb250ZW50LnRlbXBsYXRlUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxufVxuIl19
|
@@ -5,8 +5,10 @@ export declare class EuiFeedbackMessageComponent {
|
|
5
5
|
protected baseStatesDirective: BaseStatesDirective;
|
6
6
|
get cssClasses(): string;
|
7
7
|
protected type: string;
|
8
|
+
isMuted: boolean;
|
8
9
|
constructor(baseStatesDirective: BaseStatesDirective);
|
9
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<EuiFeedbackMessageComponent, never>;
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EuiFeedbackMessageComponent, "eui-feedback-message", never, {}, {}, never, ["*"], false, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiSuccess": "euiSuccess"; "euiDanger": "euiDanger"; "euiAccent": "euiAccent"; "euiVariant": "euiVariant"; }; outputs: {}; }]>;
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EuiFeedbackMessageComponent, "eui-feedback-message", never, { "isMuted": { "alias": "isMuted"; "required": false; }; }, {}, never, ["*"], false, [{ directive: typeof i1.BaseStatesDirective; inputs: { "euiPrimary": "euiPrimary"; "euiSecondary": "euiSecondary"; "euiInfo": "euiInfo"; "euiWarning": "euiWarning"; "euiSuccess": "euiSuccess"; "euiDanger": "euiDanger"; "euiAccent": "euiAccent"; "euiVariant": "euiVariant"; }; outputs: {}; }]>;
|
12
|
+
static ngAcceptInputType_isMuted: unknown;
|
11
13
|
}
|
12
14
|
//# sourceMappingURL=eui-feedback-message.component.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-feedback-message.component.d.ts","sourceRoot":"","sources":["../../eui-feedback-message/eui-feedback-message.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;;;AAE7D,qBAsBa,2BAA2B;
|
1
|
+
{"version":3,"file":"eui-feedback-message.component.d.ts","sourceRoot":"","sources":["../../eui-feedback-message/eui-feedback-message.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;;;AAE7D,qBAsBa,2BAA2B;IAahC,SAAS,CAAC,mBAAmB,EAAE,mBAAmB;IAZtD,IACW,UAAU,IAAI,MAAM,CAK9B;IAEyB,SAAS,CAAC,IAAI,SAAqB;IACrB,OAAO,UAAQ;gBAGzC,mBAAmB,EAAE,mBAAmB;yCAb7C,2BAA2B;2CAA3B,2BAA2B;sCAiBot1B,OAAQ;CADnw1B"}
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
2
|
import * as i1 from "./eui-feedback-message.component";
|
3
3
|
import * as i2 from "@angular/common";
|
4
|
+
import * as i3 from "@eui/components/eui-icon-state";
|
4
5
|
export declare class EuiFeedbackMessageModule {
|
5
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<EuiFeedbackMessageModule, never>;
|
6
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<EuiFeedbackMessageModule, [typeof i1.EuiFeedbackMessageComponent], [typeof i2.CommonModule], [typeof i1.EuiFeedbackMessageComponent]>;
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<EuiFeedbackMessageModule, [typeof i1.EuiFeedbackMessageComponent], [typeof i2.CommonModule, typeof i3.EuiIconStateModule], [typeof i1.EuiFeedbackMessageComponent]>;
|
7
8
|
static ɵinj: i0.ɵɵInjectorDeclaration<EuiFeedbackMessageModule>;
|
8
9
|
}
|
9
10
|
//# sourceMappingURL=eui-feedback-message.module.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-feedback-message.module.d.ts","sourceRoot":"","sources":["../../eui-feedback-message/eui-feedback-message.module.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"eui-feedback-message.module.d.ts","sourceRoot":"","sources":["../../eui-feedback-message/eui-feedback-message.module.ts"],"names":[],"mappings":";;;;AAOA,qBAKa,wBAAwB;yCAAxB,wBAAwB;0CAAxB,wBAAwB;0CAAxB,wBAAwB;CAAG"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-tabs.component.d.ts","sourceRoot":"","sources":["../../eui-tabs/eui-tabs.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,YAAY,EAEZ,SAAS,EAET,SAAS,EAIT,SAAS,EACT,aAAa,EAEb,gBAAgB,EAEhB,UAAU,EACV,iBAAiB,EACjB,aAAa,EAIhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAW,gBAAgB,EAA4C,MAAM,qBAAqB,CAAC;AAE1G,OAAO,EAAiB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;;AAE9D,qBAMa,gBAAiB,YAAW,SAAS,EAAE,aAAa,EAAE,SAAS;IAsDpE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAxDtB,IACI,YAAY,IAAI,MAAM,CAMzB;IACQ,IAAI,EAAE,eAAe,EAAE,CAAM;IAC7B,cAAc,MAAQ;IAEtB,OAAO,SAAc;IACrB,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAY;IAEvC,QAAQ;aAA2B,eAAe;eAAS,MAAM;OAAM;IACvE,SAAS;aAA2B,eAAe;eAAS,MAAM;OAAM;IAEN,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,+BAA+B,EAAE,+BAA+B,CAAC;IACrE,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAChF,YAAY,EAAE,UAAU,CAAC;IAClB,mBAAmB,EAAE,UAAU,CAAC;IAE3D,SAAS,UAAS;IAClB,4BAA4B,UAAQ;IACpC,6BAA6B,UAAS;IACtC,aAAa,SAAK;IAEe,gBAAgB,UAAS;IACzB,iBAAiB,UAAS;IAC1B,SAAS,UAAS;IAClB,cAAc,UAAS;IAE/D,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,YAAY,CAAM;IAC1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc,CAAK;gBAGf,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,UAAU;IAGlC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAqCnC,eAAe,IAAI,IAAI;IAyDvB,WAAW,IAAI,IAAI;IAOnB,QAAQ,IAAI,IAAI;IAIT,gBAAgB,IAAI,IAAI;IAIxB,QAAQ,IAAI,IAAI;IAShB,SAAS,IAAI,IAAI;IAajB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA6C9B,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkB9C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI;IAW5C;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBjC,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,kBAAkB;yCA9UjB,gBAAgB;2CAAhB,gBAAgB;+
|
1
|
+
{"version":3,"file":"eui-tabs.component.d.ts","sourceRoot":"","sources":["../../eui-tabs/eui-tabs.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,YAAY,EAEZ,SAAS,EAET,SAAS,EAIT,SAAS,EACT,aAAa,EAEb,gBAAgB,EAEhB,UAAU,EACV,iBAAiB,EACjB,aAAa,EAIhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAW,gBAAgB,EAA4C,MAAM,qBAAqB,CAAC;AAE1G,OAAO,EAAiB,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;;AAE9D,qBAMa,gBAAiB,YAAW,SAAS,EAAE,aAAa,EAAE,SAAS;IAsDpE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAxDtB,IACI,YAAY,IAAI,MAAM,CAMzB;IACQ,IAAI,EAAE,eAAe,EAAE,CAAM;IAC7B,cAAc,MAAQ;IAEtB,OAAO,SAAc;IACrB,SAAS,EAAE,QAAQ,GAAG,MAAM,CAAY;IAEvC,QAAQ;aAA2B,eAAe;eAAS,MAAM;OAAM;IACvE,SAAS;aAA2B,eAAe;eAAS,MAAM;OAAM;IAEN,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,+BAA+B,EAAE,+BAA+B,CAAC;IACrE,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAChF,YAAY,EAAE,UAAU,CAAC;IAClB,mBAAmB,EAAE,UAAU,CAAC;IAE3D,SAAS,UAAS;IAClB,4BAA4B,UAAQ;IACpC,6BAA6B,UAAS;IACtC,aAAa,SAAK;IAEe,gBAAgB,UAAS;IACzB,iBAAiB,UAAS;IAC1B,SAAS,UAAS;IAClB,cAAc,UAAS;IAE/D,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,YAAY,CAAM;IAC1B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc,CAAK;gBAGf,EAAE,EAAE,iBAAiB,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,UAAU;IAGlC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAqCnC,eAAe,IAAI,IAAI;IAyDvB,WAAW,IAAI,IAAI;IAOnB,QAAQ,IAAI,IAAI;IAIT,gBAAgB,IAAI,IAAI;IAIxB,QAAQ,IAAI,IAAI;IAShB,SAAS,IAAI,IAAI;IAajB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA6C9B,OAAO,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkB9C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,GAAG,IAAI;IAW5C;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBjC,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,kBAAkB;yCA9UjB,gBAAgB;2CAAhB,gBAAgB;+CAqXsuZ,OAAQ;gDAAR,OAAQ;wCAAR,OAAQ;6CAAR,OAAQ;CAR1wZ;AAGD,qBACa,+BAA+B;IAClB,YAAY,SAAqC;yCAD9D,+BAA+B;2CAA/B,+BAA+B;CAE3C"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { Injectable, EventEmitter, booleanAttribute, numberAttribute, ElementRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, Output, ContentChildren, forwardRef, ViewChild, ViewChildren, Directive, NgModule } from '@angular/core';
|
3
3
|
import { BehaviorSubject, Subject, startWith, takeUntil } from 'rxjs';
|
4
|
-
import * as
|
4
|
+
import * as i8 from '@angular/cdk/drag-drop';
|
5
5
|
import { moveItemInArray, transferArrayItem, CdkDropList, DragDropModule } from '@angular/cdk/drag-drop';
|
6
6
|
import * as i5 from '@eui/components/eui-chip';
|
7
7
|
import { EuiChipTooltip, EuiChip, EuiChipComponent, EuiChipModule } from '@eui/components/eui-chip';
|
@@ -14,14 +14,13 @@ import * as i6 from '@eui/components/eui-button';
|
|
14
14
|
import { EuiButtonModule } from '@eui/components/eui-button';
|
15
15
|
import * as i7 from '@eui/components/eui-icon';
|
16
16
|
import { EuiIconModule } from '@eui/components/eui-icon';
|
17
|
-
import * as
|
18
|
-
import { EuiLabelModule } from '@eui/components/eui-label';
|
19
|
-
import * as i10 from '@eui/components/directives';
|
17
|
+
import * as i9 from '@eui/components/directives';
|
20
18
|
import { EuiTooltipDirectiveModule } from '@eui/components/directives';
|
21
|
-
import * as
|
19
|
+
import * as i10 from '@ngx-translate/core';
|
22
20
|
import { TranslateModule } from '@ngx-translate/core';
|
23
|
-
import * as
|
21
|
+
import * as i11 from '@eui/components/pipes';
|
24
22
|
import { EuiTruncatePipeModule } from '@eui/components/pipes';
|
23
|
+
import { EuiLabelModule } from '@eui/components/eui-label';
|
25
24
|
|
26
25
|
class EuiChipListDragService {
|
27
26
|
constructor() {
|
@@ -271,7 +270,7 @@ class EuiChipListComponent {
|
|
271
270
|
return tab;
|
272
271
|
}
|
273
272
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: EuiChipListComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: EuiChipListDragService }, { token: i2.DomSanitizer }, { token: i3.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
|
274
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: EuiChipListComponent, selector: "eui-chip-list, div[euiChipList], ul[euiChipList]", inputs: { chips: "chips", toggleLinkMoreLabel: "toggleLinkMoreLabel", toggleLinkLessLabel: "toggleLinkLessLabel", chipsSortOrder: "chipsSortOrder", dragAndDropSourceName: "dragAndDropSourceName", dragAndDropConnectedTo: "dragAndDropConnectedTo", ariaLabel: "ariaLabel", dropListOrientation: "dropListOrientation", isSquared: ["isSquared", "isSquared", booleanAttribute], isChipsRemovable: ["isChipsRemovable", "isChipsRemovable", booleanAttribute], isMaxVisibleChipsOpened: ["isMaxVisibleChipsOpened", "isMaxVisibleChipsOpened", booleanAttribute], isChipsSorted: ["isChipsSorted", "isChipsSorted", booleanAttribute], isChipsDragAndDrop: ["isChipsDragAndDrop", "isChipsDragAndDrop", booleanAttribute], isGrid: ["isGrid", "isGrid", booleanAttribute], maxVisibleChipsCount: ["maxVisibleChipsCount", "maxVisibleChipsCount", numberAttribute], chipsLabelTruncateCount: ["chipsLabelTruncateCount", "chipsLabelTruncateCount", numberAttribute] }, outputs: { chipsInit: "chipsInit", chipRemove: "chipRemove", chipDragStart: "chipDragStart", chipDragRelease: "chipDragRelease", chipDrop: "chipDrop", chiplistFocus: "chiplistFocus" }, host: { properties: { "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses" } }, queries: [{ propertyName: "euiChipsContent", predicate: i0.forwardRef(() => EuiChipComponent) }], viewQueries: [{ propertyName: "chipListDropList", first: true, predicate: ["chipListDropList"], descendants: true, read: CdkDropList }, { propertyName: "chipListDragAndDropItems", first: true, predicate: ["chipListDragAndDropItems"], descendants: true, read: CdkDropList }, { propertyName: "euiChipItems", predicate: ["euiChipItem"], descendants: true, read: ElementRef }], usesOnChanges: true, hostDirectives: [{ directive: i3.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant", "euiOutline", "euiOutline", "euiDisabled", "euiDisabled"] }], ngImport: i0, template: "<div *ngIf=\"!isGrid\" class=\"eui-chip-list-container\">\n <div class=\"eui-chip-list-wrapper\">\n <div\n role=\"list\"\n #chipList\n #chipListDropList\n #chipListDragAndDropItems\n cdkDropList\n [cdkDropListOrientation]=\"dropListOrientation\"\n [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n [cdkDropListData]=\"{ chips }\"\n [cdkDropListConnectedTo]=\"droppableArea\"\n (cdkDropListDropped)=\"drop($event)\"\n (focus)=\"onFocus()\"\n class=\"eui-chip-list__list\">\n @for ( chip of chips; track chip; let i = $index; ) {\n @if (\n (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n !maxVisibleChipsCount\n ) {\n <div\n class=\"eui-chip-list__chip-container\"\n [class.eui-chip--hidden]=\"maxVisibleChipsCount > i\"\n cdkDrag\n [cdkDragData]=\"chip\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragReleased)=\"onDragReleased($event)\">\n <eui-chip\n #euiChipItem\n [data]=\"chip.data ? chip.data : chip\"\n [attr.role]=\"'listitem'\"\n ariaLabel=\"{{ getChipLabel(chip) }}\"\n [euiInternalId]=\"chip.euiInternalId\"\n [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n [euiTooltip]=\"chip.tooltipMessage\"\n [position]=\"chip.tooltip?.position\"\n [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n (remove)=\"onRemove($event)\">\n <eui-icon-svg *ngIf=\"chip.iconSvgName\" [icon]=\"chip.iconSvgName\"></eui-icon-svg>\n <span *ngIf=\"chip.iconClass\" class=\"{{ chip.iconClass }}\"></span>\n <span class=\"eui-chip-list__chip-content\" *ngIf=\"!chipsLabelTruncateCount\" [innerHTML]=\"getChipContent(chip)\"></span>\n <span *ngIf=\"chipsLabelTruncateCount\" title=\"{{ getChipLabel(chip) }}\">{{\n getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount\n }}</span>\n </eui-chip>\n </div>\n }\n }\n <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n </div>\n </div>\n \n</div>\n\n<div *ngIf=\"isGrid\" class=\"eui-chip-list-container\">\n <div class=\"eui-chip-list-wrapper\">\n <div class=\"eui-chip-list__group\" cdkDropListGroup>\n <div\n role=\"list\"\n #chipList\n #chipListDropList\n #chipListDragAndDropItems\n cdkDropList\n *ngFor=\"let chip of chips; let i = index\"\n [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n [cdkDropListData]=\"{ chip: chip, index: i }\"\n (focus)=\"onFocus()\"\n (cdkDropListDropped)=\"onDropGrid($event)\"\n class=\"eui-chip-list__custom\">\n @for ( chip of chips; track chip; let i = $index; ) {\n @if (\n (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n !maxVisibleChipsCount\n ) {\n <div\n class=\"eui-chip-list__chip-container\"\n cdkDrag\n [cdkDragData]=\"{ chip: chip, index: i }\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragReleased)=\"onDragReleased($event)\"\n (cdkDragEntered)=\"onDragEnter($event)\">\n <eui-chip\n #euiChipItem\n [data]=\"chip.data ? chip.data : chip\"\n [id]=\"chip.id\"\n [attr.role]=\"'listitem'\"\n ariaLabel=\"{{ getChipLabel(chip) }}\"\n [euiInternalId]=\"chip.euiInternalId\"\n [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n [euiTooltip]=\"chip.tooltipMessage\"\n [position]=\"chip.tooltip?.position\"\n [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n (remove)=\"onRemove($event)\">\n <eui-icon-svg *ngIf=\"chip.iconSvgName\" [icon]=\"chip.iconSvgName\"></eui-icon-svg>\n <span *ngIf=\"!chipsLabelTruncateCount\" [innerHTML]=\"getChipContent(chip)\"></span>\n <span *ngIf=\"chipsLabelTruncateCount\" title=\"{{ getChipLabel(chip) }}\">{{\n getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount\n }}</span>\n </eui-chip>\n </div>\n } \n }\n </div>\n <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #euiChipListAppendContent>\n <ng-content select=\"euiChipListAppendContent\"></ng-content>\n</ng-template>\n\n<ng-template #additionalContent>\n <ng-container *ngIf=\"maxVisibleChipsCount && chips && chips.length > maxVisibleChipsCount\">\n <div class=\"eui-chip-list__expand-button-wrapper\">\n <button\n euiButton\n euiBasicButton\n euiSecondary\n euiSizeS\n type=\"button\"\n class=\"eui-chip-list__expand-button\"\n (click)=\"toggleTags()\"\n *ngIf=\"isMaxVisibleChipsOpened\">\n <eui-icon-svg icon=\"chevron-back:sharp\" aria-label=\"Collapse icon\"></eui-icon-svg>\n <span euiLabel *ngIf=\"toggleLinkLessLabel\">{{ toggleLinkLessLabel | translate }}</span>\n </button>\n <button\n euiButton\n euiBasicButton\n euiSecondary\n euiSizeS\n type=\"button\"\n aria-haspopup=\"true\"\n class=\"eui-chip-list__expand-button\"\n (click)=\"toggleTags()\"\n *ngIf=\"!isMaxVisibleChipsOpened\">\n <span euiLabel *ngIf=\"toggleLinkMoreLabel\">{{ toggleLinkMoreLabel | translate }}</span>\n <eui-icon-svg icon=\"chevron-forward:sharp\" aria-label=\"Expand icon\"></eui-icon-svg>\n </button>\n </div>\n </ng-container>\n</ng-template>\n", styles: [".eui-chip-list{align-items:center;display:flex;margin:0;padding:0}.eui-chip-list .eui-chip-list-container{align-items:center;display:flex;margin-bottom:var(--eui-s-2xs)}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper{align-items:center;display:flex;width:100%;flex-wrap:wrap}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__list{flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__chip-container{align-items:center;display:inline-flex}.eui-chip-list[ischipsdraganddrop] .eui-chip-list-container{width:100%}.eui-chip-list__group{display:flex;flex-wrap:wrap}.eui-chip-list__chip-container.cdk-drag:not(.cdk-drag-disabled){cursor:move!important}.eui-chip-list__custom{min-width:auto!important;width:auto!important}.eui-chip-list__chip-content{display:flex;align-items:center;gap:var(--eui-s-xs)}@media screen and (max-width: 767px){.eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared", "isFilled"], outputs: ["remove"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i7.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i8.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: "directive", type: i9.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i9.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i9.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i10.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i12.EuiTruncatePipe, name: "euiTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
273
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.2", type: EuiChipListComponent, selector: "eui-chip-list, div[euiChipList], ul[euiChipList]", inputs: { chips: "chips", toggleLinkMoreLabel: "toggleLinkMoreLabel", toggleLinkLessLabel: "toggleLinkLessLabel", chipsSortOrder: "chipsSortOrder", dragAndDropSourceName: "dragAndDropSourceName", dragAndDropConnectedTo: "dragAndDropConnectedTo", ariaLabel: "ariaLabel", dropListOrientation: "dropListOrientation", isSquared: ["isSquared", "isSquared", booleanAttribute], isChipsRemovable: ["isChipsRemovable", "isChipsRemovable", booleanAttribute], isMaxVisibleChipsOpened: ["isMaxVisibleChipsOpened", "isMaxVisibleChipsOpened", booleanAttribute], isChipsSorted: ["isChipsSorted", "isChipsSorted", booleanAttribute], isChipsDragAndDrop: ["isChipsDragAndDrop", "isChipsDragAndDrop", booleanAttribute], isGrid: ["isGrid", "isGrid", booleanAttribute], maxVisibleChipsCount: ["maxVisibleChipsCount", "maxVisibleChipsCount", numberAttribute], chipsLabelTruncateCount: ["chipsLabelTruncateCount", "chipsLabelTruncateCount", numberAttribute] }, outputs: { chipsInit: "chipsInit", chipRemove: "chipRemove", chipDragStart: "chipDragStart", chipDragRelease: "chipDragRelease", chipDrop: "chipDrop", chiplistFocus: "chiplistFocus" }, host: { properties: { "attr.aria-label": "this.ariaLabel", "class": "this.cssClasses" } }, queries: [{ propertyName: "euiChipsContent", predicate: i0.forwardRef(() => EuiChipComponent) }], viewQueries: [{ propertyName: "chipListDropList", first: true, predicate: ["chipListDropList"], descendants: true, read: CdkDropList }, { propertyName: "chipListDragAndDropItems", first: true, predicate: ["chipListDragAndDropItems"], descendants: true, read: CdkDropList }, { propertyName: "euiChipItems", predicate: ["euiChipItem"], descendants: true, read: ElementRef }], usesOnChanges: true, hostDirectives: [{ directive: i3.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant", "euiOutline", "euiOutline", "euiDisabled", "euiDisabled"] }], ngImport: i0, template: "<div class=\"eui-chip-list-container\">\n <div class=\"eui-chip-list-wrapper\">\n\n @if (!isGrid) {\n <div\n role=\"list\"\n #chipList\n #chipListDropList\n #chipListDragAndDropItems\n cdkDropList\n [cdkDropListOrientation]=\"dropListOrientation\"\n [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n [cdkDropListData]=\"{ chips }\"\n [cdkDropListConnectedTo]=\"droppableArea\"\n (cdkDropListDropped)=\"drop($event)\"\n (focus)=\"onFocus()\"\n class=\"eui-chip-list__list\">\n\n @for ( chip of chips; track chip; let i = $index; ) {\n @if (\n (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n !maxVisibleChipsCount\n ) {\n <div\n class=\"eui-chip-list__chip-container\"\n [class.eui-chip--hidden]=\"maxVisibleChipsCount > i\"\n cdkDrag\n [cdkDragData]=\"chip\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragReleased)=\"onDragReleased($event)\">\n <eui-chip\n #euiChipItem\n [data]=\"chip.data ? chip.data : chip\"\n [attr.role]=\"'listitem'\"\n ariaLabel=\"{{ getChipLabel(chip) }}\"\n [euiInternalId]=\"chip.euiInternalId\"\n [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n [euiTooltip]=\"chip.tooltipMessage\"\n [position]=\"chip.tooltip?.position\"\n [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n (remove)=\"onRemove($event)\">\n\n @if (chip.iconSvgName) {\n <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n }\n @if (chip.iconClass) {\n <span class=\"{{ chip.iconClass }}\"></span>\n }\n @if (chipsLabelTruncateCount) {\n <span title=\"{{ getChipLabel(chip) }}\">\n {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n </span>\n } @else {\n <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n } \n </eui-chip>\n </div>\n }\n }\n <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n </div>\n\n } @else { // isGrid\n\n <div class=\"eui-chip-list__group\" cdkDropListGroup>\n @for ( chip of chips; track chip; let i = $index; ) {\n @if (\n (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n !maxVisibleChipsCount\n )\n {\n <div\n role=\"list\"\n #chipList\n #chipListDropList\n #chipListDragAndDropItems\n cdkDropList\n [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n [cdkDropListData]=\"{ chip: chip, index: i }\"\n (focus)=\"onFocus()\"\n (cdkDropListDropped)=\"onDropGrid($event)\"\n class=\"eui-chip-list__custom\">\n <div\n class=\"eui-chip-list__chip-container\"\n cdkDrag\n [cdkDragData]=\"{ chip: chip, index: i }\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragReleased)=\"onDragReleased($event)\"\n (cdkDragEntered)=\"onDragEnter($event)\">\n <eui-chip\n #euiChipItem\n [data]=\"chip.data ? chip.data : chip\"\n [id]=\"chip.id\"\n [attr.role]=\"'listitem'\"\n ariaLabel=\"{{ getChipLabel(chip) }}\"\n [euiInternalId]=\"chip.euiInternalId\"\n [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n [euiTooltip]=\"chip.tooltipMessage\"\n [position]=\"chip.tooltip?.position\"\n [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n (remove)=\"onRemove($event)\">\n \n @if (chip.iconSvgName) {\n <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n }\n @if (chipsLabelTruncateCount) {\n <span title=\"{{ getChipLabel(chip) }}\">\n {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n </span>\n } @else {\n <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n }\n </eui-chip>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n }\n }\n </div>\n }\n </div>\n</div>\n\n<ng-template #euiChipListAppendContent>\n <ng-content select=\"euiChipListAppendContent\"></ng-content>\n</ng-template>\n\n<ng-template #additionalContent>\n @if (maxVisibleChipsCount && chips && chips.length > maxVisibleChipsCount) {\n <div class=\"eui-chip-list__expand-button-wrapper\">\n <button\n euiButton\n euiBasicButton\n euiSecondary\n euiSizeS\n type=\"button\"\n class=\"eui-chip-list__expand-button\"\n (click)=\"toggleTags()\">\n\n @if (isMaxVisibleChipsOpened) {\n <eui-icon-svg icon=\"chevron-back:sharp\" aria-label=\"Collapse icon\" />\n @if (toggleLinkLessLabel) {\n {{ toggleLinkLessLabel | translate }}\n }\n } @else {\n @if (toggleLinkMoreLabel) {\n {{ toggleLinkMoreLabel | translate }}\n }\n <eui-icon-svg icon=\"chevron-forward:sharp\" aria-label=\"Expand icon\" />\n }\n </button>\n </div>\n }\n</ng-template>\n", styles: [".eui-chip-list{align-items:center;display:flex;margin:0;padding:0}.eui-chip-list .eui-chip-list-container{align-items:center;display:flex;margin-bottom:var(--eui-s-2xs)}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper{align-items:center;display:flex;width:100%;flex-wrap:wrap}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__list{flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__chip-container{align-items:center;display:inline-flex}.eui-chip-list[ischipsdraganddrop] .eui-chip-list-container{width:100%}.eui-chip-list__group{display:flex;flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-chip-list__chip-container.cdk-drag:not(.cdk-drag-disabled){cursor:move!important}.eui-chip-list__custom{min-width:auto!important;width:auto!important}.eui-chip-list__chip-content{display:flex;align-items:center;gap:var(--eui-s-xs)}@media screen and (max-width: 767px){.eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}\n"], dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.EuiChipComponent, selector: "eui-chip, span[euiChip], li[euiChip]", inputs: ["ariaLabel", "e2eAttr", "euiInternalId", "tooltipMessage", "id", "data", "isChipRemovable", "isSquared", "isFilled"], outputs: ["remove"] }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i7.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i9.EuiTooltipDirective, selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.EuiTruncatePipe, name: "euiTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
275
274
|
}
|
276
275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: EuiChipListComponent, decorators: [{
|
277
276
|
type: Component,
|
@@ -291,7 +290,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
291
290
|
'euiDisabled',
|
292
291
|
],
|
293
292
|
},
|
294
|
-
], template: "<div
|
293
|
+
], template: "<div class=\"eui-chip-list-container\">\n <div class=\"eui-chip-list-wrapper\">\n\n @if (!isGrid) {\n <div\n role=\"list\"\n #chipList\n #chipListDropList\n #chipListDragAndDropItems\n cdkDropList\n [cdkDropListOrientation]=\"dropListOrientation\"\n [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n [cdkDropListData]=\"{ chips }\"\n [cdkDropListConnectedTo]=\"droppableArea\"\n (cdkDropListDropped)=\"drop($event)\"\n (focus)=\"onFocus()\"\n class=\"eui-chip-list__list\">\n\n @for ( chip of chips; track chip; let i = $index; ) {\n @if (\n (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n !maxVisibleChipsCount\n ) {\n <div\n class=\"eui-chip-list__chip-container\"\n [class.eui-chip--hidden]=\"maxVisibleChipsCount > i\"\n cdkDrag\n [cdkDragData]=\"chip\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragReleased)=\"onDragReleased($event)\">\n <eui-chip\n #euiChipItem\n [data]=\"chip.data ? chip.data : chip\"\n [attr.role]=\"'listitem'\"\n ariaLabel=\"{{ getChipLabel(chip) }}\"\n [euiInternalId]=\"chip.euiInternalId\"\n [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n [euiTooltip]=\"chip.tooltipMessage\"\n [position]=\"chip.tooltip?.position\"\n [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n (remove)=\"onRemove($event)\">\n\n @if (chip.iconSvgName) {\n <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n }\n @if (chip.iconClass) {\n <span class=\"{{ chip.iconClass }}\"></span>\n }\n @if (chipsLabelTruncateCount) {\n <span title=\"{{ getChipLabel(chip) }}\">\n {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n </span>\n } @else {\n <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n } \n </eui-chip>\n </div>\n }\n }\n <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n </div>\n\n } @else { // isGrid\n\n <div class=\"eui-chip-list__group\" cdkDropListGroup>\n @for ( chip of chips; track chip; let i = $index; ) {\n @if (\n (maxVisibleChipsCount && isMaxVisibleChipsOpened) ||\n (maxVisibleChipsCount && maxVisibleChipsCount > i) ||\n !maxVisibleChipsCount\n )\n {\n <div\n role=\"list\"\n #chipList\n #chipListDropList\n #chipListDragAndDropItems\n cdkDropList\n [cdkDropListDisabled]=\"!isChipsDragAndDrop\"\n [cdkDropListData]=\"{ chip: chip, index: i }\"\n (focus)=\"onFocus()\"\n (cdkDropListDropped)=\"onDropGrid($event)\"\n class=\"eui-chip-list__custom\">\n <div\n class=\"eui-chip-list__chip-container\"\n cdkDrag\n [cdkDragData]=\"{ chip: chip, index: i }\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragReleased)=\"onDragReleased($event)\"\n (cdkDragEntered)=\"onDragEnter($event)\">\n <eui-chip\n #euiChipItem\n [data]=\"chip.data ? chip.data : chip\"\n [id]=\"chip.id\"\n [attr.role]=\"'listitem'\"\n ariaLabel=\"{{ getChipLabel(chip) }}\"\n [euiInternalId]=\"chip.euiInternalId\"\n [isChipRemovable]=\"chip.isChipRemovable || (isChipsRemovable && chip.isRemovable) !== false\"\n [euiOutline]=\"chip.euiOutline || this.baseStatesDirective?.euiOutline || chip.isOutline\"\n [euiVariant]=\"chip.typeClass || this.baseStatesDirective?.euiVariant || chip.baseStatesDirective?.euiVariant\"\n [euiDisabled]=\"chip.euiDisabled || this.baseStatesDirective?.euiDisabled || chip.isDisabled\"\n [euiTooltip]=\"chip.tooltipMessage\"\n [position]=\"chip.tooltip?.position\"\n [contentAlignment]=\"chip.tooltip?.contentAlignment\"\n (remove)=\"onRemove($event)\">\n \n @if (chip.iconSvgName) {\n <eui-icon-svg [icon]=\"chip.iconSvgName\" />\n }\n @if (chipsLabelTruncateCount) {\n <span title=\"{{ getChipLabel(chip) }}\">\n {{ getChipLabel(chip) | euiTruncate: chipsLabelTruncateCount }}\n </span>\n } @else {\n <span class=\"eui-chip-list__chip-content\" [innerHTML]=\"getChipContent(chip)\"></span>\n }\n </eui-chip>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"euiChipListAppendContent\"></ng-container>\n <ng-container *ngTemplateOutlet=\"additionalContent\"></ng-container>\n }\n }\n </div>\n }\n </div>\n</div>\n\n<ng-template #euiChipListAppendContent>\n <ng-content select=\"euiChipListAppendContent\"></ng-content>\n</ng-template>\n\n<ng-template #additionalContent>\n @if (maxVisibleChipsCount && chips && chips.length > maxVisibleChipsCount) {\n <div class=\"eui-chip-list__expand-button-wrapper\">\n <button\n euiButton\n euiBasicButton\n euiSecondary\n euiSizeS\n type=\"button\"\n class=\"eui-chip-list__expand-button\"\n (click)=\"toggleTags()\">\n\n @if (isMaxVisibleChipsOpened) {\n <eui-icon-svg icon=\"chevron-back:sharp\" aria-label=\"Collapse icon\" />\n @if (toggleLinkLessLabel) {\n {{ toggleLinkLessLabel | translate }}\n }\n } @else {\n @if (toggleLinkMoreLabel) {\n {{ toggleLinkMoreLabel | translate }}\n }\n <eui-icon-svg icon=\"chevron-forward:sharp\" aria-label=\"Expand icon\" />\n }\n </button>\n </div>\n }\n</ng-template>\n", styles: [".eui-chip-list{align-items:center;display:flex;margin:0;padding:0}.eui-chip-list .eui-chip-list-container{align-items:center;display:flex;margin-bottom:var(--eui-s-2xs)}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper{align-items:center;display:flex;width:100%;flex-wrap:wrap}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__list{flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-chip-list .eui-chip-list-container .eui-chip-list-wrapper .eui-chip-list__chip-container{align-items:center;display:inline-flex}.eui-chip-list[ischipsdraganddrop] .eui-chip-list-container{width:100%}.eui-chip-list__group{display:flex;flex-wrap:wrap;gap:var(--eui-s-xs)}.eui-chip-list__chip-container.cdk-drag:not(.cdk-drag-disabled){cursor:move!important}.eui-chip-list__custom{min-width:auto!important;width:auto!important}.eui-chip-list__chip-content{display:flex;align-items:center;gap:var(--eui-s-xs)}@media screen and (max-width: 767px){.eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}@media screen and (min-width: 768px) and (max-width: 995px){.eui-chip-list .eui-chip-list-container{flex-wrap:wrap}}\n"] }]
|
295
294
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: EuiChipListDragService }, { type: i2.DomSanitizer }, { type: i3.BaseStatesDirective }], propDecorators: { chips: [{
|
296
295
|
type: Input
|
297
296
|
}], toggleLinkMoreLabel: [{
|