@junte/ui
Version:
Quality Angular UI components kit
136 lines • 14.4 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Directive, ElementRef, EventEmitter, HostListener, Input, NgZone, OnDestroy, OnInit, Output, Renderer2 } from '@angular/core';
import { filter, takeWhile } from 'rxjs/operators';
import { Triggers } from '../../core/enums/triggers';
import { PopoverOptions } from './popover.component';
import { PopoverInstance, PopoverService } from './popover.service';
var PopoverDirective = /** @class */ (function () {
function PopoverDirective(popover, hostRef, renderer, zone) {
this.popover = popover;
this.hostRef = hostRef;
this.renderer = renderer;
this.zone = zone;
this.destroyed = false;
this.listeners = [];
this.attached = new EventEmitter();
this.removed = new EventEmitter();
}
Object.defineProperty(PopoverDirective.prototype, "instance", {
get: function () {
return this._instance;
},
set: function (instance) {
this._instance = instance;
if (!instance) {
this.removed.emit();
}
else {
this.attached.emit(instance);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(PopoverDirective.prototype, "__options__", {
set: function (options) {
this.options = new PopoverOptions(options);
},
enumerable: true,
configurable: true
});
PopoverDirective.prototype.mouseEnter = function () {
if (this.options.trigger === Triggers.hover) {
this.show();
}
};
PopoverDirective.prototype.click = function () {
if (this.options.trigger === Triggers.click) {
!this.instance ? this.show() : this.hide();
}
};
PopoverDirective.prototype.ngOnInit = function () {
var _this = this;
this.popover.attached.pipe(takeWhile((function () { return !_this.destroyed; })), filter(function (target) { return !!_this.instance && target !== _this.hostRef; })).subscribe(function () { return _this.instance = null; });
this.zone.runOutsideAngular(function () {
_this.listeners.push(_this.renderer.listen('document', 'mousemove', function (_a) {
var path = _a.path;
if (!!_this.instance && _this.options.trigger === Triggers.hover && !_this.picked(path)) {
_this.hide(path);
}
}));
_this.listeners.push(_this.renderer.listen('document', 'click', function (_a) {
var path = _a.path;
if (!!_this.instance && _this.options.trigger === Triggers.click && !_this.picked(path)) {
_this.hide(path);
}
}));
});
};
PopoverDirective.prototype.ngOnDestroy = function () {
this.destroyed = true;
if (!!this.instance) {
this.instance.hide();
this.instance = null;
}
this.listeners.forEach(function (listener) { return listener(); });
};
PopoverDirective.prototype.picked = function (elements) {
return elements.indexOf(this.hostRef.nativeElement) !== -1;
};
PopoverDirective.prototype.show = function () {
if ((this.options.content || this.options.contentTemplate) && !this.options.disabled) {
this.instance = this.popover.show(this.hostRef, this.options);
}
};
PopoverDirective.prototype.hide = function (path) {
if (path === void 0) { path = []; }
if (!!this.instance && !this.instance.picked(path)) {
this.instance.hide();
this.instance = null;
}
};
PopoverDirective.ctorParameters = function () { return [
{ type: PopoverService },
{ type: ElementRef },
{ type: Renderer2 },
{ type: NgZone }
]; };
__decorate([
Input('jntPopover'),
__metadata("design:type", Object),
__metadata("design:paramtypes", [Object])
], PopoverDirective.prototype, "__options__", null);
__decorate([
Output(),
__metadata("design:type", Object)
], PopoverDirective.prototype, "attached", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], PopoverDirective.prototype, "removed", void 0);
__decorate([
HostListener('mouseenter'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], PopoverDirective.prototype, "mouseEnter", null);
__decorate([
HostListener('click'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], PopoverDirective.prototype, "click", null);
PopoverDirective = __decorate([
Directive({
selector: '[jntPopover]',
exportAs: 'jntPopover'
}),
__metadata("design:paramtypes", [PopoverService,
ElementRef,
Renderer2,
NgZone])
], PopoverDirective);
return PopoverDirective;
}());
export { PopoverDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVudGUvdWkvIiwic291cmNlcyI6WyJsaWIvb3ZlcmxheXMvcG9wb3Zlci9wb3BvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU1wRTtJQTZDRSwwQkFBb0IsT0FBdUIsRUFDdkIsT0FBbUIsRUFDbkIsUUFBbUIsRUFDbkIsSUFBWTtRQUhaLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBNUN4QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFxQm5DLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUcvQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQW9CN0IsQ0FBQztJQTFDRCxzQkFBSSxzQ0FBUTthQVNaO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7YUFYRCxVQUFhLFFBQXlCO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QjtRQUNILENBQUM7OztPQUFBO0lBT0Qsc0JBQUkseUNBQVc7YUFBZixVQUFnQixPQUFnQztZQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUM7OztPQUFBO0lBU0QscUNBQVUsR0FBVjtRQUNFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLEtBQUssRUFBRTtZQUMzQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7SUFHRCxnQ0FBSyxHQUFMO1FBQ0UsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQzNDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBUUQsbUNBQVEsR0FBUjtRQUFBLGlCQWtCQztRQWpCQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3hCLFNBQVMsQ0FBQyxDQUFDLGNBQU0sT0FBQSxDQUFDLEtBQUksQ0FBQyxTQUFTLEVBQWYsQ0FBZSxDQUFDLENBQUMsRUFDbEMsTUFBTSxDQUFDLFVBQUEsTUFBTSxJQUFJLE9BQUEsQ0FBQyxDQUFDLEtBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxLQUFLLEtBQUksQ0FBQyxPQUFPLEVBQTFDLENBQTBDLENBQUMsQ0FDN0QsQ0FBQyxTQUFTLENBQUMsY0FBTSxPQUFBLEtBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFwQixDQUFvQixDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUMxQixLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQUMsRUFBTTtvQkFBTCxjQUFJO2dCQUN0RSxJQUFJLENBQUMsQ0FBQyxLQUFJLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwRixLQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNqQjtZQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDSixLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQUMsRUFBTTtvQkFBTCxjQUFJO2dCQUNsRSxJQUFJLENBQUMsQ0FBQyxLQUFJLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwRixLQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNqQjtZQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQ0FBVyxHQUFYO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBQSxRQUFRLElBQUksT0FBQSxRQUFRLEVBQUUsRUFBVixDQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8saUNBQU0sR0FBZCxVQUFlLFFBQXVCO1FBQ3BDLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTywrQkFBSSxHQUFaO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNwRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVPLCtCQUFJLEdBQVosVUFBYSxJQUF3QjtRQUF4QixxQkFBQSxFQUFBLFNBQXdCO1FBQ25DLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQzs7Z0JBbEQ0QixjQUFjO2dCQUNkLFVBQVU7Z0JBQ1QsU0FBUztnQkFDYixNQUFNOztJQTNCaEM7UUFEQyxLQUFLLENBQUMsWUFBWSxDQUFDOzs7dURBR25CO0lBR0Q7UUFEQyxNQUFNLEVBQUU7O3NEQUNzQztJQUcvQztRQURDLE1BQU0sRUFBRTs7cURBQ29CO0lBRzdCO1FBREMsWUFBWSxDQUFDLFlBQVksQ0FBQzs7OztzREFLMUI7SUFHRDtRQURDLFlBQVksQ0FBQyxPQUFPLENBQUM7Ozs7aURBS3JCO0lBM0NVLGdCQUFnQjtRQUo1QixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsY0FBYztZQUN4QixRQUFRLEVBQUUsWUFBWTtTQUN2QixDQUFDO3lDQThDNkIsY0FBYztZQUNkLFVBQVU7WUFDVCxTQUFTO1lBQ2IsTUFBTTtPQWhEckIsZ0JBQWdCLENBZ0c1QjtJQUFELHVCQUFDO0NBQUEsQUFoR0QsSUFnR0M7U0FoR1ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmlnZ2VycyB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvdHJpZ2dlcnMnO1xuaW1wb3J0IHsgUG9wb3Zlck9wdGlvbnMgfSBmcm9tICcuL3BvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJJbnN0YW5jZSwgUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuL3BvcG92ZXIuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tqbnRQb3BvdmVyXScsXG4gIGV4cG9ydEFzOiAnam50UG9wb3Zlcidcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIG9wdGlvbnM6IFBvcG92ZXJPcHRpb25zO1xuICBwcml2YXRlIF9pbnN0YW5jZTogUG9wb3Zlckluc3RhbmNlO1xuICBwcml2YXRlIGRlc3Ryb3llZCA9IGZhbHNlO1xuICBwcml2YXRlIGxpc3RlbmVyczogRnVuY3Rpb25bXSA9IFtdO1xuXG4gIHNldCBpbnN0YW5jZShpbnN0YW5jZTogUG9wb3Zlckluc3RhbmNlKSB7XG4gICAgdGhpcy5faW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF0dGFjaGVkLmVtaXQoaW5zdGFuY2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpbnN0YW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5zdGFuY2U7XG4gIH1cblxuICBASW5wdXQoJ2pudFBvcG92ZXInKVxuICBzZXQgX19vcHRpb25zX18ob3B0aW9uczogUGFydGlhbDxQb3BvdmVyT3B0aW9ucz4pIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBuZXcgUG9wb3Zlck9wdGlvbnMob3B0aW9ucyk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgYXR0YWNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBvcG92ZXJJbnN0YW5jZT4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgbW91c2VFbnRlcigpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLnRyaWdnZXIgPT09IFRyaWdnZXJzLmhvdmVyKSB7XG4gICAgICB0aGlzLnNob3coKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIGNsaWNrKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlcnMuY2xpY2spIHtcbiAgICAgICF0aGlzLmluc3RhbmNlID8gdGhpcy5zaG93KCkgOiB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvcG92ZXI6IFBvcG92ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucG9wb3Zlci5hdHRhY2hlZC5waXBlKFxuICAgICAgdGFrZVdoaWxlKCgoKSA9PiAhdGhpcy5kZXN0cm95ZWQpKSxcbiAgICAgIGZpbHRlcih0YXJnZXQgPT4gISF0aGlzLmluc3RhbmNlICYmIHRhcmdldCAhPT0gdGhpcy5ob3N0UmVmKVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW5zdGFuY2UgPSBudWxsKTtcblxuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdtb3VzZW1vdmUnLCAoe3BhdGh9KSA9PiB7XG4gICAgICAgIGlmICghIXRoaXMuaW5zdGFuY2UgJiYgdGhpcy5vcHRpb25zLnRyaWdnZXIgPT09IFRyaWdnZXJzLmhvdmVyICYmICF0aGlzLnBpY2tlZChwYXRoKSkge1xuICAgICAgICAgIHRoaXMuaGlkZShwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoe3BhdGh9KSA9PiB7XG4gICAgICAgIGlmICghIXRoaXMuaW5zdGFuY2UgJiYgdGhpcy5vcHRpb25zLnRyaWdnZXIgPT09IFRyaWdnZXJzLmNsaWNrICYmICF0aGlzLnBpY2tlZChwYXRoKSkge1xuICAgICAgICAgIHRoaXMuaGlkZShwYXRoKTtcbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICAgIGlmICghIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgIHRoaXMuaW5zdGFuY2UuaGlkZSgpO1xuICAgICAgdGhpcy5pbnN0YW5jZSA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4gbGlzdGVuZXIoKSk7XG4gIH1cblxuICBwcml2YXRlIHBpY2tlZChlbGVtZW50czogSFRNTEVsZW1lbnRbXSkge1xuICAgIHJldHVybiBlbGVtZW50cy5pbmRleE9mKHRoaXMuaG9zdFJlZi5uYXRpdmVFbGVtZW50KSAhPT0gLTE7XG4gIH1cblxuICBwcml2YXRlIHNob3coKSB7XG4gICAgaWYgKCh0aGlzLm9wdGlvbnMuY29udGVudCB8fCB0aGlzLm9wdGlvbnMuY29udGVudFRlbXBsYXRlKSAmJiAhdGhpcy5vcHRpb25zLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmluc3RhbmNlID0gdGhpcy5wb3BvdmVyLnNob3codGhpcy5ob3N0UmVmLCB0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlkZShwYXRoOiBIVE1MRWxlbWVudFtdID0gW10pIHtcbiAgICBpZiAoISF0aGlzLmluc3RhbmNlICYmICF0aGlzLmluc3RhbmNlLnBpY2tlZChwYXRoKSkge1xuICAgICAgdGhpcy5pbnN0YW5jZS5oaWRlKCk7XG4gICAgICB0aGlzLmluc3RhbmNlID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==