@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
246 lines • 19.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: tmpl/data-table-column-tmpl.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
import { of } from 'rxjs';
import { DataTableCellEditTmplComponent } from './data-table-cell-edit-tmpl.component';
import { DataTableCellViewTmplComponent } from './data-table-cell-view-tmpl.component';
import { DataTableHeadCellTmplComponent } from './data-table-head-cell-tmpl.component';
var DataTableColumnTmplComponent = /** @class */ (function () {
function DataTableColumnTmplComponent() {
this.fieldType = 'text';
this.order = Number.MAX_VALUE;
this.nestedColumn = false;
this.filterChange = new EventEmitter();
this.filterMultiple = true;
this.orderChange = new EventEmitter();
// 鼠标是否移动到当前表头单元格
this.selected = false;
this.filterIconActiveInner = false;
}
/**
* @return {?}
*/
DataTableColumnTmplComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.filterable) {
if (this.filterList) {
if (!this.searchFn) {
this.searchFn = (/**
* @param {?} item
* @return {?}
*/
function (item) {
return of((_this.filterList ? _this.filterList : [])
.filter((/**
* @param {?} value
* @return {?}
*/
function (value) { return value.name.toLowerCase().includes(item.toLowerCase()); })));
});
}
}
}
};
/**
* @param {?} changes
* @return {?}
*/
DataTableColumnTmplComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes['order']) {
this.orderChange.emit(changes['order'].currentValue);
}
if (changes['filterList']) {
if (this.filterIconActive !== undefined) {
return;
}
/** @type {?} */
var checkedList = this.filterList.filter((/**
* @param {?} item
* @return {?}
*/
function (item) { return item.checked; }));
if (checkedList.length && (checkedList.length < this.filterList.length)) {
this.filterIconActiveInner = true;
}
else {
this.filterIconActiveInner = false;
}
}
};
/**
* @return {?}
*/
DataTableColumnTmplComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.orderChange.unsubscribe();
};
// column.extraOptions?.dateFormat
// column.extraOptions?.dateFormat
/**
* @param {?} filterData
* @return {?}
*/
DataTableColumnTmplComponent.prototype.emitFilterData =
// column.extraOptions?.dateFormat
/**
* @param {?} filterData
* @return {?}
*/
function (filterData) {
this.filterChange.emit(filterData);
};
/**
* @param {?} isOpen
* @return {?}
*/
DataTableColumnTmplComponent.prototype.canFilter = /**
* @param {?} isOpen
* @return {?}
*/
function (isOpen) {
/** @type {?} */
var changeResult = Promise.resolve(true);
if (this.beforeFilter) {
/** @type {?} */
var result = this.beforeFilter(isOpen);
if (typeof result !== 'undefined') {
if (result.then) {
changeResult = result;
}
else if (result.subscribe) {
changeResult = ((/** @type {?} */ (result))).toPromise();
}
else {
changeResult = Promise.resolve(result);
}
}
}
return changeResult;
};
DataTableColumnTmplComponent.decorators = [
{ type: Component, args: [{
selector: 'd-column',
template: '',
changeDetection: ChangeDetectionStrategy.OnPush
}] }
];
/** @nocollapse */
DataTableColumnTmplComponent.ctorParameters = function () { return []; };
DataTableColumnTmplComponent.propDecorators = {
advancedHeader: [{ type: Input }],
fieldType: [{ type: Input }],
maxWidth: [{ type: Input }],
minWidth: [{ type: Input }],
field: [{ type: Input }],
header: [{ type: Input }],
sortable: [{ type: Input }],
editable: [{ type: Input }],
unresizable: [{ type: Input }],
filterable: [{ type: Input }],
cellClass: [{ type: Input }],
width: [{ type: Input }],
fixedLeft: [{ type: Input }],
fixedRight: [{ type: Input }],
extraOptions: [{ type: Input }],
order: [{ type: Input }],
nestedColumn: [{ type: Input }],
filterList: [{ type: Input }],
filterChange: [{ type: Output }],
filterMultiple: [{ type: Input }],
filterIconActive: [{ type: Input }],
filterBoxWidth: [{ type: Input }],
filterBoxHeight: [{ type: Input }],
beforeFilter: [{ type: Input }],
cellCmp: [{ type: ContentChild, args: [DataTableCellViewTmplComponent, { static: false },] }],
cellEditCmp: [{ type: ContentChild, args: [DataTableCellEditTmplComponent, { static: false },] }],
headCellTmpl: [{ type: ContentChild, args: [DataTableHeadCellTmplComponent, { static: false },] }],
customFilterTemplate: [{ type: Input }],
searchFn: [{ type: Input }]
};
return DataTableColumnTmplComponent;
}());
export { DataTableColumnTmplComponent };
if (false) {
/** @type {?} */
DataTableColumnTmplComponent.prototype.advancedHeader;
/** @type {?} */
DataTableColumnTmplComponent.prototype.fieldType;
/** @type {?} */
DataTableColumnTmplComponent.prototype.maxWidth;
/** @type {?} */
DataTableColumnTmplComponent.prototype.minWidth;
/** @type {?} */
DataTableColumnTmplComponent.prototype.field;
/** @type {?} */
DataTableColumnTmplComponent.prototype.header;
/** @type {?} */
DataTableColumnTmplComponent.prototype.sortable;
/** @type {?} */
DataTableColumnTmplComponent.prototype.editable;
/** @type {?} */
DataTableColumnTmplComponent.prototype.unresizable;
/** @type {?} */
DataTableColumnTmplComponent.prototype.filterable;
/** @type {?} */
DataTableColumnTmplComponent.prototype.cellClass;
/** @type {?} */
DataTableColumnTmplComponent.prototype.width;
/** @type {?} */
DataTableColumnTmplComponent.prototype.fixedLeft;
/** @type {?} */
DataTableColumnTmplComponent.prototype.fixedRight;
/** @type {?} */
DataTableColumnTmplComponent.prototype.extraOptions;
/** @type {?} */
DataTableColumnTmplComponent.prototype.order;
/** @type {?} */
DataTableColumnTmplComponent.prototype.nestedColumn;
/**
* 传入筛选列表
* @type {?}
*/
DataTableColumnTmplComponent.prototype.filterList;
/** @type {?} */
DataTableColumnTmplComponent.prototype.filterChange;
/** @type {?} */
DataTableColumnTmplComponent.prototype.filterMultiple;
/** @type {?} */
DataTableColumnTmplComponent.prototype.filterIconActive;
/** @type {?} */
DataTableColumnTmplComponent.prototype.filterBoxWidth;
/** @type {?} */
DataTableColumnTmplComponent.prototype.filterBoxHeight;
/** @type {?} */
DataTableColumnTmplComponent.prototype.beforeFilter;
/** @type {?} */
DataTableColumnTmplComponent.prototype.cellCmp;
/** @type {?} */
DataTableColumnTmplComponent.prototype.cellEditCmp;
/** @type {?} */
DataTableColumnTmplComponent.prototype.headCellTmpl;
/** @type {?} */
DataTableColumnTmplComponent.prototype.customFilterTemplate;
/** @type {?} */
DataTableColumnTmplComponent.prototype.searchFn;
/** @type {?} */
DataTableColumnTmplComponent.prototype.orderChange;
/** @type {?} */
DataTableColumnTmplComponent.prototype._formatter;
/** @type {?} */
DataTableColumnTmplComponent.prototype.selected;
/** @type {?} */
DataTableColumnTmplComponent.prototype.filterIconActiveInner;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb2x1bW4tdG1wbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9kYXRhLXRhYmxlLyIsInNvdXJjZXMiOlsidG1wbC9kYXRhLXRhYmxlLWNvbHVtbi10bXBsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQ2xELE1BQU0sRUFBaUIsV0FBVyxFQUN0RCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXZGO0lBa0RFO1FBdENTLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFlbkIsVUFBSyxHQUFXLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDakMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLcEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVUvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDOztRQUloRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQUc5QixDQUFDOzs7O0lBQ0QsK0NBQVE7OztJQUFSO1FBQUEsaUJBY0M7UUFiQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFFBQVE7Ozs7b0JBQUcsVUFBQyxJ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Q04sS0FBSzttQ0FDTCxLQUFLO2lDQUNMLEtBQUs7a0NBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLFlBQVksU0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7OEJBQzlELFlBQVksU0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7K0JBQzlELFlBQVksU0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7dUNBQzlELEtBQUs7MkJBQ0wsS0FBSzs7SUFtRVIsbUNBQUM7Q0FBQSxBQTlHRCxJQThHQztTQXpHWSw0QkFBNEI7OztJQUN2QyxzREFLRzs7SUFDSCxpREFBNEI7O0lBQzVCLGdEQUEwQjs7SUFDMUIsZ0RBQTBCOztJQUMxQiw2Q0FBdUI7O0lBQ3ZCLDhDQUF3Qjs7SUFDeEIsZ0RBQTJCOztJQUMzQixnREFBMkI7O0lBQzNCLG1EQUE4Qjs7SUFDOUIsa0RBQTZCOztJQUM3QixpREFBMkI7O0lBQzNCLDZDQUF1Qjs7SUFFdkIsaURBQTRCOztJQUM1QixrREFBNkI7O0lBQzdCLG9EQUEyQjs7SUFDM0IsNkNBQTBDOztJQUMxQyxvREFBOEI7Ozs7O0lBSTlCLGtEQUF5Qzs7SUFDekMsb0RBQTREOztJQUM1RCxzREFBK0I7O0lBQy9CLHdEQUFtQzs7SUFDbkMsc0RBQTZCOztJQUM3Qix1REFBOEI7O0lBQzlCLG9EQUFtRjs7SUFDbkYsK0NBQXlHOztJQUN6RyxtREFBNkc7O0lBQzdHLG9EQUE4Rzs7SUFDOUcsNERBQWdEOztJQUNoRCxnREFBNEQ7O0lBQzVELG1EQUFnRDs7SUFDaEQsa0RBQTZDOztJQUc3QyxnREFBaUI7O0lBQ2pCLDZEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi4vZGF0YS10YWJsZS5tb2RlbCc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUNlbGxFZGl0VG1wbENvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10YWJsZS1jZWxsLWVkaXQtdG1wbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVDZWxsVmlld1RtcGxDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY2VsbC12aWV3LXRtcGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlSGVhZENlbGxUbXBsQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLWhlYWQtY2VsbC10bXBsLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2QtY29sdW1uJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbHVtblRtcGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBASW5wdXQoKSBhZHZhbmNlZEhlYWRlcjogQXJyYXk8e1xyXG4gICAgaGVhZGVyOiBzdHJpbmc7XHJcbiAgICByb3dzcGFuOiBudW1iZXI7XHJcbiAgICBjb2xzcGFuOiBudW1iZXI7XHJcbiAgICBbcHJvcDogc3RyaW5nXTogYW55O1xyXG4gIH0+O1xyXG4gIEBJbnB1dCgpIGZpZWxkVHlwZSA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbldpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSB1bnJlc2l6YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmaWx0ZXJhYmxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNlbGxDbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XHJcbiAgLy8gQElucHV0KCkgZml4ZWQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZpeGVkTGVmdD86IHN0cmluZztcclxuICBASW5wdXQoKSBmaXhlZFJpZ2h0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGV4dHJhT3B0aW9uczogYW55O1xyXG4gIEBJbnB1dCgpIG9yZGVyOiBudW1iZXIgPSBOdW1iZXIuTUFYX1ZBTFVFO1xyXG4gIEBJbnB1dCgpIG5lc3RlZENvbHVtbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4qIOS8oOWFpeetm+mAieWIl+ihqFxyXG4qL1xyXG4gIEBJbnB1dCgpIGZpbHRlckxpc3Q6IEFycmF5PEZpbHRlckNvbmZpZz47XHJcbiAgQE91dHB1dCgpIGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ29uZmlnW10+KCk7XHJcbiAgQElucHV0KCkgZmlsdGVyTXVsdGlwbGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGZpbHRlckljb25BY3RpdmU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZmlsdGVyQm94V2lkdGg6IGFueTtcclxuICBASW5wdXQoKSBmaWx0ZXJCb3hIZWlnaHQ6IGFueTtcclxuICBASW5wdXQoKSBiZWZvcmVGaWx0ZXI6ICh2YWx1ZSkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ2VsbFZpZXdUbXBsQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY2VsbENtcDogRGF0YVRhYmxlQ2VsbFZpZXdUbXBsQ29tcG9uZW50O1xyXG4gIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ2VsbEVkaXRUbXBsQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY2VsbEVkaXRDbXA6IERhdGFUYWJsZUNlbGxFZGl0VG1wbENvbXBvbmVudDtcclxuICBAQ29udGVudENoaWxkKERhdGFUYWJsZUhlYWRDZWxsVG1wbENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGhlYWRDZWxsVG1wbDogRGF0YVRhYmxlSGVhZENlbGxUbXBsQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGN1c3RvbUZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHNlYXJjaEZuOiAodGVybTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEFycmF5PGFueT4+O1xyXG4gIG9yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTaW1wbGVDaGFuZ2VzPigpO1xyXG4gIF9mb3JtYXR0ZXI6IChpdGVtOiBhbnksIHJvdz86IGFueSkgPT4gc3RyaW5nO1xyXG5cclxuICAvLyDpvKDmoIfmmK/lkKbnp7vliqjliLDlvZPliY3ooajlpLTljZXlhYPmoLxcclxuICBzZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGZpbHRlckljb25BY3RpdmVJbm5lciA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJhYmxlKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlckxpc3QpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoRm4pIHtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoRm4gPSAoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YoXHJcbiAgICAgICAgICAgICAgKHRoaXMuZmlsdGVyTGlzdCA/IHRoaXMuZmlsdGVyTGlzdCA6IFtdKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaXRlbS50b0xvd2VyQ2FzZSgpKSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snb3JkZXInXSkge1xyXG4gICAgICB0aGlzLm9yZGVyQ2hhbmdlLmVtaXQoY2hhbmdlc1snb3JkZXInXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlckxpc3QnXSkge1xyXG4gICAgICBpZiAodGhpcy5maWx0ZXJJY29uQWN0aXZlICE9PSB1bmRlZmluZWQpIHsgcmV0dXJuOyB9XHJcbiAgICAgIGNvbnN0IGNoZWNrZWRMaXN0ID0gdGhpcy5maWx0ZXJMaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0uY2hlY2tlZCk7XHJcbiAgICAgIGlmIChjaGVja2VkTGlzdC5sZW5ndGggJiYgKGNoZWNrZWRMaXN0Lmxlbmd0aCA8IHRoaXMuZmlsdGVyTGlzdC5sZW5ndGgpKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJJY29uQWN0aXZlSW5uZXIgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVySWNvbkFjdGl2ZUlubmVyID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcmRlckNoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29sdW1uLmV4dHJhT3B0aW9ucz8uZGF0ZUZvcm1hdFxyXG5cclxuICBlbWl0RmlsdGVyRGF0YShmaWx0ZXJEYXRhKSB7XHJcbiAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KGZpbHRlckRhdGEpO1xyXG4gIH1cclxuICBjYW5GaWx0ZXIoaXNPcGVuKSB7XHJcbiAgICBsZXQgY2hhbmdlUmVzdWx0ID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG5cclxuICAgIGlmICh0aGlzLmJlZm9yZUZpbHRlcikge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHRoaXMuYmVmb3JlRmlsdGVyKGlzT3Blbik7XHJcbiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIGlmIChyZXN1bHQudGhlbikge1xyXG4gICAgICAgICAgY2hhbmdlUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN1YnNjcmliZSkge1xyXG4gICAgICAgICAgY2hhbmdlUmVzdWx0ID0gKHJlc3VsdCBhcyBPYnNlcnZhYmxlPGJvb2xlYW4+KS50b1Byb21pc2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY2hhbmdlUmVzdWx0ID0gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZVJlc3VsdDtcclxuICB9XHJcbn1cclxuIl19