UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

246 lines 19.4 kB
/** * @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb2x1bW4tdG1wbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1kZXZ1aS9kYXRhLXRhYmxlLyIsInNvdXJjZXMiOlsidG1wbC9kYXRhLXRhYmxlLWNvbHVtbi10bXBsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQ2xELE1BQU0sRUFBaUIsV0FBVyxFQUN0RCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXZGO0lBa0RFO1FBdENTLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFlbkIsVUFBSyxHQUFXLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDakMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFLcEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQVUvQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDOztRQUloRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQUc5QixDQUFDOzs7O0lBQ0QsK0NBQVE7OztJQUFSO1FBQUEsaUJBY0M7UUFiQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFFBQVE7Ozs7b0JBQUcsVUFBQyxJQUFJO3dCQUNuQixPQUFPLEVBQUUsQ0FDUCxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs2QkFDckMsTUFBTTs7Ozt3QkFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFyRCxDQUFxRCxFQUFDLENBQzFFLENBQUM7b0JBQ0osQ0FBQyxDQUFBLENBQUM7aUJBQ0g7YUFDRjtTQUNGO0lBRUgsQ0FBQzs7Ozs7SUFDRCxrREFBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDekIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFO2dCQUFFLE9BQU87YUFBRTs7Z0JBQzlDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07Ozs7WUFBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxPQUFPLEVBQVosQ0FBWSxFQUFDO1lBQ2hFLElBQUksV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQzthQUNuQztpQkFBTTtnQkFDTCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDOzs7O0lBRUQsa0RBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsa0NBQWtDOzs7Ozs7SUFFbEMscURBQWM7Ozs7OztJQUFkLFVBQWUsVUFBVTtRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDOzs7OztJQUNELGdEQUFTOzs7O0lBQVQsVUFBVSxNQUFNOztZQUNWLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUV4QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7O2dCQUNmLE1BQU0sR0FBUSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUM3QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtnQkFDakMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO29CQUNmLFlBQVksR0FBRyxNQUFNLENBQUM7aUJBQ3ZCO3FCQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtvQkFDM0IsWUFBWSxHQUFHLENBQUMsbUJBQUEsTUFBTSxFQUF1QixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQzVEO3FCQUFNO29CQUNMLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN4QzthQUNGO1NBQ0Y7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDOztnQkE3R0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7Ozs7O2lDQUVFLEtBQUs7NEJBTUwsS0FBSzsyQkFDTCxLQUFLOzJCQUNMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSzs4QkFDTCxLQUFLOzZCQUNMLEtBQUs7NEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzRCQUVMLEtBQUs7NkJBQ0wsS0FBSzsrQkFDTCxLQUFLO3dCQUNMLEtBQUs7K0JBQ0wsS0FBSzs2QkFJTCxLQUFLOytCQUNMLE1BQU07aUNBQ04sS0FBSzttQ0FDTCxLQUFLO2lDQUNMLEtBQUs7a0NBQ0wsS0FBSzsrQkFDTCxLQUFLOzBCQUNMLFlBQVksU0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7OEJBQzlELFlBQVksU0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7K0JBQzlELFlBQVksU0FBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7dUNBQzlELEtBQUs7MkJBQ0wsS0FBSzs7SUFtRVIsbUNBQUM7Q0FBQSxBQTlHRCxJQThHQztTQXpHWSw0QkFBNEI7OztJQUN2QyxzREFLRzs7SUFDSCxpREFBNEI7O0lBQzVCLGdEQUEwQjs7SUFDMUIsZ0RBQTBCOztJQUMxQiw2Q0FBdUI7O0lBQ3ZCLDhDQUF3Qjs7SUFDeEIsZ0RBQTJCOztJQUMzQixnREFBMkI7O0lBQzNCLG1EQUE4Qjs7SUFDOUIsa0RBQTZCOztJQUM3QixpREFBMkI7O0lBQzNCLDZDQUF1Qjs7SUFFdkIsaURBQTRCOztJQUM1QixrREFBNkI7O0lBQzdCLG9EQUEyQjs7SUFDM0IsNkNBQTBDOztJQUMxQyxvREFBOEI7Ozs7O0lBSTlCLGtEQUF5Qzs7SUFDekMsb0RBQTREOztJQUM1RCxzREFBK0I7O0lBQy9CLHdEQUFtQzs7SUFDbkMsc0RBQTZCOztJQUM3Qix1REFBOEI7O0lBQzlCLG9EQUFtRjs7SUFDbkYsK0NBQXlHOztJQUN6RyxtREFBNkc7O0lBQzdHLG9EQUE4Rzs7SUFDOUcsNERBQWdEOztJQUNoRCxnREFBNEQ7O0lBQzVELG1EQUFnRDs7SUFDaEQsa0RBQTZDOztJQUc3QyxnREFBaUI7O0lBQ2pCLDZEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi4vZGF0YS10YWJsZS5tb2RlbCc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUNlbGxFZGl0VG1wbENvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10YWJsZS1jZWxsLWVkaXQtdG1wbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVDZWxsVmlld1RtcGxDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY2VsbC12aWV3LXRtcGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlSGVhZENlbGxUbXBsQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhLXRhYmxlLWhlYWQtY2VsbC10bXBsLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2QtY29sdW1uJyxcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbHVtblRtcGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBASW5wdXQoKSBhZHZhbmNlZEhlYWRlcjogQXJyYXk8e1xyXG4gICAgaGVhZGVyOiBzdHJpbmc7XHJcbiAgICByb3dzcGFuOiBudW1iZXI7XHJcbiAgICBjb2xzcGFuOiBudW1iZXI7XHJcbiAgICBbcHJvcDogc3RyaW5nXTogYW55O1xyXG4gIH0+O1xyXG4gIEBJbnB1dCgpIGZpZWxkVHlwZSA9ICd0ZXh0JztcclxuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1pbldpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSB1bnJlc2l6YWJsZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmaWx0ZXJhYmxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGNlbGxDbGFzczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XHJcbiAgLy8gQElucHV0KCkgZml4ZWQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGZpeGVkTGVmdD86IHN0cmluZztcclxuICBASW5wdXQoKSBmaXhlZFJpZ2h0Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGV4dHJhT3B0aW9uczogYW55O1xyXG4gIEBJbnB1dCgpIG9yZGVyOiBudW1iZXIgPSBOdW1iZXIuTUFYX1ZBTFVFO1xyXG4gIEBJbnB1dCgpIG5lc3RlZENvbHVtbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4qIOS8oOWFpeetm+mAieWIl+ihqFxyXG4qL1xyXG4gIEBJbnB1dCgpIGZpbHRlckxpc3Q6IEFycmF5PEZpbHRlckNvbmZpZz47XHJcbiAgQE91dHB1dCgpIGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ29uZmlnW10+KCk7XHJcbiAgQElucHV0KCkgZmlsdGVyTXVsdGlwbGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGZpbHRlckljb25BY3RpdmU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZmlsdGVyQm94V2lkdGg6IGFueTtcclxuICBASW5wdXQoKSBmaWx0ZXJCb3hIZWlnaHQ6IGFueTtcclxuICBASW5wdXQoKSBiZWZvcmVGaWx0ZXI6ICh2YWx1ZSkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ2VsbFZpZXdUbXBsQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY2VsbENtcDogRGF0YVRhYmxlQ2VsbFZpZXdUbXBsQ29tcG9uZW50O1xyXG4gIEBDb250ZW50Q2hpbGQoRGF0YVRhYmxlQ2VsbEVkaXRUbXBsQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgY2VsbEVkaXRDbXA6IERhdGFUYWJsZUNlbGxFZGl0VG1wbENvbXBvbmVudDtcclxuICBAQ29udGVudENoaWxkKERhdGFUYWJsZUhlYWRDZWxsVG1wbENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGhlYWRDZWxsVG1wbDogRGF0YVRhYmxlSGVhZENlbGxUbXBsQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpIGN1c3RvbUZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHNlYXJjaEZuOiAodGVybTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEFycmF5PGFueT4+O1xyXG4gIG9yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTaW1wbGVDaGFuZ2VzPigpO1xyXG4gIF9mb3JtYXR0ZXI6IChpdGVtOiBhbnksIHJvdz86IGFueSkgPT4gc3RyaW5nO1xyXG5cclxuICAvLyDpvKDmoIfmmK/lkKbnp7vliqjliLDlvZPliY3ooajlpLTljZXlhYPmoLxcclxuICBzZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGZpbHRlckljb25BY3RpdmVJbm5lciA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG5cclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJhYmxlKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlckxpc3QpIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2VhcmNoRm4pIHtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoRm4gPSAoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YoXHJcbiAgICAgICAgICAgICAgKHRoaXMuZmlsdGVyTGlzdCA/IHRoaXMuZmlsdGVyTGlzdCA6IFtdKVxyXG4gICAgICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaXRlbS50b0xvd2VyQ2FzZSgpKSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snb3JkZXInXSkge1xyXG4gICAgICB0aGlzLm9yZGVyQ2hhbmdlLmVtaXQoY2hhbmdlc1snb3JkZXInXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZpbHRlckxpc3QnXSkge1xyXG4gICAgICBpZiAodGhpcy5maWx0ZXJJY29uQWN0aXZlICE9PSB1bmRlZmluZWQpIHsgcmV0dXJuOyB9XHJcbiAgICAgIGNvbnN0IGNoZWNrZWRMaXN0ID0gdGhpcy5maWx0ZXJMaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0uY2hlY2tlZCk7XHJcbiAgICAgIGlmIChjaGVja2VkTGlzdC5sZW5ndGggJiYgKGNoZWNrZWRMaXN0Lmxlbmd0aCA8IHRoaXMuZmlsdGVyTGlzdC5sZW5ndGgpKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJJY29uQWN0aXZlSW5uZXIgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVySWNvbkFjdGl2ZUlubmVyID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcmRlckNoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29sdW1uLmV4dHJhT3B0aW9ucz8uZGF0ZUZvcm1hdFxyXG5cclxuICBlbWl0RmlsdGVyRGF0YShmaWx0ZXJEYXRhKSB7XHJcbiAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KGZpbHRlckRhdGEpO1xyXG4gIH1cclxuICBjYW5GaWx0ZXIoaXNPcGVuKSB7XHJcbiAgICBsZXQgY2hhbmdlUmVzdWx0ID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG5cclxuICAgIGlmICh0aGlzLmJlZm9yZUZpbHRlcikge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHRoaXMuYmVmb3JlRmlsdGVyKGlzT3Blbik7XHJcbiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgIGlmIChyZXN1bHQudGhlbikge1xyXG4gICAgICAgICAgY2hhbmdlUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN1YnNjcmliZSkge1xyXG4gICAgICAgICAgY2hhbmdlUmVzdWx0ID0gKHJlc3VsdCBhcyBPYnNlcnZhYmxlPGJvb2xlYW4+KS50b1Byb21pc2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY2hhbmdlUmVzdWx0ID0gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZVJlc3VsdDtcclxuICB9XHJcbn1cclxuIl19