dfx-bootstrap-table
Version:
Angular table CDK implementation for Bootstrap with filtering, sorting and pagination.
164 lines • 17.3 kB
JavaScript
/**
* @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