@stratio/egeo
Version:
248 lines • 16.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/st-checkbox/st-checkbox.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/*
* © 2017 Stratio Big Data Inc., Sucursal en España.
*
* This software is licensed under the Apache License, Version 2.0.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the terms of the License for more details.
*
* SPDX-License-Identifier: Apache-2.0.
*/
import { Component, Input, Output, EventEmitter, forwardRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
/** @type {?} */
export var CHECKBOX_CONTROL_ACCESSOR = {
provide: NG_VALUE_ACCESSOR,
// tslint:disable-next-line:no-use-before-declare
useExisting: forwardRef((/**
* @return {?}
*/
function () { return StCheckboxComponent; })),
multi: true
};
/**
* \@description {Component} [Checkbox]
*
* The checkbox component represents a custom input of the checkbox type.
*
* \@example
*
* {html}
*
* ```
* <st-checkbox name="option" value="1">
* Option 1
* </st-checkbox>
* ```
*
*/
var StCheckboxComponent = /** @class */ (function () {
function StCheckboxComponent(_changeDetectorRef) {
this._changeDetectorRef = _changeDetectorRef;
/**
* \@Output {{ checked: boolean, value: any }} [change=''] This is emitted when user clicks on the checkbox
*/
this.change = new EventEmitter();
this._checked = false;
this._controlValueAccessorChangeFn = (/**
* @param {?} value
* @return {?}
*/
function (value) { });
this.onTouched = (/**
* @return {?}
*/
function () { });
}
Object.defineProperty(StCheckboxComponent.prototype, "checked", {
/** @Input {boolean} [checked=''] */
get: /**
* \@Input {boolean} [checked='']
* @return {?}
*/
function () {
return this._checked;
},
set: /**
* @param {?} checked
* @return {?}
*/
function (checked) {
if (checked !== this.checked) {
this._checked = checked;
this._changeDetectorRef.markForCheck();
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(StCheckboxComponent.prototype, "labelQaTag", {
get: /**
* @return {?}
*/
function () {
return (this.qaTag || this.name) + '-label';
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
StCheckboxComponent.prototype.handleClick = /**
* @return {?}
*/
function () {
if (!this.readonly) {
if (!this.disabled) {
this._checked = !this._checked;
this._controlValueAccessorChangeFn(this._checked);
this.change.emit({ checked: this.checked, value: this.value });
}
}
};
/**
* @param {?} $event
* @return {?}
*/
StCheckboxComponent.prototype.handleChange = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
$event.stopPropagation();
};
/**
* @param {?} value
* @return {?}
*/
StCheckboxComponent.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
this._checked = value;
this._changeDetectorRef.markForCheck();
};
/**
* @param {?} fn
* @return {?}
*/
StCheckboxComponent.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._controlValueAccessorChangeFn = fn;
};
/**
* @param {?} fn
* @return {?}
*/
StCheckboxComponent.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouched = fn;
};
/**
* @param {?} isDisabled
* @return {?}
*/
StCheckboxComponent.prototype.setDisabledState = /**
* @param {?} isDisabled
* @return {?}
*/
function (isDisabled) {
this.disabled = isDisabled;
this._changeDetectorRef.markForCheck();
};
StCheckboxComponent.decorators = [
{ type: Component, args: [{
selector: 'st-checkbox',
template: "<!--\n\n \u00A9 2017 Stratio Big Data Inc., Sucursal en Espa\u00F1a.\n\n This software is licensed under the Apache License, Version 2.0.\n This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n See the terms of the License for more details.\n\n SPDX-License-Identifier: Apache-2.0.\n\n-->\n<label st-label class=\"st-checkbox\" [ngClass]=\"{'disabled' : disabled}\" [attr.id]=\"labelQaTag\" [attr.title]=\"contextualHelp\">\n <div class=\"st-checkbox-container\">\n <input\n type=\"checkbox\"\n [id]=\"qaTag\"\n [name]=\"name\"\n [required]=\"required\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [value]=\"value\"\n [hidden]=\"true\"\n [readonly]=\"readonly\"\n (click)=\"handleClick()\"\n (change)=\"handleChange($event)\" />\n </div>\n <div class=\"custom-checkbox st-checkbox-custom\" [ngClass]=\"{'custom-checkbox--checked' : checked}\"></div><ng-content></ng-content>\n</label>\n",
providers: [CHECKBOX_CONTROL_ACCESSOR],
changeDetection: ChangeDetectionStrategy.OnPush
}] }
];
/** @nocollapse */
StCheckboxComponent.ctorParameters = function () { return [
{ type: ChangeDetectorRef }
]; };
StCheckboxComponent.propDecorators = {
checked: [{ type: Input }],
name: [{ type: Input }],
qaTag: [{ type: Input }],
disabled: [{ type: Input }],
required: [{ type: Input }],
readonly: [{ type: Input }],
value: [{ type: Input }],
contextualHelp: [{ type: Input }],
change: [{ type: Output }]
};
return StCheckboxComponent;
}());
export { StCheckboxComponent };
if (false) {
/**
* \@Input {boolean} [name=''] This parameter shows the final name of the input
* @type {?}
*/
StCheckboxComponent.prototype.name;
/**
* \@Input {boolean} [qaTag=''] Id value for qa test
* @type {?}
*/
StCheckboxComponent.prototype.qaTag;
/**
* \@Input {boolean} [disabled=''] It allows to disable the input component of the checkbox
* @type {?}
*/
StCheckboxComponent.prototype.disabled;
/**
* \@Input {boolean} [required=''] It converts the component into a mandatory field in a form
* @type {?}
*/
StCheckboxComponent.prototype.required;
/**
* \@Input {boolean} [readonly=''] This parameter disables the checkbox and it can not be modified by the user
* @type {?}
*/
StCheckboxComponent.prototype.readonly;
/**
* \@Input {any} [value=''] The value of the checkbox
* @type {?}
*/
StCheckboxComponent.prototype.value;
/**
* \@Input {string} [contextualHelp=''] Information displayed at a tooltip
* @type {?}
*/
StCheckboxComponent.prototype.contextualHelp;
/**
* \@Output {{ checked: boolean, value: any }} [change=''] This is emitted when user clicks on the checkbox
* @type {?}
*/
StCheckboxComponent.prototype.change;
/**
* @type {?}
* @private
*/
StCheckboxComponent.prototype._checked;
/** @type {?} */
StCheckboxComponent.prototype._controlValueAccessorChangeFn;
/** @type {?} */
StCheckboxComponent.prototype.onTouched;
/**
* @type {?}
* @private
*/
StCheckboxComponent.prototype._changeDetectorRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3QtY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN0cmF0aW8vZWdlby8iLCJzb3VyY2VzIjpbImxpYi9zdC1jaGVja2JveC9zdC1jaGVja2JveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUV6RSxNQUFNLEtBQU8seUJBQXlCLEdBQVE7SUFDM0MsT0FBTyxFQUFFLGlCQUFpQjs7SUFFMUIsV0FBVyxFQUFFLFVBQVU7OztJQUFDLGNBQU0sT0FBQSxtQkFBbUIsRUFBbkIsQ0FBbUIsRUFBQztJQUNsRCxLQUFLLEVBQUUsSUFBSTtDQUNiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWtCRDtJQXNDRyw2QkFDVyxrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjs7OztRQUx0QyxXQUFNLEdBQW1ELElBQUksWUFBWSxFQUFvQyxDQUFDO1FBRWhILGFBQVEsR0FBWSxLQUFLLENBQUM7UUFRbEMsa0NBQTZCOzs7O1FBQXlCLFVBQUMsS0FBSyxJQUFPLENBQUMsRUFBQztRQUVyRSxjQUFTOzs7UUFBYyxjQUFRLENBQUMsRUFBQztJQUpqQyxDQUFDO0lBakNELHNCQUFhLHdDQUFPO1FBRHBCLHFDQUFxQzs7Ozs7UUFDckM7WUFDRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDeEIsQ0FBQzs7Ozs7UUFFRCxVQUFZLE9BQWdCO1lBQ3pCLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO2dCQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDekM7UUFDSixDQUFDOzs7T0FQQTtJQXFDRCxzQkFBSSwyQ0FBVTs7OztRQUFkO1lBQ0csT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUMvQyxDQUFDOzs7T0FBQTs7OztJQUVELHlDQUFXOzs7SUFBWDtRQUNHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDakU7U0FDSDtJQUNKLENBQUM7Ozs7O0lBRUQsMENBQVk7Ozs7SUFBWixVQUFhLE1BQWE7UUFDdkIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBRUQsd0NBQVU7Ozs7SUFBVixVQUFXLEtBQVU7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7Ozs7O0lBRUQsOENBQWdCOzs7O0lBQWhCLFVBQWlCLEVBQXdCO1FBQ3RDLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7Ozs7SUFFRCwrQ0FBaUI7Ozs7SUFBakIsVUFBa0IsRUFBTztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELDhDQUFnQjs7OztJQUFoQixVQUFpQixVQUFtQjtRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7Z0JBbEZILFNBQVMsU0FBQztvQkFDUixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsaW9DQUEyQztvQkFDM0MsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNqRDs7OztnQkEvQjRELGlCQUFpQjs7OzBCQW1DMUUsS0FBSzt1QkFXTCxLQUFLO3dCQUVMLEtBQUs7MkJBRUwsS0FBSzsyQkFFTCxLQUFLOzJCQUVMLEtBQUs7d0JBRUwsS0FBSztpQ0FFTCxLQUFLO3lCQUVMLE1BQU07O0lBa0RWLDBCQUFDO0NBQUEsQUFwRkQsSUFvRkM7U0E3RVksbUJBQW1COzs7Ozs7SUFhN0IsbUNBQXNCOzs7OztJQUV0QixvQ0FBdUI7Ozs7O0lBRXZCLHVDQUEyQjs7Ozs7SUFFM0IsdUNBQTJCOzs7OztJQUUzQix1Q0FBMkI7Ozs7O0lBRTNCLG9DQUFvQjs7Ozs7SUFFcEIsNkNBQWdDOzs7OztJQUVoQyxxQ0FBd0g7Ozs7O0lBRXhILHVDQUFrQzs7SUFRbEMsNERBQXFFOztJQUVyRSx3Q0FBaUM7Ozs7O0lBUDlCLGlEQUE2QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiDCqSAyMDE3IFN0cmF0aW8gQmlnIERhdGEgSW5jLiwgU3VjdXJzYWwgZW4gRXNwYcOxYS5cbiAqXG4gKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAuXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZO1xuICogd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS5cbiAqIFNlZSB0aGUgdGVybXMgb2YgdGhlIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMC5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQ09OVFJPTF9BQ0NFU1NPUjogYW55ID0ge1xuICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdXNlLWJlZm9yZS1kZWNsYXJlXG4gICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTdENoZWNrYm94Q29tcG9uZW50KSxcbiAgIG11bHRpOiB0cnVlXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiB7Q29tcG9uZW50fSBbQ2hlY2tib3hdXG4gKlxuICogVGhlIGNoZWNrYm94IGNvbXBvbmVudCByZXByZXNlbnRzIGEgY3VzdG9tIGlucHV0IG9mIHRoZSBjaGVja2JveCB0eXBlLlxuICpcbiAqIEBleGFtcGxlXG4gKlxuICoge2h0bWx9XG4gKlxuICogYGBgXG4gKiA8c3QtY2hlY2tib3ggbmFtZT1cIm9wdGlvblwiIHZhbHVlPVwiMVwiPlxuICogICAgT3B0aW9uIDFcbiAqIDwvc3QtY2hlY2tib3g+XG4gKiBgYGBcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6ICdzdC1jaGVja2JveCcsXG4gICB0ZW1wbGF0ZVVybDogJy4vc3QtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICAgcHJvdmlkZXJzOiBbQ0hFQ0tCT1hfQ09OVFJPTF9BQ0NFU1NPUl0sXG4gICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIFN0Q2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAvKiogQElucHV0IHtib29sZWFufSBbY2hlY2tlZD0nJ10gICovXG4gICBASW5wdXQoKSBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgfVxuXG4gICBzZXQgY2hlY2tlZChjaGVja2VkOiBib29sZWFuKSB7XG4gICAgICBpZiAoY2hlY2tlZCAhPT0gdGhpcy5jaGVja2VkKSB7XG4gICAgICAgICB0aGlzLl9jaGVja2VkID0gY2hlY2tlZDtcbiAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfVxuICAgfVxuICAgLyoqIEBJbnB1dCB7Ym9vbGVhbn0gW25hbWU9JyddIFRoaXMgcGFyYW1ldGVyIHNob3dzIHRoZSBmaW5hbCBuYW1lIG9mIHRoZSBpbnB1dCAqL1xuICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICAgLyoqIEBJbnB1dCB7Ym9vbGVhbn0gW3FhVGFnPScnXSBJZCB2YWx1ZSBmb3IgcWEgdGVzdCAqL1xuICAgQElucHV0KCkgcWFUYWc6IHN0cmluZztcbiAgIC8qKiBASW5wdXQge2Jvb2xlYW59IFtkaXNhYmxlZD0nJ10gSXQgYWxsb3dzIHRvIGRpc2FibGUgdGhlIGlucHV0IGNvbXBvbmVudCBvZiB0aGUgY2hlY2tib3ggKi9cbiAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAgLyoqIEBJbnB1dCB7Ym9vbGVhbn0gW3JlcXVpcmVkPScnXSBJdCBjb252ZXJ0cyB0aGUgY29tcG9uZW50IGludG8gYSBtYW5kYXRvcnkgZmllbGQgaW4gYSBmb3JtICovXG4gICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcbiAgIC8qKiBASW5wdXQge2Jvb2xlYW59IFtyZWFkb25seT0nJ10gVGhpcyBwYXJhbWV0ZXIgZGlzYWJsZXMgdGhlIGNoZWNrYm94IGFuZCBpdCBjYW4gbm90IGJlIG1vZGlmaWVkIGJ5IHRoZSB1c2VyICovXG4gICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgIC8qKiBASW5wdXQge2FueX0gW3ZhbHVlPScnXSBUaGUgdmFsdWUgb2YgdGhlIGNoZWNrYm94ICovXG4gICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAgLyoqIEBJbnB1dCB7c3RyaW5nfSBbY29udGV4dHVhbEhlbHA9JyddIEluZm9ybWF0aW9uIGRpc3BsYXllZCBhdCBhIHRvb2x0aXAgKi9cbiAgIEBJbnB1dCgpIGNvbnRleHR1YWxIZWxwOiBzdHJpbmc7XG4gICAvKiogQE91dHB1dCB7eyBjaGVja2VkOiBib29sZWFuLCB2YWx1ZTogYW55IH19IFtjaGFuZ2U9JyddIFRoaXMgaXMgZW1pdHRlZCB3aGVuIHVzZXIgY2xpY2tzIG9uIHRoZSBjaGVja2JveCAqL1xuICAgQE91dHB1dCgpIGNoYW5nZTogRXZlbnRFbWl0dGVyPHsgY2hlY2tlZDogYm9vbGVhbiwgdmFsdWU6IGFueSB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBjaGVja2VkOiBib29sZWFuLCB2YWx1ZTogYW55IH0+KCk7XG5cbiAgIHByaXZhdGUgX2NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICkge1xuXG4gICB9XG5cbiAgIF9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICh2YWx1ZSkgPT4geyB9O1xuXG4gICBvblRvdWNoZWQ6ICgpID0+IGFueSA9ICgpID0+IHsgfTtcblxuICAgZ2V0IGxhYmVsUWFUYWcoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAodGhpcy5xYVRhZyB8fCB0aGlzLm5hbWUpICsgJy1sYWJlbCc7XG4gICB9XG5cbiAgIGhhbmRsZUNsaWNrKCk6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrZWQgPSAhdGhpcy5fY2hlY2tlZDtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4odGhpcy5fY2hlY2tlZCk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHsgY2hlY2tlZDogdGhpcy5jaGVja2VkLCB2YWx1ZTogdGhpcy52YWx1ZSB9KTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgaGFuZGxlQ2hhbmdlKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgIH1cblxuICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gdmFsdWU7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgIH1cblxuICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmbjtcbiAgIH1cblxuICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgIH1cblxuICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgfVxuXG59XG4iXX0=