UNPKG

dfx-bootstrap-table

Version:

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

158 lines 22.2 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 { CdkCellOutlet, CdkFooterRow, CdkFooterRowDef, CdkHeaderRow, CdkHeaderRowDef, CdkNoDataRow, CdkRow, CdkRowDef, } from '@angular/cdk/table'; import { ChangeDetectionStrategy, Component, Directive, ViewEncapsulation, booleanAttribute } from '@angular/core'; import * as i0 from "@angular/core"; // We can't reuse `CDK_ROW_TEMPLATE` because it's incompatible with local compilation mode. const ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`; /** * Header row definition for the ngb-table. * Captures the header row's template and other header properties such as the columns to display. */ export class NgbHeaderRowDef extends CdkHeaderRowDef { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.2", type: NgbHeaderRowDef, isStandalone: true, selector: "[ngbHeaderRowDef]", inputs: { columns: ["ngbHeaderRowDef", "columns"], sticky: ["ngbHeaderRowDefSticky", "sticky", booleanAttribute] }, providers: [{ provide: CdkHeaderRowDef, useExisting: NgbHeaderRowDef }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderRowDef, decorators: [{ type: Directive, args: [{ selector: '[ngbHeaderRowDef]', providers: [{ provide: CdkHeaderRowDef, useExisting: NgbHeaderRowDef }], inputs: [ { name: 'columns', alias: 'ngbHeaderRowDef' }, { name: 'sticky', alias: 'ngbHeaderRowDefSticky', transform: booleanAttribute }, ], standalone: true, }] }] }); /** * Footer row definition for the ngb-table. * Captures the footer row's template and other footer properties such as the columns to display. */ export class NgbFooterRowDef extends CdkFooterRowDef { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.3.2", type: NgbFooterRowDef, isStandalone: true, selector: "[ngbFooterRowDef]", inputs: { columns: ["ngbFooterRowDef", "columns"], sticky: ["ngbFooterRowDefSticky", "sticky", booleanAttribute] }, providers: [{ provide: CdkFooterRowDef, useExisting: NgbFooterRowDef }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterRowDef, decorators: [{ type: Directive, args: [{ selector: '[ngbFooterRowDef]', providers: [{ provide: CdkFooterRowDef, useExisting: NgbFooterRowDef }], inputs: [ { name: 'columns', alias: 'ngbFooterRowDef' }, { name: 'sticky', alias: 'ngbFooterRowDefSticky', transform: booleanAttribute }, ], standalone: true, }] }] }); /** * Data row definition for the ngb-table. * Captures the data row's template and other properties such as the columns to display and * a when predicate that describes when this row should be used. */ export class NgbRowDef extends CdkRowDef { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbRowDef, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbRowDef, isStandalone: true, selector: "[ngbRowDef]", inputs: { columns: ["ngbRowDefColumns", "columns"], when: ["ngbRowDefWhen", "when"] }, providers: [{ provide: CdkRowDef, useExisting: NgbRowDef }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbRowDef, decorators: [{ type: Directive, args: [{ selector: '[ngbRowDef]', providers: [{ provide: CdkRowDef, useExisting: NgbRowDef }], inputs: [ { name: 'columns', alias: 'ngbRowDefColumns' }, { name: 'when', alias: 'ngbRowDefWhen' }, ], standalone: true, }] }] }); /** Header template container that contains the cell outlet. Adds the right class and role. */ export class NgbHeaderRow extends CdkHeaderRow { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderRow, deps: null, target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: NgbHeaderRow, isStandalone: true, selector: "ngb-header-row, tr[ngb-header-row]", host: { attributes: { "role": "row" } }, providers: [{ provide: CdkHeaderRow, useExisting: NgbHeaderRow }], exportAs: ["ngbHeaderRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbHeaderRow, decorators: [{ type: Component, args: [{ selector: 'ngb-header-row, tr[ngb-header-row]', template: ROW_TEMPLATE, host: { role: 'row', }, // See note on CdkTable for explanation on why this uses the default change detection strategy. // tslint:disable-next-line:validate-decorators changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, exportAs: 'ngbHeaderRow', providers: [{ provide: CdkHeaderRow, useExisting: NgbHeaderRow }], imports: [CdkCellOutlet], }] }] }); /** Footer template container that contains the cell outlet. Adds the right class and role. */ export class NgbFooterRow extends CdkFooterRow { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterRow, deps: null, target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: NgbFooterRow, isStandalone: true, selector: "ngb-footer-row, tr[ngb-footer-row]", host: { attributes: { "role": "row" } }, providers: [{ provide: CdkFooterRow, useExisting: NgbFooterRow }], exportAs: ["ngbFooterRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbFooterRow, decorators: [{ type: Component, args: [{ selector: 'ngb-footer-row, tr[ngb-footer-row]', template: ROW_TEMPLATE, host: { role: 'row', }, // See note on CdkTable for explanation on why this uses the default change detection strategy. // tslint:disable-next-line:validate-decorators changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, exportAs: 'ngbFooterRow', providers: [{ provide: CdkFooterRow, useExisting: NgbFooterRow }], imports: [CdkCellOutlet], }] }] }); /** Data row template container that contains the cell outlet. Adds the right class and role. */ export class NgbRow extends CdkRow { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbRow, deps: null, target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.2", type: NgbRow, isStandalone: true, selector: "ngb-row, tr[ngb-row]", host: { attributes: { "role": "row" } }, providers: [{ provide: CdkRow, useExisting: NgbRow }], exportAs: ["ngbRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbRow, decorators: [{ type: Component, args: [{ selector: 'ngb-row, tr[ngb-row]', template: ROW_TEMPLATE, host: { role: 'row', }, // See note on CdkTable for explanation on why this uses the default change detection strategy. // tslint:disable-next-line:validate-decorators changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, exportAs: 'ngbRow', providers: [{ provide: CdkRow, useExisting: NgbRow }], imports: [CdkCellOutlet], }] }] }); /** Row that can be used to display a message when no data is shown in the table. */ export class NgbNoDataRow extends CdkNoDataRow { constructor() { super(...arguments); this._cellSelector = 'td, ngb-cell, [ngb-cell], .ngb-cell'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbNoDataRow, deps: null, target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.2", type: NgbNoDataRow, isStandalone: true, selector: "ng-template[ngbNoDataRow]", providers: [{ provide: CdkNoDataRow, useExisting: NgbNoDataRow }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: NgbNoDataRow, decorators: [{ type: Directive, args: [{ selector: 'ng-template[ngbNoDataRow]', providers: [{ provide: CdkNoDataRow, useExisting: NgbNoDataRow }], standalone: true, }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZngtYm9vdHN0cmFwLXRhYmxlL3NyYy9saWIvdGFibGUvcm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUFDSCxPQUFPLEVBQ0wsYUFBYSxFQUNiLFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVuSCwyRkFBMkY7QUFDM0YsTUFBTSxZQUFZLEdBQUcsNkNBQTZDLENBQUM7QUFFbkU7OztHQUdHO0FBVUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTs4R0FBdkMsZUFBZTtrR0FBZixlQUFlLG9KQUpxQyxnQkFBZ0IsZ0JBSHBFLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQzs7MkZBTzVELGVBQWU7a0JBVDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsaUJBQWlCLEVBQUUsQ0FBQztvQkFDdkUsTUFBTSxFQUFFO3dCQUNOLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7d0JBQzdDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO3FCQUNoRjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBR0Q7OztHQUdHO0FBVUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTs4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QUFPLFNBQVEsTUFBTTs4R0FBckIsTUFBTTtrR0FBTixNQUFNLDRHQUhOLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxnTEFDM0MsYUFBYTs7MkZBRVosTUFBTTtrQkFkbEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxLQUFLO3FCQUNaO29CQUNELCtGQUErRjtvQkFDL0YsK0NBQStDO29CQUMvQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztvQkFDaEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRSxRQUFRO29CQUNsQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxRQUFRLEVBQUUsQ0FBQztvQkFDckQsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6Qjs7QUFHRCxvRkFBb0Y7QUFNcEYsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0lBTDlDOztRQU1XLGtCQUFhLEdBQUcscUNBQXFDLENBQUM7S0FDaEU7OEdBRlksWUFBWTtrR0FBWixZQUFZLHdFQUhaLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQzs7MkZBR3RELFlBQVk7a0JBTHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsY0FBYyxFQUFFLENBQUM7b0JBQ2pFLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIE9yaWdpbmFsIHdvcmsgQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIE1vZGlmaWVkIHdvcmsgQ29weXJpZ2h0IERhdGVQb2xsLVN5c3RlbXNcbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1xuICBDZGtDZWxsT3V0bGV0LFxuICBDZGtGb290ZXJSb3csXG4gIENka0Zvb3RlclJvd0RlZixcbiAgQ2RrSGVhZGVyUm93LFxuICBDZGtIZWFkZXJSb3dEZWYsXG4gIENka05vRGF0YVJvdyxcbiAgQ2RrUm93LFxuICBDZGtSb3dEZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEaXJlY3RpdmUsIFZpZXdFbmNhcHN1bGF0aW9uLCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIFdlIGNhbid0IHJldXNlIGBDREtfUk9XX1RFTVBMQVRFYCBiZWNhdXNlIGl0J3MgaW5jb21wYXRpYmxlIHdpdGggbG9jYWwgY29tcGlsYXRpb24gbW9kZS5cbmNvbnN0IFJPV19URU1QTEFURSA9IGA8bmctY29udGFpbmVyIGNka0NlbGxPdXRsZXQ+PC9uZy1jb250YWluZXI+YDtcblxuLyoqXG4gKiBIZWFkZXIgcm93IGRlZmluaXRpb24gZm9yIHRoZSBuZ2ItdGFibGUuXG4gKiBDYXB0dXJlcyB0aGUgaGVhZGVyIHJvdydzIHRlbXBsYXRlIGFuZCBvdGhlciBoZWFkZXIgcHJvcGVydGllcyBzdWNoIGFzIHRoZSBjb2x1bW5zIHRvIGRpc3BsYXkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ2JIZWFkZXJSb3dEZWZdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDZGtIZWFkZXJSb3dEZWYsIHVzZUV4aXN0aW5nOiBOZ2JIZWFkZXJSb3dEZWYgfV0sXG4gIGlucHV0czogW1xuICAgIHsgbmFtZTogJ2NvbHVtbnMnLCBhbGlhczogJ25nYkhlYWRlclJvd0RlZicgfSxcbiAgICB7IG5hbWU6ICdzdGlja3knLCBhbGlhczogJ25nYkhlYWRlclJvd0RlZlN0aWNreScsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2JIZWFkZXJSb3dEZWYgZXh0ZW5kcyBDZGtIZWFkZXJSb3dEZWYge31cblxuLyoqXG4gKiBGb290ZXIgcm93IGRlZmluaXRpb24gZm9yIHRoZSBuZ2ItdGFibGUuXG4gKiBDYXB0dXJlcyB0aGUgZm9vdGVyIHJvdydzIHRlbXBsYXRlIGFuZCBvdGhlciBmb290ZXIgcHJvcGVydGllcyBzdWNoIGFzIHRoZSBjb2x1bW5zIHRvIGRpc3BsYXkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ2JGb290ZXJSb3dEZWZdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDZGtGb290ZXJSb3dEZWYsIHVzZUV4aXN0aW5nOiBOZ2JGb290ZXJSb3dEZWYgfV0sXG4gIGlucHV0czogW1xuICAgIHsgbmFtZTogJ2NvbHVtbnMnLCBhbGlhczogJ25nYkZvb3RlclJvd0RlZicgfSxcbiAgICB7IG5hbWU6ICdzdGlja3knLCBhbGlhczogJ25nYkZvb3RlclJvd0RlZlN0aWNreScsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2JGb290ZXJSb3dEZWYgZXh0ZW5kcyBDZGtGb290ZXJSb3dEZWYge31cblxuLyoqXG4gKiBEYXRhIHJvdyBkZWZpbml0aW9uIGZvciB0aGUgbmdiLXRhYmxlLlxuICogQ2FwdHVyZXMgdGhlIGRhdGEgcm93J3MgdGVtcGxhdGUgYW5kIG90aGVyIHByb3BlcnRpZXMgc3VjaCBhcyB0aGUgY29sdW1ucyB0byBkaXNwbGF5IGFuZFxuICogYSB3aGVuIHByZWRpY2F0ZSB0aGF0IGRlc2NyaWJlcyB3aGVuIHRoaXMgcm93IHNob3VsZCBiZSB1c2VkLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbmdiUm93RGVmXScsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ2RrUm93RGVmLCB1c2VFeGlzdGluZzogTmdiUm93RGVmIH1dLFxuICBpbnB1dHM6IFtcbiAgICB7IG5hbWU6ICdjb2x1bW5zJywgYWxpYXM6ICduZ2JSb3dEZWZDb2x1bW5zJyB9LFxuICAgIHsgbmFtZTogJ3doZW4nLCBhbGlhczogJ25nYlJvd0RlZldoZW4nIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5nYlJvd0RlZjxUPiBleHRlbmRzIENka1Jvd0RlZjxUPiB7fVxuXG4vKiogSGVhZGVyIHRlbXBsYXRlIGNvbnRhaW5lciB0aGF0IGNvbnRhaW5zIHRoZSBjZWxsIG91dGxldC4gQWRkcyB0aGUgcmlnaHQgY2xhc3MgYW5kIHJvbGUuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2ItaGVhZGVyLXJvdywgdHJbbmdiLWhlYWRlci1yb3ddJyxcbiAgdGVtcGxhdGU6IFJPV19URU1QTEFURSxcbiAgaG9zdDoge1xuICAgIHJvbGU6ICdyb3cnLFxuICB9LFxuICAvLyBTZWUgbm90ZSBvbiBDZGtUYWJsZSBmb3IgZXhwbGFuYXRpb24gb24gd2h5IHRoaXMgdXNlcyB0aGUgZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0aW9uIHN0cmF0ZWd5LlxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFsaWRhdGUtZGVjb3JhdG9yc1xuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGV4cG9ydEFzOiAnbmdiSGVhZGVyUm93JyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBDZGtIZWFkZXJSb3csIHVzZUV4aXN0aW5nOiBOZ2JIZWFkZXJSb3cgfV0sXG4gIGltcG9ydHM6IFtDZGtDZWxsT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdiSGVhZGVyUm93IGV4dGVuZHMgQ2RrSGVhZGVyUm93IHt9XG5cbi8qKiBGb290ZXIgdGVtcGxhdGUgY29udGFpbmVyIHRoYXQgY29udGFpbnMgdGhlIGNlbGwgb3V0bGV0LiBBZGRzIHRoZSByaWdodCBjbGFzcyBhbmQgcm9sZS4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nYi1mb290ZXItcm93LCB0cltuZ2ItZm9vdGVyLXJvd10nLFxuICB0ZW1wbGF0ZTogUk9XX1RFTVBMQVRFLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ3JvdycsXG4gIH0sXG4gIC8vIFNlZSBub3RlIG9uIENka1RhYmxlIGZvciBleHBsYW5hdGlvbiBvbiB3aHkgdGhpcyB1c2VzIHRoZSBkZWZhdWx0IGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YWxpZGF0ZS1kZWNvcmF0b3JzXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgZXhwb3J0QXM6ICduZ2JGb290ZXJSb3cnLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENka0Zvb3RlclJvdywgdXNlRXhpc3Rpbmc6IE5nYkZvb3RlclJvdyB9XSxcbiAgaW1wb3J0czogW0Nka0NlbGxPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2JGb290ZXJSb3cgZXh0ZW5kcyBDZGtGb290ZXJSb3cge31cblxuLyoqIERhdGEgcm93IHRlbXBsYXRlIGNvbnRhaW5lciB0aGF0IGNvbnRhaW5zIHRoZSBjZWxsIG91dGxldC4gQWRkcyB0aGUgcmlnaHQgY2xhc3MgYW5kIHJvbGUuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2Itcm93LCB0cltuZ2Itcm93XScsXG4gIHRlbXBsYXRlOiBST1dfVEVNUExBVEUsXG4gIGhvc3Q6IHtcbiAgICByb2xlOiAncm93JyxcbiAgfSxcbiAgLy8gU2VlIG5vdGUgb24gQ2RrVGFibGUgZm9yIGV4cGxhbmF0aW9uIG9uIHdoeSB0aGlzIHVzZXMgdGhlIGRlZmF1bHQgY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneS5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhbGlkYXRlLWRlY29yYXRvcnNcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBleHBvcnRBczogJ25nYlJvdycsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ2RrUm93LCB1c2VFeGlzdGluZzogTmdiUm93IH1dLFxuICBpbXBvcnRzOiBbQ2RrQ2VsbE91dGxldF0sXG59KVxuZXhwb3J0IGNsYXNzIE5nYlJvdyBleHRlbmRzIENka1JvdyB7fVxuXG4vKiogUm93IHRoYXQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSBhIG1lc3NhZ2Ugd2hlbiBubyBkYXRhIGlzIHNob3duIGluIHRoZSB0YWJsZS4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25nYk5vRGF0YVJvd10nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENka05vRGF0YVJvdywgdXNlRXhpc3Rpbmc6IE5nYk5vRGF0YVJvdyB9XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmdiTm9EYXRhUm93IGV4dGVuZHMgQ2RrTm9EYXRhUm93IHtcbiAgb3ZlcnJpZGUgX2NlbGxTZWxlY3RvciA9ICd0ZCwgbmdiLWNlbGwsIFtuZ2ItY2VsbF0sIC5uZ2ItY2VsbCc7XG59XG4iXX0=