UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

181 lines 15.9 kB
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