devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
145 lines • 17.2 kB
JavaScript
/*!
* devextreme-angular
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file in the root of the project for details.
*
* https://github.com/DevExpress/devextreme-angular
*/
/* tslint:disable:max-line-length */
import { Component, NgModule, Host, SkipSelf, Input, ContentChildren, QueryList } from '@angular/core';
import { DxIntegrationModule, NestedOptionHost, } from 'devextreme-angular/core';
import { CollectionNestedOption } from 'devextreme-angular/core';
import { PROPERTY_TOKEN_items } from 'devextreme-angular/core/tokens';
import { PROPERTY_TOKEN_tabs, } from 'devextreme-angular/core/tokens';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/core";
export class DxiDataGridTabbedItemComponent extends CollectionNestedOption {
set _tabsContentChildren(value) {
this.setChildren('tabs', value);
}
get colSpan() {
return this._getOption('colSpan');
}
set colSpan(value) {
this._setOption('colSpan', value);
}
get cssClass() {
return this._getOption('cssClass');
}
set cssClass(value) {
this._setOption('cssClass', value);
}
get itemType() {
return this._getOption('itemType');
}
set itemType(value) {
this._setOption('itemType', value);
}
get name() {
return this._getOption('name');
}
set name(value) {
this._setOption('name', value);
}
get tabPanelOptions() {
return this._getOption('tabPanelOptions');
}
set tabPanelOptions(value) {
this._setOption('tabPanelOptions', value);
}
get tabs() {
return this._getOption('tabs');
}
set tabs(value) {
this._setOption('tabs', value);
}
get visible() {
return this._getOption('visible');
}
set visible(value) {
this._setOption('visible', value);
}
get visibleIndex() {
return this._getOption('visibleIndex');
}
set visibleIndex(value) {
this._setOption('visibleIndex', value);
}
get _optionPath() {
return 'items';
}
constructor(parentOptionHost, optionHost) {
super();
parentOptionHost.setNestedOption(this);
optionHost.setHost(this, this._fullOptionPath.bind(this));
this.itemType = 'tabbed';
}
ngOnDestroy() {
this._deleteRemovedOptions(this._fullOptionPath());
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiDataGridTabbedItemComponent, deps: [{ token: i1.NestedOptionHost, host: true, skipSelf: true }, { token: i1.NestedOptionHost, host: true }], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxiDataGridTabbedItemComponent, isStandalone: true, selector: "dxi-data-grid-tabbed-item", inputs: { colSpan: "colSpan", cssClass: "cssClass", itemType: "itemType", name: "name", tabPanelOptions: "tabPanelOptions", tabs: "tabs", visible: "visible", visibleIndex: "visibleIndex" }, providers: [
NestedOptionHost,
{
provide: PROPERTY_TOKEN_items,
useExisting: DxiDataGridTabbedItemComponent,
}
], queries: [{ propertyName: "_tabsContentChildren", predicate: PROPERTY_TOKEN_tabs }], usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: DxIntegrationModule }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiDataGridTabbedItemComponent, decorators: [{
type: Component,
args: [{ selector: 'dxi-data-grid-tabbed-item', standalone: true, template: '', imports: [DxIntegrationModule], providers: [
NestedOptionHost,
{
provide: PROPERTY_TOKEN_items,
useExisting: DxiDataGridTabbedItemComponent,
}
] }]
}], ctorParameters: () => [{ type: i1.NestedOptionHost, decorators: [{
type: SkipSelf
}, {
type: Host
}] }, { type: i1.NestedOptionHost, decorators: [{
type: Host
}] }], propDecorators: { _tabsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_tabs]
}], colSpan: [{
type: Input
}], cssClass: [{
type: Input
}], itemType: [{
type: Input
}], name: [{
type: Input
}], tabPanelOptions: [{
type: Input
}], tabs: [{
type: Input
}], visible: [{
type: Input
}], visibleIndex: [{
type: Input
}] } });
export class DxiDataGridTabbedItemModule {
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiDataGridTabbedItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxiDataGridTabbedItemModule, imports: [DxiDataGridTabbedItemComponent], exports: [DxiDataGridTabbedItemComponent] });
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiDataGridTabbedItemModule, imports: [DxiDataGridTabbedItemComponent] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiDataGridTabbedItemModule, decorators: [{
type: NgModule,
args: [{
imports: [
DxiDataGridTabbedItemComponent
],
exports: [
DxiDataGridTabbedItemComponent
],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiYmVkLWl0ZW0tZHhpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZGlzdC91aS9kYXRhLWdyaWQvbmVzdGVkL3RhYmJlZC1pdGVtLWR4aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILG9DQUFvQztBQUdwQyxPQUFPLEVBQ0gsU0FBUyxFQUNULFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUNILG1CQUFtQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDOzs7QUFnQnhDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxzQkFBc0I7SUFDdEUsSUFDSSxvQkFBb0IsQ0FBQyxLQUF3QztRQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUF5QjtRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUF5QjtRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUs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U0YsSUFBSTtzQkFEUCxLQUFLO2dCQVNGLGVBQWU7c0JBRGxCLEtBQUs7Z0JBU0YsSUFBSTtzQkFEUCxLQUFLO2dCQVNGLE9BQU87c0JBRFYsS0FBSztnQkFTRixZQUFZO3NCQURmLEtBQUs7O0FBdUNWLE1BQU0sT0FBTywyQkFBMkI7MkhBQTNCLDJCQUEyQjs0SEFBM0IsMkJBQTJCLFlBckczQiw4QkFBOEIsYUFBOUIsOEJBQThCOzRIQXFHOUIsMkJBQTJCLFlBTnBDLDhCQUE4Qjs7NEZBTXJCLDJCQUEyQjtrQkFSdkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsOEJBQThCO3FCQUMvQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsOEJBQThCO3FCQUMvQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKiBWZXJzaW9uOiAyNS4yLjNcbiAqIEJ1aWxkIGRhdGU6IEZyaSBEZWMgMTIgMjAyNVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjUgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcblxyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgTmdNb2R1bGUsXHJcbiAgICBIb3N0LFxyXG4gICAgU2tpcFNlbGYsXHJcbiAgICBJbnB1dCxcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIFF1ZXJ5TGlzdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcblxyXG5cclxuaW1wb3J0IHsgRm9ybUl0ZW1UeXBlLCBkeEZvcm1CdXR0b25JdGVtLCBkeEZvcm1FbXB0eUl0ZW0sIGR4Rm9ybUdyb3VwSXRlbSwgZHhGb3JtU2ltcGxlSXRlbSwgZHhGb3JtVGFiYmVkSXRlbSB9IGZyb20gJ2RldmV4dHJlbWUvdWkvZm9ybSc7XHJcbmltcG9ydCB7IGR4VGFiUGFuZWxPcHRpb25zIH0gZnJvbSAnZGV2ZXh0cmVtZS91aS90YWJfcGFuZWwnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIER4SW50ZWdyYXRpb25Nb2R1bGUsXHJcbiAgICBOZXN0ZWRPcHRpb25Ib3N0LFxyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbk5lc3RlZE9wdGlvbiB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFBST1BFUlRZX1RPS0VOX2l0ZW1zIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUvdG9rZW5zJztcclxuaW1wb3J0IHtcclxuICAgIFBST1BFUlRZX1RPS0VOX3RhYnMsXHJcbn0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUvdG9rZW5zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdkeGktZGF0YS1ncmlkLXRhYmJlZC1pdGVtJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZTogJycsXHJcbiAgICBzdHlsZXM6IFsnJ10sXHJcbiAgICBpbXBvcnRzOiBbIER4SW50ZWdyYXRpb25Nb2R1bGUgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgIHByb3ZpZGU6IFBST1BFUlRZX1RPS0VOX2l0ZW1zLFxyXG4gICAgICAgICAgIHVzZUV4aXN0aW5nOiBEeGlEYXRhR3JpZFRhYmJlZEl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhpRGF0YUdyaWRUYWJiZWRJdGVtQ29tcG9uZW50IGV4dGVuZHMgQ29sbGVjdGlvbk5lc3RlZE9wdGlvbiB7XHJcbiAgICBAQ29udGVudENoaWxkcmVuKFBST1BFUlRZX1RPS0VOX3RhYnMpXHJcbiAgICBzZXQgX3RhYnNDb250ZW50Q2hpbGRyZW4odmFsdWU6IFF1ZXJ5TGlzdDxDb2xsZWN0aW9uTmVzdGVkT3B0aW9uPikge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ3RhYnMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgY29sU3BhbigpOiBudW1iZXIgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NvbFNwYW4nKTtcclxuICAgIH1cclxuICAgIHNldCBjb2xTcGFuKHZhbHVlOiBudW1iZXIgfCB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2NvbFNwYW4nLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjc3NDbGFzcygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2Nzc0NsYXNzJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgY3NzQ2xhc3ModmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY3NzQ2xhc3MnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBpdGVtVHlwZSgpOiBGb3JtSXRlbVR5cGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2l0ZW1UeXBlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaXRlbVR5cGUodmFsdWU6IEZvcm1JdGVtVHlwZSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaXRlbVR5cGUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbmFtZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IG5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbmFtZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHRhYlBhbmVsT3B0aW9ucygpOiBkeFRhYlBhbmVsT3B0aW9ucyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigndGFiUGFuZWxPcHRpb25zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdGFiUGFuZWxPcHRpb25zKHZhbHVlOiBkeFRhYlBhbmVsT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigndGFiUGFuZWxPcHRpb25zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdGFicygpOiB7IGFsaWduSXRlbUxhYmVscz86IGJvb2xlYW4sIGJhZGdlPzogc3RyaW5nIHwgdW5kZWZpbmVkLCBjb2xDb3VudD86IG51bWJlciwgY29sQ291bnRCeVNjcmVlbj86IHsgbGc/OiBudW1iZXIgfCB1bmRlZmluZWQsIG1kPzogbnVtYmVyIHwgdW5kZWZpbmVkLCBzbT86IG51bWJlciB8IHVuZGVmaW5lZCwgeHM/OiBudW1iZXIgfCB1bmRlZmluZWQgfSwgZGlzYWJsZWQ/OiBib29sZWFuLCBpY29uPzogc3RyaW5nIHwgdW5kZWZpbmVkLCBpdGVtcz86IEFycmF5PGR4Rm9ybUJ1dHRvbkl0ZW0gfCBkeEZvcm1FbXB0eUl0ZW0gfCBkeEZvcm1Hcm91cEl0ZW0gfCBkeEZvcm1TaW1wbGVJdGVtIHwgZHhGb3JtVGFiYmVkSXRlbT4sIHRhYlRlbXBsYXRlPzogYW55LCB0ZW1wbGF0ZT86IGFueSwgdGl0bGU/OiBzdHJpbmcgfCB1bmRlZmluZWQgfVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd0YWJzJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdGFicyh2YWx1ZTogeyBhbGlnbkl0ZW1MYWJlbHM/OiBib29sZWFuLCBiYWRnZT86IHN0cmluZyB8IHVuZGVmaW5lZCwgY29sQ291bnQ/OiBudW1iZXIsIGNvbENvdW50QnlTY3JlZW4/OiB7IGxnPzogbnVtYmVyIHwgdW5kZWZpbmVkLCBtZD86IG51bWJlciB8IHVuZGVmaW5lZCwgc20/OiBudW1iZXIgfCB1bmRlZmluZWQsIHhzPzogbnVtYmVyIHwgdW5kZWZpbmVkIH0sIGRpc2FibGVkPzogYm9vbGVhbiwgaWNvbj86IHN0cmluZyB8IHVuZGVmaW5lZCwgaXRlbXM/OiBBcnJheTxkeEZvcm1CdXR0b25JdGVtIHwgZHhGb3JtRW1wdHlJdGVtIHwgZHhGb3JtR3JvdXBJdGVtIHwgZHhGb3JtU2ltcGxlSXRlbSB8IGR4Rm9ybVRhYmJlZEl0ZW0+LCB0YWJUZW1wbGF0ZT86IGFueSwgdGVtcGxhdGU/OiBhbnksIHRpdGxlPzogc3RyaW5nIHwgdW5kZWZpbmVkIH1bXSkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigndGFicycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigndmlzaWJsZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Zpc2libGUnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCB2aXNpYmxlSW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd2aXNpYmxlSW5kZXgnKTtcclxuICAgIH1cclxuICAgIHNldCB2aXNpYmxlSW5kZXgodmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigndmlzaWJsZUluZGV4JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF9vcHRpb25QYXRoKCkge1xyXG4gICAgICAgIHJldHVybiAnaXRlbXMnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBASG9zdCgpIHBhcmVudE9wdGlvbkhvc3Q6IE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICAgICAgICAgIEBIb3N0KCkgb3B0aW9uSG9zdDogTmVzdGVkT3B0aW9uSG9zdCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgcGFyZW50T3B0aW9uSG9zdC5zZXROZXN0ZWRPcHRpb24odGhpcyk7XHJcbiAgICAgICAgb3B0aW9uSG9zdC5zZXRIb3N0KHRoaXMsIHRoaXMuX2Z1bGxPcHRpb25QYXRoLmJpbmQodGhpcykpO1xyXG4gICAgICAgIHRoaXMuaXRlbVR5cGUgPSAndGFiYmVkJztcclxuICAgIFxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5fZGVsZXRlUmVtb3ZlZE9wdGlvbnModGhpcy5fZnVsbE9wdGlvblBhdGgoKSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIER4aURhdGFHcmlkVGFiYmVkSXRlbUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHhpRGF0YUdyaWRUYWJiZWRJdGVtQ29tcG9uZW50XHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIER4aURhdGFHcmlkVGFiYmVkSXRlbU1vZHVsZSB7IH1cclxuIl19