theme-lib
Version:
This is a simple example Angular Library published to npm.
245 lines • 16 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { Component, Input, HostBinding, forwardRef, ChangeDetectorRef } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { convertToBoolProperty } from '../helpers';
/*
* Styled checkbox component
*
* @stacked-example(Showcase, checkbox/checkbox-showcase.component)
*
* ### Installation
*
* Import `NbCheckboxComponent` to your feature module.
* ```ts
* @NgModule({
* imports: [
* // ...
* NbCheckboxModule,
* ],
* })
* export class PageModule { }
* ```
* ### Usage
*
* Can have one of the following statuses: danger, success or warning
*
* @stacked-example(Colored Checkboxes, checkbox/checkbox-status.component)
*
* @additional-example(Disabled Checkbox, checkbox/checkbox-disabled.component)
*
* @styles
*
* checkbox-bg:
* checkbox-size:
* checkbox-border-size:
* checkbox-border-color:
* checkbox-checkmark:
* checkbox-checked-bg:
* checkbox-checked-size:
* checkbox-checked-border-size:
* checkbox-checked-border-color:
* checkbox-checked-checkmark:
* checkbox-disabled-bg:
* checkbox-disabled-size:
* checkbox-disabled-border-size:
* checkbox-disabled-border-color:
* checkbox-disabled-checkmark:
*/
var NbCheckboxComponent = /** @class */ (function () {
function NbCheckboxComponent(changeDetector) {
this.changeDetector = changeDetector;
/*
* Checkbox value
* @type {boolean}
* @private
*/
this._value = false;
this.disabled = false;
this.onChange = function () { };
this.onTouched = function () { };
}
Object.defineProperty(NbCheckboxComponent.prototype, "setDisabled", {
set: /**
* @param {?} val
* @return {?}
*/
function (val) {
this.disabled = convertToBoolProperty(val);
},
enumerable: true,
configurable: true
});
Object.defineProperty(NbCheckboxComponent.prototype, "setStatus", {
/*
* Checkbox status (success, warning, danger)
* @param {string} val
*/
set: /*
* Checkbox status (success, warning, danger)
* @param {string} val
*/
/**
* @param {?} val
* @return {?}
*/
function (val) {
this.status = val;
},
enumerable: true,
configurable: true
});
Object.defineProperty(NbCheckboxComponent.prototype, "success", {
get: /**
* @return {?}
*/
function () {
return this.status === 'success';
},
enumerable: true,
configurable: true
});
Object.defineProperty(NbCheckboxComponent.prototype, "warning", {
get: /**
* @return {?}
*/
function () {
return this.status === 'warning';
},
enumerable: true,
configurable: true
});
Object.defineProperty(NbCheckboxComponent.prototype, "danger", {
get: /**
* @return {?}
*/
function () {
return this.status === 'danger';
},
enumerable: true,
configurable: true
});
Object.defineProperty(NbCheckboxComponent.prototype, "value", {
get: /**
* @return {?}
*/
function () {
return this._value;
},
set: /**
* @param {?} val
* @return {?}
*/
function (val) {
this._value = val;
this.onChange(val);
},
enumerable: true,
configurable: true
});
/**
* @param {?} fn
* @return {?}
*/
NbCheckboxComponent.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
NbCheckboxComponent.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouched = fn;
};
/**
* @param {?} val
* @return {?}
*/
NbCheckboxComponent.prototype.writeValue = /**
* @param {?} val
* @return {?}
*/
function (val) {
this._value = val;
this.changeDetector.detectChanges();
};
/**
* @param {?} val
* @return {?}
*/
NbCheckboxComponent.prototype.setDisabledState = /**
* @param {?} val
* @return {?}
*/
function (val) {
this.disabled = convertToBoolProperty(val);
};
/**
* @return {?}
*/
NbCheckboxComponent.prototype.setTouched = /**
* @return {?}
*/
function () {
this.onTouched();
};
NbCheckboxComponent.decorators = [
{ type: Component, args: [{
selector: 'nb-checkbox',
template: "\n <label class=\"customised-control\">\n <input type=\"checkbox\" class=\"customised-control-input\"\n [disabled]=\"disabled\"\n [checked]=\"value\"\n (change)=\"value = !value\"\n (blur)=\"setTouched()\">\n <span class=\"customised-control-indicator\"></span>\n <span class=\"customised-control-description\">\n <ng-content></ng-content>\n </span>\n </label>\n ",
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(function () { return NbCheckboxComponent; }),
multi: true,
}],
styles: [":host .customised-control{position:relative;display:inline-flex;margin:0;min-height:inherit;padding:.375rem 1.5rem .375rem 0}:host .customised-control-input{position:absolute;opacity:0}:host .customised-control-input:disabled~.customised-control-description,:host .customised-control-input:disabled~.customised-control-indicator{opacity:.5}:host .customised-control-indicator{border-radius:.25rem;flex-shrink:0}:host .customised-control-indicator::before{content:'';border-style:solid;display:block;margin:0 auto;-webkit-transform:rotate(45deg);transform:rotate(45deg)}[dir=ltr] :host .customised-control-description{padding-left:.5rem}[dir=rtl] :host .customised-control-description{padding-right:.5rem}"]
}] }
];
/** @nocollapse */
NbCheckboxComponent.ctorParameters = function () { return [
{ type: ChangeDetectorRef }
]; };
NbCheckboxComponent.propDecorators = {
_value: [{ type: Input, args: ['value',] }],
setDisabled: [{ type: Input, args: ['disabled',] }],
setStatus: [{ type: Input, args: ['status',] }],
success: [{ type: HostBinding, args: ['class.success',] }],
warning: [{ type: HostBinding, args: ['class.warning',] }],
danger: [{ type: HostBinding, args: ['class.danger',] }]
};
return NbCheckboxComponent;
}());
export { NbCheckboxComponent };
if (false) {
/** @type {?} */
NbCheckboxComponent.prototype.status;
/** @type {?} */
NbCheckboxComponent.prototype._value;
/** @type {?} */
NbCheckboxComponent.prototype.disabled;
/** @type {?} */
NbCheckboxComponent.prototype.onChange;
/** @type {?} */
NbCheckboxComponent.prototype.onTouched;
/**
* @type {?}
* @private
*/
NbCheckboxComponent.prototype.changeDetector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGhlbWUtbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2Q25EO0lBMkVFLDZCQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7Ozs7OztRQTVDckMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV4QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBOEIxQixhQUFRLEdBQVEsY0FBUSxDQUFDLENBQUM7UUFDMUIsY0FBUyxHQUFRLGNBQVEsQ0FBQyxDQUFDO0lBVzZCLENBQUM7SUF6Q3pELHNCQUNJLDRDQUFXOzs7OztRQURmLFVBQ2dCLEdBQVk7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDOzs7T0FBQTtJQU1ELHNCQUNJLDBDQUFTO1FBTGI7OztXQUdHOzs7Ozs7Ozs7UUFDSCxVQUNjLEdBQVc7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDcEIsQ0FBQzs7O09BQUE7SUFFRCxzQkFDSSx3Q0FBTzs7OztRQURYO1lBRUUsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQztRQUNuQyxDQUFDOzs7T0FBQTtJQUVELHNCQUNJLHdDQUFPOzs7O1FBRFg7WUFFRSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQ25DLENBQUM7OztPQUFBO0lBRUQsc0JBQ0ksdUNBQU07Ozs7UUFEVjtZQUVFLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUM7UUFDbEMsQ0FBQzs7O09BQUE7SUFLRCxzQkFBSSxzQ0FBSzs7OztRQUFUO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7Ozs7O1FBRUQsVUFBVSxHQUFHO1lBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDOzs7T0FMQTs7Ozs7SUFTRCw4Q0FBZ0I7Ozs7SUFBaEIsVUFBaUIsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7OztJQUVELCtDQUFpQjs7OztJQUFqQixVQUFrQixFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRUQsd0NBQVU7Ozs7SUFBVixVQUFXLEdBQVE7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzs7OztJQUVELDhDQUFnQjs7OztJQUFoQixVQUFpQixHQUFZO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7OztJQUVELHdDQUFVOzs7SUFBVjtRQUNFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOztnQkFoR0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsK2JBWVQ7b0JBRUQsU0FBUyxFQUFFLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsbUJBQW1CLEVBQW5CLENBQW1CLENBQUM7NEJBQ2xELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7O2lCQUNIOzs7O2dCQXBFbUQsaUJBQWlCOzs7eUJBOEVsRSxLQUFLLFNBQUMsT0FBTzs4QkFHYixLQUFLLFNBQUMsVUFBVTs0QkFTaEIsS0FBSyxTQUFDLFFBQVE7MEJBS2QsV0FBVyxTQUFDLGVBQWU7MEJBSzNCLFdBQVcsU0FBQyxlQUFlO3lCQUszQixXQUFXLFNBQUMsY0FBYzs7SUF1QzdCLDBCQUFDO0NBQUEsQUFqR0QsSUFpR0M7U0EzRVksbUJBQW1COzs7SUFFOUIscUNBQWU7O0lBT2YscUNBQXdDOztJQUV4Qyx1Q0FBMEI7O0lBOEIxQix1Q0FBMEI7O0lBQzFCLHdDQUEyQjs7Ozs7SUFXZiw2Q0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAbGljZW5zZVxyXG4gKiBDb3B5cmlnaHQgQWt2ZW8uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIExpY2Vuc2UudHh0IGluIHRoZSBwcm9qZWN0IHJvb3QgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgSG9zdEJpbmRpbmcsIGZvcndhcmRSZWYsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgY29udmVydFRvQm9vbFByb3BlcnR5IH0gZnJvbSAnLi4vaGVscGVycyc7XHJcblxyXG4vKlxyXG4gKiBTdHlsZWQgY2hlY2tib3ggY29tcG9uZW50XHJcbiAqXHJcbiAqIEBzdGFja2VkLWV4YW1wbGUoU2hvd2Nhc2UsIGNoZWNrYm94L2NoZWNrYm94LXNob3djYXNlLmNvbXBvbmVudClcclxuICpcclxuICogIyMjIEluc3RhbGxhdGlvblxyXG4gKlxyXG4gKiBJbXBvcnQgYE5iQ2hlY2tib3hDb21wb25lbnRgIHRvIHlvdXIgZmVhdHVyZSBtb2R1bGUuXHJcbiAqIGBgYHRzXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1xyXG4gKiAgIFx0Ly8gLi4uXHJcbiAqICAgICBOYkNoZWNrYm94TW9kdWxlLFxyXG4gKiAgIF0sXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBQYWdlTW9kdWxlIHsgfVxyXG4gKiBgYGBcclxuICogIyMjIFVzYWdlXHJcbiAqXHJcbiAqIENhbiBoYXZlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHN0YXR1c2VzOiBkYW5nZXIsIHN1Y2Nlc3Mgb3Igd2FybmluZ1xyXG4gKlxyXG4gKiBAc3RhY2tlZC1leGFtcGxlKENvbG9yZWQgQ2hlY2tib3hlcywgY2hlY2tib3gvY2hlY2tib3gtc3RhdHVzLmNvbXBvbmVudClcclxuICpcclxuICogQGFkZGl0aW9uYWwtZXhhbXBsZShEaXNhYmxlZCBDaGVja2JveCwgY2hlY2tib3gvY2hlY2tib3gtZGlzYWJsZWQuY29tcG9uZW50KVxyXG4gKlxyXG4gKiBAc3R5bGVzXHJcbiAqXHJcbiAqIGNoZWNrYm94LWJnOlxyXG4gKiBjaGVja2JveC1zaXplOlxyXG4gKiBjaGVja2JveC1ib3JkZXItc2l6ZTpcclxuICogY2hlY2tib3gtYm9yZGVyLWNvbG9yOlxyXG4gKiBjaGVja2JveC1jaGVja21hcms6XHJcbiAqIGNoZWNrYm94LWNoZWNrZWQtYmc6XHJcbiAqIGNoZWNrYm94LWNoZWNrZWQtc2l6ZTpcclxuICogY2hlY2tib3gtY2hlY2tlZC1ib3JkZXItc2l6ZTpcclxuICogY2hlY2tib3gtY2hlY2tlZC1ib3JkZXItY29sb3I6XHJcbiAqIGNoZWNrYm94LWNoZWNrZWQtY2hlY2ttYXJrOlxyXG4gKiBjaGVja2JveC1kaXNhYmxlZC1iZzpcclxuICogY2hlY2tib3gtZGlzYWJsZWQtc2l6ZTpcclxuICogY2hlY2tib3gtZGlzYWJsZWQtYm9yZGVyLXNpemU6XHJcbiAqIGNoZWNrYm94LWRpc2FibGVkLWJvcmRlci1jb2xvcjpcclxuICogY2hlY2tib3gtZGlzYWJsZWQtY2hlY2ttYXJrOlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduYi1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxsYWJlbCBjbGFzcz1cImN1c3RvbWlzZWQtY29udHJvbFwiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJjdXN0b21pc2VkLWNvbnRyb2wtaW5wdXRcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgIFtjaGVja2VkXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgIChjaGFuZ2UpPVwidmFsdWUgPSAhdmFsdWVcIlxyXG4gICAgICAgICAgICAgKGJsdXIpPVwic2V0VG91Y2hlZCgpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiY3VzdG9taXNlZC1jb250cm9sLWluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJjdXN0b21pc2VkLWNvbnRyb2wtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsgYC4vY2hlY2tib3guY29tcG9uZW50LnNjc3NgIF0sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOYkNoZWNrYm94Q29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlLFxyXG4gIH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmJDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgc3RhdHVzOiBzdHJpbmc7XHJcblxyXG4gIC8qXHJcbiAgICogQ2hlY2tib3ggdmFsdWVcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgndmFsdWUnKSBfdmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoJ2Rpc2FibGVkJylcclxuICBzZXQgc2V0RGlzYWJsZWQodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gY29udmVydFRvQm9vbFByb3BlcnR5KHZhbCk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIENoZWNrYm94IHN0YXR1cyAoc3VjY2Vzcywgd2FybmluZywgZGFuZ2VyKVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBASW5wdXQoJ3N0YXR1cycpXHJcbiAgc2V0IHNldFN0YXR1cyh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5zdGF0dXMgPSB2YWw7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnN1Y2Nlc3MnKVxyXG4gIGdldCBzdWNjZXNzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSAnc3VjY2Vzcyc7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndhcm5pbmcnKVxyXG4gIGdldCB3YXJuaW5nKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSAnd2FybmluZyc7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhbmdlcicpXHJcbiAgZ2V0IGRhbmdlcigpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gJ2Rhbmdlcic7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4geyB9O1xyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4geyB9O1xyXG5cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgdmFsdWUodmFsKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICAgIHRoaXMub25DaGFuZ2UodmFsKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbDtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZSh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBjb252ZXJ0VG9Cb29sUHJvcGVydHkodmFsKTtcclxuICB9XHJcblxyXG4gIHNldFRvdWNoZWQoKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=