UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

218 lines (213 loc) 18.9 kB
/** * @fileoverview added by tsickle * Generated from: list.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __decorate, __metadata } from "tslib"; /** * @license * Copyright Alibaba.com All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewEncapsulation } from '@angular/core'; import { InputBoolean } from 'ng-zorro-antd/core/util'; import { BehaviorSubject } from 'rxjs'; import { NzListFooterComponent, NzListLoadMoreDirective, NzListPaginationComponent } from './list-cell'; export class NzListComponent { constructor() { this.nzBordered = false; this.nzItemLayout = 'horizontal'; this.nzRenderItem = null; this.nzLoading = false; this.nzLoadMore = null; this.nzSize = 'default'; this.nzSplit = true; this.hasSomethingAfterLastItem = false; this.itemLayoutNotifySource = new BehaviorSubject(this.nzItemLayout); } /** * @return {?} */ get itemLayoutNotify$() { return this.itemLayoutNotifySource.asObservable(); } /** * @return {?} */ getSomethingAfterLastItem() { return !!(this.nzLoadMore || this.nzPagination || this.nzFooter || this.nzListFooterComponent || this.nzListPaginationComponent || this.nzListLoadMoreDirective); } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { if (changes.nzItemLayout) { this.itemLayoutNotifySource.next(this.nzItemLayout); } } /** * @return {?} */ ngOnDestroy() { this.itemLayoutNotifySource.unsubscribe(); } /** * @return {?} */ ngAfterContentInit() { this.hasSomethingAfterLastItem = this.getSomethingAfterLastItem(); } } NzListComponent.decorators = [ { type: Component, args: [{ selector: 'nz-list, [nz-list]', exportAs: 'nzList', template: ` <ng-template #itemsTpl> <div class="ant-list-items"> <ng-container *ngFor="let item of nzDataSource; let index = index"> <ng-template [ngTemplateOutlet]="nzRenderItem" [ngTemplateOutletContext]="{ $implicit: item, index: index }"></ng-template> </ng-container> <ng-content select="nz-list-item, [nz-list-item]"></ng-content> </div> </ng-template> <nz-list-header *ngIf="nzHeader"> <ng-container *nzStringTemplateOutlet="nzHeader">{{ nzHeader }}</ng-container> </nz-list-header> <ng-content select="nz-list-header"></ng-content> <nz-spin [nzSpinning]="nzLoading"> <ng-container> <div *ngIf="nzLoading && nzDataSource && nzDataSource.length === 0" [style.min-height.px]="53"></div> <div *ngIf="nzGrid && nzDataSource; else itemsTpl" nz-row [nzGutter]="nzGrid.gutter || null"> <div nz-col [nzSpan]="nzGrid.span || null" [nzXs]="nzGrid.xs || null" [nzSm]="nzGrid.sm || null" [nzMd]="nzGrid.md || null" [nzLg]="nzGrid.lg || null" [nzXl]="nzGrid.xl || null" [nzXXl]="nzGrid.xxl || null" *ngFor="let item of nzDataSource; let index = index" > <ng-template [ngTemplateOutlet]="nzRenderItem" [ngTemplateOutletContext]="{ $implicit: item, index: index }"></ng-template> </div> </div> <nz-list-empty *ngIf="!nzLoading && nzDataSource && nzDataSource.length === 0" [nzNoResult]="nzNoResult"></nz-list-empty> </ng-container> <ng-content></ng-content> </nz-spin> <nz-list-footer *ngIf="nzFooter"> <ng-container *nzStringTemplateOutlet="nzFooter">{{ nzFooter }}</ng-container> </nz-list-footer> <ng-content select="nz-list-footer, [nz-list-footer]"></ng-content> <ng-template [ngTemplateOutlet]="nzLoadMore"></ng-template> <ng-content select="nz-list-load-more, [nz-list-load-more]"></ng-content> <nz-list-pagination *ngIf="nzPagination"> <ng-template [ngTemplateOutlet]="nzPagination"></ng-template> </nz-list-pagination> <ng-content select="nz-list-pagination, [nz-list-pagination]"></ng-content> `, preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[class.ant-list]': 'true', '[class.ant-list-vertical]': 'nzItemLayout === "vertical"', '[class.ant-list-lg]': 'nzSize === "large"', '[class.ant-list-sm]': 'nzSize === "small"', '[class.ant-list-split]': 'nzSplit', '[class.ant-list-bordered]': 'nzBordered', '[class.ant-list-loading]': 'nzLoading', '[class.ant-list-something-after-last-item]': 'hasSomethingAfterLastItem' } }] } ]; /** @nocollapse */ NzListComponent.ctorParameters = () => []; NzListComponent.propDecorators = { nzDataSource: [{ type: Input }], nzBordered: [{ type: Input }], nzGrid: [{ type: Input }], nzHeader: [{ type: Input }], nzFooter: [{ type: Input }], nzItemLayout: [{ type: Input }], nzRenderItem: [{ type: Input }], nzLoading: [{ type: Input }], nzLoadMore: [{ type: Input }], nzPagination: [{ type: Input }], nzSize: [{ type: Input }], nzSplit: [{ type: Input }], nzNoResult: [{ type: Input }], nzListFooterComponent: [{ type: ContentChild, args: [NzListFooterComponent,] }], nzListPaginationComponent: [{ type: ContentChild, args: [NzListPaginationComponent,] }], nzListLoadMoreDirective: [{ type: ContentChild, args: [NzListLoadMoreDirective,] }] }; __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzListComponent.prototype, "nzBordered", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzListComponent.prototype, "nzLoading", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzListComponent.prototype, "nzSplit", void 0); if (false) { /** @type {?} */ NzListComponent.ngAcceptInputType_nzBordered; /** @type {?} */ NzListComponent.ngAcceptInputType_nzLoading; /** @type {?} */ NzListComponent.ngAcceptInputType_nzSplit; /** @type {?} */ NzListComponent.prototype.nzDataSource; /** @type {?} */ NzListComponent.prototype.nzBordered; /** @type {?} */ NzListComponent.prototype.nzGrid; /** @type {?} */ NzListComponent.prototype.nzHeader; /** @type {?} */ NzListComponent.prototype.nzFooter; /** @type {?} */ NzListComponent.prototype.nzItemLayout; /** @type {?} */ NzListComponent.prototype.nzRenderItem; /** @type {?} */ NzListComponent.prototype.nzLoading; /** @type {?} */ NzListComponent.prototype.nzLoadMore; /** @type {?} */ NzListComponent.prototype.nzPagination; /** @type {?} */ NzListComponent.prototype.nzSize; /** @type {?} */ NzListComponent.prototype.nzSplit; /** @type {?} */ NzListComponent.prototype.nzNoResult; /** @type {?} */ NzListComponent.prototype.nzListFooterComponent; /** @type {?} */ NzListComponent.prototype.nzListPaginationComponent; /** @type {?} */ NzListComponent.prototype.nzListLoadMoreDirective; /** @type {?} */ NzListComponent.prototype.hasSomethingAfterLastItem; /** * @type {?} * @private */ NzListComponent.prototype.itemLayoutNotifySource; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkL2xpc3QvIiwic291cmNlcyI6WyJsaXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQXNFeEcsTUFBTSxPQUFPLGVBQWU7SUErQjFCO1FBekJ5QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBSW5DLGlCQUFZLEdBQXNCLFlBQVksQ0FBQztRQUMvQyxpQkFBWSxHQUE2QixJQUFJLENBQUM7UUFDOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQyxlQUFVLEdBQTZCLElBQUksQ0FBQztRQUU1QyxXQUFNLEdBQWtCLFNBQVMsQ0FBQztRQUNsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBT3hDLDhCQUF5QixHQUFHLEtBQUssQ0FBQztRQUUxQiwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBTTVFLENBQUM7Ozs7SUFKaEIsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7OztJQUlELHlCQUF5QjtRQUN2QixPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMscUJBQXFCO1lBQzFCLElBQUksQ0FBQyx5QkFBeUI7WUFDOUIsSUFBSSxDQUFDLHVCQUF1QixDQUM3QixDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQzs7OztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUMsQ0FBQzs7OztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDcEUsQ0FBQzs7O1lBM0hGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtEVDtnQkFDRCxtQkFBbUIsRUFBRSxLQUFLO2dCQUMxQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLElBQUksRUFBRTtvQkFDSixrQkFBa0IsRUFBRSxNQUFNO29CQUMxQiwyQkFBMkIsRUFBRSw2QkFBNkI7b0JBQzFELHFCQUFxQixFQUFFLG9CQUFvQjtvQkFDM0MscUJBQXFCLEVBQUUsb0JBQW9CO29CQUMzQyx3QkFBd0IsRUFBRSxTQUFTO29CQUNuQywyQkFBMkIsRUFBRSxZQUFZO29CQUN6QywwQkFBMEIsRUFBRSxXQUFXO29CQUN2Qyw0Q0FBNEMsRUFBRSwyQkFBMkI7aUJBQzFFO2FBQ0Y7Ozs7OzJCQU1FLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7cUJBQ0wsS0FBSztzQkFDTCxLQUFLO3lCQUNMLEtBQUs7b0NBRUwsWUFBWSxTQUFDLHFCQUFxQjt3Q0FDbEMsWUFBWSxTQUFDLHlCQUF5QjtzQ0FDdEMsWUFBWSxTQUFDLHVCQUF1Qjs7QUFmWjtJQUFmLFlBQVksRUFBRTs7bURBQW9CO0FBTW5CO0lBQWYsWUFBWSxFQUFFOztrREFBbUI7QUFJbEI7SUFBZixZQUFZLEVBQUU7O2dEQUFnQjs7O0lBZnhDLDZDQUFrRDs7SUFDbEQsNENBQWlEOztJQUNqRCwwQ0FBK0M7O0lBRS9DLHVDQUFvQzs7SUFDcEMscUNBQTRDOztJQUM1QyxpQ0FBNkI7O0lBQzdCLG1DQUErQzs7SUFDL0MsbUNBQStDOztJQUMvQyx1Q0FBd0Q7O0lBQ3hELHVDQUF1RDs7SUFDdkQsb0NBQTJDOztJQUMzQyxxQ0FBcUQ7O0lBQ3JELHVDQUEwQzs7SUFDMUMsaUNBQTJDOztJQUMzQyxrQ0FBd0M7O0lBQ3hDLHFDQUFpRDs7SUFFakQsZ0RBQW1GOztJQUNuRixvREFBK0Y7O0lBQy9GLGtEQUF5Rjs7SUFFekYsb0RBQWtDOzs7OztJQUVsQyxpREFBMkYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgTnpEaXJlY3Rpb25WSFR5cGUsIE56U2FmZUFueSwgTnpTaXplTERTVHlwZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdXRpbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE56TGlzdEdyaWQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBOekxpc3RGb290ZXJDb21wb25lbnQsIE56TGlzdExvYWRNb3JlRGlyZWN0aXZlLCBOekxpc3RQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWNlbGwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduei1saXN0LCBbbnotbGlzdF0nLFxuICBleHBvcnRBczogJ256TGlzdCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNpdGVtc1RwbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJhbnQtbGlzdC1pdGVtc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIG56RGF0YVNvdXJjZTsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibnpSZW5kZXJJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLCBpbmRleDogaW5kZXggfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuei1saXN0LWl0ZW0sIFtuei1saXN0LWl0ZW1dXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuei1saXN0LWhlYWRlciAqbmdJZj1cIm56SGVhZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuelN0cmluZ1RlbXBsYXRlT3V0bGV0PVwibnpIZWFkZXJcIj57eyBuekhlYWRlciB9fTwvbmctY29udGFpbmVyPlxuICAgIDwvbnotbGlzdC1oZWFkZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnotbGlzdC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bnotc3BpbiBbbnpTcGlubmluZ109XCJuekxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJuekxvYWRpbmcgJiYgbnpEYXRhU291cmNlICYmIG56RGF0YVNvdXJjZS5sZW5ndGggPT09IDBcIiBbc3R5bGUubWluLWhlaWdodC5weF09XCI1M1wiPjwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibnpHcmlkICYmIG56RGF0YVNvdXJjZTsgZWxzZSBpdGVtc1RwbFwiIG56LXJvdyBbbnpHdXR0ZXJdPVwibnpHcmlkLmd1dHRlciB8fCBudWxsXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgbnotY29sXG4gICAgICAgICAgICBbbnpTcGFuXT1cIm56R3JpZC5zcGFuIHx8IG51bGxcIlxuICAgICAgICAgICAgW256WHNdPVwibnpHcmlkLnhzIHx8IG51bGxcIlxuICAgICAgICAgICAgW256U21dPVwibnpHcmlkLnNtIHx8IG51bGxcIlxuICAgICAgICAgICAgW256TWRdPVwibnpHcmlkLm1kIHx8IG51bGxcIlxuICAgICAgICAgICAgW256TGddPVwibnpHcmlkLmxnIHx8IG51bGxcIlxuICAgICAgICAgICAgW256WGxdPVwibnpHcmlkLnhsIHx8IG51bGxcIlxuICAgICAgICAgICAgW256WFhsXT1cIm56R3JpZC54eGwgfHwgbnVsbFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuekRhdGFTb3VyY2U7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibnpSZW5kZXJJdGVtXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLCBpbmRleDogaW5kZXggfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bnotbGlzdC1lbXB0eSAqbmdJZj1cIiFuekxvYWRpbmcgJiYgbnpEYXRhU291cmNlICYmIG56RGF0YVNvdXJjZS5sZW5ndGggPT09IDBcIiBbbnpOb1Jlc3VsdF09XCJuek5vUmVzdWx0XCI+PC9uei1saXN0LWVtcHR5PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uei1zcGluPlxuXG4gICAgPG56LWxpc3QtZm9vdGVyICpuZ0lmPVwibnpGb290ZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm56U3RyaW5nVGVtcGxhdGVPdXRsZXQ9XCJuekZvb3RlclwiPnt7IG56Rm9vdGVyIH19PC9uZy1jb250YWluZXI+XG4gICAgPC9uei1saXN0LWZvb3Rlcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuei1saXN0LWZvb3RlciwgW256LWxpc3QtZm9vdGVyXVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJuekxvYWRNb3JlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuei1saXN0LWxvYWQtbW9yZSwgW256LWxpc3QtbG9hZC1tb3JlXVwiPjwvbmctY29udGVudD5cblxuICAgIDxuei1saXN0LXBhZ2luYXRpb24gKm5nSWY9XCJuelBhZ2luYXRpb25cIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJuelBhZ2luYXRpb25cIj48L25nLXRlbXBsYXRlPlxuICAgIDwvbnotbGlzdC1wYWdpbmF0aW9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm56LWxpc3QtcGFnaW5hdGlvbiwgW256LWxpc3QtcGFnaW5hdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gIGAsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuYW50LWxpc3RdJzogJ3RydWUnLFxuICAgICdbY2xhc3MuYW50LWxpc3QtdmVydGljYWxdJzogJ256SXRlbUxheW91dCA9PT0gXCJ2ZXJ0aWNhbFwiJyxcbiAgICAnW2NsYXNzLmFudC1saXN0LWxnXSc6ICduelNpemUgPT09IFwibGFyZ2VcIicsXG4gICAgJ1tjbGFzcy5hbnQtbGlzdC1zbV0nOiAnbnpTaXplID09PSBcInNtYWxsXCInLFxuICAgICdbY2xhc3MuYW50LWxpc3Qtc3BsaXRdJzogJ256U3BsaXQnLFxuICAgICdbY2xhc3MuYW50LWxpc3QtYm9yZGVyZWRdJzogJ256Qm9yZGVyZWQnLFxuICAgICdbY2xhc3MuYW50LWxpc3QtbG9hZGluZ10nOiAnbnpMb2FkaW5nJyxcbiAgICAnW2NsYXNzLmFudC1saXN0LXNvbWV0aGluZy1hZnRlci1sYXN0LWl0ZW1dJzogJ2hhc1NvbWV0aGluZ0FmdGVyTGFzdEl0ZW0nXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTnpMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbnpCb3JkZXJlZDogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbnpMb2FkaW5nOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9uelNwbGl0OiBCb29sZWFuSW5wdXQ7XG5cbiAgQElucHV0KCkgbnpEYXRhU291cmNlPzogTnpTYWZlQW55W107XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBuekJvcmRlcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG56R3JpZD86IE56TGlzdEdyaWQ7XG4gIEBJbnB1dCgpIG56SGVhZGVyPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG4gIEBJbnB1dCgpIG56Rm9vdGVyPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG4gIEBJbnB1dCgpIG56SXRlbUxheW91dDogTnpEaXJlY3Rpb25WSFR5cGUgPSAnaG9yaXpvbnRhbCc7XG4gIEBJbnB1dCgpIG56UmVuZGVySXRlbTogVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIG56TG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBuekxvYWRNb3JlOiBUZW1wbGF0ZVJlZjx2b2lkPiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBuelBhZ2luYXRpb24/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgQElucHV0KCkgbnpTaXplOiBOelNpemVMRFNUeXBlID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgbnpTcGxpdCA9IHRydWU7XG4gIEBJbnB1dCgpIG56Tm9SZXN1bHQ/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBAQ29udGVudENoaWxkKE56TGlzdEZvb3RlckNvbXBvbmVudCkgbnpMaXN0Rm9vdGVyQ29tcG9uZW50ITogTnpMaXN0Rm9vdGVyQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKE56TGlzdFBhZ2luYXRpb25Db21wb25lbnQpIG56TGlzdFBhZ2luYXRpb25Db21wb25lbnQhOiBOekxpc3RQYWdpbmF0aW9uQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKE56TGlzdExvYWRNb3JlRGlyZWN0aXZlKSBuekxpc3RMb2FkTW9yZURpcmVjdGl2ZSE6IE56TGlzdExvYWRNb3JlRGlyZWN0aXZlO1xuXG4gIGhhc1NvbWV0aGluZ0FmdGVyTGFzdEl0ZW0gPSBmYWxzZTtcblxuICBwcml2YXRlIGl0ZW1MYXlvdXROb3RpZnlTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE56RGlyZWN0aW9uVkhUeXBlPih0aGlzLm56SXRlbUxheW91dCk7XG5cbiAgZ2V0IGl0ZW1MYXlvdXROb3RpZnkkKCk6IE9ic2VydmFibGU8TnpEaXJlY3Rpb25WSFR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtTGF5b3V0Tm90aWZ5U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIGdldFNvbWV0aGluZ0FmdGVyTGFzdEl0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5uekxvYWRNb3JlIHx8XG4gICAgICB0aGlzLm56UGFnaW5hdGlvbiB8fFxuICAgICAgdGhpcy5uekZvb3RlciB8fFxuICAgICAgdGhpcy5uekxpc3RGb290ZXJDb21wb25lbnQgfHxcbiAgICAgIHRoaXMubnpMaXN0UGFnaW5hdGlvbkNvbXBvbmVudCB8fFxuICAgICAgdGhpcy5uekxpc3RMb2FkTW9yZURpcmVjdGl2ZVxuICAgICk7XG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLm56SXRlbUxheW91dCkge1xuICAgICAgdGhpcy5pdGVtTGF5b3V0Tm90aWZ5U291cmNlLm5leHQodGhpcy5uekl0ZW1MYXlvdXQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbUxheW91dE5vdGlmeVNvdXJjZS51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzU29tZXRoaW5nQWZ0ZXJMYXN0SXRlbSA9IHRoaXMuZ2V0U29tZXRoaW5nQWZ0ZXJMYXN0SXRlbSgpO1xuICB9XG59XG4iXX0=