UNPKG

dynamic-mat-table

Version:

dynamic-mat-table is an Angular component for presenting large and complex data with a lightning fast performance (at least 10x faster) and excellent level of control over the presentation.

121 lines 18.6 kB
import { Compiler, CompilerFactory, COMPILER_OPTIONS, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { MatIconModule } from '@angular/material/icon'; import { MatSortModule } from '@angular/material/sort'; import { DragDropModule } from '@angular/cdk/drag-drop'; import { MatTableModule } from '@angular/material/table'; import { ScrollingModule } from '@angular/cdk/scrolling'; import { MatInputModule } from '@angular/material/input'; import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatProgressBarModule } from '@angular/material/progress-bar'; import { MatPaginatorIntl, MatPaginatorModule } from '@angular/material/paginator'; import { MatDividerModule } from '@angular/material/divider'; import { TableIntl } from '../international/table-Intl'; import { TableCoreDirective } from '../cores/table.core.directive'; import { RowMenuModule } from './extensions/row-menu/row-menu.module'; import { DynamicMatTableComponent } from './dynamic-mat-table.component'; import { TableMenuModule } from './extensions/table-menu/table-menu.module'; import { HeaderFilterModule } from './extensions/filter/header-filter.module'; import { TableVirtualScrollModule } from '../cores/table-virtual-scroll.module'; import { PrintTableDialogComponent } from './extensions/print-dialog/print-dialog.component'; import { DynamicCellDirective } from '../cores/dynamic-cell/dynamic-cell.directive'; import { JitCompilerFactory } from '@angular/platform-browser-dynamic'; import { MatMenuModule } from '@angular/material/menu'; import { MatTooltipModule } from '@angular/material/tooltip'; import { MatRippleModule } from '@angular/material/core'; import { TooltipComponent } from '../tooltip/tooltip.component'; import { FullscreenOverlayContainer, OverlayContainer, OverlayModule } from '@angular/cdk/overlay'; import { TooltipDirective } from '../tooltip/tooltip.directive'; import { TemplateOrStringDirective } from '../tooltip/template-or-string.directive'; import { FormsModule } from '@angular/forms'; import { TableSetting } from '../models/table-setting.model'; import { PaginationModule } from '../modules/pagination/pagination.module'; export function createCompiler(compilerFactory) { return compilerFactory.createCompiler(); } export function paginatorLabels(tableIntl) { var _a, _b, _c, _d, _e, _f; const paginatorIntl = new MatPaginatorIntl(); paginatorIntl.firstPageLabel = (_a = tableIntl === null || tableIntl === void 0 ? void 0 : tableIntl.paginatorLabels) === null || _a === void 0 ? void 0 : _a.firstPageLabel; paginatorIntl.getRangeLabel = (_b = tableIntl === null || tableIntl === void 0 ? void 0 : tableIntl.paginatorLabels) === null || _b === void 0 ? void 0 : _b.getRangeLabel; paginatorIntl.itemsPerPageLabel = (_c = tableIntl === null || tableIntl === void 0 ? void 0 : tableIntl.paginatorLabels) === null || _c === void 0 ? void 0 : _c.itemsPerPageLabel; paginatorIntl.lastPageLabel = (_d = tableIntl === null || tableIntl === void 0 ? void 0 : tableIntl.paginatorLabels) === null || _d === void 0 ? void 0 : _d.lastPageLabel; paginatorIntl.nextPageLabel = (_e = tableIntl === null || tableIntl === void 0 ? void 0 : tableIntl.paginatorLabels) === null || _e === void 0 ? void 0 : _e.nextPageLabel; paginatorIntl.previousPageLabel = (_f = tableIntl === null || tableIntl === void 0 ? void 0 : tableIntl.paginatorLabels) === null || _f === void 0 ? void 0 : _f.previousPageLabel; return paginatorIntl || null; } const ExtensionsModule = [HeaderFilterModule, RowMenuModule]; const ɵ0 = {}; export class DynamicMatTableModule { static forRoot(config) { return { ngModule: DynamicMatTableModule, providers: [ { provide: TableSetting, useValue: config, }, ], }; } } /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ DynamicMatTableModule.decorators = [ { type: NgModule, args: [{ imports: [ CommonModule, FormsModule, MatTableModule, ScrollingModule, TableVirtualScrollModule, MatCheckboxModule, MatFormFieldModule, MatInputModule, MatSortModule, MatProgressBarModule, MatIconModule, DragDropModule, TableMenuModule, MatPaginatorModule, MatDialogModule, MatButtonModule, MatMenuModule, MatDividerModule, MatTooltipModule, MatRippleModule, OverlayModule, ExtensionsModule, PaginationModule, // NoopAnimationsModule ], exports: [DynamicMatTableComponent], providers: [ // bugfixes in library compiler not load and must create library { provide: COMPILER_OPTIONS, useValue: ɵ0, multi: true }, { provide: CompilerFactory, useClass: JitCompilerFactory, deps: [COMPILER_OPTIONS] }, { provide: Compiler, useFactory: createCompiler, deps: [CompilerFactory] }, TableIntl, { provide: MatPaginatorIntl, useFactory: paginatorLabels, deps: [TableIntl], }, { provide: OverlayContainer, useClass: FullscreenOverlayContainer } ], declarations: [ DynamicMatTableComponent, PrintTableDialogComponent, TableCoreDirective, DynamicCellDirective, TooltipComponent, TooltipDirective, TemplateOrStringDirective ], entryComponents: [PrintTableDialogComponent, TooltipComponent], },] } ]; export { ɵ0 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tYXQtdGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHluYW1pYy1tYXQtdGFibGUvc3JjL2xpYi9keW5hbWljLW1hdC10YWJsZS9keW5hbWljLW1hdC10YWJsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3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b0JBQ3pCLGtCQUFrQjtvQkFDbEIsb0JBQW9CO29CQUNwQixnQkFBZ0I7b0JBQ2hCLGdCQUFnQjtvQkFDaEIseUJBQXlCO2lCQUMxQjtnQkFDRCxlQUFlLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxnQkFBZ0IsQ0FBQzthQUMvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBpbGVyLCBDb21waWxlckZhY3RvcnksIENPTVBJTEVSX09QVElPTlMsIE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9ySW50bCwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBUYWJsZUludGwgfSBmcm9tICcuLi9pbnRlcm5hdGlvbmFsL3RhYmxlLUludGwnO1xyXG5pbXBvcnQgeyBUYWJsZUNvcmVEaXJlY3RpdmUgfSBmcm9tICcuLi9jb3Jlcy90YWJsZS5jb3JlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJvd01lbnVNb2R1bGUgfSBmcm9tICcuL2V4dGVuc2lvbnMvcm93LW1lbnUvcm93LW1lbnUubW9kdWxlJztcclxuaW1wb3J0IHsgRHluYW1pY01hdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLW1hdC10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJsZU1lbnVNb2R1bGUgfSBmcm9tICcuL2V4dGVuc2lvbnMvdGFibGUtbWVudS90YWJsZS1tZW51Lm1vZHVsZSc7XHJcbmltcG9ydCB7IEhlYWRlckZpbHRlck1vZHVsZSB9IGZyb20gJy4vZXh0ZW5zaW9ucy9maWx0ZXIvaGVhZGVyLWZpbHRlci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBUYWJsZVZpcnR1YWxTY3JvbGxNb2R1bGUgfSBmcm9tICcuLi9jb3Jlcy90YWJsZS12aXJ0dWFsLXNjcm9sbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBQcmludFRhYmxlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9leHRlbnNpb25zL3ByaW50LWRpYWxvZy9wcmludC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHluYW1pY0NlbGxEaXJlY3RpdmUgfSBmcm9tICcuLi9jb3Jlcy9keW5hbWljLWNlbGwvZHluYW1pYy1jZWxsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEppdENvbXBpbGVyRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRSaXBwbGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGdWxsc2NyZWVuT3ZlcmxheUNvbnRhaW5lciwgT3ZlcmxheUNvbnRhaW5lciwgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZU9yU3RyaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcC90ZW1wbGF0ZS1vci1zdHJpbmcuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRhYmxlU2V0dGluZyB9IGZyb20gJy4uL21vZGVscy90YWJsZS1zZXR0aW5nLm1vZGVsJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJy4uL21vZHVsZXMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1vZHVsZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tcGlsZXIoY29tcGlsZXJGYWN0b3J5OiBDb21waWxlckZhY3RvcnkpOiBDb21waWxlciB7XHJcbiAgcmV0dXJuIGNvbXBpbGVyRmFjdG9yeS5jcmVhdGVDb21waWxlcigpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFnaW5hdG9yTGFiZWxzKHRhYmxlSW50bDogVGFibGVJbnRsKSB7XHJcbiAgY29uc3QgcGFnaW5hdG9ySW50bCA9IG5ldyBNYXRQYWdpbmF0b3JJbnRsKCk7XHJcbiAgcGFnaW5hdG9ySW50bC5maXJzdFBhZ2VMYWJlbCA9IHRhYmxlSW50bD8ucGFnaW5hdG9yTGFiZWxzPy5maXJzdFBhZ2VMYWJlbDtcclxuICBwYWdpbmF0b3JJbnRsLmdldFJhbmdlTGFiZWwgPSB0YWJsZUludGw/LnBhZ2luYXRvckxhYmVscz8uZ2V0UmFuZ2VMYWJlbDtcclxuICBwYWdpbmF0b3JJbnRsLml0ZW1zUGVyUGFnZUxhYmVsID0gdGFibGVJbnRsPy5wYWdpbmF0b3JMYWJlbHM/Lml0ZW1zUGVyUGFnZUxhYmVsO1xyXG4gIHBhZ2luYXRvckludGwubGFzdFBhZ2VMYWJlbCA9IHRhYmxlSW50bD8ucGFnaW5hdG9yTGFiZWxzPy5sYXN0UGFnZUxhYmVsO1xyXG4gIHBhZ2luYXRvckludGwubmV4dFBhZ2VMYWJlbCA9IHRhYmxlSW50bD8ucGFnaW5hdG9yTGFiZWxzPy5uZXh0UGFnZUxhYmVsO1xyXG4gIHBhZ2luYXRvckludGwucHJldmlvdXNQYWdlTGFiZWwgPSB0YWJsZUludGw/LnBhZ2luYXRvckxhYmVscz8ucHJldmlvdXNQYWdlTGFiZWw7XHJcbiAgcmV0dXJuIHBhZ2luYXRvckludGwgfHwgbnVsbDtcclxufVxyXG5cclxuY29uc3QgRXh0ZW5zaW9uc01vZHVsZSA9IFtIZWFkZXJGaWx0ZXJNb2R1bGUsIFJvd01lbnVNb2R1bGVdO1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBTY3JvbGxpbmdNb2R1bGUsXHJcbiAgICBUYWJsZVZpcnR1YWxTY3JvbGxNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0U29ydE1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgVGFibGVNZW51TW9kdWxlLFxyXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgTWF0UmlwcGxlTW9kdWxlLFxyXG4gICAgT3ZlcmxheU1vZHVsZSxcclxuICAgIEV4dGVuc2lvbnNNb2R1bGUsXHJcbiAgICBQYWdpbmF0aW9uTW9kdWxlLFxyXG4gICAgLy8gTm9vcEFuaW1hdGlvbnNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtEeW5hbWljTWF0VGFibGVDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgLy8gYnVnZml4ZXMgaW4gbGlicmFyeSBjb21waWxlciBub3QgbG9hZCBhbmQgbXVzdCBjcmVhdGUgbGlicmFyeVxyXG4gICAgeyBwcm92aWRlOiBDT01QSUxFUl9PUFRJT05TLCB1c2VWYWx1ZToge30sIG11bHRpOiB0cnVlIH0sXHJcbiAgICB7IHByb3ZpZGU6IENvbXBpbGVyRmFjdG9yeSwgdXNlQ2xhc3M6IEppdENvbXBpbGVyRmFjdG9yeSwgZGVwczogW0NPTVBJTEVSX09QVElPTlNdIH0sXHJcbiAgICB7IHByb3ZpZGU6IENvbXBpbGVyLCB1c2VGYWN0b3J5OiBjcmVhdGVDb21waWxlciwgZGVwczogW0NvbXBpbGVyRmFjdG9yeV0gfSxcclxuICAgIFRhYmxlSW50bCxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTWF0UGFnaW5hdG9ySW50bCxcclxuICAgICAgdXNlRmFjdG9yeTogcGFnaW5hdG9yTGFiZWxzLFxyXG4gICAgICBkZXBzOiBbVGFibGVJbnRsXSxcclxuICAgIH0sXHJcbiAgICB7IHByb3ZpZGU6IE92ZXJsYXlDb250YWluZXIsIHVzZUNsYXNzOiBGdWxsc2NyZWVuT3ZlcmxheUNvbnRhaW5lciB9XHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIER5bmFtaWNNYXRUYWJsZUNvbXBvbmVudCxcclxuICAgIFByaW50VGFibGVEaWFsb2dDb21wb25lbnQsXHJcbiAgICBUYWJsZUNvcmVEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljQ2VsbERpcmVjdGl2ZSxcclxuICAgIFRvb2x0aXBDb21wb25lbnQsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgVGVtcGxhdGVPclN0cmluZ0RpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbUHJpbnRUYWJsZURpYWxvZ0NvbXBvbmVudCwgVG9vbHRpcENvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljTWF0VGFibGVNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogVGFibGVTZXR0aW5nKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEeW5hbWljTWF0VGFibGVNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBEeW5hbWljTWF0VGFibGVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFRhYmxlU2V0dGluZyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==