@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
102 lines • 14.2 kB
JavaScript
import { Pipe } from '@angular/core';
import { LogLevel } from '@microsoft/windows-admin-center-sdk/core/diagnostics/log-level';
import { Logging } from '@microsoft/windows-admin-center-sdk/core/diagnostics/logging';
import * as i0 from "@angular/core";
/**
* @smeDoc {@label EnumConverterPipe @id smeEnumConverter}
*
* @overview
* @file {@filepath ./examples/enum-converter-overview.md}
*
* @example {@label Example Enum Converter @id enum-converter-example }
* @file {@filename component.html @filepath ./examples/enum-converter-example.component.html}
* @file {@filename component.ts @filepath ./examples/enum-converter-example.component.ts}
*
* @example {@label Example Color Enum Converter @id color-enum-color-converter }
* @file {@filename color.ts @filepath ./examples/enum-converter-example-color.ts}
* @file {@filename color.component.html @filepath ./examples/enum-converter-example-color.component.html}
* @file {@filename color.component.ts @filepath ./examples/enum-converter-example-color.component.ts}
*/
export class EnumConverterPipe {
/**
* Registers an Extended enum for use with this pipe
*/
static registerEnum(extendedEnum) {
EnumConverterPipe.enums.set(extendedEnum.enumId, extendedEnum);
}
transform(value, lookupMapOrEnumId, lookupType) {
if (MsftSme.isNullOrUndefined(value) || isNaN(value)) {
return null;
}
if (!lookupMapOrEnumId) {
Logging.log({
level: LogLevel.Warning,
message: `No map or enum id defined to translate value ${value}`,
params: {
lookupMapOrEnumId: lookupMapOrEnumId,
value: value
},
source: 'EnumConverterPipe'
});
return value.toString();
}
if (typeof lookupMapOrEnumId === 'string') {
return this.transformEnumId(value, lookupMapOrEnumId, lookupType || 'localized');
}
else {
return this.transformLookupMap(value, lookupMapOrEnumId);
}
}
/**
* Translates a value using a registered extended enum
* @param value the current value being piped in
* @param enumId ths id of the extended enum to use for value translation
* @param lookupType the type of lookup to perform using the extended enum
*/
transformEnumId(value, enumId, lookupType) {
const extendedEnum = EnumConverterPipe.enums.get(enumId);
if (!MsftSme.isNullOrUndefined(extendedEnum)) {
if (lookupType === 'localized' && extendedEnum.toLocaleString) {
return extendedEnum.toLocaleString(value);
}
if (extendedEnum.toString) {
return extendedEnum.toString(value);
}
}
return value.toString();
}
/**
* Transforms the pipe value from the provided lookup map
* @param value the piped value
* @param lookupMap the map to lookup the value
*/
transformLookupMap(value, lookupMap) {
const stringValue = lookupMap.get(value);
if (stringValue !== undefined) {
return stringValue;
}
else {
Logging.log({
level: LogLevel.Warning,
message: `Value '${value}' is not defined in map ${lookupMap}`,
params: {
args: lookupMap,
stringValue: stringValue,
value: value
},
source: 'EnumConverterPipe.transformLookupMap'
});
return value.toString();
}
}
}
EnumConverterPipe.enums = new Map();
/** @nocollapse */ EnumConverterPipe.ɵfac = function EnumConverterPipe_Factory(t) { return new (t || EnumConverterPipe)(); };
/** @nocollapse */ EnumConverterPipe.ɵpipe = /** @pureOrBreakMyCode */ i0.ɵɵdefinePipe({ name: "smeEnumConverter", type: EnumConverterPipe, pure: true });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EnumConverterPipe, [{
type: Pipe,
args: [{
name: 'smeEnumConverter'
}]
}], null, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1jb252ZXJ0ZXItcGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL3BpcGVzL2VudW0tY29udmVydGVyLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7QUFldkY7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBSTFCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUEwQjtRQUNqRCxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQWVNLFNBQVMsQ0FBQyxLQUFhLEVBQUUsaUJBQStDLEVBQUUsVUFBMkI7UUFDeEcsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDUixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3ZCLE9BQU8sRUFBRSxnREFBZ0QsS0FBSyxFQUFFO2dCQUNoRSxNQUFNLEVBQUU7b0JBQ0osaUJBQWlCLEVBQUUsaUJBQWlCO29CQUNwQyxLQUFLLEVBQUUsS0FBSztpQkFDZjtnQkFDRCxNQUFNLEVBQUUsbUJBQW1CO2FBQzlCLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsSUFBSSxXQUFXLENBQUMsQ0FBQztTQUNwRjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLENBQUM7U0FDNUQ7SUFFTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxVQUEwQjtRQUM3RSxNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDMUMsSUFBSSxVQUFVLEtBQUssV0FBVyxJQUFJLFlBQVksQ0FBQyxjQUFjLEVBQUU7Z0JBQzNELE9BQU8sWUFBWSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QztZQUNELElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTtnQkFDdkIsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGtCQUFrQixDQUFDLEtBQWEsRUFBRSxTQUE4QjtRQUNwRSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUMzQixPQUFPLFdBQVcsQ0FBQztTQUN0QjthQUFNO1lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDUixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3ZCLE9BQU8sRUFBRSxVQUFVLEtBQUssMkJBQTJCLFNBQVMsRUFBRTtnQkFDOUQsTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRSxTQUFTO29CQUNmLFdBQVcsRUFBRSxXQUFXO29CQUN4QixLQUFLLEVBQUUsS0FBSztpQkFDZjtnQkFDRCxNQUFNLEVBQUUsc0NBQXNDO2FBQ2pELENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQzs7QUExRmMsdUJBQUssR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztxR0FGOUMsaUJBQWlCO3lIQUFqQixpQkFBaUI7dUZBQWpCLGlCQUFpQjtjQUg3QixJQUFJO2VBQUM7Z0JBQ0YsSUFBSSxFQUFFLGtCQUFrQjthQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZy1sZXZlbCc7XHJcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZ2dpbmcnO1xyXG5cclxuZXhwb3J0IHR5cGUgRW51bUxvb2t1cFR5cGUgPSAncmF3JyB8ICdsb2NhbGl6ZWQnO1xyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSBkZWZpbmluZyBleHRlbmRlZCBlbnVtIGZ1bmN0aW9uYWxpdHlcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRFbnVtIHtcclxuICAgIGVudW1JZDogc3RyaW5nO1xyXG4gICAgdmFsdWVzPzogTnVtYmVyW107XHJcbiAgICB0b0xvY2FsZVN0cmluZz86ICh0eXBlOiBudW1iZXIpID0+IHN0cmluZztcclxuICAgIHRvU3RyaW5nPzogKHR5cGU6IG51bWJlcikgPT4gc3RyaW5nO1xyXG4gICAgY29tcGFyZT86IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQHNtZURvYyB7QGxhYmVsIEVudW1Db252ZXJ0ZXJQaXBlIEBpZCBzbWVFbnVtQ29udmVydGVyfVxyXG4gKlxyXG4gKiBAb3ZlcnZpZXdcclxuICogQGZpbGUge0BmaWxlcGF0aCAuL2V4YW1wbGVzL2VudW0tY29udmVydGVyLW92ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEV4YW1wbGUgRW51bSBDb252ZXJ0ZXIgQGlkIGVudW0tY29udmVydGVyLWV4YW1wbGUgfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2VudW0tY29udmVydGVyLWV4YW1wbGUuY29tcG9uZW50Lmh0bWx9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2VudW0tY29udmVydGVyLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEV4YW1wbGUgQ29sb3IgRW51bSBDb252ZXJ0ZXIgQGlkIGNvbG9yLWVudW0tY29sb3ItY29udmVydGVyIH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb2xvci50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9lbnVtLWNvbnZlcnRlci1leGFtcGxlLWNvbG9yLnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbG9yLmNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2VudW0tY29udmVydGVyLWV4YW1wbGUtY29sb3IuY29tcG9uZW50Lmh0bWx9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29sb3IuY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2VudW0tY29udmVydGVyLWV4YW1wbGUtY29sb3IuY29tcG9uZW50LnRzfVxyXG4gKi9cclxuQFBpcGUoe1xyXG4gICAgbmFtZTogJ3NtZUVudW1Db252ZXJ0ZXInXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnVtQ29udmVydGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGVudW1zID0gbmV3IE1hcDxzdHJpbmcsIEV4dGVuZGVkRW51bT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVycyBhbiBFeHRlbmRlZCBlbnVtIGZvciB1c2Ugd2l0aCB0aGlzIHBpcGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyByZWdpc3RlckVudW0oZXh0ZW5kZWRFbnVtOiBFeHRlbmRlZEVudW0pIHtcclxuICAgICAgICBFbnVtQ29udmVydGVyUGlwZS5lbnVtcy5zZXQoZXh0ZW5kZWRFbnVtLmVudW1JZCwgZXh0ZW5kZWRFbnVtKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXIgcGlwZSB0cmFuc2Zvcm0gaW1wbGVtZW50YXRpb25cclxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgY3VycmVudCB2YWx1ZSBiZWluZyBwaXBlZCBpblxyXG4gICAgICogQHBhcmFtIGxvb2t1cE1hcCBhIG1hcCB0byBsb29rdXAgYSByZWxldmFudCBzdHJpbmcgZm9yIHRoZSBjdXJyZW50IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciwgbG9va3VwTWFwOiBNYXA8bnVtYmVyLCBzdHJpbmc+KTogc3RyaW5nO1xyXG4gICAgLyoqXHJcbiAgICAgKiBBbmd1bGFyIHBpcGUgdHJhbnNmb3JtIGltcGxlbWVudGF0aW9uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIGN1cnJlbnQgdmFsdWUgYmVpbmcgcGlwZWQgaW5cclxuICAgICAqIEBwYXJhbSBlbnVtSWQgdGhzIGlkIG9mIHRoZSBleHRlbmRlZCBlbnVtIHRvIHVzZSBmb3IgdmFsdWUgdHJhbnNsYXRpb25cclxuICAgICAqIEBwYXJhbSBsb29rdXBUeXBlIHRoZSB0eXBlIG9mIGxvb2t1cCB0byBwZXJmb3JtIHVzaW5nIHRoZSBleHRlbmRlZCBlbnVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciwgZW51bUlkOiBzdHJpbmcsIGxvb2t1cFR5cGU6IEVudW1Mb29rdXBUeXBlKTogc3RyaW5nO1xyXG4gICAgcHVibGljIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyLCBsb29rdXBNYXBPckVudW1JZDogTWFwPG51bWJlciwgc3RyaW5nPiB8IHN0cmluZywgbG9va3VwVHlwZT86IEVudW1Mb29rdXBUeXBlKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZCh2YWx1ZSkgfHwgaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsb29rdXBNYXBPckVudW1JZCkge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmxvZyh7XHJcbiAgICAgICAgICAgICAgICBsZXZlbDogTG9nTGV2ZWwuV2FybmluZyxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBObyBtYXAgb3IgZW51bSBpZCBkZWZpbmVkIHRvIHRyYW5zbGF0ZSB2YWx1ZSAke3ZhbHVlfWAsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBsb29rdXBNYXBPckVudW1JZDogbG9va3VwTWFwT3JFbnVtSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiAnRW51bUNvbnZlcnRlclBpcGUnXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgbG9va3VwTWFwT3JFbnVtSWQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUVudW1JZCh2YWx1ZSwgbG9va3VwTWFwT3JFbnVtSWQsIGxvb2t1cFR5cGUgfHwgJ2xvY2FsaXplZCcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUxvb2t1cE1hcCh2YWx1ZSwgbG9va3VwTWFwT3JFbnVtSWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFuc2xhdGVzIGEgdmFsdWUgdXNpbmcgYSByZWdpc3RlcmVkIGV4dGVuZGVkIGVudW1cclxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgY3VycmVudCB2YWx1ZSBiZWluZyBwaXBlZCBpblxyXG4gICAgICogQHBhcmFtIGVudW1JZCB0aHMgaWQgb2YgdGhlIGV4dGVuZGVkIGVudW0gdG8gdXNlIGZvciB2YWx1ZSB0cmFuc2xhdGlvblxyXG4gICAgICogQHBhcmFtIGxvb2t1cFR5cGUgdGhlIHR5cGUgb2YgbG9va3VwIHRvIHBlcmZvcm0gdXNpbmcgdGhlIGV4dGVuZGVkIGVudW1cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1FbnVtSWQodmFsdWU6IG51bWJlciwgZW51bUlkOiBzdHJpbmcsIGxvb2t1cFR5cGU6IEVudW1Mb29rdXBUeXBlKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBleHRlbmRlZEVudW0gPSBFbnVtQ29udmVydGVyUGlwZS5lbnVtcy5nZXQoZW51bUlkKTtcclxuICAgICAgICBpZiAoIU1zZnRTbWUuaXNOdWxsT3JVbmRlZmluZWQoZXh0ZW5kZWRFbnVtKSkge1xyXG4gICAgICAgICAgICBpZiAobG9va3VwVHlwZSA9PT0gJ2xvY2FsaXplZCcgJiYgZXh0ZW5kZWRFbnVtLnRvTG9jYWxlU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZXh0ZW5kZWRFbnVtLnRvTG9jYWxlU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZXh0ZW5kZWRFbnVtLnRvU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZXh0ZW5kZWRFbnVtLnRvU3RyaW5nKHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFuc2Zvcm1zIHRoZSBwaXBlIHZhbHVlIGZyb20gdGhlIHByb3ZpZGVkIGxvb2t1cCBtYXBcclxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgcGlwZWQgdmFsdWVcclxuICAgICAqIEBwYXJhbSBsb29rdXBNYXAgdGhlIG1hcCB0byBsb29rdXAgdGhlIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdHJhbnNmb3JtTG9va3VwTWFwKHZhbHVlOiBudW1iZXIsIGxvb2t1cE1hcDogTWFwPG51bWJlciwgc3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc3RyaW5nVmFsdWUgPSBsb29rdXBNYXAuZ2V0KHZhbHVlKTtcclxuICAgICAgICBpZiAoc3RyaW5nVmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyaW5nVmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgTG9nZ2luZy5sb2coe1xyXG4gICAgICAgICAgICAgICAgbGV2ZWw6IExvZ0xldmVsLldhcm5pbmcsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVmFsdWUgJyR7dmFsdWV9JyBpcyBub3QgZGVmaW5lZCBpbiBtYXAgJHtsb29rdXBNYXB9YCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IGxvb2t1cE1hcCxcclxuICAgICAgICAgICAgICAgICAgICBzdHJpbmdWYWx1ZTogc3RyaW5nVmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiAnRW51bUNvbnZlcnRlclBpcGUudHJhbnNmb3JtTG9va3VwTWFwJ1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==