UNPKG

dfx-bootstrap-table

Version:

Angular table CDK implementation for Bootstrap with filtering, sorting and pagination.

164 lines 17.3 kB
/** * @license * Original work Copyright Google LLC All Rights Reserved. * Modified work Copyright DatePoll-Systems * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { CdkCell, CdkCellDef, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkHeaderCell, CdkHeaderCellDef, CdkTable, } from '@angular/cdk/table'; import { Directive, HostBinding, Input } from '@angular/core'; import * as i0 from "@angular/core"; /** * Cell definition for the ngb-table. * Captures the template of a column's data row cell as well as cell-specific properties. */ export class NgbCellDef extends CdkCellDef { // ngTemplateContextGuard flag to help with the Language Service static ngTemplateContextGuard(dir, ctx) { return true; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbCellDef, isStandalone: true, selector: "[ngbCellDef]", inputs: { ngbCellDefTable: "ngbCellDefTable" }, providers: [{ provide: CdkCellDef, useExisting: NgbCellDef }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbCellDef, decorators: [{ type: Directive, args: [{ selector: '[ngbCellDef]', providers: [{ provide: CdkCellDef, useExisting: NgbCellDef }], standalone: true, }] }], propDecorators: { ngbCellDefTable: [{ type: Input }] } }); /** * Header cell definition for the ngb-table. * Captures the template of a column's header cell and as well as cell-specific properties. */ export class NgbHeaderCellDef extends CdkHeaderCellDef { constructor() { super(...arguments); this.whiteSpace = 'nowrap'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbHeaderCellDef, isStandalone: true, selector: "[ngbHeaderCellDef]", inputs: { whiteSpace: "whiteSpace" }, host: { properties: { "style.white-space": "this.whiteSpace" } }, providers: [{ provide: CdkHeaderCellDef, useExisting: NgbHeaderCellDef }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderCellDef, decorators: [{ type: Directive, args: [{ selector: '[ngbHeaderCellDef]', providers: [{ provide: CdkHeaderCellDef, useExisting: NgbHeaderCellDef }], standalone: true, }] }], propDecorators: { whiteSpace: [{ type: HostBinding, args: ['style.white-space'] }, { type: Input }] } }); /** * Footer cell definition for the ngb-table. * Captures the template of a column's footer cell and as well as cell-specific properties. */ export class NgbFooterCellDef extends CdkFooterCellDef { constructor() { super(...arguments); this.whiteSpace = 'nowrap'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterCellDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbFooterCellDef, isStandalone: true, selector: "[ngbFooterCellDef]", inputs: { whiteSpace: "whiteSpace" }, host: { properties: { "style.white-space": "this.whiteSpace" } }, providers: [{ provide: CdkFooterCellDef, useExisting: NgbFooterCellDef }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterCellDef, decorators: [{ type: Directive, args: [{ selector: '[ngbFooterCellDef]', providers: [{ provide: CdkFooterCellDef, useExisting: NgbFooterCellDef }], standalone: true, }] }], propDecorators: { whiteSpace: [{ type: HostBinding, args: ['style.white-space'] }, { type: Input }] } }); /** * Column definition for the ngb-table. * Defines a set of cells available for a table column. */ export class NgbColumnDef extends CdkColumnDef { /** Unique name for this column. */ get name() { return this._name; } set name(name) { this._setNameInput(name); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbColumnDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbColumnDef, isStandalone: true, selector: "[ngbColumnDef]", inputs: { name: ["ngbColumnDef", "name"] }, providers: [ { provide: CdkColumnDef, useExisting: NgbColumnDef }, { provide: 'NGB_SORT_HEADER_COLUMN_DEF', useExisting: NgbColumnDef }, ], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbColumnDef, decorators: [{ type: Directive, args: [{ selector: '[ngbColumnDef]', providers: [ { provide: CdkColumnDef, useExisting: NgbColumnDef }, { provide: 'NGB_SORT_HEADER_COLUMN_DEF', useExisting: NgbColumnDef }, ], standalone: true, }] }], propDecorators: { name: [{ type: Input, args: ['ngbColumnDef'] }] } }); /** Header cell template container that adds the right classes and role. */ export class NgbHeaderCell extends CdkHeaderCell { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderCell, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbHeaderCell, isStandalone: true, selector: "ngb-header-cell, th[ngb-header-cell]", host: { attributes: { "role": "columnheader" } }, usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderCell, decorators: [{ type: Directive, args: [{ selector: 'ngb-header-cell, th[ngb-header-cell]', host: { role: 'columnheader', }, standalone: true, }] }] }); /** Footer cell template container that adds the right classes and role. */ export class NgbFooterCell extends CdkFooterCell { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterCell, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbFooterCell, isStandalone: true, selector: "ngb-footer-cell, td[ngb-footer-cell]", usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterCell, decorators: [{ type: Directive, args: [{ selector: 'ngb-footer-cell, td[ngb-footer-cell]', standalone: true, }] }] }); /** Cell template container that adds the right classes and role. */ export class NgbCell extends CdkCell { constructor() { super(...arguments); this.whiteSpace = 'nowrap'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbCell, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbCell, isStandalone: true, selector: "ngb-cell, td[ngb-cell]", inputs: { whiteSpace: "whiteSpace" }, host: { properties: { "style.white-space": "this.whiteSpace" } }, usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbCell, decorators: [{ type: Directive, args: [{ selector: 'ngb-cell, td[ngb-cell]', standalone: true, }] }], propDecorators: { whiteSpace: [{ type: HostBinding, args: ['style.white-space'] }, { type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGZ4LWJvb3RzdHJhcC10YWJsZS9zcmMvbGliL3RhYmxlL2NlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFDTCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFlBQVksRUFDWixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsUUFBUSxHQUNULE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU5RDs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sVUFBYyxTQUFRLFVBQVU7SUFJM0MsZ0VBQWdFO0lBQ2hFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBSSxHQUFrQixFQUFFLEdBQVk7UUFDL0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQVBVLFVBQVU7a0dBQVYsVUFBVSwyR0FIVixDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUM7OzJGQUdsRCxVQUFVO2tCQUx0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxZQUFZLEVBQUUsQ0FBQztvQkFDN0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUdVLGVBQWU7c0JBQXZCLEtBQUs7O0FBUVI7OztHQUdHO0FBTUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUx0RDs7UUFRRSxlQUFVLEdBQUcsUUFBUSxDQUFDO0tBQ3ZCOzhHQUpZLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHlLQUhoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDOzsyRkFHOUQsZ0JBQWdCO2tCQUw1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQztvQkFDekUsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUlDLFVBQVU7c0JBRlQsV0FBVzt1QkFBQyxtQkFBbUI7O3NCQUMvQixLQUFLOztBQUlSOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBZ0I7SUFMdEQ7O1FBUUUsZUFBVSxHQUFHLFFBQVEsQ0FBQztLQUN2Qjs4R0FKWSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix5S0FIaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQzs7MkZBRzlELGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLGtCQUFrQixFQUFFLENBQUM7b0JBQ3pFLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFJQyxVQUFVO3NCQUZULFdBQVc7dUJBQUMsbUJBQW1COztzQkFDL0IsS0FBSzs7QUFJUjs7O0dBR0c7QUFTSCxNQUFNLE9BQU8sWUFBYSxTQUFRLFlBQVk7SUFDNUMsbUNBQW1DO0lBQ25DLElBQ2EsSUFBSTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBYSxJQUFJLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBVFUsWUFBWTtrR0FBWixZQUFZLHlHQU5aO1lBQ1QsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7WUFDcEQsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRTtTQUNyRTs7MkZBR1UsWUFBWTtrQkFSeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsY0FBYyxFQUFFO3dCQUNwRCxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLGNBQWMsRUFBRTtxQkFDckU7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUljLElBQUk7c0JBRGhCLEtBQUs7dUJBQUMsY0FBYzs7QUFVdkIsMkVBQTJFO0FBUTNFLE1BQU0sT0FBTyxhQUFjLFNBQVEsYUFBYTs4R0FBbkMsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQVB6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsY0FBYztxQkFDckI7b0JBQ0QsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQUdELDJFQUEyRTtBQUszRSxNQUFNLE9BQU8sYUFBYyxTQUFRLGFBQWE7OEdBQW5DLGFBQWE7a0dBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFKekIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBR0Qsb0VBQW9FO0FBS3BFLE1BQU0sT0FBTyxPQUFRLFNBQVEsT0FBTztJQUpwQzs7UUFPRSxlQUFVLEdBQUcsUUFBUSxDQUFDO0tBQ3ZCOzhHQUpZLE9BQU87a0dBQVAsT0FBTzs7MkZBQVAsT0FBTztrQkFKbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBSUMsVUFBVTtzQkFGVCxXQUFXO3VCQUFDLG1CQUFtQjs7c0JBQy9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBPcmlnaW5hbCB3b3JrIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBNb2RpZmllZCB3b3JrIENvcHlyaWdodCBEYXRlUG9sbC1TeXN0ZW1zXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtcbiAgQ2RrQ2VsbCxcbiAgQ2RrQ2VsbERlZixcbiAgQ2RrQ29sdW1uRGVmLFxuICBDZGtGb290ZXJDZWxsLFxuICBDZGtGb290ZXJDZWxsRGVmLFxuICBDZGtIZWFkZXJDZWxsLFxuICBDZGtIZWFkZXJDZWxsRGVmLFxuICBDZGtUYWJsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ2VsbCBkZWZpbml0aW9uIGZvciB0aGUgbmdiLXRhYmxlLlxuICogQ2FwdHVyZXMgdGhlIHRlbXBsYXRlIG9mIGEgY29sdW1uJ3MgZGF0YSByb3cgY2VsbCBhcyB3ZWxsIGFzIGNlbGwtc3BlY2lmaWMgcHJvcGVydGllcy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25nYkNlbGxEZWZdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDZGtDZWxsRGVmLCB1c2VFeGlzdGluZzogTmdiQ2VsbERlZiB9XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmdiQ2VsbERlZjxUPiBleHRlbmRzIENka0NlbGxEZWYge1xuICAvLyBsZXZlcmFnaW5nIHN5bnRhY3RpYy1zdWdhciBzeW50YXggd2hlbiB3ZSB1c2UgKm5nYkNlbGxEZWZcbiAgQElucHV0KCkgbmdiQ2VsbERlZlRhYmxlPzogQ2RrVGFibGU8VD47XG5cbiAgLy8gbmdUZW1wbGF0ZUNvbnRleHRHdWFyZCBmbGFnIHRvIGhlbHAgd2l0aCB0aGUgTGFuZ3VhZ2UgU2VydmljZVxuICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxUPihkaXI6IE5nYkNlbGxEZWY8VD4sIGN0eDogdW5rbm93bik6IGN0eCBpcyB7ICRpbXBsaWNpdDogVDsgaW5kZXg6IG51bWJlciB9IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEhlYWRlciBjZWxsIGRlZmluaXRpb24gZm9yIHRoZSBuZ2ItdGFibGUuXG4gKiBDYXB0dXJlcyB0aGUgdGVtcGxhdGUgb2YgYSBjb2x1bW4ncyBoZWFkZXIgY2VsbCBhbmQgYXMgd2VsbCBhcyBjZWxsLXNwZWNpZmljIHByb3BlcnRpZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ2JIZWFkZXJDZWxsRGVmXScsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ2RrSGVhZGVyQ2VsbERlZiwgdXNlRXhpc3Rpbmc6IE5nYkhlYWRlckNlbGxEZWYgfV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5nYkhlYWRlckNlbGxEZWYgZXh0ZW5kcyBDZGtIZWFkZXJDZWxsRGVmIHtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aGl0ZS1zcGFjZScpXG4gIEBJbnB1dCgpXG4gIHdoaXRlU3BhY2UgPSAnbm93cmFwJztcbn1cblxuLyoqXG4gKiBGb290ZXIgY2VsbCBkZWZpbml0aW9uIGZvciB0aGUgbmdiLXRhYmxlLlxuICogQ2FwdHVyZXMgdGhlIHRlbXBsYXRlIG9mIGEgY29sdW1uJ3MgZm9vdGVyIGNlbGwgYW5kIGFzIHdlbGwgYXMgY2VsbC1zcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdiRm9vdGVyQ2VsbERlZl0nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENka0Zvb3RlckNlbGxEZWYsIHVzZUV4aXN0aW5nOiBOZ2JGb290ZXJDZWxsRGVmIH1dLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2JGb290ZXJDZWxsRGVmIGV4dGVuZHMgQ2RrRm9vdGVyQ2VsbERlZiB7XG4gIEBIb3N0QmluZGluZygnc3R5bGUud2hpdGUtc3BhY2UnKVxuICBASW5wdXQoKVxuICB3aGl0ZVNwYWNlID0gJ25vd3JhcCc7XG59XG5cbi8qKlxuICogQ29sdW1uIGRlZmluaXRpb24gZm9yIHRoZSBuZ2ItdGFibGUuXG4gKiBEZWZpbmVzIGEgc2V0IG9mIGNlbGxzIGF2YWlsYWJsZSBmb3IgYSB0YWJsZSBjb2x1bW4uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ2JDb2x1bW5EZWZdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBDZGtDb2x1bW5EZWYsIHVzZUV4aXN0aW5nOiBOZ2JDb2x1bW5EZWYgfSxcbiAgICB7IHByb3ZpZGU6ICdOR0JfU09SVF9IRUFERVJfQ09MVU1OX0RFRicsIHVzZUV4aXN0aW5nOiBOZ2JDb2x1bW5EZWYgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmdiQ29sdW1uRGVmIGV4dGVuZHMgQ2RrQ29sdW1uRGVmIHtcbiAgLyoqIFVuaXF1ZSBuYW1lIGZvciB0aGlzIGNvbHVtbi4gKi9cbiAgQElucHV0KCduZ2JDb2x1bW5EZWYnKVxuICBvdmVycmlkZSBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0IG5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2V0TmFtZUlucHV0KG5hbWUpO1xuICB9XG59XG5cbi8qKiBIZWFkZXIgY2VsbCB0ZW1wbGF0ZSBjb250YWluZXIgdGhhdCBhZGRzIHRoZSByaWdodCBjbGFzc2VzIGFuZCByb2xlLiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmdiLWhlYWRlci1jZWxsLCB0aFtuZ2ItaGVhZGVyLWNlbGxdJyxcbiAgaG9zdDoge1xuICAgIHJvbGU6ICdjb2x1bW5oZWFkZXInLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2JIZWFkZXJDZWxsIGV4dGVuZHMgQ2RrSGVhZGVyQ2VsbCB7fVxuXG4vKiogRm9vdGVyIGNlbGwgdGVtcGxhdGUgY29udGFpbmVyIHRoYXQgYWRkcyB0aGUgcmlnaHQgY2xhc3NlcyBhbmQgcm9sZS4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nYi1mb290ZXItY2VsbCwgdGRbbmdiLWZvb3Rlci1jZWxsXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5nYkZvb3RlckNlbGwgZXh0ZW5kcyBDZGtGb290ZXJDZWxsIHt9XG5cbi8qKiBDZWxsIHRlbXBsYXRlIGNvbnRhaW5lciB0aGF0IGFkZHMgdGhlIHJpZ2h0IGNsYXNzZXMgYW5kIHJvbGUuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICduZ2ItY2VsbCwgdGRbbmdiLWNlbGxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmdiQ2VsbCBleHRlbmRzIENka0NlbGwge1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndoaXRlLXNwYWNlJylcbiAgQElucHV0KClcbiAgd2hpdGVTcGFjZSA9ICdub3dyYXAnO1xufVxuIl19