UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

130 lines 15.8 kB
import { Component, ContentChild, Input, TemplateRef } from '@angular/core'; import { QueryDataItemValueType } from '../query-editor/query-editor-contract'; import { DataTableSortMode } from './data-table-contract'; import * as i0 from "@angular/core"; const _c0 = ["read"]; const _c1 = ["edit"]; /** * DataTableColumnComponent is template to define column structure for data table. All inputs are optional for minimally functional * column. * * If getTooltipHandler is specified, the data table will use the provided function. Otherwise the default tool tip handler relies on the * field being defined, else no tooltip will show. */ export class DataTableColumnComponent { constructor() { /** * The default width. */ this.width = '176px'; /** * It determines whether the table column is hidden. */ this.hidden = false; /** * The download processor function to get custom text content. * This work with where columns are defined by ng-template. */ this.downloadContentProcessor = this.defaultDownloadContentProcessor; /** * It determines whether the column is searchable. */ this.searchable = true; /** * By design the operator '=' that defines 'contains' * We should also supply a way for the user to do the actual 'equal' * It only works with queryDataItemValueType.TextInput */ this.queryEditorEqualIsContain = true; /** * The sort mode, ascend or descend. */ this.sortMode = DataTableSortMode.None; } /** * The default function for the download content processor that is just to return the real data. * @param fieldValue the value of the table cell. * @returns the string representation of the table cell. */ defaultDownloadContentProcessor(fieldValue) { return String(fieldValue); } /** * It determines whether default tooltip can be used. * @returns true if default tooltip can be used. */ canUseDefaultTooltip() { return !!this.field && !this.getTooltipHandler; } /** * Default tooltip handler for sme-table-cell - if field exists, return that value in data for the tooltip * @param data The renderedItem data * @param field The field to use for the renderedItem data * @returns Tooltip string */ getDefaultTooltipHandler(data, field) { // If data[field] is falsy (i.e. 0, [], etc.) but not null or undefined, stringify so it will show in tooltip // otherwise it will display as empty tooltip return (MsftSme.notNullOrUndefined(data[field]) && !data[field]) ? JSON.stringify(data[field]) : data[field]; } } /** @nocollapse */ DataTableColumnComponent.ɵfac = function DataTableColumnComponent_Factory(t) { return new (t || DataTableColumnComponent)(); }; /** @nocollapse */ DataTableColumnComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DataTableColumnComponent, selectors: [["sme-data-table-column", 3, "type", ""], ["sme-tree-table-column", 3, "type", ""]], contentQueries: function DataTableColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5); i0.ɵɵcontentQuery(dirIndex, _c0, 5); i0.ɵɵcontentQuery(dirIndex, _c1, 5); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bodyTemplate = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bodyReadTemplate = _t.first); i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bodyEditTemplate = _t.first); } }, inputs: { utaId: "utaId", field: "field", header: "header", sortable: "sortable", width: "width", hidden: "hidden", getTooltipHandler: "getTooltipHandler", compareFunction: "compareFunction", filterOverridingFunction: "filterOverridingFunction", downloadContentProcessor: "downloadContentProcessor", selectionMode: "selectionMode", styleClass: "styleClass", searchable: "searchable", queryEditorType: "queryEditorType", queryEditorOptions: "queryEditorOptions", queryEditorEqualIsContain: "queryEditorEqualIsContain" }, decls: 0, vars: 0, template: function DataTableColumnComponent_Template(rf, ctx) { }, encapsulation: 2 }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DataTableColumnComponent, [{ type: Component, args: [{ selector: 'sme-data-table-column:not([type]), sme-tree-table-column:not([type])', template: '' }] }], null, { utaId: [{ type: Input }], field: [{ type: Input }], header: [{ type: Input }], sortable: [{ type: Input }], width: [{ type: Input }], hidden: [{ type: Input }], getTooltipHandler: [{ type: Input }], compareFunction: [{ type: Input }], filterOverridingFunction: [{ type: Input }], downloadContentProcessor: [{ type: Input }], selectionMode: [{ type: Input }], styleClass: [{ type: Input }], searchable: [{ type: Input }], queryEditorType: [{ type: Input }], queryEditorOptions: [{ type: Input }], queryEditorEqualIsContain: [{ type: Input }], bodyTemplate: [{ type: ContentChild, args: [TemplateRef] }], bodyReadTemplate: [{ type: ContentChild, args: ['read'] }], bodyEditTemplate: [{ type: ContentChild, args: ['edit'] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQTZCLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFFMUQ7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLHdCQUF3QjtJQUpyQztRQTZCSTs7V0FFRztRQUVJLFVBQUssR0FBRyxPQUFPLENBQUM7UUFFdkI7O1dBRUc7UUFFSSxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBb0J0Qjs7O1dBR0c7UUFFSSw2QkFBd0IsR0FDMEMsSUFBSSxDQUFDLCtCQUErQixDQUFDO1FBYzlHOztXQUVHO1FBRUksZUFBVSxHQUFHLElBQUksQ0FBQztRQWN6Qjs7OztXQUlHO1FBRUksOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBRXhDOztXQUVHO1FBQ0ksYUFBUSxHQUFzQixpQkFBaUIsQ0FBQyxJQUFJLENBQUM7S0E0RC9EO0lBNUJHOzs7O09BSUc7SUFDSSwrQkFBK0IsQ0FBQyxVQUFrQjtRQUNyRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksd0JBQXdCLENBQUMsSUFBUyxFQUFFLEtBQWE7UUFDcEQsNkdBQTZHO1FBQzdHLDZDQUE2QztRQUM3QyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqSCxDQUFDOzttSEFuS1Esd0JBQXdCOzBHQUF4Qix3QkFBd0I7b0NBdUhuQixXQUFXOzs7Ozs7Ozs7dUZBdkhoQix3QkFBd0I7Y0FKcEMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxzRUFBc0U7Z0JBQ2hGLFFBQVEsRUFBRSxFQUFFO2FBQ2Y7Z0JBTVUsS0FBSztrQkFEWCxLQUFLO1lBT0MsS0FBSztrQkFEWCxLQUFLO1lBT0MsTUFBTTtrQkFEWixLQUFLO1lBT0MsUUFBUTtrQkFEZCxLQUFLO1lBT0MsS0FBSztrQkFEWCxLQUFLO1lBT0MsTUFBTTtrQkFEWixLQUFLO1lBT0MsaUJBQWlCO2tCQUR2QixLQUFLO1lBT0MsZUFBZTtrQkFEckIsS0FBSztZQU9DLHdCQUF3QjtrQkFEOUIsS0FBSztZQVFDLHdCQUF3QjtrQkFEOUIsS0FBSztZQVFDLGFBQWE7a0JBRG5CLEtBQUs7WUFPQyxVQUFVO2tCQURoQixLQUFLO1lBT0MsVUFBVTtrQkFEaEIsS0FBSztZQU9DLGVBQWU7a0JBRHJCLEtBQUs7WUFPQyxrQkFBa0I7a0JBRHhCLEtBQUs7WUFTQyx5QkFBeUI7a0JBRC9CLEtBQUs7WUFzQkMsWUFBWTtrQkFEbEIsWUFBWTttQkFBQyxXQUFXO1lBUWxCLGdCQUFnQjtrQkFEdEIsWUFBWTttQkFBQyxNQUFNO1lBUWIsZ0JBQWdCO2tCQUR0QixZQUFZO21CQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFF1ZXJ5RGF0YUl0ZW1QcmVzZXRPcHRpb24sIFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUgfSBmcm9tICcuLi9xdWVyeS1lZGl0b3IvcXVlcnktZWRpdG9yLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlU29ydE1vZGUgfSBmcm9tICcuL2RhdGEtdGFibGUtY29udHJhY3QnO1xyXG5cclxuLyoqXHJcbiAqIERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCBpcyB0ZW1wbGF0ZSB0byBkZWZpbmUgY29sdW1uIHN0cnVjdHVyZSBmb3IgZGF0YSB0YWJsZS4gQWxsIGlucHV0cyBhcmUgb3B0aW9uYWwgZm9yIG1pbmltYWxseSBmdW5jdGlvbmFsXHJcbiAqIGNvbHVtbi5cclxuICpcclxuICogSWYgZ2V0VG9vbHRpcEhhbmRsZXIgaXMgc3BlY2lmaWVkLCB0aGUgZGF0YSB0YWJsZSB3aWxsIHVzZSB0aGUgcHJvdmlkZWQgZnVuY3Rpb24uIE90aGVyd2lzZSB0aGUgZGVmYXVsdCB0b29sIHRpcCBoYW5kbGVyIHJlbGllcyBvbiB0aGVcclxuICogZmllbGQgYmVpbmcgZGVmaW5lZCwgZWxzZSBubyB0b29sdGlwIHdpbGwgc2hvdy5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtZGF0YS10YWJsZS1jb2x1bW46bm90KFt0eXBlXSksIHNtZS10cmVlLXRhYmxlLWNvbHVtbjpub3QoW3R5cGVdKScsXHJcbiAgICB0ZW1wbGF0ZTogJydcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbHVtbkNvbXBvbmVudCB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBVVEEgSUQgdXNlZCBmb3IgdWktdGVzdC1hdXRvbWF0aW9uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdXRhSWQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmaWVsZCBmcm9tIHRoZSBkYXRhIHRhYmxlIGl0ZW0uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZmllbGQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSByZW5kZXJpbmcgaGVhZGVyIGZvciB0aGUgZGF0YSB0YWJsZSBjb2x1bW4uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaGVhZGVyOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbHVtbiBpcyBzb3J0YWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzb3J0YWJsZTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRlZmF1bHQgd2lkdGguXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgd2lkdGggPSAnMTc2cHgnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSB0YWJsZSBjb2x1bW4gaXMgaGlkZGVuLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGhpZGRlbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlciBmb3IgdG9vbHRpcC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXRUb29sdGlwSGFuZGxlcjogKGRhdGE6IGFueSwgZmllbGQ/OiBzdHJpbmcpID0+IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjdXN0b20gY29tcGFyZSBmdW5jdGlvbiB1c2VkIGluIHNvcnRpbmcuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29tcGFyZUZ1bmN0aW9uOiAodmFsdWVBOiBhbnksIHZhbHVlQjogYW55LCBmaWVsZDogc3RyaW5nKSA9PiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgb3ZlcnJpZGUgZnVuY3Rpb24gZm9yIGZpbHRlcmluZy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmaWx0ZXJPdmVycmlkaW5nRnVuY3Rpb246IChmaWVsZFZhbHVlOiBhbnksIGVudGl0eTogYW55KSA9PiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZG93bmxvYWQgcHJvY2Vzc29yIGZ1bmN0aW9uIHRvIGdldCBjdXN0b20gdGV4dCBjb250ZW50LlxyXG4gICAgICogVGhpcyB3b3JrIHdpdGggd2hlcmUgY29sdW1ucyBhcmUgZGVmaW5lZCBieSBuZy10ZW1wbGF0ZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkb3dubG9hZENvbnRlbnRQcm9jZXNzb3I6XHJcbiAgICAgICAgKGZpZWxkVmFsdWU6IGFueSwgZW50aXR5PzogYW55LCBjb250ZXh0UGFyYW1ldGVycz86IGFueSkgPT4gc3RyaW5nID0gdGhpcy5kZWZhdWx0RG93bmxvYWRDb250ZW50UHJvY2Vzc29yO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNlbGVjdGlvbiBtb2RlLCBjb3VsZCBiZSBzaW5nbGUgb3IgbXVsdGlwbGUgc2VsZWN0aW9uLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGlvbk1vZGU6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjdXN0b20gc3R5bGUgY2xhc3MgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBjb2x1bW4uXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc3R5bGVDbGFzczogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb2x1bW4gaXMgc2VhcmNoYWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZWFyY2hhYmxlID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBxdWVyeSBlZGl0b3IgdHlwZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBxdWVyeUVkaXRvclR5cGU6IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcHJlc2V0IHF1ZXJ5IGVkaXRvciBvcHRpb25zLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHF1ZXJ5RWRpdG9yT3B0aW9uczogUXVlcnlEYXRhSXRlbVByZXNldE9wdGlvbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEJ5IGRlc2lnbiB0aGUgb3BlcmF0b3IgJz0nIHRoYXQgZGVmaW5lcyAnY29udGFpbnMnXHJcbiAgICAgKiBXZSBzaG91bGQgYWxzbyBzdXBwbHkgYSB3YXkgZm9yIHRoZSB1c2VyIHRvIGRvIHRoZSBhY3R1YWwgJ2VxdWFsJ1xyXG4gICAgICogSXQgb25seSB3b3JrcyB3aXRoIHF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuVGV4dElucHV0XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcXVlcnlFZGl0b3JFcXVhbElzQ29udGFpbiA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc29ydCBtb2RlLCBhc2NlbmQgb3IgZGVzY2VuZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNvcnRNb2RlOiBEYXRhVGFibGVTb3J0TW9kZSA9IERhdGFUYWJsZVNvcnRNb2RlLk5vbmU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcGVyY2VudGFnZSBvZiB3aWR0aCB0aGF0IHRoaXMgY29sdW1uIGNhbiByZW5kZXIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3aWR0aFBlcmNlbnRhZ2U6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBkb20gd2lkdGggdGhhdCB0aGUgY29sdW1uIGNhbiByZW5kZXIuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkb21XaWR0aDogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHRlbXBsYXRlIHJlZmVyZW5jZS5cclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZilcclxuICAgIHB1YmxpYyBib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciAjcmVhZC5cclxuICAgICAqIFRoaXMgaXMgdG8gc3VwcG9ydCB0aGUgZWRpdGFibGUgZGF0YSB0YWJsZS5cclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZCgncmVhZCcpXHJcbiAgICBwdWJsaWMgYm9keVJlYWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yICNlZGl0LlxyXG4gICAgICogVGhpcyBpcyB0byBzdXBwb3J0IHRoZSBlZGl0YWJsZSBkYXRhIHRhYmxlLlxyXG4gICAgICovXHJcbiAgICBAQ29udGVudENoaWxkKCdlZGl0JylcclxuICAgIHB1YmxpYyBib2R5RWRpdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRlZmF1bHQgZnVuY3Rpb24gZm9yIHRoZSBkb3dubG9hZCBjb250ZW50IHByb2Nlc3NvciB0aGF0IGlzIGp1c3QgdG8gcmV0dXJuIHRoZSByZWFsIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZmllbGRWYWx1ZSB0aGUgdmFsdWUgb2YgdGhlIHRhYmxlIGNlbGwuXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0YWJsZSBjZWxsLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVmYXVsdERvd25sb2FkQ29udGVudFByb2Nlc3NvcihmaWVsZFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBTdHJpbmcoZmllbGRWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZXRlcm1pbmVzIHdoZXRoZXIgZGVmYXVsdCB0b29sdGlwIGNhbiBiZSB1c2VkLlxyXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiBkZWZhdWx0IHRvb2x0aXAgY2FuIGJlIHVzZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYW5Vc2VEZWZhdWx0VG9vbHRpcCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISF0aGlzLmZpZWxkICYmICF0aGlzLmdldFRvb2x0aXBIYW5kbGVyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCB0b29sdGlwIGhhbmRsZXIgZm9yIHNtZS10YWJsZS1jZWxsIC0gaWYgZmllbGQgZXhpc3RzLCByZXR1cm4gdGhhdCB2YWx1ZSBpbiBkYXRhIGZvciB0aGUgdG9vbHRpcFxyXG4gICAgICogQHBhcmFtIGRhdGEgIFRoZSByZW5kZXJlZEl0ZW0gZGF0YVxyXG4gICAgICogQHBhcmFtIGZpZWxkIFRoZSBmaWVsZCB0byB1c2UgZm9yIHRoZSByZW5kZXJlZEl0ZW0gZGF0YVxyXG4gICAgICogQHJldHVybnMgICAgIFRvb2x0aXAgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREZWZhdWx0VG9vbHRpcEhhbmRsZXIoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICAvLyBJZiBkYXRhW2ZpZWxkXSBpcyBmYWxzeSAoaS5lLiAwLCBbXSwgZXRjLikgYnV0IG5vdCBudWxsIG9yIHVuZGVmaW5lZCwgc3RyaW5naWZ5IHNvIGl0IHdpbGwgc2hvdyBpbiB0b29sdGlwXHJcbiAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IHdpbGwgZGlzcGxheSBhcyBlbXB0eSB0b29sdGlwXHJcbiAgICAgICAgcmV0dXJuIChNc2Z0U21lLm5vdE51bGxPclVuZGVmaW5lZChkYXRhW2ZpZWxkXSkgJiYgIWRhdGFbZmllbGRdKSA/IEpTT04uc3RyaW5naWZ5KGRhdGFbZmllbGRdKSA6IGRhdGFbZmllbGRdO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==