devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
193 lines • 18.5 kB
JavaScript
/*!
* devextreme-angular
* Version: 20.2.5
* Build date: Fri Jan 15 2021
*
* Copyright (c) 2012 - 2021 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
*/
import * as tslib_1 from "tslib";
var DxiItemComponent_1;
/* tslint:disable:max-line-length */
/* tslint:disable:use-input-property-decorator */
import { Component, NgModule, Host, ElementRef, Renderer2, Inject, AfterViewInit, SkipSelf, ContentChildren, forwardRef, QueryList } from '@angular/core';
import { DOCUMENT } from '@angular/common';
import { NestedOptionHost, extractTemplate, DxTemplateDirective, IDxTemplateHost, DxTemplateHost } from 'devextreme-angular/core';
import { DxiButtonGroupItem } from './base/button-group-item-dxi';
import { DxiValidationRuleComponent } from './validation-rule-dxi';
import { DxiTabComponent } from './tab-dxi';
import { DxiLocationComponent } from './location-dxi';
let DxiItemComponent = DxiItemComponent_1 = class DxiItemComponent extends DxiButtonGroupItem {
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);
}
get _optionPath() {
return 'items';
}
get itemsChildren() {
return this._getOption('items');
}
set itemsChildren(value) {
this.setChildren('items', value);
}
get validationRulesChildren() {
return this._getOption('validationRules');
}
set validationRulesChildren(value) {
this.setChildren('validationRules', value);
}
get tabsChildren() {
return this._getOption('tabs');
}
set tabsChildren(value) {
this.setChildren('tabs', value);
}
get locationChildren() {
return this._getOption('location');
}
set locationChildren(value) {
this.setChildren('location', value);
}
setTemplate(template) {
this.template = template;
}
ngAfterViewInit() {
extractTemplate(this, this.element, this.renderer, this.document);
}
ngOnDestroy() {
this._deleteRemovedOptions(this._fullOptionPath());
}
};
DxiItemComponent.ctorParameters = () => [
{ type: NestedOptionHost, decorators: [{ type: SkipSelf }, { type: Host }] },
{ type: NestedOptionHost, decorators: [{ type: Host }] },
{ type: Renderer2 },
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
{ type: DxTemplateHost, decorators: [{ type: Host }] },
{ type: ElementRef }
];
tslib_1.__decorate([
ContentChildren(forwardRef(() => DxiItemComponent_1)),
tslib_1.__metadata("design:type", QueryList),
tslib_1.__metadata("design:paramtypes", [Object])
], DxiItemComponent.prototype, "itemsChildren", null);
tslib_1.__decorate([
ContentChildren(forwardRef(() => DxiValidationRuleComponent)),
tslib_1.__metadata("design:type", QueryList),
tslib_1.__metadata("design:paramtypes", [Object])
], DxiItemComponent.prototype, "validationRulesChildren", null);
tslib_1.__decorate([
ContentChildren(forwardRef(() => DxiTabComponent)),
tslib_1.__metadata("design:type", QueryList),
tslib_1.__metadata("design:paramtypes", [Object])
], DxiItemComponent.prototype, "tabsChildren", null);
tslib_1.__decorate([
ContentChildren(forwardRef(() => DxiLocationComponent)),
tslib_1.__metadata("design:type", QueryList),
tslib_1.__metadata("design:paramtypes", [Object])
], DxiItemComponent.prototype, "locationChildren", null);
DxiItemComponent = DxiItemComponent_1 = tslib_1.__decorate([
Component({
selector: 'dxi-item',
template: '<ng-content></ng-content>',
providers: [NestedOptionHost, DxTemplateHost],
inputs: [
'disabled',
'html',
'icon',
'template',
'text',
'title',
'visible',
'onClick',
'type',
'baseSize',
'box',
'ratio',
'shrink',
'hint',
'beginGroup',
'closeMenuOnClick',
'items',
'selectable',
'selected',
'colSpan',
'cssClass',
'dataField',
'editorOptions',
'editorType',
'helpText',
'isRequired',
'itemType',
'label',
'name',
'validationRules',
'visibleIndex',
'alignItemLabels',
'caption',
'colCount',
'colCountByScreen',
'tabPanelOptions',
'tabs',
'badge',
'tabTemplate',
'buttonOptions',
'horizontalAlignment',
'verticalAlignment',
'height',
'width',
'locateInMenu',
'location',
'menuItemTemplate',
'options',
'showText',
'widget',
'imageAlt',
'imageSrc',
'formatName',
'formatValues',
'key',
'showChevron',
'menuTemplate',
'heightRatio',
'widthRatio',
'expanded',
'hasItems',
'parentId'
],
styles: [':host { display: block; }']
}),
tslib_1.__param(0, SkipSelf()), tslib_1.__param(0, Host()),
tslib_1.__param(1, Host()),
tslib_1.__param(3, Inject(DOCUMENT)),
tslib_1.__param(4, Host()),
tslib_1.__metadata("design:paramtypes", [NestedOptionHost,
NestedOptionHost,
Renderer2, Object, DxTemplateHost,
ElementRef])
], DxiItemComponent);
export { DxiItemComponent };
let DxiItemModule = class DxiItemModule {
};
DxiItemModule = tslib_1.__decorate([
NgModule({
declarations: [
DxiItemComponent
],
exports: [
DxiItemComponent
],
})
], DxiItemModule);
export { DxiItemModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1keGkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkLyIsInNvdXJjZXMiOlsiaXRlbS1keGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILG9DQUFvQztBQUVwQyxpREFBaUQ7QUFFakQsT0FBTyxFQUNILFNBQVMsRUFDVCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLGFBQWEsRUFDYixRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTNDLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsY0FBYyxFQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUF5RXRELElBQWEsZ0JBQWdCLHdCQUE3QixNQUFhLGdCQUFpQixTQUFRLGtCQUFrQjtJQXdDcEQsWUFBZ0MsZ0JBQWtDLEVBQ2xELFVBQTRCLEVBQzVCLFFBQW1CLEVBQ0QsUUFBYSxFQUMvQixZQUE0QixFQUM1QixPQUFtQjtRQUMvQixLQUFLLEVBQUUsQ0FBQztRQUpJLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDRCxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBRS9CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFFL0IsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBL0NELElBQWMsV0FBVztRQUNyQixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBSUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLGFBQWEsQ0FBQyxLQUFLO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFHRCxJQUFJLHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsSUFBSSx1QkFBdUIsQ0FBQyxLQUFLO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUdELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBR0QsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQWNELFdBQVcsQ0FBQyxRQUE2QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBQ0QsZUFBZTtRQUNYLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBSUQsV0FBVztRQUNQLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBRUosQ0FBQTs7WUF6QnFELGdCQUFnQix1QkFBckQsUUFBUSxZQUFJLElBQUk7WUFDRCxnQkFBZ0IsdUJBQW5DLElBQUk7WUFDYSxTQUFTOzRDQUMxQixNQUFNLFNBQUMsUUFBUTtZQUNNLGNBQWMsdUJBQW5DLElBQUk7WUFDWSxVQUFVOztBQXBDbkM7SUFEQyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFnQixDQUFDLENBQUM7c0NBQy9CLFNBQVM7O3FEQUU3QjtBQU1EO0lBREMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO3NDQUMvQixTQUFTOzsrREFFdkM7QUFNRDtJQURDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7c0NBQy9CLFNBQVM7O29EQUU1QjtBQU1EO0lBREMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO3NDQUNoQyxTQUFTOzt3REFFaEM7QUFuQ1EsZ0JBQWdCO0lBdEU1QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsVUFBVTtRQUNwQixRQUFRLEVBQUUsMkJBQTJCO1FBRXJDLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQztRQUM3QyxNQUFNLEVBQUU7WUFDSixVQUFVO1lBQ1YsTUFBTTtZQUNOLE1BQU07WUFDTixVQUFVO1lBQ1YsTUFBTTtZQUNOLE9BQU87WUFDUCxTQUFTO1lBQ1QsU0FBUztZQUNULE1BQU07WUFDTixVQUFVO1lBQ1YsS0FBSztZQUNMLE9BQU87WUFDUCxRQUFRO1lBQ1IsTUFBTTtZQUNOLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsT0FBTztZQUNQLFlBQVk7WUFDWixVQUFVO1lBQ1YsU0FBUztZQUNULFVBQVU7WUFDVixXQUFXO1lBQ1gsZUFBZTtZQUNmLFlBQVk7WUFDWixVQUFVO1lBQ1YsWUFBWTtZQUNaLFVBQVU7WUFDVixPQUFPO1lBQ1AsTUFBTTtZQUNOLGlCQUFpQjtZQUNqQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLFNBQVM7WUFDVCxVQUFVO1lBQ1Ysa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixNQUFNO1lBQ04sT0FBTztZQUNQLGFBQWE7WUFDYixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixRQUFRO1lBQ1IsT0FBTztZQUNQLGNBQWM7WUFDZCxVQUFVO1lBQ1Ysa0JBQWtCO1lBQ2xCLFNBQVM7WUFDVCxVQUFVO1lBQ1YsUUFBUTtZQUNSLFVBQVU7WUFDVixVQUFVO1lBQ1YsWUFBWTtZQUNaLGNBQWM7WUFDZCxLQUFLO1lBQ0wsYUFBYTtZQUNiLGNBQWM7WUFDZCxhQUFhO1lBQ2IsWUFBWTtZQUNaLFVBQVU7WUFDVixVQUFVO1lBQ1YsVUFBVTtTQUNiO2lCQWpFUSwyQkFBMkI7S0FrRXZDLENBQUM7SUF5Q2UsbUJBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxtQkFBQSxJQUFJLEVBQUUsQ0FBQTtJQUN0QixtQkFBQSxJQUFJLEVBQUUsQ0FBQTtJQUVOLG1CQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNoQixtQkFBQSxJQUFJLEVBQUUsQ0FBQTs2Q0FKbUMsZ0JBQWdCO1FBQ3RDLGdCQUFnQjtRQUNsQixTQUFTLFVBRUwsY0FBYztRQUNuQixVQUFVO0dBN0MxQixnQkFBZ0IsQ0FpRTVCO1NBakVZLGdCQUFnQjtBQTJFN0IsSUFBYSxhQUFhLEdBQTFCLE1BQWEsYUFBYTtDQUFJLENBQUE7QUFBakIsYUFBYTtJQVJ6QixRQUFRLENBQUM7UUFDUixZQUFZLEVBQUU7WUFDWixnQkFBZ0I7U0FDakI7UUFDRCxPQUFPLEVBQUU7WUFDUCxnQkFBZ0I7U0FDakI7S0FDRixDQUFDO0dBQ1csYUFBYSxDQUFJO1NBQWpCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIGRldmV4dHJlbWUtYW5ndWxhclxuICogVmVyc2lvbjogMjAuMi41XG4gKiBCdWlsZCBkYXRlOiBGcmkgSmFuIDE1IDIwMjFcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgLSAyMDIxIERldmVsb3BlciBFeHByZXNzIEluYy4gQUxMIFJJR0hUUyBSRVNFUlZFRFxuICpcbiAqIFRoaXMgc29mdHdhcmUgbWF5IGJlIG1vZGlmaWVkIGFuZCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXNcbiAqIG9mIHRoZSBNSVQgbGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QgZm9yIGRldGFpbHMuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL0RldkV4cHJlc3MvZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKi9cblxuLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp1c2UtaW5wdXQtcHJvcGVydHktZGVjb3JhdG9yICovXHJcblxyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgTmdNb2R1bGUsXHJcbiAgICBIb3N0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIFJlbmRlcmVyMixcclxuICAgIEluamVjdCxcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBRdWVyeUxpc3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcblxyXG5cclxuaW1wb3J0IHtcclxuICAgIE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICBleHRyYWN0VGVtcGxhdGUsXHJcbiAgICBEeFRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gICAgSUR4VGVtcGxhdGVIb3N0LFxyXG4gICAgRHhUZW1wbGF0ZUhvc3RcclxufSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4aUJ1dHRvbkdyb3VwSXRlbSB9IGZyb20gJy4vYmFzZS9idXR0b24tZ3JvdXAtaXRlbS1keGknO1xyXG5pbXBvcnQgeyBEeGlWYWxpZGF0aW9uUnVsZUNvbXBvbmVudCB9IGZyb20gJy4vdmFsaWRhdGlvbi1ydWxlLWR4aSc7XHJcbmltcG9ydCB7IER4aVRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiLWR4aSc7XHJcbmltcG9ydCB7IER4aUxvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9sb2NhdGlvbi1keGknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdkeGktaXRlbScsXHJcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxyXG4gICAgc3R5bGVzOiBbJzpob3N0IHsgZGlzcGxheTogYmxvY2s7IH0nXSxcclxuICAgIHByb3ZpZGVyczogW05lc3RlZE9wdGlvbkhvc3QsIER4VGVtcGxhdGVIb3N0XSxcclxuICAgIGlucHV0czogW1xyXG4gICAgICAgICdkaXNhYmxlZCcsXHJcbiAgICAgICAgJ2h0bWwnLFxyXG4gICAgICAgICdpY29uJyxcclxuICAgICAgICAndGVtcGxhdGUnLFxyXG4gICAgICAgICd0ZXh0JyxcclxuICAgICAgICAndGl0bGUnLFxyXG4gICAgICAgICd2aXNpYmxlJyxcclxuICAgICAgICAnb25DbGljaycsXHJcbiAgICAgICAgJ3R5cGUnLFxyXG4gICAgICAgICdiYXNlU2l6ZScsXHJcbiAgICAgICAgJ2JveCcsXHJcbiAgICAgICAgJ3JhdGlvJyxcclxuICAgICAgICAnc2hyaW5rJyxcclxuICAgICAgICAnaGludCcsXHJcbiAgICAgICAgJ2JlZ2luR3JvdXAnLFxyXG4gICAgICAgICdjbG9zZU1lbnVPbkNsaWNrJyxcclxuICAgICAgICAnaXRlbXMnLFxyXG4gICAgICAgICdzZWxlY3RhYmxlJyxcclxuICAgICAgICAnc2VsZWN0ZWQnLFxyXG4gICAgICAgICdjb2xTcGFuJyxcclxuICAgICAgICAnY3NzQ2xhc3MnLFxyXG4gICAgICAgICdkYXRhRmllbGQnLFxyXG4gICAgICAgICdlZGl0b3JPcHRpb25zJyxcclxuICAgICAgICAnZWRpdG9yVHlwZScsXHJcbiAgICAgICAgJ2hlbHBUZXh0JyxcclxuICAgICAgICAnaXNSZXF1aXJlZCcsXHJcbiAgICAgICAgJ2l0ZW1UeXBlJyxcclxuICAgICAgICAnbGFiZWwnLFxyXG4gICAgICAgICduYW1lJyxcclxuICAgICAgICAndmFsaWRhdGlvblJ1bGVzJyxcclxuICAgICAgICAndmlzaWJsZUluZGV4JyxcclxuICAgICAgICAnYWxpZ25JdGVtTGFiZWxzJyxcclxuICAgICAgICAnY2FwdGlvbicsXHJcbiAgICAgICAgJ2NvbENvdW50JyxcclxuICAgICAgICAnY29sQ291bnRCeVNjcmVlbicsXHJcbiAgICAgICAgJ3RhYlBhbmVsT3B0aW9ucycsXHJcbiAgICAgICAgJ3RhYnMnLFxyXG4gICAgICAgICdiYWRnZScsXHJcbiAgICAgICAgJ3RhYlRlbXBsYXRlJyxcclxuICAgICAgICAnYnV0dG9uT3B0aW9ucycsXHJcbiAgICAgICAgJ2hvcml6b250YWxBbGlnbm1lbnQnLFxyXG4gICAgICAgICd2ZXJ0aWNhbEFsaWdubWVudCcsXHJcbiAgICAgICAgJ2hlaWdodCcsXHJcbiAgICAgICAgJ3dpZHRoJyxcclxuICAgICAgICAnbG9jYXRlSW5NZW51JyxcclxuICAgICAgICAnbG9jYXRpb24nLFxyXG4gICAgICAgICdtZW51SXRlbVRlbXBsYXRlJyxcclxuICAgICAgICAnb3B0aW9ucycsXHJcbiAgICAgICAgJ3Nob3dUZXh0JyxcclxuICAgICAgICAnd2lkZ2V0JyxcclxuICAgICAgICAnaW1hZ2VBbHQnLFxyXG4gICAgICAgICdpbWFnZVNyYycsXHJcbiAgICAgICAgJ2Zvcm1hdE5hbWUnLFxyXG4gICAgICAgICdmb3JtYXRWYWx1ZXMnLFxyXG4gICAgICAgICdrZXknLFxyXG4gICAgICAgICdzaG93Q2hldnJvbicsXHJcbiAgICAgICAgJ21lbnVUZW1wbGF0ZScsXHJcbiAgICAgICAgJ2hlaWdodFJhdGlvJyxcclxuICAgICAgICAnd2lkdGhSYXRpbycsXHJcbiAgICAgICAgJ2V4cGFuZGVkJyxcclxuICAgICAgICAnaGFzSXRlbXMnLFxyXG4gICAgICAgICdwYXJlbnRJZCdcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER4aUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBEeGlCdXR0b25Hcm91cEl0ZW0gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LFxyXG4gICAgSUR4VGVtcGxhdGVIb3N0IHtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF9vcHRpb25QYXRoKCkge1xyXG4gICAgICAgIHJldHVybiAnaXRlbXMnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRHhpSXRlbUNvbXBvbmVudCkpXHJcbiAgICBnZXQgaXRlbXNDaGlsZHJlbigpOiBRdWVyeUxpc3Q8RHhpSXRlbUNvbXBvbmVudD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2l0ZW1zJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaXRlbXNDaGlsZHJlbih2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ2l0ZW1zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEeGlWYWxpZGF0aW9uUnVsZUNvbXBvbmVudCkpXHJcbiAgICBnZXQgdmFsaWRhdGlvblJ1bGVzQ2hpbGRyZW4oKTogUXVlcnlMaXN0PER4aVZhbGlkYXRpb25SdWxlQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbigndmFsaWRhdGlvblJ1bGVzJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdmFsaWRhdGlvblJ1bGVzQ2hpbGRyZW4odmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCd2YWxpZGF0aW9uUnVsZXMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IER4aVRhYkNvbXBvbmVudCkpXHJcbiAgICBnZXQgdGFic0NoaWxkcmVuKCk6IFF1ZXJ5TGlzdDxEeGlUYWJDb21wb25lbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd0YWJzJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdGFic0NoaWxkcmVuKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlbigndGFicycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRHhpTG9jYXRpb25Db21wb25lbnQpKVxyXG4gICAgZ2V0IGxvY2F0aW9uQ2hpbGRyZW4oKTogUXVlcnlMaXN0PER4aUxvY2F0aW9uQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbG9jYXRpb24nKTtcclxuICAgIH1cclxuICAgIHNldCBsb2NhdGlvbkNoaWxkcmVuKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDaGlsZHJlbignbG9jYXRpb24nLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoQFNraXBTZWxmKCkgQEhvc3QoKSBwYXJlbnRPcHRpb25Ib3N0OiBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgICAgICAgICBASG9zdCgpIG9wdGlvbkhvc3Q6IE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICAgICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgICAgICAgICBASG9zdCgpIHRlbXBsYXRlSG9zdDogRHhUZW1wbGF0ZUhvc3QsXHJcbiAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgcGFyZW50T3B0aW9uSG9zdC5zZXROZXN0ZWRPcHRpb24odGhpcyk7XHJcbiAgICAgICAgb3B0aW9uSG9zdC5zZXRIb3N0KHRoaXMsIHRoaXMuX2Z1bGxPcHRpb25QYXRoLmJpbmQodGhpcykpO1xyXG4gICAgICAgIHRlbXBsYXRlSG9zdC5zZXRIb3N0KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFRlbXBsYXRlKHRlbXBsYXRlOiBEeFRlbXBsYXRlRGlyZWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGV4dHJhY3RUZW1wbGF0ZSh0aGlzLCB0aGlzLmVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuZG9jdW1lbnQpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5fZGVsZXRlUmVtb3ZlZE9wdGlvbnModGhpcy5fZnVsbE9wdGlvblBhdGgoKSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRHhpSXRlbUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHhpSXRlbUNvbXBvbmVudFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeGlJdGVtTW9kdWxlIHsgfVxyXG4iXX0=