ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
187 lines • 19.8 kB
JavaScript
/**
* @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';
var NzListComponent = /** @class */ (function () {
function NzListComponent() {
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);
}
Object.defineProperty(NzListComponent.prototype, "itemLayoutNotify$", {
get: /**
* @return {?}
*/
function () {
return this.itemLayoutNotifySource.asObservable();
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
NzListComponent.prototype.getSomethingAfterLastItem = /**
* @return {?}
*/
function () {
return !!(this.nzLoadMore ||
this.nzPagination ||
this.nzFooter ||
this.nzListFooterComponent ||
this.nzListPaginationComponent ||
this.nzListLoadMoreDirective);
};
/**
* @param {?} changes
* @return {?}
*/
NzListComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes.nzItemLayout) {
this.itemLayoutNotifySource.next(this.nzItemLayout);
}
};
/**
* @return {?}
*/
NzListComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.itemLayoutNotifySource.unsubscribe();
};
/**
* @return {?}
*/
NzListComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
this.hasSomethingAfterLastItem = this.getSomethingAfterLastItem();
};
NzListComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-list, [nz-list]',
exportAs: 'nzList',
template: "\n <ng-template #itemsTpl>\n <div class=\"ant-list-items\">\n <ng-container *ngFor=\"let item of nzDataSource; let index = index\">\n <ng-template [ngTemplateOutlet]=\"nzRenderItem\" [ngTemplateOutletContext]=\"{ $implicit: item, index: index }\"></ng-template>\n </ng-container>\n <ng-content select=\"nz-list-item, [nz-list-item]\"></ng-content>\n </div>\n </ng-template>\n\n <nz-list-header *ngIf=\"nzHeader\">\n <ng-container *nzStringTemplateOutlet=\"nzHeader\">{{ nzHeader }}</ng-container>\n </nz-list-header>\n <ng-content select=\"nz-list-header\"></ng-content>\n\n <nz-spin [nzSpinning]=\"nzLoading\">\n <ng-container>\n <div *ngIf=\"nzLoading && nzDataSource && nzDataSource.length === 0\" [style.min-height.px]=\"53\"></div>\n <div *ngIf=\"nzGrid && nzDataSource; else itemsTpl\" nz-row [nzGutter]=\"nzGrid.gutter || null\">\n <div\n nz-col\n [nzSpan]=\"nzGrid.span || null\"\n [nzXs]=\"nzGrid.xs || null\"\n [nzSm]=\"nzGrid.sm || null\"\n [nzMd]=\"nzGrid.md || null\"\n [nzLg]=\"nzGrid.lg || null\"\n [nzXl]=\"nzGrid.xl || null\"\n [nzXXl]=\"nzGrid.xxl || null\"\n *ngFor=\"let item of nzDataSource; let index = index\"\n >\n <ng-template [ngTemplateOutlet]=\"nzRenderItem\" [ngTemplateOutletContext]=\"{ $implicit: item, index: index }\"></ng-template>\n </div>\n </div>\n <nz-list-empty *ngIf=\"!nzLoading && nzDataSource && nzDataSource.length === 0\" [nzNoResult]=\"nzNoResult\"></nz-list-empty>\n </ng-container>\n <ng-content></ng-content>\n </nz-spin>\n\n <nz-list-footer *ngIf=\"nzFooter\">\n <ng-container *nzStringTemplateOutlet=\"nzFooter\">{{ nzFooter }}</ng-container>\n </nz-list-footer>\n <ng-content select=\"nz-list-footer, [nz-list-footer]\"></ng-content>\n\n <ng-template [ngTemplateOutlet]=\"nzLoadMore\"></ng-template>\n <ng-content select=\"nz-list-load-more, [nz-list-load-more]\"></ng-content>\n\n <nz-list-pagination *ngIf=\"nzPagination\">\n <ng-template [ngTemplateOutlet]=\"nzPagination\"></ng-template>\n </nz-list-pagination>\n <ng-content select=\"nz-list-pagination, [nz-list-pagination]\"></ng-content>\n ",
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 = function () { return []; };
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);
return NzListComponent;
}());
export { NzListComponent };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkL2xpc3QvIiwic291cmNlcyI6WyJsaXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4RztJQW1HRTtRQXpCeUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUluQyxpQkFBWSxHQUFzQixZQUFZLENBQUM7UUFDL0MsaUJBQVksR0FBNkIsSUFBSSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEMsZUFBVSxHQUE2QixJQUFJLENBQUM7UUFFNUMsV0FBTSxHQUFrQixTQUFTLENBQUM7UUFDbEIsWUFBTyxHQUFHLElBQUksQ0FBQztRQU94Qyw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFFMUIsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQU01RSxDQUFDO0lBSmhCLHNCQUFJLDhDQUFpQjs7OztRQUFyQjtZQUNFLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BELENBQUM7OztPQUFBOzs7O0lBSUQsbURBQXlCOzs7SUFBekI7UUFDRSxPQUFPLENBQUMsQ0FBQyxDQUNQLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMscUJBQXFCO1lBQzFCLElBQUksQ0FBQyx5QkFBeUI7WUFDOUIsSUFBSSxDQUFDLHVCQUF1QixDQUM3QixDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFDRCxxQ0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQzs7OztJQUVELHFDQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDOzs7O0lBRUQsNENBQWtCOzs7SUFBbEI7UUFDRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDcEUsQ0FBQzs7Z0JBM0hGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsUUFBUSxFQUFFLDh4RUFrRFQ7b0JBQ0QsbUJBQW1CLEVBQUUsS0FBSztvQkFDMUIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxJQUFJLEVBQUU7d0JBQ0osa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsMkJBQTJCLEVBQUUsNkJBQTZCO3dCQUMxRCxxQkFBcUIsRUFBRSxvQkFBb0I7d0JBQzNDLHFCQUFxQixFQUFFLG9CQUFvQjt3QkFDM0Msd0JBQXdCLEVBQUUsU0FBUzt3QkFDbkMsMkJBQTJCLEVBQUUsWUFBWTt3QkFDekMsMEJBQTBCLEVBQUUsV0FBVzt3QkFDdkMsNENBQTRDLEVBQUUsMkJBQTJCO3FCQUMxRTtpQkFDRjs7Ozs7K0JBTUUsS0FBSzs2QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLOytCQUNMLEtBQUs7K0JBQ0wsS0FBSzs0QkFDTCxLQUFLOzZCQUNMLEtBQUs7K0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzBCQUNMLEtBQUs7NkJBQ0wsS0FBSzt3Q0FFTCxZQUFZLFNBQUMscUJBQXFCOzRDQUNsQyxZQUFZLFNBQUMseUJBQXlCOzBDQUN0QyxZQUFZLFNBQUMsdUJBQXVCOztJQWZaO1FBQWYsWUFBWSxFQUFFOzt1REFBb0I7SUFNbkI7UUFBZixZQUFZLEVBQUU7O3NEQUFtQjtJQUlsQjtRQUFmLFlBQVksRUFBRTs7b0RBQWdCO0lBd0MxQyxzQkFBQztDQUFBLEFBNUhELElBNEhDO1NBeERZLGVBQWU7OztJQUMxQiw2Q0FBa0Q7O0lBQ2xELDRDQUFpRDs7SUFDakQsMENBQStDOztJQUUvQyx1Q0FBb0M7O0lBQ3BDLHFDQUE0Qzs7SUFDNUMsaUNBQTZCOztJQUM3QixtQ0FBK0M7O0lBQy9DLG1DQUErQzs7SUFDL0MsdUNBQXdEOztJQUN4RCx1Q0FBdUQ7O0lBQ3ZELG9DQUEyQzs7SUFDM0MscUNBQXFEOztJQUNyRCx1Q0FBMEM7O0lBQzFDLGlDQUEyQzs7SUFDM0Msa0NBQXdDOztJQUN4QyxxQ0FBaUQ7O0lBRWpELGdEQUFtRjs7SUFDbkYsb0RBQStGOztJQUMvRixrREFBeUY7O0lBRXpGLG9EQUFrQzs7Ozs7SUFFbEMsaURBQTJGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIE56RGlyZWN0aW9uVkhUeXBlLCBOelNhZmVBbnksIE56U2l6ZUxEU1R5cGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3V0aWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOekxpc3RHcmlkIH0gZnJvbSAnLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTnpMaXN0Rm9vdGVyQ29tcG9uZW50LCBOekxpc3RMb2FkTW9yZURpcmVjdGl2ZSwgTnpMaXN0UGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC1jZWxsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnotbGlzdCwgW256LWxpc3RdJyxcbiAgZXhwb3J0QXM6ICduekxpc3QnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjaXRlbXNUcGw+XG4gICAgICA8ZGl2IGNsYXNzPVwiYW50LWxpc3QtaXRlbXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBuekRhdGFTb3VyY2U7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm56UmVuZGVySXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGluZGV4IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnotbGlzdC1pdGVtLCBbbnotbGlzdC1pdGVtXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bnotbGlzdC1oZWFkZXIgKm5nSWY9XCJuekhlYWRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbnpTdHJpbmdUZW1wbGF0ZU91dGxldD1cIm56SGVhZGVyXCI+e3sgbnpIZWFkZXIgfX08L25nLWNvbnRhaW5lcj5cbiAgICA8L256LWxpc3QtaGVhZGVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm56LWxpc3QtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuXG4gICAgPG56LXNwaW4gW256U3Bpbm5pbmddPVwibnpMb2FkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibnpMb2FkaW5nICYmIG56RGF0YVNvdXJjZSAmJiBuekRhdGFTb3VyY2UubGVuZ3RoID09PSAwXCIgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiNTNcIj48L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cIm56R3JpZCAmJiBuekRhdGFTb3VyY2U7IGVsc2UgaXRlbXNUcGxcIiBuei1yb3cgW256R3V0dGVyXT1cIm56R3JpZC5ndXR0ZXIgfHwgbnVsbFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIG56LWNvbFxuICAgICAgICAgICAgW256U3Bhbl09XCJuekdyaWQuc3BhbiB8fCBudWxsXCJcbiAgICAgICAgICAgIFtuelhzXT1cIm56R3JpZC54cyB8fCBudWxsXCJcbiAgICAgICAgICAgIFtuelNtXT1cIm56R3JpZC5zbSB8fCBudWxsXCJcbiAgICAgICAgICAgIFtuek1kXT1cIm56R3JpZC5tZCB8fCBudWxsXCJcbiAgICAgICAgICAgIFtuekxnXT1cIm56R3JpZC5sZyB8fCBudWxsXCJcbiAgICAgICAgICAgIFtuelhsXT1cIm56R3JpZC54bCB8fCBudWxsXCJcbiAgICAgICAgICAgIFtuelhYbF09XCJuekdyaWQueHhsIHx8IG51bGxcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbnpEYXRhU291cmNlOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm56UmVuZGVySXRlbVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXg6IGluZGV4IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG56LWxpc3QtZW1wdHkgKm5nSWY9XCIhbnpMb2FkaW5nICYmIG56RGF0YVNvdXJjZSAmJiBuekRhdGFTb3VyY2UubGVuZ3RoID09PSAwXCIgW256Tm9SZXN1bHRdPVwibnpOb1Jlc3VsdFwiPjwvbnotbGlzdC1lbXB0eT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbnotc3Bpbj5cblxuICAgIDxuei1saXN0LWZvb3RlciAqbmdJZj1cIm56Rm9vdGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuelN0cmluZ1RlbXBsYXRlT3V0bGV0PVwibnpGb290ZXJcIj57eyBuekZvb3RlciB9fTwvbmctY29udGFpbmVyPlxuICAgIDwvbnotbGlzdC1mb290ZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnotbGlzdC1mb290ZXIsIFtuei1saXN0LWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibnpMb2FkTW9yZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibnotbGlzdC1sb2FkLW1vcmUsIFtuei1saXN0LWxvYWQtbW9yZV1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bnotbGlzdC1wYWdpbmF0aW9uICpuZ0lmPVwibnpQYWdpbmF0aW9uXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibnpQYWdpbmF0aW9uXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L256LWxpc3QtcGFnaW5hdGlvbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJuei1saXN0LXBhZ2luYXRpb24sIFtuei1saXN0LXBhZ2luYXRpb25dXCI+PC9uZy1jb250ZW50PlxuICBgLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFudC1saXN0XSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLmFudC1saXN0LXZlcnRpY2FsXSc6ICduekl0ZW1MYXlvdXQgPT09IFwidmVydGljYWxcIicsXG4gICAgJ1tjbGFzcy5hbnQtbGlzdC1sZ10nOiAnbnpTaXplID09PSBcImxhcmdlXCInLFxuICAgICdbY2xhc3MuYW50LWxpc3Qtc21dJzogJ256U2l6ZSA9PT0gXCJzbWFsbFwiJyxcbiAgICAnW2NsYXNzLmFudC1saXN0LXNwbGl0XSc6ICduelNwbGl0JyxcbiAgICAnW2NsYXNzLmFudC1saXN0LWJvcmRlcmVkXSc6ICduekJvcmRlcmVkJyxcbiAgICAnW2NsYXNzLmFudC1saXN0LWxvYWRpbmddJzogJ256TG9hZGluZycsXG4gICAgJ1tjbGFzcy5hbnQtbGlzdC1zb21ldGhpbmctYWZ0ZXItbGFzdC1pdGVtXSc6ICdoYXNTb21ldGhpbmdBZnRlckxhc3RJdGVtJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE56TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX256Qm9yZGVyZWQ6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX256TG9hZGluZzogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbnpTcGxpdDogQm9vbGVhbklucHV0O1xuXG4gIEBJbnB1dCgpIG56RGF0YVNvdXJjZT86IE56U2FmZUFueVtdO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgbnpCb3JkZXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBuekdyaWQ/OiBOekxpc3RHcmlkO1xuICBASW5wdXQoKSBuekhlYWRlcj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBASW5wdXQoKSBuekZvb3Rlcj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICBASW5wdXQoKSBuekl0ZW1MYXlvdXQ6IE56RGlyZWN0aW9uVkhUeXBlID0gJ2hvcml6b250YWwnO1xuICBASW5wdXQoKSBuelJlbmRlckl0ZW06IFRlbXBsYXRlUmVmPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBuekxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgbnpMb2FkTW9yZTogVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbnpQYWdpbmF0aW9uPzogVGVtcGxhdGVSZWY8dm9pZD47XG4gIEBJbnB1dCgpIG56U2l6ZTogTnpTaXplTERTVHlwZSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIG56U3BsaXQgPSB0cnVlO1xuICBASW5wdXQoKSBuek5vUmVzdWx0Pzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgQENvbnRlbnRDaGlsZChOekxpc3RGb290ZXJDb21wb25lbnQpIG56TGlzdEZvb3RlckNvbXBvbmVudCE6IE56TGlzdEZvb3RlckNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChOekxpc3RQYWdpbmF0aW9uQ29tcG9uZW50KSBuekxpc3RQYWdpbmF0aW9uQ29tcG9uZW50ITogTnpMaXN0UGFnaW5hdGlvbkNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChOekxpc3RMb2FkTW9yZURpcmVjdGl2ZSkgbnpMaXN0TG9hZE1vcmVEaXJlY3RpdmUhOiBOekxpc3RMb2FkTW9yZURpcmVjdGl2ZTtcblxuICBoYXNTb21ldGhpbmdBZnRlckxhc3RJdGVtID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBpdGVtTGF5b3V0Tm90aWZ5U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOekRpcmVjdGlvblZIVHlwZT4odGhpcy5uekl0ZW1MYXlvdXQpO1xuXG4gIGdldCBpdGVtTGF5b3V0Tm90aWZ5JCgpOiBPYnNlcnZhYmxlPE56RGlyZWN0aW9uVkhUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbUxheW91dE5vdGlmeVNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZXRTb21ldGhpbmdBZnRlckxhc3RJdGVtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIShcbiAgICAgIHRoaXMubnpMb2FkTW9yZSB8fFxuICAgICAgdGhpcy5uelBhZ2luYXRpb24gfHxcbiAgICAgIHRoaXMubnpGb290ZXIgfHxcbiAgICAgIHRoaXMubnpMaXN0Rm9vdGVyQ29tcG9uZW50IHx8XG4gICAgICB0aGlzLm56TGlzdFBhZ2luYXRpb25Db21wb25lbnQgfHxcbiAgICAgIHRoaXMubnpMaXN0TG9hZE1vcmVEaXJlY3RpdmVcbiAgICApO1xuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5uekl0ZW1MYXlvdXQpIHtcbiAgICAgIHRoaXMuaXRlbUxheW91dE5vdGlmeVNvdXJjZS5uZXh0KHRoaXMubnpJdGVtTGF5b3V0KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1MYXlvdXROb3RpZnlTb3VyY2UudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhc1NvbWV0aGluZ0FmdGVyTGFzdEl0ZW0gPSB0aGlzLmdldFNvbWV0aGluZ0FmdGVyTGFzdEl0ZW0oKTtcbiAgfVxufVxuIl19