UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

154 lines 18.1 kB
/*! * devextreme-angular * Version: 22.1.14 * Build date: Mon Apr 29 2024 * * Copyright (c) 2012 - 2024 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, SkipSelf, Output, ContentChildren, forwardRef } from '@angular/core'; import { NestedOptionHost, } from 'devextreme-angular/core'; import { DxoPopupOptions } from './base/popup-options'; import { DxiToolbarItemComponent } from './toolbar-item-dxi'; import * as i0 from "@angular/core"; import * as i1 from "devextreme-angular/core"; export class DxoDropDownOptionsComponent extends DxoPopupOptions { constructor(parentOptionHost, optionHost) { super(); this._createEventEmitters([ { emit: 'heightChange' }, { emit: 'positionChange' }, { emit: 'visibleChange' }, { emit: 'widthChange' } ]); parentOptionHost.setNestedOption(this); optionHost.setHost(this, this._fullOptionPath.bind(this)); } get _optionPath() { return 'dropDownOptions'; } get toolbarItemsChildren() { return this._getOption('toolbarItems'); } set toolbarItemsChildren(value) { this.setChildren('toolbarItems', value); } ngOnInit() { this._addRecreatedComponent(); } ngOnDestroy() { this._addRemovedOption(this._getOptionPath()); } } /** @nocollapse */ DxoDropDownOptionsComponent.ɵfac = function DxoDropDownOptionsComponent_Factory(t) { return new (t || DxoDropDownOptionsComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); }; /** @nocollapse */ DxoDropDownOptionsComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxoDropDownOptionsComponent, selectors: [["dxo-drop-down-options"]], contentQueries: function DxoDropDownOptionsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { i0.ɵɵcontentQuery(dirIndex, DxiToolbarItemComponent, 4); } if (rf & 2) { let _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarItemsChildren = _t); } }, inputs: { accessKey: "accessKey", animation: "animation", closeOnOutsideClick: "closeOnOutsideClick", container: "container", contentTemplate: "contentTemplate", copyRootClassesToWrapper: "copyRootClassesToWrapper", deferRendering: "deferRendering", disabled: "disabled", dragAndResizeArea: "dragAndResizeArea", dragEnabled: "dragEnabled", dragOutsideBoundary: "dragOutsideBoundary", elementAttr: "elementAttr", focusStateEnabled: "focusStateEnabled", fullScreen: "fullScreen", height: "height", hideOnOutsideClick: "hideOnOutsideClick", hideOnParentScroll: "hideOnParentScroll", hint: "hint", hoverStateEnabled: "hoverStateEnabled", maxHeight: "maxHeight", maxWidth: "maxWidth", minHeight: "minHeight", minWidth: "minWidth", onContentReady: "onContentReady", onDisposing: "onDisposing", onHidden: "onHidden", onHiding: "onHiding", onInitialized: "onInitialized", onOptionChanged: "onOptionChanged", onResize: "onResize", onResizeEnd: "onResizeEnd", onResizeStart: "onResizeStart", onShowing: "onShowing", onShown: "onShown", onTitleRendered: "onTitleRendered", position: "position", resizeEnabled: "resizeEnabled", restorePosition: "restorePosition", rtlEnabled: "rtlEnabled", shading: "shading", shadingColor: "shadingColor", showCloseButton: "showCloseButton", showTitle: "showTitle", tabIndex: "tabIndex", title: "title", titleTemplate: "titleTemplate", toolbarItems: "toolbarItems", visible: "visible", width: "width", wrapperAttr: "wrapperAttr", hideEvent: "hideEvent", showEvent: "showEvent", target: "target" }, outputs: { heightChange: "heightChange", positionChange: "positionChange", visibleChange: "visibleChange", widthChange: "widthChange" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxoDropDownOptionsComponent_Template(rf, ctx) { }, styles: [""] }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DxoDropDownOptionsComponent, [{ type: Component, args: [{ selector: 'dxo-drop-down-options', template: '', styles: [''], providers: [NestedOptionHost], inputs: [ 'accessKey', 'animation', 'closeOnOutsideClick', 'container', 'contentTemplate', 'copyRootClassesToWrapper', 'deferRendering', 'disabled', 'dragAndResizeArea', 'dragEnabled', 'dragOutsideBoundary', 'elementAttr', 'focusStateEnabled', 'fullScreen', 'height', 'hideOnOutsideClick', 'hideOnParentScroll', 'hint', 'hoverStateEnabled', 'maxHeight', 'maxWidth', 'minHeight', 'minWidth', 'onContentReady', 'onDisposing', 'onHidden', 'onHiding', 'onInitialized', 'onOptionChanged', 'onResize', 'onResizeEnd', 'onResizeStart', 'onShowing', 'onShown', 'onTitleRendered', 'position', 'resizeEnabled', 'restorePosition', 'rtlEnabled', 'shading', 'shadingColor', 'showCloseButton', 'showTitle', 'tabIndex', 'title', 'titleTemplate', 'toolbarItems', 'visible', 'width', 'wrapperAttr', 'hideEvent', 'showEvent', 'target' ] }] }], function () { return [{ type: i1.NestedOptionHost, decorators: [{ type: SkipSelf }, { type: Host }] }, { type: i1.NestedOptionHost, decorators: [{ type: Host }] }]; }, { heightChange: [{ type: Output }], positionChange: [{ type: Output }], visibleChange: [{ type: Output }], widthChange: [{ type: Output }], toolbarItemsChildren: [{ type: ContentChildren, args: [forwardRef(() => DxiToolbarItemComponent)] }] }); })(); export class DxoDropDownOptionsModule { } /** @nocollapse */ DxoDropDownOptionsModule.ɵfac = function DxoDropDownOptionsModule_Factory(t) { return new (t || DxoDropDownOptionsModule)(); }; /** @nocollapse */ DxoDropDownOptionsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxoDropDownOptionsModule }); /** @nocollapse */ DxoDropDownOptionsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({}); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DxoDropDownOptionsModule, [{ type: NgModule, args: [{ declarations: [ DxoDropDownOptionsComponent ], exports: [ DxoDropDownOptionsComponent ], }] }], null, null); })(); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxoDropDownOptionsModule, { declarations: [DxoDropDownOptionsComponent], exports: [DxoDropDownOptionsComponent] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kaXN0L3VpL25lc3RlZC9kcm9wLWRvd24tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILG9DQUFvQztBQUVwQyxpREFBaUQ7QUFFakQsT0FBTyxFQUNILFNBQVMsRUFHVCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFFBQVEsRUFDUixNQUFNLEVBRU4sZUFBZSxFQUNmLFVBQVUsRUFFYixNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQ0gsZ0JBQWdCLEdBQ25CLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFnRTdELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxlQUFlO0lBMEM1RCxZQUFnQyxnQkFBa0MsRUFDbEQsVUFBNEI7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdEIsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3hCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzFCLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUN6QixFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO1FBRUgsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQTFCRCxJQUFjLFdBQVc7UUFDckIsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0lBR0QsSUFDSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFJLG9CQUFvQixDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQWtCRCxRQUFRO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7eUhBaEVRLDJCQUEyQjs2R0FBM0IsMkJBQTJCO29DQWtDRix1QkFBdUI7Ozs7bXFEQTNGOUMsQ0FBQyxnQkFBZ0IsQ0FBQzt1RkF5RHBCLDJCQUEyQjtjQTdEdkMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLFFBQVEsRUFBRSxFQUFFO2dCQUNaLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDWixTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsTUFBTSxFQUFFO29CQUNKLFdBQVc7b0JBQ1gsV0FBVztvQkFDWCxxQkFBcUI7b0JBQ3JCLFdBQVc7b0JBQ1gsaUJBQWlCO29CQUNqQiwwQkFBMEI7b0JBQzFCLGdCQUFnQjtvQkFDaEIsVUFBVTtvQkFDVixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2IscUJBQXFCO29CQUNyQixhQUFhO29CQUNiLG1CQUFtQjtvQkFDbkIsWUFBWTtvQkFDWixRQUFRO29CQUNSLG9CQUFvQjtvQkFDcEIsb0JBQW9CO29CQUNwQixNQUFNO29CQUNOLG1CQUFtQjtvQkFDbkIsV0FBVztvQkFDWCxVQUFVO29CQUNWLFdBQVc7b0JBQ1gsVUFBVTtvQkFDVixnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsVUFBVTtvQkFDVixVQUFVO29CQUNWLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQixVQUFVO29CQUNWLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixXQUFXO29CQUNYLFNBQVM7b0JBQ1QsaUJBQWlCO29CQUNqQixVQUFVO29CQUNWLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQixZQUFZO29CQUNaLFNBQVM7b0JBQ1QsY0FBYztvQkFDZCxpQkFBaUI7b0JBQ2pCLFdBQVc7b0JBQ1gsVUFBVTtvQkFDVixPQUFPO29CQUNQLGVBQWU7b0JBQ2YsY0FBYztvQkFDZCxTQUFTO29CQUNULE9BQU87b0JBQ1AsYUFBYTtvQkFDYixXQUFXO29CQUNYLFdBQVc7b0JBQ1gsUUFBUTtpQkFDWDthQUNKOztzQkEyQ2dCLFFBQVE7O3NCQUFJLElBQUk7O3NCQUNwQixJQUFJO3dCQXBDSCxZQUFZO2tCQUFyQixNQUFNO1lBT0csY0FBYztrQkFBdkIsTUFBTTtZQU9HLGFBQWE7a0JBQXRCLE1BQU07WUFPRyxXQUFXO2tCQUFwQixNQUFNO1lBT0gsb0JBQW9CO2tCQUR2QixlQUFlO21CQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzs7QUEyQzlELE1BQU0sT0FBTyx3QkFBd0I7O21IQUF4Qix3QkFBd0I7eUdBQXhCLHdCQUF3Qjs7dUZBQXhCLHdCQUF3QjtjQVJwQyxRQUFRO2VBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLDJCQUEyQjtpQkFDNUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDJCQUEyQjtpQkFDNUI7YUFDRjs7d0ZBQ1ksd0JBQXdCLG1CQTdFeEIsMkJBQTJCLGFBQTNCLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKiBWZXJzaW9uOiAyMi4xLjE0XG4gKiBCdWlsZCBkYXRlOiBNb24gQXByIDI5IDIwMjRcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTIgLSAyMDI0IERldmVsb3BlciBFeHByZXNzIEluYy4gQUxMIFJJR0hUUyBSRVNFUlZFRFxuICpcbiAqIFRoaXMgc29mdHdhcmUgbWF5IGJlIG1vZGlmaWVkIGFuZCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXNcbiAqIG9mIHRoZSBNSVQgbGljZW5zZS4gU2VlIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QgZm9yIGRldGFpbHMuXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL0RldkV4cHJlc3MvZGV2ZXh0cmVtZS1hbmd1bGFyXG4gKi9cblxuLyogdHNsaW50OmRpc2FibGU6bWF4LWxpbmUtbGVuZ3RoICovXHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp1c2UtaW5wdXQtcHJvcGVydHktZGVjb3JhdG9yICovXHJcblxyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgTmdNb2R1bGUsXHJcbiAgICBIb3N0LFxyXG4gICAgU2tpcFNlbGYsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgICBmb3J3YXJkUmVmLFxyXG4gICAgUXVlcnlMaXN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuXHJcblxyXG5pbXBvcnQgRGV2RXhwcmVzcyBmcm9tICdkZXZleHRyZW1lL2J1bmRsZXMvZHguYWxsJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBOZXN0ZWRPcHRpb25Ib3N0LFxyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHhvUG9wdXBPcHRpb25zIH0gZnJvbSAnLi9iYXNlL3BvcHVwLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBEeGlUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdG9vbGJhci1pdGVtLWR4aSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2R4by1kcm9wLWRvd24tb3B0aW9ucycsXHJcbiAgICB0ZW1wbGF0ZTogJycsXHJcbiAgICBzdHlsZXM6IFsnJ10sXHJcbiAgICBwcm92aWRlcnM6IFtOZXN0ZWRPcHRpb25Ib3N0XSxcclxuICAgIGlucHV0czogW1xyXG4gICAgICAgICdhY2Nlc3NLZXknLFxyXG4gICAgICAgICdhbmltYXRpb24nLFxyXG4gICAgICAgICdjbG9zZU9uT3V0c2lkZUNsaWNrJyxcclxuICAgICAgICAnY29udGFpbmVyJyxcclxuICAgICAgICAnY29udGVudFRlbXBsYXRlJyxcclxuICAgICAgICAnY29weVJvb3RDbGFzc2VzVG9XcmFwcGVyJyxcclxuICAgICAgICAnZGVmZXJSZW5kZXJpbmcnLFxyXG4gICAgICAgICdkaXNhYmxlZCcsXHJcbiAgICAgICAgJ2RyYWdBbmRSZXNpemVBcmVhJyxcclxuICAgICAgICAnZHJhZ0VuYWJsZWQnLFxyXG4gICAgICAgICdkcmFnT3V0c2lkZUJvdW5kYXJ5JyxcclxuICAgICAgICAnZWxlbWVudEF0dHInLFxyXG4gICAgICAgICdmb2N1c1N0YXRlRW5hYmxlZCcsXHJcbiAgICAgICAgJ2Z1bGxTY3JlZW4nLFxyXG4gICAgICAgICdoZWlnaHQnLFxyXG4gICAgICAgICdoaWRlT25PdXRzaWRlQ2xpY2snLFxyXG4gICAgICAgICdoaWRlT25QYXJlbnRTY3JvbGwnLFxyXG4gICAgICAgICdoaW50JyxcclxuICAgICAgICAnaG92ZXJTdGF0ZUVuYWJsZWQnLFxyXG4gICAgICAgICdtYXhIZWlnaHQnLFxyXG4gICAgICAgICdtYXhXaWR0aCcsXHJcbiAgICAgICAgJ21pbkhlaWdodCcsXHJcbiAgICAgICAgJ21pbldpZHRoJyxcclxuICAgICAgICAnb25Db250ZW50UmVhZHknLFxyXG4gICAgICAgICdvbkRpc3Bvc2luZycsXHJcbiAgICAgICAgJ29uSGlkZGVuJyxcclxuICAgICAgICAnb25IaWRpbmcnLFxyXG4gICAgICAgICdvbkluaXRpYWxpemVkJyxcclxuICAgICAgICAnb25PcHRpb25DaGFuZ2VkJyxcclxuICAgICAgICAnb25SZXNpemUnLFxyXG4gICAgICAgICdvblJlc2l6ZUVuZCcsXHJcbiAgICAgICAgJ29uUmVzaXplU3RhcnQnLFxyXG4gICAgICAgICdvblNob3dpbmcnLFxyXG4gICAgICAgICdvblNob3duJyxcclxuICAgICAgICAnb25UaXRsZVJlbmRlcmVkJyxcclxuICAgICAgICAncG9zaXRpb24nLFxyXG4gICAgICAgICdyZXNpemVFbmFibGVkJyxcclxuICAgICAgICAncmVzdG9yZVBvc2l0aW9uJyxcclxuICAgICAgICAncnRsRW5hYmxlZCcsXHJcbiAgICAgICAgJ3NoYWRpbmcnLFxyXG4gICAgICAgICdzaGFkaW5nQ29sb3InLFxyXG4gICAgICAgICdzaG93Q2xvc2VCdXR0b24nLFxyXG4gICAgICAgICdzaG93VGl0bGUnLFxyXG4gICAgICAgICd0YWJJbmRleCcsXHJcbiAgICAgICAgJ3RpdGxlJyxcclxuICAgICAgICAndGl0bGVUZW1wbGF0ZScsXHJcbiAgICAgICAgJ3Rvb2xiYXJJdGVtcycsXHJcbiAgICAgICAgJ3Zpc2libGUnLFxyXG4gICAgICAgICd3aWR0aCcsXHJcbiAgICAgICAgJ3dyYXBwZXJBdHRyJyxcclxuICAgICAgICAnaGlkZUV2ZW50JyxcclxuICAgICAgICAnc2hvd0V2ZW50JyxcclxuICAgICAgICAndGFyZ2V0J1xyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhvRHJvcERvd25PcHRpb25zQ29tcG9uZW50IGV4dGVuZHMgRHhvUG9wdXBPcHRpb25zIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQgIHtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaGVpZ2h0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBwb3NpdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPERldkV4cHJlc3MuUG9zaXRpb25Db25maWcgfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgd2lkdGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcbiAgICBwcm90ZWN0ZWQgZ2V0IF9vcHRpb25QYXRoKCkge1xyXG4gICAgICAgIHJldHVybiAnZHJvcERvd25PcHRpb25zJztcclxuICAgIH1cclxuXHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IER4aVRvb2xiYXJJdGVtQ29tcG9uZW50KSlcclxuICAgIGdldCB0b29sYmFySXRlbXNDaGlsZHJlbigpOiBRdWVyeUxpc3Q8RHhpVG9vbGJhckl0ZW1Db21wb25lbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd0b29sYmFySXRlbXMnKTtcclxuICAgIH1cclxuICAgIHNldCB0b29sYmFySXRlbXNDaGlsZHJlbih2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ3Rvb2xiYXJJdGVtcycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBASG9zdCgpIHBhcmVudE9wdGlvbkhvc3Q6IE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICAgICAgICAgIEBIb3N0KCkgb3B0aW9uSG9zdDogTmVzdGVkT3B0aW9uSG9zdCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUV2ZW50RW1pdHRlcnMoW1xyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoZWlnaHRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3Bvc2l0aW9uQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICd2aXNpYmxlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICd3aWR0aENoYW5nZScgfVxyXG4gICAgICAgIF0pO1xyXG5cclxuICAgICAgICBwYXJlbnRPcHRpb25Ib3N0LnNldE5lc3RlZE9wdGlvbih0aGlzKTtcclxuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcywgdGhpcy5fZnVsbE9wdGlvblBhdGguYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuX2FkZFJlY3JlYXRlZENvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuX2FkZFJlbW92ZWRPcHRpb24odGhpcy5fZ2V0T3B0aW9uUGF0aCgpKTtcclxuICAgIH1cclxuXHJcblxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRHhvRHJvcERvd25PcHRpb25zQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBEeG9Ecm9wRG93bk9wdGlvbnNDb21wb25lbnRcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhvRHJvcERvd25PcHRpb25zTW9kdWxlIHsgfVxyXG4iXX0=