UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

153 lines 22.7 kB
import { DateRange } from '@microsoft/windows-admin-center-sdk/core/base/date/date-range'; export var QueryDataItemValueType; (function (QueryDataItemValueType) { QueryDataItemValueType["SingleDropdown"] = "SingleDropdown"; QueryDataItemValueType["TextInput"] = "TextInput"; QueryDataItemValueType["MultiSelectDropdown"] = "MultiSelectDropdown"; QueryDataItemValueType["TimespanDropdown"] = "TimespanDropdown"; QueryDataItemValueType["Disabled"] = "Disabled"; })(QueryDataItemValueType || (QueryDataItemValueType = {})); export var QueryDataOperand; (function (QueryDataOperand) { QueryDataOperand["Eq"] = "="; QueryDataOperand["Gt"] = ">"; QueryDataOperand["Lt"] = "<"; QueryDataOperand["Nq"] = "!="; QueryDataOperand["Dropdowns"] = ":"; })(QueryDataOperand || (QueryDataOperand = {})); export var ApplyMode; (function (ApplyMode) { ApplyMode[ApplyMode["Lazy"] = 0] = "Lazy"; ApplyMode[ApplyMode["Active"] = 1] = "Active"; })(ApplyMode || (ApplyMode = {})); export class QueryDataItemPresetGenerator { itemGenerator(column, operand, value, irremovable, disabled, icon) { const res = { column: column, operand: operand, value: value, irremovable: irremovable ? irremovable : false, isEditing: false, disabled: disabled ? disabled : false }; if (icon) { res.icon = icon; } // validating the preset pills res.invalid = false; if (res.value) { if (res.value.type === QueryDataItemValueType.TextInput || res.value.type === QueryDataItemValueType.SingleDropdown) { if (res.value.value === '') { res.invalid = true; res.value.isValueUnset = true; } } else if (res.value.type === QueryDataItemValueType.MultiSelectDropdown) { if (!res.value.value || !res.value.value.length) { res.invalid = true; res.value.isValueUnset = true; } } else if (res.value.type === QueryDataItemValueType.TimespanDropdown) { if (!res.value.value) { res.invalid = true; res.value.isValueUnset = true; } } } return res; } editingItem(input) { input.isEditing = true; return input; } columnGenerator(label, value, uneditable) { return { label: label, value: value, uneditable: uneditable ? uneditable : false }; } valueGenerator(value, type, searchable = true, temporaryValue) { const res = { value: value ? value : '', type: type || QueryDataItemValueType.TextInput, temporaryValue: temporaryValue ? temporaryValue : '', isValueUnset: true }; if (type === QueryDataItemValueType.MultiSelectDropdown || type === QueryDataItemValueType.SingleDropdown) { res.options = []; } if (type === QueryDataItemValueType.TextInput || type === QueryDataItemValueType.SingleDropdown || type === QueryDataItemValueType.MultiSelectDropdown) { if (!value || !value.length) { if (temporaryValue && temporaryValue.length) { res.value = temporaryValue; } else { res.isValueUnset = true; if (typeof value === 'string') { res.value = res.temporaryValue = ''; } else { res.value = res.temporaryValue = []; } } } else { if (!temporaryValue || !temporaryValue.length) { res.temporaryValue = value; } else { if (value !== temporaryValue) { res.temporaryValue = res.value; } } res.isValueUnset = false; } } else if (type === QueryDataItemValueType.TimespanDropdown) { const presetLabel = value && value.label ? value.label : 'TODO: Localization Custom'; res.customDisplayLabel = presetLabel; try { value = value.value; if (!value || !value.isValid()) { if (temporaryValue) { res.value = temporaryValue; } else { res.isValueUnset = true; res.value = res.temporaryValue = new DateRange(); } } else { res.temporaryValue = value; res.value = value; res.isValueUnset = false; } // Initialize the default value display on the query editor for timespan dropdown res.tooltip = res.value.toString(); } catch (e) { } } else { // It deals with when 'type' is not specified if (!MsftSme.isNullOrWhiteSpace(value) && !(typeof res.value === 'string' && MsftSme.isNullOrWhiteSpace(res.value)) || !(typeof res.value === 'object' && !res.value.length)) { res.isValueUnset = false; } } if (typeof value === 'object' && type !== QueryDataItemValueType.TimespanDropdown) { res.type = QueryDataItemValueType.MultiSelectDropdown; } if (searchable && (res.type === QueryDataItemValueType.MultiSelectDropdown || res.type === QueryDataItemValueType.SingleDropdown)) { res.searchable = true; } else if (!searchable || res.type === QueryDataItemValueType.TextInput || res.type === QueryDataItemValueType.TimespanDropdown) { res.searchable = false; } return res; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZWRpdG9yLWNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvcXVlcnktZWRpdG9yL3F1ZXJ5LWVkaXRvci1jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUE4QjFGLE1BQU0sQ0FBTixJQUFZLHNCQU1YO0FBTkQsV0FBWSxzQkFBc0I7SUFDOUIsMkRBQWlDLENBQUE7SUFDakMsaURBQXVCLENBQUE7SUFDdkIscUVBQTJDLENBQUE7SUFDM0MsK0RBQXFDLENBQUE7SUFDckMsK0NBQXFCLENBQUE7QUFDekIsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakM7QUFvQkQsTUFBTSxDQUFOLElBQVksZ0JBTVg7QUFORCxXQUFZLGdCQUFnQjtJQUN4Qiw0QkFBUSxDQUFBO0lBQ1IsNEJBQVEsQ0FBQTtJQUNSLDRCQUFRLENBQUE7SUFDUiw2QkFBUyxDQUFBO0lBQ1QsbUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBR1g7QUFIRCxXQUFZLFNBQVM7SUFDakIseUNBQVUsQ0FBQTtJQUNWLDZDQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCO0FBRUQsTUFBTSxPQUFPLDRCQUE0QjtJQUM5QixhQUFhLENBQ2hCLE1BQTJCLEVBQzNCLE9BQXlCLEVBQ3pCLEtBQXlCLEVBQ3pCLFdBQXFCLEVBQ3JCLFFBQWtCLEVBQ2xCLElBQWE7UUFDYixNQUFNLEdBQUcsR0FBa0I7WUFDdkIsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPLEVBQUUsT0FBTztZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFD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LElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMvSCxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN6QjthQUFNLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxzQkFBc0IsQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxzQkFBc0IsQ0FBQyxnQkFBZ0IsRUFBRTtZQUM3SCxHQUFHLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUMxQjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9iYXNlL2RhdGUvZGF0ZS1yYW5nZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RGF0YUl0ZW0ge1xyXG4gICAgY29sdW1uOiBRdWVyeURhdGFJdGVtQ29sdW1uO1xyXG4gICAgb3BlcmFuZDogc3RyaW5nO1xyXG4gICAgdmFsdWU6IFF1ZXJ5RGF0YUl0ZW1WYWx1ZTtcclxuICAgIGlzRWRpdGluZzogYm9vbGVhbjtcclxuICAgIGlycmVtb3ZhYmxlPzogYm9vbGVhbjtcclxuICAgIGludmFsaWQ/OiBib29sZWFuO1xyXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgaWNvbj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeURhdGFJdGVtQ29sdW1uIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG4gICAgdW5lZGl0YWJsZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlEYXRhSXRlbVZhbHVlIHtcclxuICAgIHZhbHVlOiBhbnk7XHJcbiAgICB0eXBlOiBRdWVyeURhdGFJdGVtVmFsdWVUeXBlO1xyXG4gICAgdGVtcG9yYXJ5VmFsdWU/OiBhbnk7XHJcbiAgICBvcHRpb25zPzogb2JqZWN0O1xyXG4gICAgaXNWYWx1ZVVuc2V0PzogYm9vbGVhbjtcclxuICAgIHNlYXJjaGFibGU/OiBib29sZWFuO1xyXG4gICAgdG9vbHRpcD86IHN0cmluZztcclxuICAgIGN1c3RvbURpc3BsYXlMYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUXVlcnlEYXRhSXRlbVZhbHVlVHlwZSB7XHJcbiAgICBTaW5nbGVEcm9wZG93biA9ICdTaW5nbGVEcm9wZG93bicsXHJcbiAgICBUZXh0SW5wdXQgPSAnVGV4dElucHV0JyxcclxuICAgIE11bHRpU2VsZWN0RHJvcGRvd24gPSAnTXVsdGlTZWxlY3REcm9wZG93bicsXHJcbiAgICBUaW1lc3BhbkRyb3Bkb3duID0gJ1RpbWVzcGFuRHJvcGRvd24nLFxyXG4gICAgRGlzYWJsZWQgPSAnRGlzYWJsZWQnXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlEYXRhIHtcclxuICAgIGNvbnRlbnRzOiBRdWVyeURhdGFJdGVtW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlEYXRhSXRlbVByZXNldE9wdGlvbnMge1xyXG4gICAgY29udGVudHM6IFF1ZXJ5RGF0YUl0ZW1QcmVzZXRPcHRpb25bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeURhdGFJdGVtUHJlc2V0T3B0aW9uIHtcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nO1xyXG4gICAgZmllbGRWYWx1ZTogUXVlcnlEYXRhSXRlbVByZXNldE9wdGlvbkNvbnRlbnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBRdWVyeURhdGFJdGVtUHJlc2V0T3B0aW9uQ29udGVudCB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgdmFsdWU6IERhdGVSYW5nZTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUXVlcnlEYXRhT3BlcmFuZCB7XHJcbiAgICBFcSA9ICc9JyxcclxuICAgIEd0ID0gJz4nLFxyXG4gICAgTHQgPSAnPCcsXHJcbiAgICBOcSA9ICchPScsXHJcbiAgICBEcm9wZG93bnMgPSAnOidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQXBwbHlNb2RlIHtcclxuICAgICdMYXp5JyA9IDAsXHJcbiAgICAnQWN0aXZlJyA9IDFcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFF1ZXJ5RGF0YUl0ZW1QcmVzZXRHZW5lcmF0b3Ige1xyXG4gICAgcHVibGljIGl0ZW1HZW5lcmF0b3IoXHJcbiAgICAgICAgY29sdW1uOiBRdWVyeURhdGFJdGVtQ29sdW1uLFxyXG4gICAgICAgIG9wZXJhbmQ6IFF1ZXJ5RGF0YU9wZXJhbmQsXHJcbiAgICAgICAgdmFsdWU6IFF1ZXJ5RGF0YUl0ZW1WYWx1ZSxcclxuICAgICAgICBpcnJlbW92YWJsZT86IGJvb2xlYW4sXHJcbiAgICAgICAgZGlzYWJsZWQ/OiBib29sZWFuLFxyXG4gICAgICAgIGljb24/OiBzdHJpbmcpOiBRdWVyeURhdGFJdGVtIHtcclxuICAgICAgICBjb25zdCByZXM6IFF1ZXJ5RGF0YUl0ZW0gPSB7XHJcbiAgICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgICBvcGVyYW5kOiBvcGVyYW5kLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGlycmVtb3ZhYmxlOiBpcnJlbW92YWJsZSA/IGlycmVtb3ZhYmxlIDogZmFsc2UsXHJcbiAgICAgICAgICAgIGlzRWRpdGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZCA/IGRpc2FibGVkIDogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChpY29uKSB7XHJcbiAgICAgICAgICAgIHJlcy5pY29uID0gaWNvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHZhbGlkYXRpbmcgdGhlIHByZXNldCBwaWxsc1xyXG4gICAgICAgIHJlcy5pbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHJlcy52YWx1ZSkge1xyXG4gICAgICAgICAgICBpZiAocmVzLnZhbHVlLnR5cGUgPT09IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuVGV4dElucHV0IHx8IHJlcy52YWx1ZS50eXBlID09PSBRdWVyeURhdGFJdGVtVmFsdWVUeXBlLlNpbmdsZURyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzLnZhbHVlLnZhbHVlID09PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5pbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXMudmFsdWUuaXNWYWx1ZVVuc2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMudmFsdWUudHlwZSA9PT0gUXVlcnlEYXRhSXRlbVZhbHVlVHlwZS5NdWx0aVNlbGVjdERyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlcy52YWx1ZS52YWx1ZSB8fCAhcmVzLnZhbHVlLnZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5pbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXMudmFsdWUuaXNWYWx1ZVVuc2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMudmFsdWUudHlwZSA9PT0gUXVlcnlEYXRhSXRlbVZhbHVlVHlwZS5UaW1lc3BhbkRyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlcy52YWx1ZS52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5pbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICByZXMudmFsdWUuaXNWYWx1ZVVuc2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlZGl0aW5nSXRlbShpbnB1dDogUXVlcnlEYXRhSXRlbSkge1xyXG4gICAgICAgIGlucHV0LmlzRWRpdGluZyA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGlucHV0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2x1bW5HZW5lcmF0b3IoXHJcbiAgICAgICAgbGFiZWw6IHN0cmluZyxcclxuICAgICAgICB2YWx1ZTogc3RyaW5nLFxyXG4gICAgICAgIHVuZWRpdGFibGU/OiBib29sZWFuKTogUXVlcnlEYXRhSXRlbUNvbHVtbiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIHVuZWRpdGFibGU6IHVuZWRpdGFibGUgPyB1bmVkaXRhYmxlIDogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2YWx1ZUdlbmVyYXRvcihcclxuICAgICAgICB2YWx1ZTogYW55LFxyXG4gICAgICAgIHR5cGU/OiBRdWVyeURhdGFJdGVtVmFsdWVUeXBlLFxyXG4gICAgICAgIHNlYXJjaGFibGUgPSB0cnVlLFxyXG4gICAgICAgIHRlbXBvcmFyeVZhbHVlPzogYW55XHJcbiAgICApOiBRdWVyeURhdGFJdGVtVmFsdWUge1xyXG4gICAgICAgIGNvbnN0IHJlczogUXVlcnlEYXRhSXRlbVZhbHVlID0ge1xyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUgPyB2YWx1ZSA6ICcnLFxyXG4gICAgICAgICAgICB0eXBlOiB0eXBlIHx8IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuVGV4dElucHV0LFxyXG4gICAgICAgICAgICB0ZW1wb3JhcnlWYWx1ZTogdGVtcG9yYXJ5VmFsdWUgPyB0ZW1wb3JhcnlWYWx1ZSA6ICcnLFxyXG4gICAgICAgICAgICBpc1ZhbHVlVW5zZXQ6IHRydWVcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAodHlwZSA9PT0gUXVlcnlEYXRhSXRlbVZhbHVlVHlwZS5NdWx0aVNlbGVjdERyb3Bkb3duIHx8IHR5cGUgPT09IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuU2luZ2xlRHJvcGRvd24pIHtcclxuICAgICAgICAgICAgcmVzLm9wdGlvbnMgPSBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlID09PSBRdWVyeURhdGFJdGVtVmFsdWVUeXBlLlRleHRJbnB1dCB8fCB0eXBlID09PSBRdWVyeURhdGFJdGVtVmFsdWVUeXBlLlNpbmdsZURyb3Bkb3duXHJcbiAgICAgICAgICAgIHx8IHR5cGUgPT09IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuTXVsdGlTZWxlY3REcm9wZG93bikge1xyXG4gICAgICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0ZW1wb3JhcnlWYWx1ZSAmJiB0ZW1wb3JhcnlWYWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXMudmFsdWUgPSB0ZW1wb3JhcnlWYWx1ZTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmlzVmFsdWVVbnNldCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnZhbHVlID0gcmVzLnRlbXBvcmFyeVZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnZhbHVlID0gcmVzLnRlbXBvcmFyeVZhbHVlID0gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0ZW1wb3JhcnlWYWx1ZSB8fCAhdGVtcG9yYXJ5VmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnRlbXBvcmFyeVZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdGVtcG9yYXJ5VmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnRlbXBvcmFyeVZhbHVlID0gcmVzLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlcy5pc1ZhbHVlVW5zZXQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gUXVlcnlEYXRhSXRlbVZhbHVlVHlwZS5UaW1lc3BhbkRyb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXNldExhYmVsID0gdmFsdWUgJiYgdmFsdWUubGFiZWwgPyB2YWx1ZS5sYWJlbCA6ICdUT0RPOiBMb2NhbGl6YXRpb24gQ3VzdG9tJztcclxuICAgICAgICAgICAgcmVzLmN1c3RvbURpc3BsYXlMYWJlbCA9IHByZXNldExhYmVsO1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzVmFsaWQoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wb3JhcnlWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMudmFsdWUgPSB0ZW1wb3JhcnlWYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuaXNWYWx1ZVVuc2V0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnZhbHVlID0gcmVzLnRlbXBvcmFyeVZhbHVlID0gbmV3IERhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnRlbXBvcmFyeVZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzLmlzVmFsdWVVbnNldCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSBkaXNwbGF5IG9uIHRoZSBxdWVyeSBlZGl0b3IgZm9yIHRpbWVzcGFuIGRyb3Bkb3duXHJcbiAgICAgICAgICAgICAgICByZXMudG9vbHRpcCA9IHJlcy52YWx1ZS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7IH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBJdCBkZWFscyB3aXRoIHdoZW4gJ3R5cGUnIGlzIG5vdCBzcGVjaWZpZWRcclxuICAgICAgICAgICAgaWYgKCFNc2Z0U21lLmlzTnVsbE9yV2hpdGVTcGFjZSh2YWx1ZSkgJiZcclxuICAgICAgICAgICAgICAgICEodHlwZW9mIHJlcy52YWx1ZSA9PT0gJ3N0cmluZycgJiYgTXNmdFNtZS5pc051bGxPcldoaXRlU3BhY2UocmVzLnZhbHVlKSkgfHxcclxuICAgICAgICAgICAgICAgICEodHlwZW9mIHJlcy52YWx1ZSA9PT0gJ29iamVjdCcgJiYgIXJlcy52YWx1ZS5sZW5ndGgpKSB7XHJcbiAgICAgICAgICAgICAgICByZXMuaXNWYWx1ZVVuc2V0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHR5cGUgIT09IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuVGltZXNwYW5Ecm9wZG93bikge1xyXG4gICAgICAgICAgICByZXMudHlwZSA9IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuTXVsdGlTZWxlY3REcm9wZG93bjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZWFyY2hhYmxlICYmIChyZXMudHlwZSA9PT0gUXVlcnlEYXRhSXRlbVZhbHVlVHlwZS5NdWx0aVNlbGVjdERyb3Bkb3duIHx8IHJlcy50eXBlID09PSBRdWVyeURhdGFJdGVtVmFsdWVUeXBlLlNpbmdsZURyb3Bkb3duKSkge1xyXG4gICAgICAgICAgICByZXMuc2VhcmNoYWJsZSA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIGlmICghc2VhcmNoYWJsZSB8fCByZXMudHlwZSA9PT0gUXVlcnlEYXRhSXRlbVZhbHVlVHlwZS5UZXh0SW5wdXQgfHwgcmVzLnR5cGUgPT09IFF1ZXJ5RGF0YUl0ZW1WYWx1ZVR5cGUuVGltZXNwYW5Ecm9wZG93bikge1xyXG4gICAgICAgICAgICByZXMuc2VhcmNoYWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIH1cclxufVxyXG4iXX0=