UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

321 lines (320 loc) 20.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, Output, EventEmitter, ElementRef } from '@angular/core'; import { AbstractToggle } from './AbstractToggle'; import { Option } from '../../../decorator/Option.decorator'; import { I18N } from '../../../decorator/I18N.decorator'; import { NeedFocusService } from '../../../service/NeedFocusService.service'; var /** @type {?} */ TYPE_NAME = "phx-switch"; var ToggleSwitch = /** @class */ (function (_super) { tslib_1.__extends(ToggleSwitch, _super); function ToggleSwitch(elementRef, needFocusService) { return _super.call(this, elementRef, needFocusService) || this; } /** * @return {?} */ ToggleSwitch.prototype.ngOnInit = /** * @return {?} */ function () { _super.prototype.ngOnInit.call(this); }; /** * @return {?} */ ToggleSwitch.prototype.getChecked = /** * @return {?} */ function () { if (this.isToggle()) { return 'checked'; } return ''; }; /** * @param {?} $event * @return {?} */ ToggleSwitch.prototype.onFocusing = /** * @param {?} $event * @return {?} */ function ($event) { this.needFocusService.setFocusingComponent(this, $event); }; /** * @param {?} $event * @return {?} */ ToggleSwitch.prototype.onLostFocusing = /** * @param {?} $event * @return {?} */ function ($event) { this.needFocusService.resetFocusingComponent($event); }; /** * @param {?} inputValue * @param {?} results * @return {?} */ ToggleSwitch.prototype.onValidationEnd = /** * @param {?} inputValue * @param {?} results * @return {?} */ function (inputValue, results) { }; /** * @param {?} data * @param {?} inputVal * @return {?} */ ToggleSwitch.prototype.onDataChange = /** * @param {?} data * @param {?} inputVal * @return {?} */ function (data, inputVal) { }; /** * @param {?} $event * @return {?} */ ToggleSwitch.prototype.doFocus = /** * @param {?} $event * @return {?} */ function ($event) { if ($(this.elementRef.nativeElement).find('button.fake:focus').length > 0) { $(this.elementRef.nativeElement).find('button.fake').focus(); } }; /** * @param {?} $event * @return {?} */ ToggleSwitch.prototype.doLostFocus = /** * @param {?} $event * @return {?} */ function ($event) { if ($(this.elementRef.nativeElement).find('button.fake:focus').length > 0) { $(this.elementRef.nativeElement).find('button.fake').blur(); } }; ToggleSwitch.TYPE_NAME = TYPE_NAME; ToggleSwitch.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: "<div class=\"phx-switch\">\n\t<button type=\"button\" class=\"fake\" (focusin)=\"onFocusing($event)\" (blur)=\"onLostFocusing($event)\"></button>\n\t<input type=\"checkbox\" class=\"toggle\" [checked]=\"getChecked()\" [disabled]=\"isDisabled()\">\n\t<label for=\"toggle\" (click)=\"toggle($event)\"></label>\n</div>\n" },] }, ]; /** @nocollapse */ ToggleSwitch.ctorParameters = function () { return [ { type: ElementRef, }, { type: NeedFocusService, }, ]; }; ToggleSwitch.propDecorators = { "dataParent": [{ type: Input },], "ignoreParentData": [{ type: Input },], "data": [{ type: Input },], "ignoreParentDisabled": [{ type: Input },], "delegateHistory": [{ type: Input },], "onDisabled": [{ type: Input },], "onEnabled": [{ type: Input },], "loadingEnabled": [{ type: Input },], "i18nKey": [{ type: Input },], "bypass": [{ type: Input, args: ['i18nBypass',] },], "options": [{ type: Input },], "disabled": [{ type: Input },], "field": [{ type: Input },], "name": [{ type: Input },], "typeOfData": [{ type: Input },], "readOnly": [{ type: Input },], "help": [{ type: Input },], "loadEvent": [{ type: Output, args: ['phxLoad',] },], "startValidateEvent": [{ type: Output, args: ['phxStartValidate',] },], "endValidateEvent": [{ type: Output, args: ['phxEndValidate',] },], "beforeFocusEvent": [{ type: Output, args: ['phxBeforeFocus',] },], "focusEvent": [{ type: Output, args: ['phxFocus',] },], "beforeLostFocusEvent": [{ type: Output, args: ['phxBeforeLostFocus',] },], "lostFocusEvent": [{ type: Output, args: ['phxLostFocus',] },], "beforeChangeEvent": [{ type: Output, args: ['phxBeforeChange',] },], "changeEvent": [{ type: Output, args: ['phxChange',] },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ToggleSwitch.prototype, "dataParent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ToggleSwitch.prototype, "ignoreParentData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], ToggleSwitch.prototype, "data", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ToggleSwitch.prototype, "ignoreParentDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ToggleSwitch.prototype, "delegateHistory", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ToggleSwitch.prototype, "onDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], ToggleSwitch.prototype, "onEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ToggleSwitch.prototype, "loadingEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ToggleSwitch.prototype, "i18nKey", void 0); tslib_1.__decorate([ Option('i18nBypass'), tslib_1.__metadata("design:type", Boolean) ], ToggleSwitch.prototype, "bypass", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ToggleSwitch.prototype, "disabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ToggleSwitch.prototype, "field", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ToggleSwitch.prototype, "name", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], ToggleSwitch.prototype, "typeOfData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], ToggleSwitch.prototype, "readOnly", void 0); tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", Object) ], ToggleSwitch.prototype, "help", void 0); tslib_1.__decorate([ Option('load'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "loadEvent", void 0); tslib_1.__decorate([ Option('startValidate'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "startValidateEvent", void 0); tslib_1.__decorate([ Option('endValidate'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "endValidateEvent", void 0); tslib_1.__decorate([ Option('beforeFocus'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "beforeFocusEvent", void 0); tslib_1.__decorate([ Option('focus'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "focusEvent", void 0); tslib_1.__decorate([ Option('beforeLostFocus'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "beforeLostFocusEvent", void 0); tslib_1.__decorate([ Option('lostFocus'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "lostFocusEvent", void 0); tslib_1.__decorate([ Option('beforeChange'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "beforeChangeEvent", void 0); tslib_1.__decorate([ Option('change'), tslib_1.__metadata("design:type", EventEmitter) ], ToggleSwitch.prototype, "changeEvent", void 0); return ToggleSwitch; }(AbstractToggle)); export { ToggleSwitch }; function ToggleSwitch_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ ToggleSwitch.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ ToggleSwitch.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ ToggleSwitch.propDecorators; /** @type {?} */ ToggleSwitch.TYPE_NAME; /** @type {?} */ ToggleSwitch.prototype.dataParent; /** @type {?} */ ToggleSwitch.prototype.ignoreParentData; /** @type {?} */ ToggleSwitch.prototype.data; /** @type {?} */ ToggleSwitch.prototype.ignoreParentDisabled; /** @type {?} */ ToggleSwitch.prototype.delegateHistory; /** @type {?} */ ToggleSwitch.prototype.onDisabled; /** @type {?} */ ToggleSwitch.prototype.onEnabled; /** @type {?} */ ToggleSwitch.prototype.loadingEnabled; /** @type {?} */ ToggleSwitch.prototype.i18nKey; /** @type {?} */ ToggleSwitch.prototype.bypass; /** @type {?} */ ToggleSwitch.prototype.options; /** @type {?} */ ToggleSwitch.prototype.disabled; /** @type {?} */ ToggleSwitch.prototype.field; /** @type {?} */ ToggleSwitch.prototype.name; /** @type {?} */ ToggleSwitch.prototype.typeOfData; /** @type {?} */ ToggleSwitch.prototype.readOnly; /** @type {?} */ ToggleSwitch.prototype.help; /** @type {?} */ ToggleSwitch.prototype.loadEvent; /** @type {?} */ ToggleSwitch.prototype.startValidateEvent; /** @type {?} */ ToggleSwitch.prototype.endValidateEvent; /** @type {?} */ ToggleSwitch.prototype.beforeFocusEvent; /** @type {?} */ ToggleSwitch.prototype.focusEvent; /** @type {?} */ ToggleSwitch.prototype.beforeLostFocusEvent; /** @type {?} */ ToggleSwitch.prototype.lostFocusEvent; /** @type {?} */ ToggleSwitch.prototype.beforeChangeEvent; /** @type {?} */ ToggleSwitch.prototype.changeEvent; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9nZ2xlU3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2NvbS5waGxveHVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudC9kYXRhdmlldy9pbnB1dC9Ub2dnbGVTd2l0Y2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UscUJBQU0sU0FBUyxHQUFXLFlBQVksQ0FBQzs7SUFZTCx3Q0FBYztJQTRGOUMsc0JBQVksVUFBc0IsRUFBRSxnQkFBa0M7ZUFDcEUsa0JBQU0sVUFBVSxFQUFFLGdCQUFnQixDQUFDO0tBQ3BDOzs7O0lBRU0sK0JBQVE7Ozs7UUFDYixpQkFBTSxRQUFRLFdBQUUsQ0FBQzs7Ozs7SUFHWixpQ0FBVTs7OztRQUNmLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEIsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUNsQjtRQUNELE1BQU0sQ0FBQyxFQUFFLENBQUM7Ozs7OztJQUdMLGlDQUFVOzs7O2NBQUMsTUFBYTtRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzs7Ozs7SUFHcEQscUNBQWM7Ozs7Y0FBQyxNQUFhO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7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TUFBTSxDQUFDLGNBQWMsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQzswQ0FDTSxZQUFZOzt1QkE5R3JDO0VBb0JrQyxjQUFjO1NBQW5DLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFRvZ2dsZSB9IGZyb20gJy4vQWJzdHJhY3RUb2dnbGUnO1xuaW1wb3J0IHsgVmFsaWRhdGlvblJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVsL1ZhbGlkYXRpb25SZXN1bHQnO1xuaW1wb3J0IHsgSUhhc0RhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3IvSTE4Ti5kZWNvcmF0b3InO1xuaW1wb3J0IHsgTmVlZEZvY3VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvTmVlZEZvY3VzU2VydmljZS5zZXJ2aWNlJztcblxuY29uc3QgVFlQRV9OQU1FOiBzdHJpbmcgPSBcInBoeC1zd2l0Y2hcIjtcblxuQENvbXBvbmVudCh7XG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXG4gIHNlbGVjdG9yOiBUWVBFX05BTUUsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInBoeC1zd2l0Y2hcIj5cblx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJmYWtlXCIgKGZvY3VzaW4pPVwib25Gb2N1c2luZygkZXZlbnQpXCIgKGJsdXIpPVwib25Mb3N0Rm9jdXNpbmcoJGV2ZW50KVwiPjwvYnV0dG9uPlxuXHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJ0b2dnbGVcIiBbY2hlY2tlZF09XCJnZXRDaGVja2VkKClcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCI+XG5cdDxsYWJlbCBmb3I9XCJ0b2dnbGVcIiAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIj48L2xhYmVsPlxuPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZVN3aXRjaCBleHRlbmRzIEFic3RyYWN0VG9nZ2xlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIC8vIFJlLWRlY2xhcmUgZmllbGQgdG8gZGVjbGFyZSBuZyBASW5wdXQuXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0SGFzRGF0YVxuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRhdGFQYXJlbnQ6IElIYXNEYXRhO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERhdGE6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgZGF0YTogYW55O1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGRlbGVnYXRlSGlzdG9yeTogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBvbkRpc2FibGVkOiBGdW5jdGlvbjtcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBvbkVuYWJsZWQ6IEZ1bmN0aW9uO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGxvYWRpbmdFbmFibGVkOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIGkxOG5LZXk6IHN0cmluZztcbiAgQElucHV0KCdpMThuQnlwYXNzJylcbiAgQE9wdGlvbignaTE4bkJ5cGFzcycpXG4gIHByb3RlY3RlZCBieXBhc3M6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHByb3RlY3RlZCBvcHRpb25zOiBhbnk7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0RGF0YVZpZXdcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBmaWVsZDogc3RyaW5nO1xuICAvLyAtLS0gZnJvbSBBYnN0cmFjdElucHV0RGF0YVZpZXdcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByb3RlY3RlZCBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgdHlwZU9mRGF0YTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJvdGVjdGVkIHJlYWRPbmx5OiBib29sZWFuO1xuICBASW5wdXQoKVxuICBASTE4TigpXG4gIEBPcHRpb24oKVxuICBwcm90ZWN0ZWQgaGVscDogYW55O1xuXG4gIC8vIFJlLWRlY2xhcmUgZmllbGQgdG8gZGVjbGFyZSBuZyBAT3V0cHV0LlxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcbiAgQE91dHB1dCgncGh4TG9hZCcpXG4gIEBPcHRpb24oJ2xvYWQnKVxuICBwcm90ZWN0ZWQgbG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3REYXRhVmlld1xuICAvLyAtLS0gZnJvbSBBYnN0cmFjdElucHV0RGF0YVZpZXdcbiAgQE91dHB1dCgncGh4U3RhcnRWYWxpZGF0ZScpXG4gIEBPcHRpb24oJ3N0YXJ0VmFsaWRhdGUnKVxuICBwcm90ZWN0ZWQgc3RhcnRWYWxpZGF0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGh4RW5kVmFsaWRhdGUnKVxuICBAT3B0aW9uKCdlbmRWYWxpZGF0ZScpXG4gIHByb3RlY3RlZCBlbmRWYWxpZGF0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGh4QmVmb3JlRm9jdXMnKVxuICBAT3B0aW9uKCdiZWZvcmVGb2N1cycpXG4gIHByb3RlY3RlZCBiZWZvcmVGb2N1c0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGh4Rm9jdXMnKVxuICBAT3B0aW9uKCdmb2N1cycpXG4gIHByb3RlY3RlZCBmb2N1c0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGh4QmVmb3JlTG9zdEZvY3VzJylcbiAgQE9wdGlvbignYmVmb3JlTG9zdEZvY3VzJylcbiAgcHJvdGVjdGVkIGJlZm9yZUxvc3RGb2N1c0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGh4TG9zdEZvY3VzJylcbiAgQE9wdGlvbignbG9zdEZvY3VzJylcbiAgcHJvdGVjdGVkIGxvc3RGb2N1c0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGh4QmVmb3JlQ2hhbmdlJylcbiAgQE9wdGlvbignYmVmb3JlQ2hhbmdlJylcbiAgcHJvdGVjdGVkIGJlZm9yZUNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgncGh4Q2hhbmdlJylcbiAgQE9wdGlvbignY2hhbmdlJylcbiAgcHJvdGVjdGVkIGNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBuZWVkRm9jdXNTZXJ2aWNlOiBOZWVkRm9jdXNTZXJ2aWNlKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgbmVlZEZvY3VzU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGVja2VkKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNUb2dnbGUoKSkge1xuICAgICAgcmV0dXJuICdjaGVja2VkJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXNpbmcoJGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMubmVlZEZvY3VzU2VydmljZS5zZXRGb2N1c2luZ0NvbXBvbmVudCh0aGlzLCAkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uTG9zdEZvY3VzaW5nKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm5lZWRGb2N1c1NlcnZpY2UucmVzZXRGb2N1c2luZ0NvbXBvbmVudCgkZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uVmFsaWRhdGlvbkVuZChpbnB1dFZhbHVlOiBhbnksIHJlc3VsdHM6IFZhbGlkYXRpb25SZXN1bHRbXSk6IHZvaWQge1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGF0YUNoYW5nZShkYXRhOiBhbnksIGlucHV0VmFsOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIHByb3RlY3RlZCBkb0ZvY3VzKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoJCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuZmluZCgnYnV0dG9uLmZha2U6Zm9jdXMnKS5sZW5ndGggPiAwKSB7XG4gICAgICAkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5maW5kKCdidXR0b24uZmFrZScpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGRvTG9zdEZvY3VzKCRldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoJCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuZmluZCgnYnV0dG9uLmZha2U6Zm9jdXMnKS5sZW5ndGggPiAwKSB7XG4gICAgICAkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5maW5kKCdidXR0b24uZmFrZScpLmJsdXIoKTtcbiAgICB9XG4gIH1cblxufVxuIl19