@hpe/angular-toolkit
Version:
Hewlett-Packard Enterprise : Angular toolkit for rapid project development
166 lines (165 loc) • 15.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
//=============================================================================
//===
//=== (C) Copyright 2018 Hewlett Packard Enterprise Development LP.
//===
//=== Use of this source code is governed by an MIT-style license that can be
//=== found in the LICENSE file
//=============================================================================
import * as tslib_1 from "tslib";
import { Component, Input } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { AbstractFormComponent } from "../abstract-form-component";
var InputCombo = /** @class */ (function (_super) {
tslib_1.__extends(InputCombo, _super);
//-------------------------------------------------------------------------
//---
//--- Constructor
//---
//-------------------------------------------------------------------------
function InputCombo() {
return _super.call(this) || this;
}
Object.defineProperty(InputCombo.prototype, "dataMap", {
get: /**
* @return {?}
*/
function () {
return this._dataMap;
},
//-------------------------------------------------------------------------
set: /**
* @param {?} map
* @return {?}
*/
function (map) {
this._dataMap = map;
this.key = "id";
this.value = "value";
var /** @type {?} */ list = [];
if (!this.required) {
list.push({
"id": null,
"value": null
});
}
for (var /** @type {?} */ key in map) {
var /** @type {?} */ name_1 = Number(key);
var /** @type {?} */ value = map[key];
if (isNaN(name_1)) {
name_1 = key;
}
list.push({
"id": name_1,
"value": value
});
}
this.data = list;
},
enumerable: true,
configurable: true
});
/**
* @param {?} keyValue
* @return {?}
*/
InputCombo.prototype.writeValue = /**
* @param {?} keyValue
* @return {?}
*/
function (keyValue) {
var _this = this;
var /** @type {?} */ item = this.data.find(function (item) {
return (item[_this.key] == keyValue);
});
//--- Select first entry in case there is no match
if (item == null) {
if (this.data != null && this.data.length > 0) {
item = this.data[0];
}
}
this._selectedItem = item;
};
Object.defineProperty(InputCombo.prototype, "selectedItem", {
//-------------------------------------------------------------------------
get: /**
* @return {?}
*/
function () {
return this._selectedItem;
},
//-------------------------------------------------------------------------
set: /**
* @param {?} newItem
* @return {?}
*/
function (newItem) {
this._selectedItem = newItem;
this.onChange(newItem[this.key]);
},
enumerable: true,
configurable: true
});
//-------------------------------------------------------------------------
//---
//--- Protected methods
//---
//-------------------------------------------------------------------------
/**
* @return {?}
*/
InputCombo.prototype.isProvided = /**
* @return {?}
*/
function () {
return (this.selectedItem != null && this.selectedItem[this.key] != null);
};
InputCombo.decorators = [
{ type: Component, args: [{
selector: 'hpe-input-combo',
template: "<!--\n=============================================================================\n===\n=== (C) Copyright 2018 Hewlett Packard Enterprise Development LP.\n===\n=== Use of this source code is governed by an MIT-style license that can be\n=== found in the LICENSE file\n=============================================================================\n-->\n\n<div class=\"ui-inputgroup spacing\">\n\t<hpe-form-label [icon]=\"icon\" [label]=\"label\"></hpe-form-label>\n\n\t<p-dropdown [options] = \"data\"\n\t\t\t\t[dataKey] = \"key\"\n\t\t\t\t[optionLabel]= \"value\"\n\t\t\t\t[(ngModel)] = \"selectedItem\"\n\t\t\t\t[ngClass] = \"getComponentClass()\"\n\t\t\t\t[style] = \"{ 'width':'100%' }\"\n\t\t\t\t[disabled] = \"!enabled\">\n\t</p-dropdown>\n</div>\n",
styles: [".spacing{margin-bottom:1rem}.control{width:100%}.required{border-right:5px solid #ff8d6d}.provided{border-right:5px solid #00a982}"],
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: InputCombo,
multi: true
}]
},] },
];
/** @nocollapse */
InputCombo.ctorParameters = function () { return []; };
InputCombo.propDecorators = {
"key": [{ type: Input },],
"value": [{ type: Input },],
"data": [{ type: Input },],
"dataMap": [{ type: Input },],
};
return InputCombo;
}(AbstractFormComponent));
export { InputCombo };
function InputCombo_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
InputCombo.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
InputCombo.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
InputCombo.propDecorators;
/** @type {?} */
InputCombo.prototype.key;
/** @type {?} */
InputCombo.prototype.value;
/** @type {?} */
InputCombo.prototype.data;
/** @type {?} */
InputCombo.prototype._selectedItem;
/** @type {?} */
InputCombo.prototype._dataMap;
}
//=============================================================================
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY29tYm8uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaHBlL2FuZ3VsYXItdG9vbGtpdC9ndWkvZm9ybS8iLCJzb3VyY2VzIjpbImlucHV0LWNvbWJvL2lucHV0LWNvbWJvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQVFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQVcsZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFVLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDOztJQXVDakMsc0NBQXFCO0lBaUJwRCwyRUFBMkU7SUFDM0UsS0FBSztJQUNMLGlCQUFpQjtJQUNqQixLQUFLO0lBQ0wsMkVBQTJFO0lBRTNFO2VBQ0MsaUJBQU87S0FDUDswQkFTRywrQkFBTzs7Ozs7WUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzs7UUFHdEIsMkVBQTJFOzs7OztRQUUzRSxVQUFZLEdBQVk7WUFFdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFDcEIsSUFBSSxDQUFDLEdBQUcsR0FBUSxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBTSxPQUFPLENBQUM7WUFFeEIscUJBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUVkLEVBQUUsQ0FBQyxDQUFFLENBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUU7b0JBQ1YsSUFBSSxFQUFNLElBQUk7b0JBQ2QsT0FBTyxFQUFHLElBQUk7aUJBQ2QsQ0FBQyxDQUFDO2FBQ0g7WUFFRCxHQUFHLENBQUMsQ0FBQyxxQkFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDckIscUJBQUksTUFBSSxHQUFVLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUIscUJBQUksS0FBSyxHQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFM0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDakIsTUFBSSxHQUFHLEdBQUcsQ0FBQztpQkFDWDtnQkFFRCxJQUFJLENBQUMsSUFBSSxDQUFFO29CQUNWLElBQUksRUFBTSxNQUFJO29CQUNkLE9BQU8sRUFBRyxLQUFLO2lCQUNmLENBQUMsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDakI7Ozs7Ozs7O0lBSU0sK0JBQVU7Ozs7Y0FBQyxRQUFROztRQUV6QixxQkFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUUsVUFBQyxJQUFJO1lBQy9CLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUE7U0FDbkMsQ0FBQyxDQUFDOztRQUlILEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9DLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO1NBQ0Q7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzs7SUFLM0Isc0JBQUksb0NBQVk7UUFGaEIsMkVBQTJFOzs7O1FBRTNFO1lBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDMUI7UUFFRCwyRUFBMkU7Ozs7O1FBRTNFLFVBQWlCLE9BQU87WUFFdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDakM7OztPQVJBO0lBVUQsMkVBQTJFO0lBQzNFLEtBQUs7SUFDTCx1QkFBdUI7SUFDdkIsS0FBSztJQUNMLDJFQUEyRTs7OztJQUVqRSwrQkFBVTs7O0lBQXBCO1FBQ0UsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7S0FDM0U7O2dCQXBKRCxTQUFTLFNBQUM7b0JBQ1YsUUFBUSxFQUFRLGlCQUFpQjtvQkFDakMsUUFBUSxFQUFFLHN3QkFzQlY7b0JBQ0EsTUFBTSxFQUFFLENBQUMsb0lBQW9JLENBQUM7b0JBQzlJLFNBQVMsRUFBSyxDQUFFOzRCQUNmLE9BQU8sRUFBTSxpQkFBaUI7NEJBQzlCLFdBQVcsRUFBRSxVQUFVOzRCQUN2QixLQUFLLEVBQVEsSUFBSTt5QkFDakIsQ0FBQztpQkFDRjs7Ozs7d0JBWUMsS0FBSzswQkFDTCxLQUFLO3lCQUNMLEtBQUs7NEJBdUJMLEtBQUs7O3FCQWxGUDtFQWlEZ0MscUJBQXFCO1NBQXhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLz09PVxuLy89PT0gKEMpIENvcHlyaWdodCAyMDE4IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQLlxuLy89PT1cbi8vPT09IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4vLz09PSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gICAgICBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9ICAgICBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Fic3RyYWN0Rm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL2Fic3RyYWN0LWZvcm0tY29tcG9uZW50XCI7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yICAgIDogICAnaHBlLWlucHV0LWNvbWJvJyxcblx0dGVtcGxhdGU6IGA8IS0tXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuPT09XG49PT0gKEMpIENvcHlyaWdodCAyMDE4IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQLlxuPT09XG49PT0gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbj09PSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLS0+XG5cbjxkaXYgY2xhc3M9XCJ1aS1pbnB1dGdyb3VwIHNwYWNpbmdcIj5cblx0PGhwZS1mb3JtLWxhYmVsIFtpY29uXT1cImljb25cIiBbbGFiZWxdPVwibGFiZWxcIj48L2hwZS1mb3JtLWxhYmVsPlxuXG5cdDxwLWRyb3Bkb3duIFtvcHRpb25zXSAgICA9IFwiZGF0YVwiXG5cdFx0XHRcdFtkYXRhS2V5XSAgICA9IFwia2V5XCJcblx0XHRcdFx0W29wdGlvbkxhYmVsXT0gXCJ2YWx1ZVwiXG5cdFx0XHRcdFsobmdNb2RlbCldICA9IFwic2VsZWN0ZWRJdGVtXCJcblx0XHRcdFx0W25nQ2xhc3NdICAgID0gXCJnZXRDb21wb25lbnRDbGFzcygpXCJcblx0XHRcdFx0W3N0eWxlXSAgICAgID0gXCJ7ICd3aWR0aCc6JzEwMCUnIH1cIlxuXHRcdFx0XHRbZGlzYWJsZWRdICAgPSBcIiFlbmFibGVkXCI+XG5cdDwvcC1kcm9wZG93bj5cbjwvZGl2PlxuYCxcblx0c3R5bGVzOiBbYC5zcGFjaW5ne21hcmdpbi1ib3R0b206MXJlbX0uY29udHJvbHt3aWR0aDoxMDAlfS5yZXF1aXJlZHtib3JkZXItcmlnaHQ6NXB4IHNvbGlkICNmZjhkNmR9LnByb3ZpZGVke2JvcmRlci1yaWdodDo1cHggc29saWQgIzAwYTk4Mn1gXSxcblx0cHJvdmlkZXJzICAgOiBbIHtcblx0XHRwcm92aWRlICAgIDogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0dXNlRXhpc3Rpbmc6IElucHV0Q29tYm8sXG5cdFx0bXVsdGkgICAgICA6IHRydWVcblx0fV1cbn0pXG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNsYXNzIElucHV0Q29tYm8gZXh0ZW5kcyBBYnN0cmFjdEZvcm1Db21wb25lbnQge1xuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBWYXJpYWJsZXNcblx0Ly8tLS1cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0QElucHV0KCkga2V5ICAgOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHZhbHVlIDogc3RyaW5nO1xuXHRASW5wdXQoKSBkYXRhICA6IGFueVtdO1xuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHByaXZhdGUgX3NlbGVjdGVkSXRlbSA6IGFueTtcblx0cHJpdmF0ZSBfZGF0YU1hcCAgICAgIDogT2JqZWN0O1xuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBDb25zdHJ1Y3RvclxuXHQvLy0tLVxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vLS0tXG5cdC8vLS0tIEFQSSBtZXRob2RzXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdEBJbnB1dCgpXG5cdGdldCBkYXRhTWFwKCkgOiBPYmplY3Qge1xuXHRcdHJldHVybiB0aGlzLl9kYXRhTWFwO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0c2V0IGRhdGFNYXAobWFwIDogT2JqZWN0KSB7XG5cblx0XHR0aGlzLl9kYXRhTWFwID0gbWFwO1xuXHRcdHRoaXMua2V5ICAgICAgPSBcImlkXCI7XG5cdFx0dGhpcy52YWx1ZSAgICA9IFwidmFsdWVcIjtcblxuXHRcdGxldCBsaXN0ID0gW107XG5cblx0XHRpZiAoICEgdGhpcy5yZXF1aXJlZCkge1xuXHRcdFx0bGlzdC5wdXNoKCB7XG5cdFx0XHRcdFwiaWRcIiAgICA6IG51bGwsXG5cdFx0XHRcdFwidmFsdWVcIiA6IG51bGxcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGZvciAobGV0IGtleSBpbiBtYXApIHtcblx0XHRcdGxldCBuYW1lICA6IGFueSA9IE51bWJlcihrZXkpO1xuXHRcdFx0bGV0IHZhbHVlIDogYW55ID0gbWFwW2tleV07XG5cblx0XHRcdGlmIChpc05hTihuYW1lKSkge1xuXHRcdFx0XHRuYW1lID0ga2V5O1xuXHRcdFx0fVxuXG5cdFx0XHRsaXN0LnB1c2goIHtcblx0XHRcdFx0XCJpZFwiICAgIDogbmFtZSxcblx0XHRcdFx0XCJ2YWx1ZVwiIDogdmFsdWVcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdHRoaXMuZGF0YSA9IGxpc3Q7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgd3JpdGVWYWx1ZShrZXlWYWx1ZSkge1xuXG5cdFx0bGV0IGl0ZW0gPSB0aGlzLmRhdGEuZmluZCggKGl0ZW0pID0+IHtcblx0XHRcdHJldHVybiAoaXRlbVt0aGlzLmtleV0gPT0ga2V5VmFsdWUpXG5cdFx0fSk7XG5cblx0XHQvLy0tLSBTZWxlY3QgZmlyc3QgZW50cnkgaW4gY2FzZSB0aGVyZSBpcyBubyBtYXRjaFxuXG5cdFx0aWYgKGl0ZW0gPT0gbnVsbCkge1xuXHRcdFx0aWYgKHRoaXMuZGF0YSAhPSBudWxsICYmIHRoaXMuZGF0YS5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGl0ZW0gPSB0aGlzLmRhdGFbMF07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2VsZWN0ZWRJdGVtID0gaXRlbTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdGdldCBzZWxlY3RlZEl0ZW0oKSA6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHNldCBzZWxlY3RlZEl0ZW0obmV3SXRlbSkge1xuXG5cdFx0dGhpcy5fc2VsZWN0ZWRJdGVtID0gbmV3SXRlbTtcblx0XHR0aGlzLm9uQ2hhbmdlKG5ld0l0ZW1bdGhpcy5rZXldKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBQcm90ZWN0ZWQgbWV0aG9kc1xuXHQvLy0tLVxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwcm90ZWN0ZWQgaXNQcm92aWRlZCgpIDogYm9vbGVhbiB7XG5cdCBcdHJldHVybiAodGhpcy5zZWxlY3RlZEl0ZW0gIT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkSXRlbVt0aGlzLmtleV0gIT0gbnVsbCk7XG5cdH1cbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIl19