devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
196 lines • 23.7 kB
JavaScript
/*!
* 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 { DxiDataGridColumn } from './base/data-grid-column-dxi';
import { DxiButtonComponent } from './button-dxi';
import { DxiValidationRuleComponent } from './validation-rule-dxi';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/core";
export class DxiColumnComponent extends DxiDataGridColumn {
constructor(parentOptionHost, optionHost) {
super();
this._createEventEmitters([
{ emit: 'filterValueChange' },
{ emit: 'filterValuesChange' },
{ emit: 'groupIndexChange' },
{ emit: 'selectedFilterOperationChange' },
{ emit: 'sortIndexChange' },
{ emit: 'sortOrderChange' },
{ emit: 'visibleChange' },
{ emit: 'visibleIndexChange' }
]);
parentOptionHost.setNestedOption(this);
optionHost.setHost(this, this._fullOptionPath.bind(this));
}
get _optionPath() {
return 'columns';
}
get buttonsChildren() {
return this._getOption('buttons');
}
set buttonsChildren(value) {
this.setChildren('buttons', value);
}
get columnsChildren() {
return this._getOption('columns');
}
set columnsChildren(value) {
this.setChildren('columns', value);
}
get validationRulesChildren() {
return this._getOption('validationRules');
}
set validationRulesChildren(value) {
this.setChildren('validationRules', value);
}
ngOnDestroy() {
this._deleteRemovedOptions(this._fullOptionPath());
}
}
/** @nocollapse */ DxiColumnComponent.ɵfac = function DxiColumnComponent_Factory(t) { return new (t || DxiColumnComponent)(i0.ɵɵdirectiveInject(i1.NestedOptionHost, 5), i0.ɵɵdirectiveInject(i1.NestedOptionHost, 1)); };
/** @nocollapse */ DxiColumnComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DxiColumnComponent, selectors: [["dxi-column"]], contentQueries: function DxiColumnComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
i0.ɵɵcontentQuery(dirIndex, DxiButtonComponent, 4);
i0.ɵɵcontentQuery(dirIndex, DxiColumnComponent, 4);
i0.ɵɵcontentQuery(dirIndex, DxiValidationRuleComponent, 4);
} if (rf & 2) {
let _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonsChildren = _t);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.columnsChildren = _t);
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.validationRulesChildren = _t);
} }, inputs: { alignment: "alignment", allowEditing: "allowEditing", allowExporting: "allowExporting", allowFiltering: "allowFiltering", allowFixing: "allowFixing", allowGrouping: "allowGrouping", allowHeaderFiltering: "allowHeaderFiltering", allowHiding: "allowHiding", allowReordering: "allowReordering", allowResizing: "allowResizing", allowSearch: "allowSearch", allowSorting: "allowSorting", autoExpandGroup: "autoExpandGroup", buttons: "buttons", calculateCellValue: "calculateCellValue", calculateDisplayValue: "calculateDisplayValue", calculateFilterExpression: "calculateFilterExpression", calculateGroupValue: "calculateGroupValue", calculateSortValue: "calculateSortValue", caption: "caption", cellTemplate: "cellTemplate", columns: "columns", cssClass: "cssClass", customizeText: "customizeText", dataField: "dataField", dataType: "dataType", editCellTemplate: "editCellTemplate", editorOptions: "editorOptions", encodeHtml: "encodeHtml", falseText: "falseText", filterOperations: "filterOperations", filterType: "filterType", filterValue: "filterValue", filterValues: "filterValues", fixed: "fixed", fixedPosition: "fixedPosition", format: "format", formItem: "formItem", groupCellTemplate: "groupCellTemplate", groupIndex: "groupIndex", headerCellTemplate: "headerCellTemplate", headerFilter: "headerFilter", hidingPriority: "hidingPriority", isBand: "isBand", lookup: "lookup", minWidth: "minWidth", name: "name", ownerBand: "ownerBand", renderAsync: "renderAsync", selectedFilterOperation: "selectedFilterOperation", setCellValue: "setCellValue", showEditorAlways: "showEditorAlways", showInColumnChooser: "showInColumnChooser", showWhenGrouped: "showWhenGrouped", sortIndex: "sortIndex", sortingMethod: "sortingMethod", sortOrder: "sortOrder", trueText: "trueText", type: "type", validationRules: "validationRules", visible: "visible", visibleIndex: "visibleIndex", width: "width" }, outputs: { filterValueChange: "filterValueChange", filterValuesChange: "filterValuesChange", groupIndexChange: "groupIndexChange", selectedFilterOperationChange: "selectedFilterOperationChange", sortIndexChange: "sortIndexChange", sortOrderChange: "sortOrderChange", visibleChange: "visibleChange", visibleIndexChange: "visibleIndexChange" }, features: [i0.ɵɵProvidersFeature([NestedOptionHost]), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DxiColumnComponent_Template(rf, ctx) { }, styles: [""] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DxiColumnComponent, [{
type: Component,
args: [{
selector: 'dxi-column',
template: '',
styles: [''],
providers: [NestedOptionHost],
inputs: [
'alignment',
'allowEditing',
'allowExporting',
'allowFiltering',
'allowFixing',
'allowGrouping',
'allowHeaderFiltering',
'allowHiding',
'allowReordering',
'allowResizing',
'allowSearch',
'allowSorting',
'autoExpandGroup',
'buttons',
'calculateCellValue',
'calculateDisplayValue',
'calculateFilterExpression',
'calculateGroupValue',
'calculateSortValue',
'caption',
'cellTemplate',
'columns',
'cssClass',
'customizeText',
'dataField',
'dataType',
'editCellTemplate',
'editorOptions',
'encodeHtml',
'falseText',
'filterOperations',
'filterType',
'filterValue',
'filterValues',
'fixed',
'fixedPosition',
'format',
'formItem',
'groupCellTemplate',
'groupIndex',
'headerCellTemplate',
'headerFilter',
'hidingPriority',
'isBand',
'lookup',
'minWidth',
'name',
'ownerBand',
'renderAsync',
'selectedFilterOperation',
'setCellValue',
'showEditorAlways',
'showInColumnChooser',
'showWhenGrouped',
'sortIndex',
'sortingMethod',
'sortOrder',
'trueText',
'type',
'validationRules',
'visible',
'visibleIndex',
'width'
]
}]
}], function () { return [{ type: i1.NestedOptionHost, decorators: [{
type: SkipSelf
}, {
type: Host
}] }, { type: i1.NestedOptionHost, decorators: [{
type: Host
}] }]; }, { filterValueChange: [{
type: Output
}], filterValuesChange: [{
type: Output
}], groupIndexChange: [{
type: Output
}], selectedFilterOperationChange: [{
type: Output
}], sortIndexChange: [{
type: Output
}], sortOrderChange: [{
type: Output
}], visibleChange: [{
type: Output
}], visibleIndexChange: [{
type: Output
}], buttonsChildren: [{
type: ContentChildren,
args: [forwardRef(() => DxiButtonComponent)]
}], columnsChildren: [{
type: ContentChildren,
args: [forwardRef(() => DxiColumnComponent)]
}], validationRulesChildren: [{
type: ContentChildren,
args: [forwardRef(() => DxiValidationRuleComponent)]
}] }); })();
export class DxiColumnModule {
}
/** @nocollapse */ DxiColumnModule.ɵfac = function DxiColumnModule_Factory(t) { return new (t || DxiColumnModule)(); };
/** @nocollapse */ DxiColumnModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DxiColumnModule });
/** @nocollapse */ DxiColumnModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({});
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DxiColumnModule, [{
type: NgModule,
args: [{
declarations: [
DxiColumnComponent
],
exports: [
DxiColumnComponent
],
}]
}], null, null); })();
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DxiColumnModule, { declarations: [DxiColumnComponent], exports: [DxiColumnComponent] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWR4aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Rpc3QvdWkvbmVzdGVkL2NvbHVtbi1keGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxvQ0FBb0M7QUFFcEMsaURBQWlEO0FBRWpELE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLElBQUksRUFDSixRQUFRLEVBQ1IsTUFBTSxFQUVOLGVBQWUsRUFDZixVQUFVLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUNILGdCQUFnQixHQUNuQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBMEVuRSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBc0ZyRCxZQUFnQyxnQkFBa0MsRUFDbEQsVUFBNEI7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDdEIsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDN0IsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDOUIsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDNUIsRUFBRSxJQUFJLEVBQUUsK0JBQStCLEVBQUU7WUFDekMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ3pCLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1NBQ2pDLENBQUMsQ0FBQztRQUVILGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2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QjtrQkFBM0IsTUFBTTtZQU9HLGdCQUFnQjtrQkFBekIsTUFBTTtZQU9HLDZCQUE2QjtrQkFBdEMsTUFBTTtZQU9HLGVBQWU7a0JBQXhCLE1BQU07WUFPRyxlQUFlO2tCQUF4QixNQUFNO1lBT0csYUFBYTtrQkFBdEIsTUFBTTtZQU9HLGtCQUFrQjtrQkFBM0IsTUFBTTtZQU9ILGVBQWU7a0JBRGxCLGVBQWU7bUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBU2pELGVBQWU7a0JBRGxCLGVBQWU7bUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBU2pELHVCQUF1QjtrQkFEMUIsZUFBZTttQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7O0FBMkNqRSxNQUFNLE9BQU8sZUFBZTs7aUdBQWYsZUFBZTtnR0FBZixlQUFlOzt1RkFBZixlQUFlO2NBUjNCLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osa0JBQWtCO2lCQUNuQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asa0JBQWtCO2lCQUNuQjthQUNGOzt3RkFDWSxlQUFlLG1CQXpIZixrQkFBa0IsYUFBbEIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBkZXZleHRyZW1lLWFuZ3VsYXJcbiAqIFZlcnNpb246IDIyLjEuMTRcbiAqIEJ1aWxkIGRhdGU6IE1vbiBBcHIgMjkgMjAyNFxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjQgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOnVzZS1pbnB1dC1wcm9wZXJ0eS1kZWNvcmF0b3IgKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBOZ01vZHVsZSxcclxuICAgIEhvc3QsXHJcbiAgICBTa2lwU2VsZixcclxuICAgIE91dHB1dCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBRdWVyeUxpc3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5cclxuXHJcblxyXG5pbXBvcnQge1xyXG4gICAgTmVzdGVkT3B0aW9uSG9zdCxcclxufSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IER4aURhdGFHcmlkQ29sdW1uIH0gZnJvbSAnLi9iYXNlL2RhdGEtZ3JpZC1jb2x1bW4tZHhpJztcclxuaW1wb3J0IHsgRHhpQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24tZHhpJztcclxuaW1wb3J0IHsgRHhpVmFsaWRhdGlvblJ1bGVDb21wb25lbnQgfSBmcm9tICcuL3ZhbGlkYXRpb24tcnVsZS1keGknO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdkeGktY29sdW1uJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIHN0eWxlczogWycnXSxcclxuICAgIHByb3ZpZGVyczogW05lc3RlZE9wdGlvbkhvc3RdLFxyXG4gICAgaW5wdXRzOiBbXHJcbiAgICAgICAgJ2FsaWdubWVudCcsXHJcbiAgICAgICAgJ2FsbG93RWRpdGluZycsXHJcbiAgICAgICAgJ2FsbG93RXhwb3J0aW5nJyxcclxuICAgICAgICAnYWxsb3dGaWx0ZXJpbmcnLFxyXG4gICAgICAgICdhbGxvd0ZpeGluZycsXHJcbiAgICAgICAgJ2FsbG93R3JvdXBpbmcnLFxyXG4gICAgICAgICdhbGxvd0hlYWRlckZpbHRlcmluZycsXHJcbiAgICAgICAgJ2FsbG93SGlkaW5nJyxcclxuICAgICAgICAnYWxsb3dSZW9yZGVyaW5nJyxcclxuICAgICAgICAnYWxsb3dSZXNpemluZycsXHJcbiAgICAgICAgJ2FsbG93U2VhcmNoJyxcclxuICAgICAgICAnYWxsb3dTb3J0aW5nJyxcclxuICAgICAgICAnYXV0b0V4cGFuZEdyb3VwJyxcclxuICAgICAgICAnYnV0dG9ucycsXHJcbiAgICAgICAgJ2NhbGN1bGF0ZUNlbGxWYWx1ZScsXHJcbiAgICAgICAgJ2NhbGN1bGF0ZURpc3BsYXlWYWx1ZScsXHJcbiAgICAgICAgJ2NhbGN1bGF0ZUZpbHRlckV4cHJlc3Npb24nLFxyXG4gICAgICAgICdjYWxjdWxhdGVHcm91cFZhbHVlJyxcclxuICAgICAgICAnY2FsY3VsYXRlU29ydFZhbHVlJyxcclxuICAgICAgICAnY2FwdGlvbicsXHJcbiAgICAgICAgJ2NlbGxUZW1wbGF0ZScsXHJcbiAgICAgICAgJ2NvbHVtbnMnLFxyXG4gICAgICAgICdjc3NDbGFzcycsXHJcbiAgICAgICAgJ2N1c3RvbWl6ZVRleHQnLFxyXG4gICAgICAgICdkYXRhRmllbGQnLFxyXG4gICAgICAgICdkYXRhVHlwZScsXHJcbiAgICAgICAgJ2VkaXRDZWxsVGVtcGxhdGUnLFxyXG4gICAgICAgICdlZGl0b3JPcHRpb25zJyxcclxuICAgICAgICAnZW5jb2RlSHRtbCcsXHJcbiAgICAgICAgJ2ZhbHNlVGV4dCcsXHJcbiAgICAgICAgJ2ZpbHRlck9wZXJhdGlvbnMnLFxyXG4gICAgICAgICdmaWx0ZXJUeXBlJyxcclxuICAgICAgICAnZmlsdGVyVmFsdWUnLFxyXG4gICAgICAgICdmaWx0ZXJWYWx1ZXMnLFxyXG4gICAgICAgICdmaXhlZCcsXHJcbiAgICAgICAgJ2ZpeGVkUG9zaXRpb24nLFxyXG4gICAgICAgICdmb3JtYXQnLFxyXG4gICAgICAgICdmb3JtSXRlbScsXHJcbiAgICAgICAgJ2dyb3VwQ2VsbFRlbXBsYXRlJyxcclxuICAgICAgICAnZ3JvdXBJbmRleCcsXHJcbiAgICAgICAgJ2hlYWRlckNlbGxUZW1wbGF0ZScsXHJcbiAgICAgICAgJ2hlYWRlckZpbHRlcicsXHJcbiAgICAgICAgJ2hpZGluZ1ByaW9yaXR5JyxcclxuICAgICAgICAnaXNCYW5kJyxcclxuICAgICAgICAnbG9va3VwJyxcclxuICAgICAgICAnbWluV2lkdGgnLFxyXG4gICAgICAgICduYW1lJyxcclxuICAgICAgICAnb3duZXJCYW5kJyxcclxuICAgICAgICAncmVuZGVyQXN5bmMnLFxyXG4gICAgICAgICdzZWxlY3RlZEZpbHRlck9wZXJhdGlvbicsXHJcbiAgICAgICAgJ3NldENlbGxWYWx1ZScsXHJcbiAgICAgICAgJ3Nob3dFZGl0b3JBbHdheXMnLFxyXG4gICAgICAgICdzaG93SW5Db2x1bW5DaG9vc2VyJyxcclxuICAgICAgICAnc2hvd1doZW5Hcm91cGVkJyxcclxuICAgICAgICAnc29ydEluZGV4JyxcclxuICAgICAgICAnc29ydGluZ01ldGhvZCcsXHJcbiAgICAgICAgJ3NvcnRPcmRlcicsXHJcbiAgICAgICAgJ3RydWVUZXh0JyxcclxuICAgICAgICAndHlwZScsXHJcbiAgICAgICAgJ3ZhbGlkYXRpb25SdWxlcycsXHJcbiAgICAgICAgJ3Zpc2libGUnLFxyXG4gICAgICAgICd2aXNpYmxlSW5kZXgnLFxyXG4gICAgICAgICd3aWR0aCdcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER4aUNvbHVtbkNvbXBvbmVudCBleHRlbmRzIER4aURhdGFHcmlkQ29sdW1uIHtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZmlsdGVyVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnkgfCB1bmRlZmluZWQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBmaWx0ZXJWYWx1ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBcnJheTxhbnk+PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZ3JvdXBJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IHVuZGVmaW5lZD47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdGVkRmlsdGVyT3BlcmF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc29ydEluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc29ydE9yZGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB2aXNpYmxlSW5kZXhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCB1bmRlZmluZWQ+O1xyXG4gICAgcHJvdGVjdGVkIGdldCBfb3B0aW9uUGF0aCgpIHtcclxuICAgICAgICByZXR1cm4gJ2NvbHVtbnMnO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRHhpQnV0dG9uQ29tcG9uZW50KSlcclxuICAgIGdldCBidXR0b25zQ2hpbGRyZW4oKTogUXVlcnlMaXN0PER4aUJ1dHRvbkNvbXBvbmVudD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2J1dHRvbnMnKTtcclxuICAgIH1cclxuICAgIHNldCBidXR0b25zQ2hpbGRyZW4odmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNldENoaWxkcmVuKCdidXR0b25zJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBEeGlDb2x1bW5Db21wb25lbnQpKVxyXG4gICAgZ2V0IGNvbHVtbnNDaGlsZHJlbigpOiBRdWVyeUxpc3Q8RHhpQ29sdW1uQ29tcG9uZW50PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY29sdW1ucycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNvbHVtbnNDaGlsZHJlbih2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ2NvbHVtbnMnLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IER4aVZhbGlkYXRpb25SdWxlQ29tcG9uZW50KSlcclxuICAgIGdldCB2YWxpZGF0aW9uUnVsZXNDaGlsZHJlbigpOiBRdWVyeUxpc3Q8RHhpVmFsaWRhdGlvblJ1bGVDb21wb25lbnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd2YWxpZGF0aW9uUnVsZXMnKTtcclxuICAgIH1cclxuICAgIHNldCB2YWxpZGF0aW9uUnVsZXNDaGlsZHJlbih2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0Q2hpbGRyZW4oJ3ZhbGlkYXRpb25SdWxlcycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBASG9zdCgpIHBhcmVudE9wdGlvbkhvc3Q6IE5lc3RlZE9wdGlvbkhvc3QsXHJcbiAgICAgICAgICAgIEBIb3N0KCkgb3B0aW9uSG9zdDogTmVzdGVkT3B0aW9uSG9zdCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUV2ZW50RW1pdHRlcnMoW1xyXG4gICAgICAgICAgICB7IGVtaXQ6ICdmaWx0ZXJWYWx1ZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZmlsdGVyVmFsdWVzQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdncm91cEluZGV4Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzZWxlY3RlZEZpbHRlck9wZXJhdGlvbkNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc29ydEluZGV4Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzb3J0T3JkZXJDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3Zpc2libGVDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3Zpc2libGVJbmRleENoYW5nZScgfVxyXG4gICAgICAgIF0pO1xyXG5cclxuICAgICAgICBwYXJlbnRPcHRpb25Ib3N0LnNldE5lc3RlZE9wdGlvbih0aGlzKTtcclxuICAgICAgICBvcHRpb25Ib3N0LnNldEhvc3QodGhpcywgdGhpcy5fZnVsbE9wdGlvblBhdGguYmluZCh0aGlzKSk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLl9kZWxldGVSZW1vdmVkT3B0aW9ucyh0aGlzLl9mdWxsT3B0aW9uUGF0aCgpKTtcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEeGlDb2x1bW5Db21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIER4aUNvbHVtbkNvbXBvbmVudFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeGlDb2x1bW5Nb2R1bGUgeyB9XHJcbiJdfQ==