@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
181 lines • 15.9 kB
JavaScript
import { __decorate, __extends, __metadata } from "tslib";
import { AfterContentInit, AfterViewChecked, Component, ContentChild, ElementRef, HostBinding, Input, TemplateRef, HostListener } from '@angular/core';
import { IgxTabItemTemplateDirective } from './tabs.directives';
import { IgxTabsBase, IgxTabsGroupBase } from './tabs.common';
var IgxTabsGroupComponent = /** @class */ (function (_super) {
__extends(IgxTabsGroupComponent, _super);
function IgxTabsGroupComponent(_tabs, _element) {
var _this = _super.call(this) || this;
_this._tabs = _tabs;
_this._element = _element;
/**
* An @Input property that allows you to enable/disable the `IgxTabGroupComponent`.
*```html
*<igx-tabs-group label="Tab 2 Lorem ipsum dolor sit" icon="home" [disabled]="true">
*```
*/
_this.disabled = false;
_this._isSelected = false;
/**
* @hidden
*/
_this.role = 'tabpanel';
/**
* @hidden
*/
_this.styleClass = true;
return _this;
}
Object.defineProperty(IgxTabsGroupComponent.prototype, "isSelected", {
/**
* Sets/gets whether a tab group is selected.
* ```typescript
* this.tabGroup.isSelected = true;
* ```
* ```typescript
* let isSelected = this.tabGroup.isSelected;
* ```
* @memberof IgxTabsGroupComponent
*/
get: function () {
return this._isSelected;
},
set: function (newValue) {
if (!this.disabled && this.isSelected !== newValue) {
this._tabs.performSelectionChange(newValue ? this.relatedTab : null);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxTabsGroupComponent.prototype, "relatedTab", {
/**
* An accessor that returns the `IgxTabItemComponent` component.
* ```typescript
* @ViewChild("MyTabsGroup")
* public tab: IgxTabsGroupComponent;
* ngAfterViewInIt(){
* let tabComponent = this.tab.relatedTab;
* }
* ```
*/
get: function () {
if (this._tabs.tabs) {
return this._tabs.tabs.toArray()[this.index];
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxTabsGroupComponent.prototype, "index", {
/**
* An accessor that returns the value of the index of the `IgxTabsGroupComponent`.
* ```typescript
* @ViewChild("MyTabsGroup")
* public tab: IgxTabsGroupComponent;
* ngAfterViewInIt(){
* let tabIndex = this.tab.index;
* }
* ```
*/
get: function () {
if (this._tabs.groups) {
return this._tabs.groups.toArray().indexOf(this);
}
return -1;
},
enumerable: true,
configurable: true
});
Object.defineProperty(IgxTabsGroupComponent.prototype, "customTabTemplate", {
/**
* @hidden
*/
get: function () {
return this._tabTemplate;
},
/**
*@hidden
*/
set: function (template) {
this._tabTemplate = template;
},
enumerable: true,
configurable: true
});
/**
* @hidden
*/
IgxTabsGroupComponent.prototype.ngAfterContentInit = function () {
if (this.tabTemplate) {
this._tabTemplate = this.tabTemplate.template;
}
};
/**
* @hidden
*/
IgxTabsGroupComponent.prototype.ngAfterViewChecked = function () {
this._element.nativeElement.setAttribute('aria-labelledby', "igx-tab-item-" + this.index);
this._element.nativeElement.setAttribute('id', "igx-tabs__group-" + this.index);
};
/**
* A method that sets the focus on a tab.
* @memberof {@link IgxTabsGroupComponent}
*```typescript
*@ViewChild("MyChild")
*public tab : IgxTabsGroupComponent;
*ngAfterViewInit(){
* this.tab.select();
*}
*```
*/
IgxTabsGroupComponent.prototype.select = function () {
if (!this.disabled && !this.isSelected) {
this._tabs.performSelectionChange(this.relatedTab);
}
};
/**
* @hidden
*/
IgxTabsGroupComponent.prototype.setSelectedInternal = function (newValue) {
this._isSelected = newValue;
};
IgxTabsGroupComponent.ctorParameters = function () { return [
{ type: IgxTabsBase },
{ type: ElementRef }
]; };
__decorate([
Input(),
__metadata("design:type", Object)
], IgxTabsGroupComponent.prototype, "disabled", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], IgxTabsGroupComponent.prototype, "icon", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], IgxTabsGroupComponent.prototype, "label", void 0);
__decorate([
ContentChild(IgxTabItemTemplateDirective, { read: IgxTabItemTemplateDirective }),
__metadata("design:type", IgxTabItemTemplateDirective)
], IgxTabsGroupComponent.prototype, "tabTemplate", void 0);
__decorate([
HostBinding('attr.role'),
__metadata("design:type", Object)
], IgxTabsGroupComponent.prototype, "role", void 0);
__decorate([
HostBinding('class.igx-tabs__group'),
__metadata("design:type", Object)
], IgxTabsGroupComponent.prototype, "styleClass", void 0);
IgxTabsGroupComponent = __decorate([
Component({
selector: 'igx-tabs-group',
template: "<ng-content *ngIf=\"isSelected\"></ng-content>\n"
}),
__metadata("design:paramtypes", [IgxTabsBase, ElementRef])
], IgxTabsGroupComponent);
return IgxTabsGroupComponent;
}(IgxTabsGroupBase));
export { IgxTabsGroupComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL3RhYnMvdGFicy1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsV0FBVyxFQUNYLFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzlEO0lBQTJDLHlDQUFnQjtJQTBEdkQsK0JBQW9CLEtBQWtCLEVBQVUsUUFBb0I7UUFBcEUsWUFDSSxpQkFBTyxTQUNWO1FBRm1CLFdBQUssR0FBTCxLQUFLLENBQWE7UUFBVSxjQUFRLEdBQVIsUUFBUSxDQUFZO1FBeERwRTs7Ozs7VUFLRTtRQUVLLGNBQVEsR0FBRyxLQUFLLENBQUM7UUErQ2hCLGlCQUFXLEdBQUcsS0FBSyxDQUFDO1FBTTVCOztXQUVHO1FBRUksVUFBSSxHQUFHLFVBQVUsQ0FBQztRQUV6Qjs7V0FFRztRQUVJLGdCQUFVLEdBQUcsSUFBSSxDQUFDOztJQVp6QixDQUFDO0lBcEJELHNCQUFXLDZDQUFVO1FBVnJCOzs7Ozs7Ozs7V0FTRzthQUNIO1lBQ0ksT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzVCLENBQUM7YUFDRCxVQUFzQixRQUFpQjtZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hFO1FBQ0wsQ0FBQzs7O09BTEE7SUEwQ0Qsc0JBQUksNkNBQVU7UUFWZDs7Ozs7Ozs7O1dBU0c7YUFDSDtZQUNJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBd0IsQ0FBQzthQUN2RTtRQUNMLENBQUM7OztPQUFBO0lBWUQsc0JBQUksd0NBQUs7UUFWVDs7Ozs7Ozs7O1dBU0c7YUFDSDtZQUNJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUM7OztPQUFBO0lBS0Qsc0JBQUksb0RBQWlCO1FBSHJCOztXQUVHO2FBQ0g7WUFDSSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDN0IsQ0FBQztRQUVEOztXQUVHO2FBQ0gsVUFBc0IsUUFBMEI7WUFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7UUFDakMsQ0FBQzs7O09BUEE7SUFTRDs7T0FFRztJQUNJLGtEQUFrQixHQUF6QjtRQUNJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0RBQWtCLEdBQXpCO1FBQ0ksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLGtCQUFnQixJQUFJLENBQUMsS0FBTyxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxxQkFBbUIsSUFBSSxDQUFDLEtBQU8sQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksc0NBQU0sR0FBYjtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLG1EQUFtQixHQUExQixVQUEyQixRQUFpQjtRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztJQUNoQyxDQUFDOztnQkF0RzBCLFdBQVc7Z0JBQW9CLFVBQVU7O0lBakRwRTtRQURDLEtBQUssRUFBRTs7MkRBQ2dCO0lBVXhCO1FBREMsS0FBSyxFQUFFOzt1REFDWTtJQVNwQjtRQURDLEtBQUssRUFBRTs7d0RBQ2E7SUF5QnJCO1FBREMsWUFBWSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLDJCQUEyQixFQUFFLENBQUM7a0NBQzFELDJCQUEyQjs4REFBQztJQWFuRDtRQURDLFdBQVcsQ0FBQyxXQUFXLENBQUM7O3VEQUNBO0lBTXpCO1FBREMsV0FBVyxDQUFDLHVCQUF1QixDQUFDOzs2REFDWjtJQXhFaEIscUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsNERBQXdDO1NBQzNDLENBQUM7eUNBNEQ2QixXQUFXLEVBQW9CLFVBQVU7T0ExRDNELHFCQUFxQixDQWtLakM7SUFBRCw0QkFBQztDQUFBLEFBbEtELENBQTJDLGdCQUFnQixHQWtLMUQ7U0FsS1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEhvc3RMaXN0ZW5lclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWd4VGFiSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdGFiLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneFRhYkl0ZW1UZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vdGFicy5kaXJlY3RpdmVzJztcbmltcG9ydCB7IElneFRhYnNCYXNlLCBJZ3hUYWJzR3JvdXBCYXNlIH0gZnJvbSAnLi90YWJzLmNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXRhYnMtZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAndGFicy1ncm91cC5jb21wb25lbnQuaHRtbCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBJZ3hUYWJzR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBJZ3hUYWJzR3JvdXBCYXNlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG5cbiAgICAvKipcbiAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IGFsbG93cyB5b3UgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIGBJZ3hUYWJHcm91cENvbXBvbmVudGAuXG4gICAgKmBgYGh0bWxcbiAgICAqPGlneC10YWJzLWdyb3VwIGxhYmVsPVwiVGFiIDIgIExvcmVtIGlwc3VtIGRvbG9yIHNpdFwiIGljb249XCJob21lXCIgW2Rpc2FibGVkXT1cInRydWVcIj5cbiAgICAqYGBgXG4gICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYGljb25gLlxuICAgICogVGhlIHZhbHVlIHNob3VsZCBiZSB2YWxpZCBpY29uIG5hbWUgZnJvbSB7QGxpbmsgaHR0cHM6Ly9tYXRlcmlhbC5pby90b29scy9pY29ucy8/c3R5bGU9YmFzZWxpbmV9LlxuICAgICpgYGBodG1sXG4gICAgKjxpZ3gtdGFicy1ncm91cCBsYWJlbD1cIlRhYiAxXCIgaWNvbj1cImhvbWVcIj5cbiAgICAqYGBgXG4gICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIHZhbHVlIG9mIHRoZSBgbGFiZWxgLlxuICAgICpgYGBodG1sXG4gICAgKjxpZ3gtdGFicy1ncm91cCBsYWJlbD1cIlRhYiAxXCIgaWNvbj1cImZvbGRlclwiPlxuICAgICpgYGBcbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgd2hldGhlciBhIHRhYiBncm91cCBpcyBzZWxlY3RlZC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy50YWJHcm91cC5pc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzU2VsZWN0ZWQgPSB0aGlzLnRhYkdyb3VwLmlzU2VsZWN0ZWQ7XG4gICAgICogYGBgXG4gICAgICogQG1lbWJlcm9mIElneFRhYnNHcm91cENvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2VsZWN0ZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzZXQgaXNTZWxlY3RlZChuZXdWYWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5pc1NlbGVjdGVkICE9PSBuZXdWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdGFicy5wZXJmb3JtU2VsZWN0aW9uQ2hhbmdlKG5ld1ZhbHVlID8gdGhpcy5yZWxhdGVkVGFiIDogbnVsbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hUYWJJdGVtVGVtcGxhdGVEaXJlY3RpdmUsIHsgcmVhZDogSWd4VGFiSXRlbVRlbXBsYXRlRGlyZWN0aXZlIH0pXG4gICAgcHJvdGVjdGVkIHRhYlRlbXBsYXRlOiBJZ3hUYWJJdGVtVGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgICBwcml2YXRlIF90YWJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcml2YXRlIF9pc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90YWJzOiBJZ3hUYWJzQmFzZSwgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcHVibGljIHJvbGUgPSAndGFicGFuZWwnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LXRhYnNfX2dyb3VwJylcbiAgICBwdWJsaWMgc3R5bGVDbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBBbiBhY2Nlc3NvciB0aGF0IHJldHVybnMgdGhlIGBJZ3hUYWJJdGVtQ29tcG9uZW50YCBjb21wb25lbnQuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeVRhYnNHcm91cFwiKVxuICAgICAqIHB1YmxpYyB0YWI6IElneFRhYnNHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luSXQoKXtcbiAgICAgKiAgICBsZXQgdGFiQ29tcG9uZW50ID0gdGhpcy50YWIucmVsYXRlZFRhYjtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgZ2V0IHJlbGF0ZWRUYWIoKTogSWd4VGFiSXRlbUNvbXBvbmVudCB7XG4gICAgICAgIGlmICh0aGlzLl90YWJzLnRhYnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90YWJzLnRhYnMudG9BcnJheSgpW3RoaXMuaW5kZXhdIGFzIElneFRhYkl0ZW1Db21wb25lbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBhY2Nlc3NvciB0aGF0IHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBpbmRleCBvZiB0aGUgYElneFRhYnNHcm91cENvbXBvbmVudGAuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeVRhYnNHcm91cFwiKVxuICAgICAqIHB1YmxpYyB0YWI6IElneFRhYnNHcm91cENvbXBvbmVudDtcbiAgICAgKiBuZ0FmdGVyVmlld0luSXQoKXtcbiAgICAgKiAgICBsZXQgdGFiSW5kZXggPSB0aGlzLnRhYi5pbmRleDtcbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICovXG4gICAgZ2V0IGluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLl90YWJzLmdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RhYnMuZ3JvdXBzLnRvQXJyYXkoKS5pbmRleE9mKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgZ2V0IGN1c3RvbVRhYlRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpAaGlkZGVuXG4gICAgICovXG4gICAgc2V0IGN1c3RvbVRhYlRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX3RhYlRlbXBsYXRlID0gdGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRhYlRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl90YWJUZW1wbGF0ZSA9IHRoaXMudGFiVGVtcGxhdGUudGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JywgYGlneC10YWItaXRlbS0ke3RoaXMuaW5kZXh9YCk7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgYGlneC10YWJzX19ncm91cC0ke3RoaXMuaW5kZXh9YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgdGhhdCBzZXRzIHRoZSBmb2N1cyBvbiBhIHRhYi5cbiAgICAgKiBAbWVtYmVyb2Yge0BsaW5rIElneFRhYnNHcm91cENvbXBvbmVudH1cbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKkBWaWV3Q2hpbGQoXCJNeUNoaWxkXCIpXG4gICAgICpwdWJsaWMgdGFiIDogSWd4VGFic0dyb3VwQ29tcG9uZW50O1xuICAgICAqbmdBZnRlclZpZXdJbml0KCl7XG4gICAgICogICAgdGhpcy50YWIuc2VsZWN0KCk7XG4gICAgICp9XG4gICAgICpgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fdGFicy5wZXJmb3JtU2VsZWN0aW9uQ2hhbmdlKHRoaXMucmVsYXRlZFRhYik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHNldFNlbGVjdGVkSW50ZXJuYWwobmV3VmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNTZWxlY3RlZCA9IG5ld1ZhbHVlO1xuICAgIH1cblxufVxuIl19