devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
208 lines • 24.1 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 */
/* tslint:disable:use-input-property-decorator */
import { Component, NgModule, Host, ElementRef, Renderer2, Inject, SkipSelf, ContentChildren, QueryList } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { DxIntegrationModule, NestedOptionHost, extractTemplate, DxTemplateHost, } from 'devextreme-angular/core';
import { DxiButtonGroupItem } from './base/button-group-item-dxi';
import { PROPERTY_TOKEN_items, PROPERTY_TOKEN_validationRules, PROPERTY_TOKEN_tabs, PROPERTY_TOKEN_commands, PROPERTY_TOKEN_location, } from 'devextreme-angular/core/tokens';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/core";
export class DxiItemComponent extends DxiButtonGroupItem {
renderer;
document;
element;
set _itemsContentChildren(value) {
this.setChildren('items', value);
}
set _validationRulesContentChildren(value) {
this.setChildren('validationRules', value);
}
set _tabsContentChildren(value) {
this.setChildren('tabs', value);
}
set _commandsContentChildren(value) {
this.setChildren('commands', value);
}
set _locationContentChildren(value) {
this.setChildren('location', value);
}
get _optionPath() {
return 'items';
}
constructor(parentOptionHost, optionHost, renderer, document, templateHost, element) {
super();
this.renderer = renderer;
this.document = document;
this.element = element;
parentOptionHost.setNestedOption(this);
optionHost.setHost(this, this._fullOptionPath.bind(this));
templateHost.setHost(this);
}
setTemplate(template) {
this.template = template;
}
ngAfterViewInit() {
extractTemplate(this, this.element, this.renderer, this.document);
}
ngOnDestroy() {
this._deleteRemovedOptions(this._fullOptionPath());
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiItemComponent, deps: [{ token: i1.NestedOptionHost, host: true, skipSelf: true }, { token: i1.NestedOptionHost, host: true }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i1.DxTemplateHost, host: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DxiItemComponent, isStandalone: true, selector: "dxi-item", inputs: { disabled: "disabled", html: "html", icon: "icon", template: "template", text: "text", title: "title", titleTemplate: "titleTemplate", visible: "visible", onClick: "onClick", stylingMode: "stylingMode", type: "type", baseSize: "baseSize", box: "box", ratio: "ratio", shrink: "shrink", elementAttr: "elementAttr", hint: "hint", alt: "alt", author: "author", id: "id", isDeleted: "isDeleted", isEdited: "isEdited", src: "src", timestamp: "timestamp", beginGroup: "beginGroup", closeMenuOnClick: "closeMenuOnClick", items: "items", selectable: "selectable", selected: "selected", colSpan: "colSpan", cssClass: "cssClass", dataField: "dataField", editorOptions: "editorOptions", editorType: "editorType", helpText: "helpText", isRequired: "isRequired", itemType: "itemType", label: "label", name: "name", validationRules: "validationRules", visibleIndex: "visibleIndex", alignItemLabels: "alignItemLabels", caption: "caption", captionTemplate: "captionTemplate", colCount: "colCount", colCountByScreen: "colCountByScreen", tabPanelOptions: "tabPanelOptions", tabs: "tabs", badge: "badge", tabTemplate: "tabTemplate", buttonOptions: "buttonOptions", horizontalAlignment: "horizontalAlignment", verticalAlignment: "verticalAlignment", locateInMenu: "locateInMenu", location: "location", menuItemTemplate: "menuItemTemplate", options: "options", showText: "showText", widget: "widget", height: "height", width: "width", imageAlt: "imageAlt", imageSrc: "imageSrc", acceptedValues: "acceptedValues", commands: "commands", key: "key", showChevron: "showChevron", linkAttr: "linkAttr", url: "url", collapsed: "collapsed", collapsedSize: "collapsedSize", collapsible: "collapsible", maxSize: "maxSize", minSize: "minSize", resizable: "resizable", size: "size", splitter: "splitter", heightRatio: "heightRatio", widthRatio: "widthRatio", expanded: "expanded", hasItems: "hasItems", parentId: "parentId" }, providers: [
NestedOptionHost,
DxTemplateHost,
{
provide: PROPERTY_TOKEN_items,
useExisting: DxiItemComponent,
}
], queries: [{ propertyName: "_itemsContentChildren", predicate: PROPERTY_TOKEN_items }, { propertyName: "_validationRulesContentChildren", predicate: PROPERTY_TOKEN_validationRules }, { propertyName: "_tabsContentChildren", predicate: PROPERTY_TOKEN_tabs }, { propertyName: "_commandsContentChildren", predicate: PROPERTY_TOKEN_commands }, { propertyName: "_locationContentChildren", predicate: PROPERTY_TOKEN_location }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: DxIntegrationModule }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiItemComponent, decorators: [{
type: Component,
args: [{ selector: 'dxi-item', standalone: true, template: '<ng-content></ng-content>', imports: [DxIntegrationModule], providers: [
NestedOptionHost,
DxTemplateHost,
{
provide: PROPERTY_TOKEN_items,
useExisting: DxiItemComponent,
}
], inputs: [
'disabled',
'html',
'icon',
'template',
'text',
'title',
'titleTemplate',
'visible',
'onClick',
'stylingMode',
'type',
'baseSize',
'box',
'ratio',
'shrink',
'elementAttr',
'hint',
'alt',
'author',
'id',
'isDeleted',
'isEdited',
'src',
'timestamp',
'beginGroup',
'closeMenuOnClick',
'items',
'selectable',
'selected',
'colSpan',
'cssClass',
'dataField',
'editorOptions',
'editorType',
'helpText',
'isRequired',
'itemType',
'label',
'name',
'validationRules',
'visibleIndex',
'alignItemLabels',
'caption',
'captionTemplate',
'colCount',
'colCountByScreen',
'tabPanelOptions',
'tabs',
'badge',
'tabTemplate',
'buttonOptions',
'horizontalAlignment',
'verticalAlignment',
'locateInMenu',
'location',
'menuItemTemplate',
'options',
'showText',
'widget',
'height',
'width',
'imageAlt',
'imageSrc',
'acceptedValues',
'commands',
'key',
'showChevron',
'linkAttr',
'url',
'collapsed',
'collapsedSize',
'collapsible',
'maxSize',
'minSize',
'resizable',
'size',
'splitter',
'heightRatio',
'widthRatio',
'expanded',
'hasItems',
'parentId'
], styles: [":host{display:block}\n"] }]
}], ctorParameters: () => [{ type: i1.NestedOptionHost, decorators: [{
type: SkipSelf
}, {
type: Host
}] }, { type: i1.NestedOptionHost, decorators: [{
type: Host
}] }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
type: Inject,
args: [DOCUMENT]
}] }, { type: i1.DxTemplateHost, decorators: [{
type: Host
}] }, { type: i0.ElementRef }], propDecorators: { _itemsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_items]
}], _validationRulesContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_validationRules]
}], _tabsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_tabs]
}], _commandsContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_commands]
}], _locationContentChildren: [{
type: ContentChildren,
args: [PROPERTY_TOKEN_location]
}] } });
export class DxiItemModule {
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DxiItemModule, imports: [DxiItemComponent], exports: [DxiItemComponent] });
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiItemModule, imports: [DxiItemComponent] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DxiItemModule, decorators: [{
type: NgModule,
args: [{
imports: [
DxiItemComponent
],
exports: [
DxiItemComponent
],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1keGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kaXN0L3VpL25lc3RlZC9pdGVtLWR4aS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILG9DQUFvQztBQUVwQyxpREFBaUQ7QUFFakQsT0FBTyxFQUNILFNBQVMsRUFDVCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUVOLFFBQVEsRUFDUixlQUFlLEVBQ2YsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUkzQyxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixlQUFlLEVBR2YsY0FBYyxHQUVqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsOEJBQThCLEVBQzlCLG1CQUFtQixFQUNuQix1QkFBdUIsRUFDdkIsdUJBQXVCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7OztBQXFHeEMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGtCQUFrQjtJQW1DcEM7SUFDa0I7SUFFbEI7SUFwQ2hCLElBQ0kscUJBQXFCLENBQUMsS0FBd0M7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQ0ksK0JBQStCLENBQUMsS0FBd0M7UUFDeEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFDSSxvQkFBb0IsQ0FBQyxLQUF3QztRQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFD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bGFyXG4gKiBWZXJzaW9uOiAyNS4yLjNcbiAqIEJ1aWxkIGRhdGU6IEZyaSBEZWMgMTIgMjAyNVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjUgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOnVzZS1pbnB1dC1wcm9wZXJ0eS1kZWNvcmF0b3IgKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBOZ01vZHVsZSxcclxuICAgIEhvc3QsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIFNraXBTZWxmLFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgUXVlcnlMaXN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5cclxuXHJcbmltcG9ydCB7XHJcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxyXG4gICAgTmVzdGVkT3B0aW9uSG9zdCxcclxuICAgIGV4dHJhY3RUZW1wbGF0ZSxcclxuICAgIER4VGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBJRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICBEeFRlbXBsYXRlSG9zdCxcclxuICAgIENvbGxlY3Rpb25OZXN0ZWRPcHRpb24sXHJcbn0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEeGlCdXR0b25Hcm91cEl0ZW0gfSBmcm9tICcuL2Jhc2UvYnV0dG9uLWdyb3VwLWl0ZW0tZHhpJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBQUk9QRVJUWV9UT0tFTl9pdGVtcyxcclxuICAgIFBST1BFUlRZX1RPS0VOX3ZhbGlkYXRpb25SdWxlcyxcclxuICAgIFBST1BFUlRZX1RPS0VOX3RhYnMsXHJcbiAgICBQUk9QRVJUWV9UT0tFTl9jb21tYW5kcyxcclxuICAgIFBST1BFUlRZX1RPS0VOX2xvY2F0aW9uLFxyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlL3Rva2Vucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZHhpLWl0ZW0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXHJcbiAgICBzdHlsZXM6IFsnOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfSddLFxyXG4gICAgaW1wb3J0czogWyBEeEludGVncmF0aW9uTW9kdWxlIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgICAgIER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICBwcm92aWRlOiBQUk9QRVJUWV9UT0tFTl9pdGVtcyxcclxuICAgICAgICAgICB1c2VFeGlzdGluZzogRHhpSXRlbUNvbXBvbmVudCxcclxuICAgICAgICB9XHJcbiAgICBdLFxyXG4gICAgaW5wdXRzOiBbXHJcbiAgICAgICAgJ2Rpc2FibGVkJyxcclxuICAgICAgICAnaHRtbCcsXHJcbiAgICAgICAgJ2ljb24nLFxyXG4gICAgICAgICd0ZW1wbGF0ZScsXHJcbiAgICAgICAgJ3RleHQnLFxyXG4gICAgICAgICd0aXRsZScsXHJcbiAgICAgICAgJ3RpdGxlVGVtcGxhdGUnLFxyXG4gICAgICAgICd2aXNpYmxlJyxcclxuICAgICAgICAnb25DbGljaycsXHJcbiAgICAgICAgJ3N0eWxpbmdNb2RlJyxcclxuICAgICAgICAndHlwZScsXHJcbiAgICAgICAgJ2Jhc2VTaXplJyxcclxuICAgICAgICAnYm94JyxcclxuICAgICAgICAncmF0aW8nLFxyXG4gICAgICAgICdzaHJpbmsnLFxyXG4gICAgICAgICdlbGVtZW50QXR0cicsXHJcbiAgICAgICAgJ2hpbnQnLFxyXG4gICAgICAgICdhbHQnLFxyXG4gICAgICAgICdhdXRob3InLFxyXG4gICAgICAgICdpZCcsXHJcbiAgICAgICAgJ2lzRGVsZXRlZCcsXHJcbiAgICAgICAgJ2lzRWRpdGVkJyxcclxuICAgICAgICAnc3JjJyxcclxuICAgICAgICAndGltZXN0YW1wJyxcclxuICAgICAgICAnYmVnaW5Hcm91cCcsXHJcbiAgICAgICAgJ2Nsb3NlTWVudU9uQ2xpY2snLFxyXG4gICAgICAgICdpdGVtcycsXHJcbiAgICAgICAgJ3NlbGVjdGFibGUnLFxyXG4gICAgICAgICdzZWxlY3RlZCcsXHJcbiAgICAgICAgJ2NvbFNwYW4nLFxyXG4gICAgICAgICdjc3NDbGFzcycsXHJcbiAgICAgICAgJ2RhdGFGaWVsZCcsXHJcbiAgICAgICAgJ2VkaXRvck9wdGlvbnMnLFxyXG4gICAgICAgICdlZGl0b3JUeXBlJyxcclxuICAgICAgICAnaGVscFRleHQnLFxyXG4gICAgICAgICdpc1JlcXVpcmVkJyxcclxuICAgICAgICAnaXRlbVR5cGUnLFxyXG4gICAgICAgICdsYWJlbCcsXHJcbiAgICAgICAgJ25hbWUnLFxyXG4gICAgICAgICd2YWxpZGF0aW9uUnVsZXMnLFxyXG4gICAgICAgICd2aXNpYmxlSW5kZXgnLFxyXG4gICAgICAgICdhbGlnbkl0ZW1MYWJlbHMnLFxyXG4gICAgICAgICdjYXB0aW9uJyxcclxuICAgICAgICAnY2FwdGlvblRlbXBsYXRlJyxcclxuICAgICAgICAnY29sQ291bnQnLFxyXG4gICAgICAgICdjb2xDb3VudEJ5U2NyZWVuJyxcclxuICAgICAgICAndGFiUGFuZWxPcHRpb25zJyxcclxuICAgICAgICAndGFicycsXHJcbiAgICAgICAgJ2JhZGdlJyxcclxuICAgICAgICAndGFiVGVtcGxhdGUnLFxyXG4gICAgICAgICdidXR0b25PcHRpb25zJyxcclxuICAgICAgICAnaG9yaXpvbnRhbEFsaWdubWVudCcsXHJcbiAgICAgICAgJ3ZlcnRpY2FsQWxpZ25tZW50JyxcclxuICAgICAgICAnbG9jYXRlSW5NZW51JyxcclxuICAgICAgICAnbG9jYXRpb24nLFxyXG4gICAgICAgICdtZW51SXRlbVRlbXBsYXRlJyxcclxuICAgICAgICAnb3B0aW9ucycsXHJcbiAgICAgICAgJ3Nob3dUZXh0JyxcclxuICAgICAgICAnd2lkZ2V0JyxcclxuICAgICAgICAnaGVpZ2h0JyxcclxuICAgICAgICAnd2lkdGgnLFxyXG4gICAgICAgICdpbWFnZUFsdCcsXHJcbiAgICAgICAgJ2ltYWdlU3JjJyxcclxuICAgICAgICAnYWNjZXB0ZWRWYWx1ZXMnLFxyXG4gICAgICAgICdjb21tYW5kcycsXHJcbiAgICAgICAgJ2tleScsXHJcbiAgICAgICAgJ3Nob3dDaGV2cm9uJyxcclxuICAgICAgICAnbGlua0F0dHInLFxyXG4gICAgICAgICd1cmwnLFxyXG4gICAgICAgICdjb2xsYXBzZWQnLFxyXG4gICAgICAgICdjb2xsYXBzZWRTaXplJyxcclxuICAgICAgICAnY29sbGFwc2libGUnLFxyXG4gICAgICAgICdtYXhTaXplJyxcclxuICAgICAgICAnbWluU2l6ZScsXHJcbiAgICAgICAgJ3Jlc2l6YWJsZScsXHJcbiAgICAgICAgJ3NpemUnLFxyXG4gICAgICAgICdzcGxpdHRlcicsXHJcbiAgICAgICAgJ2hlaWdodFJhdGlvJyxcclxuICAgICAgICAnd2lkdGhSYXRpbycsXHJcbiAgICAgICAgJ2V4cGFuZGVkJyxcclxuICAgICAgICAnaGFzSXRlbXMnLFxyXG4gICAgICAgICdwYXJlbnRJZCdcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER4aUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBEeGlCdXR0b25Hcm91cEl0ZW0gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LFxyXG4gICAgSUR4VGVtcGxhdGVIb3N0IHtcclxuICAgIEBDb250ZW50Q2hpbGRyZW4oUFJPUEVSVFlfVE9LRU5faXRlbXMpXHJcbiAgICBzZXQgX2l0ZW1zQ29udGVudENoaWxkcmVuKHZhbHVlOiBRdWVyeUxpc3Q8Q29sbGVjdGlvbk5lc3RlZE9wdGlvbj4pIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCdpdGVtcycsIHZhbHVlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQUk9QRVJUWV9UT0tFTl92YWxpZGF0aW9uUnVsZXMpXHJcbiAgICBzZXQgX3ZhbGlkYXRpb25SdWxlc0NvbnRlbnRDaGlsZHJlbih2YWx1ZTogUXVlcnlMaXN0PENvbGxlY3Rpb25OZXN0ZWRPcHRpb24+KSB7XHJcbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlbigndmFsaWRhdGlvblJ1bGVzJywgdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFBST1BFUlRZX1RPS0VOX3RhYnMpXHJcbiAgICBzZXQgX3RhYnNDb250ZW50Q2hpbGRyZW4odmFsdWU6IFF1ZXJ5TGlzdDxDb2xsZWN0aW9uTmVzdGVkT3B0aW9uPikge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ3RhYnMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIEBDb250ZW50Q2hpbGRyZW4oUFJPUEVSVFlfVE9LRU5fY29tbWFuZHMpXHJcbiAgICBzZXQgX2NvbW1hbmRzQ29udGVudENoaWxkcmVuKHZhbHVlOiBRdWVyeUxpc3Q8Q29sbGVjdGlvbk5lc3RlZE9wdGlvbj4pIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCdjb21tYW5kcycsIHZhbHVlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQUk9QRVJUWV9UT0tFTl9sb2NhdGlvbilcclxuICAgIHNldCBfbG9jYXRpb25Db250ZW50Q2hpbGRyZW4odmFsdWU6IFF1ZXJ5TGlzdDxDb2xsZWN0aW9uTmVzdGVkT3B0aW9uPikge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ2xvY2F0aW9uJywgdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBfb3B0aW9uUGF0aCgpIHtcclxuICAgICAgICByZXR1cm4gJ2l0ZW1zJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IoQFNraXBTZWxmKCkgQEhvc3QoKSBwYXJlbnRPcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgICAgICAgICBASG9zdCgpIG9wdGlvbkhvc3Q6IE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgICAgICAgICBASG9zdCgpIHRlbXBsYXRlSG9zdDogRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgcGFyZW50T3B0aW9uSG9zdC5zZXROZXN0ZWRPcHRpb24odGhpcyk7XHJcbiAgICAgICAgb3B0aW9uSG9zdC5zZXRIb3N0KHRoaXMsIHRoaXMuX2Z1bGxPcHRpb25QYXRoLmJpbmQodGhpcykpO1xyXG4gICAgICAgIHRlbXBsYXRlSG9zdC5zZXRIb3N0KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRlbXBsYXRlKHRlbXBsYXRlOiBEeFRlbXBsYXRlRGlyZWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGV4dHJhY3RUZW1wbGF0ZSh0aGlzLCB0aGlzLmVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuZG9jdW1lbnQpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5fZGVsZXRlUmVtb3ZlZE9wdGlvbnModGhpcy5fZnVsbE9wdGlvblBhdGgoKSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIER4aUl0ZW1Db21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIER4aUl0ZW1Db21wb25lbnRcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhpSXRlbU1vZHVsZSB7IH1cclxuIl19