cookie-service-banner
Version:
[](https://badge.fury.io/js/cookie-service-banner) [](https://travis-ci.org/liyokuna/cookie-consent) [![depen
121 lines • 24.2 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Component, Output, EventEmitter } from '@angular/core';
import { CookieServiceService } from './service/cookie-service.service';
import { ConfigService } from './service/config.service';
var CookieServiceComponent = /** @class */ (function () {
function CookieServiceComponent(cookiemanager, cookieconfig) {
this.cookiemanager = cookiemanager;
this.cookieconfig = cookieconfig;
this.isOpened = new EventEmitter();
}
CookieServiceComponent.prototype.ngOnInit = function () {
this.getValues();
this.getColors();
if (!this.cookiemanager.isAnalytics(this.GA_ID)) {
this.GA_ID = '0000';
console.log('Your Google Analytics ID seems to have a problem');
return;
}
if (!this.cookiemanager.getCookie('consent')) {
this.showAlertCookie = true;
this.isOpened.emit(this.showAlertCookie);
}
if (this.cookiemanager.getCookie('consent') && !this.showAlertCookie) {
var TrackNavigator = navigator.doNotTrack;
if ((TrackNavigator === '1' || TrackNavigator === 'yes')) {
this.cookiemanager.rejectCookie(this.GA_ID);
this.showAlertCookie = false;
this.isOpened.emit(false);
return;
}
if (this.cookiemanager.getCookie('consent') === 'false' && ((TrackNavigator === '1' || TrackNavigator === 'yes'))) {
this.cookiemanager.rejectCookie(this.GA_ID);
this.showAlertCookie = false;
this.isOpened.emit(this.showAlertCookie);
return;
}
if (this.cookiemanager.getCookie('consent') === 'false') {
this.cookiemanager.rejectCookie(this.GA_ID);
this.showAlertCookie = false;
this.isOpened.emit(this.showAlertCookie);
return;
}
}
};
CookieServiceComponent.prototype.getValues = function () {
var _this = this;
this.cookieconfig.getHeader().subscribe(function (val) { return _this.header = val; });
this.cookieconfig.getMessage().subscribe(function (val) { return _this.message = val; });
this.cookieconfig.getAcceptMessage().subscribe(function (val) { return _this.AcceptMessage = val; });
this.cookieconfig.getAcceptEnable().subscribe(function (val) { return _this.AcceptEnable = val; });
this.cookieconfig.getLinkMessage().subscribe(function (val) { return _this.LearnMoreMessage = val; });
this.cookieconfig.getLinkEnable().subscribe(function (val) { return _this.LearnMoreEnable = val; });
this.cookieconfig.getLinkLink().subscribe(function (val) { return _this.LearnMoreLink = val; });
this.cookieconfig.getDenyMessage().subscribe(function (val) { return _this.DenyMessage = val; });
this.cookieconfig.getDenyEnable().subscribe(function (val) { return _this.DenyEnable = val; });
this.cookieconfig.getAllowMessage().subscribe(function (val) { return _this.AllowMessage = val; });
this.cookieconfig.getAllowEnable().subscribe(function (val) { return _this.AllowEnable = val; });
this.cookieconfig.getDomain().subscribe(function (val) { return _this.domain = val; });
this.cookieconfig.getGA_id().subscribe(function (val) { return _this.GA_ID = val; });
this.cookieconfig.getReviewEnable().subscribe(function (val) { return _this.ReviewEnable = val; });
this.cookieconfig.getReviewMessage().subscribe(function (val) { return _this.Review = val; });
};
CookieServiceComponent.prototype.getColors = function () {
var _this = this;
this.cookieconfig.getHeaderColor().subscribe(function (val) { return _this.HeaderColor = val; });
this.cookieconfig.getHeaderBackgroundColor().subscribe(function (val) { return _this.HeaderBackgroundColor = val; });
this.cookieconfig.getAcceptColor().subscribe(function (val) { return _this.AcceptColor = val; });
this.cookieconfig.getAcceptBackgroundColor().subscribe(function (val) { return _this.AcceptBackgroundColor = val; });
this.cookieconfig.getDenyColor().subscribe(function (val) { return _this.DenyColor = val; });
this.cookieconfig.getDenyBackgroundColor().subscribe(function (val) { return _this.DenyBackgroundColor = val; });
this.cookieconfig.getAllowColor().subscribe(function (val) { return _this.AllowColor = val; });
this.cookieconfig.getAllowBackgroundColor().subscribe(function (val) { return _this.AllowBackgroundColor = val; });
this.cookieconfig.getLinkColor().subscribe(function (val) { return _this.LearnMoreColor = val; });
this.cookieconfig.getReviewColor().subscribe(function (val) { return _this.ReviewColor = val; });
this.cookieconfig.getReviewBackgroundColor().subscribe(function (val) { return _this.ReviewBcolor = val; });
};
CookieServiceComponent.prototype.cssClass = function (color, bcolor) {
return {
'color': color,
'background-color': bcolor,
'border-color': bcolor,
};
};
CookieServiceComponent.prototype.deny = function () {
this.cookiemanager.rejectCookie(this.GA_ID);
this.cookiemanager.setCookie('consent', true, this.domain);
this.showAlertCookie = false;
this.isOpened.emit(this.showAlertCookie);
return;
};
CookieServiceComponent.prototype.allow = function () {
this.cookiemanager.setCookie('consent', true, this.domain);
this.showAlertCookie = false;
this.isOpened.emit(this.showAlertCookie);
return;
};
CookieServiceComponent.prototype.review = function () {
this.cookiemanager.rejectCookie(this.GA_ID);
location.reload();
};
CookieServiceComponent.ctorParameters = function () { return [
{ type: CookieServiceService },
{ type: ConfigService }
]; };
__decorate([
Output(),
__metadata("design:type", EventEmitter)
], CookieServiceComponent.prototype, "isOpened", void 0);
CookieServiceComponent = __decorate([
Component({
selector: 'lib-cookie-service',
template: "<section id=\"cookie-alert\">\n <div class=\"alert-cookie bottom\" *ngIf=\"showAlertCookie\" attr.aria-label=\"{{ header }}\" attr.title= \"{{ header }}\" [ngStyle]=\"cssClass(HeaderColor, HeaderBackgroundColor )\">\n <div class=\"row\">\n <div class=\"col-sm-10\">\n <p>\n <b>{{ message }}</b>\n <a *ngIf=\"LearnMoreEnable \" href=\"{{ LearnMoreLink }}\" attr.aria-label=\"{{ LearnMoreMessage }}\" attr.title= \"{{ LearnMoreMessage }}\" >{{ LearnMoreMessage }}</a>\n </p>\n </div>\n <div class=\"col-sm-2\">\n <button *ngIf=\"DenyEnable \" type=\"button\" class=\"cbtn\" (click)=\"this.deny()\" attr.aria-label=\"{{ DenyMessage }}\" attr.title= \"{{ DenyMessage }}\" [ngStyle]=\"cssClass(AcceptColor, 'transparent' )\">{{ DenyMessage }}</button>\n <button *ngIf=\"AllowEnable \" type=\"button\" class=\"cbtn\" (click)=\"this.allow()\" attr.aria-label=\"{{ AllowMessage }}\" attr.title= \"{{ AllowMessage }}\" [ngStyle]=\"cssClass(AllowColor, AllowBackgroundColor)\">{{ AllowMessage }}</button>\n <button *ngIf=\"AcceptEnable \" type=\"button\" class=\"cbtn\" (click)=\"this.allow()\" attr.aria-label=\"{{ AcceptMessage }}\" attr.title= \"{{ AcceptMessage }}\" [ngStyle]=\"cssClass(AcceptColor, AcceptBackgroundColor)\">{{ AcceptMessage }}</button>\n </div>\n </div>\n </div>\n\n <div class=\"bottom\" *ngIf=\"!showAlertCookie && ReviewEnable\">\n <button class=\"btn btn-dark btn-sm\" (click)=\"this.review()\" href=\"#\" [ngStyle]=\"cssClass(ReviewColor, ReviewBcolor )\" attr.aria-label=\"{{ Review }}\" attr.title= \"{{ Review }}\" >{{Review}}</button>\n </div>\n</section>",
providers: [CookieServiceService, ConfigService],
styles: [".alert-cookie{position:fixed;width:100%;padding:.75rem 1.25rem}.bottom{bottom:0;left:0;position:fixed;right:0}.cbtn{border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}"]
}),
__metadata("design:paramtypes", [CookieServiceService, ConfigService])
], CookieServiceComponent);
return CookieServiceComponent;
}());
export { CookieServiceComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29va2llLXNlcnZpY2UtYmFubmVyLyIsInNvdXJjZXMiOlsibGliL2Nvb2tpZS1zZXJ2aWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVF6RDtJQXdDRSxnQ0FBb0IsYUFBbUMsRUFBVSxZQUEyQjtRQUF4RSxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUZsRixhQUFRLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFaUMsQ0FBQztJQUVqRyx5Q0FBUSxHQUFSO1FBRUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUksTUFBTSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0RBQWtELENBQUMsQ0FBQztZQUNoRSxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFT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UyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLE9BQU87SUFDVCxDQUFDO0lBRU0sdUNBQU0sR0FBYjtRQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7Z0JBL0drQyxvQkFBb0I7Z0JBQXdCLGFBQWE7O0lBRmxGO1FBQVQsTUFBTSxFQUFFO2tDQUFXLFlBQVk7NERBQStCO0lBdENwRCxzQkFBc0I7UUFObEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLG9CQUFvQjtZQUM5QixvdkRBQThDO1lBRTlDLFNBQVMsRUFBRSxDQUFFLG9CQUFvQixFQUFFLGFBQWEsQ0FBRTs7U0FDbkQsQ0FBQzt5Q0F5Q21DLG9CQUFvQixFQUF3QixhQUFhO09BeENqRixzQkFBc0IsQ0F5SmxDO0lBQUQsNkJBQUM7Q0FBQSxBQXpKRCxJQXlKQztTQXpKWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2Nvb2tpZS1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9jb25maWcuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb29raWUtc2VydmljZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb29raWUtc2VydmljZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nvb2tpZS1zZXJ2aWNlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogWyBDb29raWVTZXJ2aWNlU2VydmljZSwgQ29uZmlnU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIENvb2tpZVNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEdBX0lEOiBzdHJpbmc7XG5cbiAgaGVhZGVyOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgSGVhZGVyQ29sb3I6IHN0cmluZztcbiAgSGVhZGVyQmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgZG9tYWluOiBzdHJpbmc7XG5cbiAgQWNjZXB0TWVzc2FnZTogc3RyaW5nO1xuICBBY2NlcHRFbmFibGU6IGJvb2xlYW47XG4gIEFjY2VwdENvbG9yOiBzdHJpbmc7XG4gIEFjY2VwdEJhY2tncm91bmRDb2xvcjogc3RyaW5nO1xuXG4gIERlbnlNZXNzYWdlOiBzdHJpbmc7XG4gIERlbnlFbmFibGU6IGJvb2xlYW47XG4gIERlbnlDb2xvcjogc3RyaW5nO1xuICBEZW55QmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgQWxsb3dNZXNzYWdlOiBzdHJpbmc7XG4gIEFsbG93RW5hYmxlOiBib29sZWFuO1xuICBBbGxvd0NvbG9yOiBzdHJpbmc7XG4gIEFsbG93QmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgTGVhcm5Nb3JlTWVzc2FnZTogc3RyaW5nO1xuICBMZWFybk1vcmVFbmFibGU6IGJvb2xlYW47XG4gIExlYXJuTW9yZUxpbms6IHN0cmluZztcbiAgTGVhcm5Nb3JlQ29sb3I6IHN0cmluZztcblxuICBSZXZpZXdFbmFibGU6IGJvb2xlYW47XG4gIFJldmlldzogc3RyaW5nO1xuICBSZXZpZXdDb2xvcjogc3RyaW5nO1xuICBSZXZpZXdCY29sb3I6IHN0cmluZztcblxuICBzaG93QWxlcnRDb29raWU6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIGlzT3BlbmVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb29raWVtYW5hZ2VyOiBDb29raWVTZXJ2aWNlU2VydmljZSwgcHJpdmF0ZSBjb29raWVjb25maWc6IENvbmZpZ1NlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5nZXRWYWx1ZXMoKTtcbiAgICB0aGlzLmdldENvbG9ycygpO1xuXG4gICAgaWYgKCF0aGlzLmNvb2tpZW1hbmFnZXIuaXNBbmFseXRpY3ModGhpcy5HQV9JRCkpIHtcbiAgICAgIHRoaXMuR0FfSUQgPSAgJzAwMDAnO1xuICAgICAgY29uc29sZS5sb2coJ1lvdXIgR29vZ2xlIEFuYWx5dGljcyBJRCBzZWVtcyB0byBoYXZlIGEgcHJvYmxlbScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jb29raWVtYW5hZ2VyLmdldENvb2tpZSgnY29uc2VudCcpKSB7XG4gICAgICB0aGlzLnNob3dBbGVydENvb2tpZSA9IHRydWU7XG4gICAgICB0aGlzLmlzT3BlbmVkLmVtaXQodGhpcy5zaG93QWxlcnRDb29raWUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvb2tpZW1hbmFnZXIuZ2V0Q29va2llKCdjb25zZW50JykgJiYgIXRoaXMuc2hvd0FsZXJ0Q29va2llKSB7XG4gICAgICAgIGNvbnN0IFRyYWNrTmF2aWdhdG9yID0gbmF2aWdhdG9yLmRvTm90VHJhY2s7XG4gICAgICAgIGlmICggKFRyYWNrTmF2aWdhdG9yID09PSAnMScgfHwgVHJhY2tOYXZpZ2F0b3IgPT09ICd5ZXMnICkgKSB7XG4gICAgICAgICAgdGhpcy5jb29raWVtYW5hZ2VyLnJlamVjdENvb2tpZSh0aGlzLkdBX0lEKTtcbiAgICAgICAgICB0aGlzLnNob3dBbGVydENvb2tpZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNPcGVuZWQuZW1pdChmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICggdGhpcy5jb29raWVtYW5hZ2VyLmdldENvb2tpZSgnY29uc2VudCcpID09PSAnZmFsc2UnICYmICggKFRyYWNrTmF2aWdhdG9yID09PSAnMScgfHwgVHJhY2tOYXZpZ2F0b3IgPT09ICd5ZXMnICkgKSkge1xuICAgICAgICAgIHRoaXMuY29va2llbWFuYWdlci5yZWplY3RDb29raWUodGhpcy5HQV9JRCk7XG4gICAgICAgICAgdGhpcy5zaG93QWxlcnRDb29raWUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzT3BlbmVkLmVtaXQodGhpcy5zaG93QWxlcnRDb29raWUpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHRoaXMuY29va2llbWFuYWdlci5nZXRDb29raWUoJ2NvbnNlbnQnKSA9PT0gJ2ZhbHNlJyApIHtcbiAgICAgICAgICB0aGlzLmNvb2tpZW1hbmFnZXIucmVqZWN0Q29va2llKHRoaXMuR0FfSUQpO1xuICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0Q29va2llID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5pc09wZW5lZC5lbWl0KHRoaXMuc2hvd0FsZXJ0Q29va2llKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYWx1ZXMoKSB7XG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0SGVhZGVyKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLmhlYWRlciA9IHZhbCk7XG5cbiAgICB0aGlzLmNvb2tpZWNvbmZpZy5nZXRNZXNzYWdlKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLm1lc3NhZ2UgPSB2YWwpO1xuXG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0QWNjZXB0TWVzc2FnZSgpLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5BY2NlcHRNZXNzYWdlID0gdmFsKTtcbiAgICB0aGlzLmNvb2tpZWNvbmZpZy5nZXRBY2NlcHRFbmFibGUoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuQWNjZXB0RW5hYmxlID0gdmFsKTtcblxuICAgIHRoaXMuY29va2llY29uZmlnLmdldExpbmtNZXNzYWdlKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLkxlYXJuTW9yZU1lc3NhZ2UgPSB2YWwpO1xuICAgIHRoaXMuY29va2llY29uZmlnLmdldExpbmtFbmFibGUoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuTGVhcm5Nb3JlRW5hYmxlID0gdmFsKTtcbiAgICB0aGlzLmNvb2tpZWNvbmZpZy5nZXRMaW5rTGluaygpLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5MZWFybk1vcmVMaW5rID0gdmFsKTtcblxuICAgIHRoaXMuY29va2llY29uZmlnLmdldERlbnlNZXNzYWdlKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLkRlbnlNZXNzYWdlID0gdmFsKTtcbiAgICB0aGlzLmNvb2tpZWNvbmZpZy5nZXREZW55RW5hYmxlKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLkRlbnlFbmFibGUgPSB2YWwpO1xuXG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0QWxsb3dNZXNzYWdlKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLkFsbG93TWVzc2FnZSA9IHZhbCk7XG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0QWxsb3dFbmFibGUoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuQWxsb3dFbmFibGUgPSB2YWwpO1xuXG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0RG9tYWluKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLmRvbWFpbiA9IHZhbCk7XG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0R0FfaWQoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuR0FfSUQgPSB2YWwpO1xuXG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0UmV2aWV3RW5hYmxlKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLlJldmlld0VuYWJsZSA9IHZhbCk7XG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0UmV2aWV3TWVzc2FnZSgpLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5SZXZpZXcgPSB2YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb2xvcnMoKSB7XG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0SGVhZGVyQ29sb3IoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuSGVhZGVyQ29sb3IgPSB2YWwpO1xuICAgIHRoaXMuY29va2llY29uZmlnLmdldEhlYWRlckJhY2tncm91bmRDb2xvcigpLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5IZWFkZXJCYWNrZ3JvdW5kQ29sb3IgPSB2YWwpO1xuXG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0QWNjZXB0Q29sb3IoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuQWNjZXB0Q29sb3IgPSB2YWwpO1xuICAgIHRoaXMuY29va2llY29uZmlnLmdldEFjY2VwdEJhY2tncm91bmRDb2xvcigpLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5BY2NlcHRCYWNrZ3JvdW5kQ29sb3IgPSB2YWwpO1xuXG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0RGVueUNvbG9yKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLkRlbnlDb2xvciA9IHZhbCk7XG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0RGVueUJhY2tncm91bmRDb2xvcigpLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5EZW55QmFja2dyb3VuZENvbG9yID0gdmFsKTtcblxuICAgIHRoaXMuY29va2llY29uZmlnLmdldEFsbG93Q29sb3IoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuQWxsb3dDb2xvciA9IHZhbCk7XG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0QWxsb3dCYWNrZ3JvdW5kQ29sb3IoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuQWxsb3dCYWNrZ3JvdW5kQ29sb3IgPSB2YWwpO1xuXG4gICAgdGhpcy5jb29raWVjb25maWcuZ2V0TGlua0NvbG9yKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLkxlYXJuTW9yZUNvbG9yID0gdmFsKTtcblxuICAgIHRoaXMuY29va2llY29uZmlnLmdldFJldmlld0NvbG9yKCkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLlJldmlld0NvbG9yID0gdmFsKTtcbiAgICB0aGlzLmNvb2tpZWNvbmZpZy5nZXRSZXZpZXdCYWNrZ3JvdW5kQ29sb3IoKS5zdWJzY3JpYmUodmFsID0+IHRoaXMuUmV2aWV3QmNvbG9yID0gdmFsKTtcbiAgfVxuXG4gIHB1YmxpYyBjc3NDbGFzcyhjb2xvcjogc3RyaW5nLCBiY29sb3I6IHN0cmluZykge1xuICAgIHJldHVybiB7XG4gICAgICAnY29sb3InOiBjb2xvcixcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogYmNvbG9yLFxuICAgICAgJ2JvcmRlci1jb2xvcic6IGJjb2xvcixcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGRlbnkoKSB7XG4gICAgdGhpcy5jb29raWVtYW5hZ2VyLnJlamVjdENvb2tpZSh0aGlzLkdBX0lEKTtcbiAgICB0aGlzLmNvb2tpZW1hbmFnZXIuc2V0Q29va2llKCdjb25zZW50JywgdHJ1ZSwgdGhpcy5kb21haW4pO1xuICAgIHRoaXMuc2hvd0FsZXJ0Q29va2llID0gZmFsc2U7XG4gICAgdGhpcy5pc09wZW5lZC5lbWl0KHRoaXMuc2hvd0FsZXJ0Q29va2llKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBwdWJsaWMgYWxsb3coKSB7XG4gICAgdGhpcy5jb29raWVtYW5hZ2VyLnNldENvb2tpZSgnY29uc2VudCcsIHRydWUsIHRoaXMuZG9tYWluKTtcbiAgICB0aGlzLnNob3dBbGVydENvb2tpZSA9IGZhbHNlO1xuICAgIHRoaXMuaXNPcGVuZWQuZW1pdCh0aGlzLnNob3dBbGVydENvb2tpZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHVibGljIHJldmlldygpIHtcbiAgICB0aGlzLmNvb2tpZW1hbmFnZXIucmVqZWN0Q29va2llKHRoaXMuR0FfSUQpO1xuICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICB9XG5cbn1cbiJdfQ==