UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

184 lines 20.8 kB
/* eslint-disable */ /** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core'; import { NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet } from '@angular/common'; import { NzIconModule } from 'ng-zorro-antd/icon'; import * as i0 from "@angular/core"; import * as i1 from "ng-zorro-antd/icon"; export class NzPaginationItemComponent { constructor() { this.active = false; this.index = null; this.disabled = false; this.direction = 'ltr'; this.type = null; this.itemRender = null; this.diffIndex = new EventEmitter(); this.gotoIndex = new EventEmitter(); this.title = null; } clickItem() { if (!this.disabled) { if (this.type === 'page') { this.gotoIndex.emit(this.index); } else { this.diffIndex.emit({ next: 1, prev: -1, prev_5: -5, next_5: 5 }[this.type]); } } } ngOnChanges(changes) { const { locale, index, type } = changes; if (locale || index || type) { this.title = { page: `${this.index}`, next: this.locale?.next_page, prev: this.locale?.prev_page, prev_5: this.locale?.prev_5, next_5: this.locale?.next_5 }[this.type]; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NzPaginationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: NzPaginationItemComponent, isStandalone: true, selector: "li[nz-pagination-item]", inputs: { active: "active", locale: "locale", index: "index", disabled: "disabled", direction: "direction", type: "type", itemRender: "itemRender" }, outputs: { diffIndex: "diffIndex", gotoIndex: "gotoIndex" }, host: { listeners: { "click": "clickItem()" }, properties: { "class.ant-pagination-prev": "type === 'prev'", "class.ant-pagination-next": "type === 'next'", "class.ant-pagination-item": "type === 'page'", "class.ant-pagination-jump-prev": "type === 'prev_5'", "class.ant-pagination-jump-prev-custom-icon": "type === 'prev_5'", "class.ant-pagination-jump-next": "type === 'next_5'", "class.ant-pagination-jump-next-custom-icon": "type === 'next_5'", "class.ant-pagination-disabled": "disabled", "class.ant-pagination-item-active": "active", "attr.title": "title" } }, usesOnChanges: true, ngImport: i0, template: ` <ng-template #renderItemTemplate let-type let-page="page"> <ng-container [ngSwitch]="type"> <a *ngSwitchCase="'page'">{{ page }}</a> <button type="button" [disabled]="disabled" class="ant-pagination-item-link" *ngSwitchCase="'prev'"> <ng-container [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="right"></span> <span *ngSwitchDefault nz-icon nzType="left"></span> </ng-container> </button> <button type="button" [disabled]="disabled" class="ant-pagination-item-link" *ngSwitchCase="'next'"> <ng-container [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="left"></span> <span *ngSwitchDefault nz-icon nzType="right"></span> </ng-container> </button> <ng-container *ngSwitchDefault> <a class="ant-pagination-item-link" [ngSwitch]="type"> <div class="ant-pagination-item-container" *ngSwitchDefault> <ng-container [ngSwitch]="type"> <ng-container *ngSwitchCase="'prev_5'" [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="double-right" class="ant-pagination-item-link-icon" ></span> <span *ngSwitchDefault nz-icon nzType="double-left" class="ant-pagination-item-link-icon"></span> </ng-container> <ng-container *ngSwitchCase="'next_5'" [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="double-left" class="ant-pagination-item-link-icon"></span> <span *ngSwitchDefault nz-icon nzType="double-right" class="ant-pagination-item-link-icon"></span> </ng-container> </ng-container> <span class="ant-pagination-item-ellipsis">•••</span> </div> </a> </ng-container> </ng-container> </ng-template> <ng-template [ngTemplateOutlet]="itemRender || renderItemTemplate" [ngTemplateOutletContext]="{ $implicit: type, page: index }" ></ng-template> `, isInline: true, dependencies: [{ kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i1.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: NzPaginationItemComponent, decorators: [{ type: Component, args: [{ selector: 'li[nz-pagination-item]', preserveWhitespaces: false, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: ` <ng-template #renderItemTemplate let-type let-page="page"> <ng-container [ngSwitch]="type"> <a *ngSwitchCase="'page'">{{ page }}</a> <button type="button" [disabled]="disabled" class="ant-pagination-item-link" *ngSwitchCase="'prev'"> <ng-container [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="right"></span> <span *ngSwitchDefault nz-icon nzType="left"></span> </ng-container> </button> <button type="button" [disabled]="disabled" class="ant-pagination-item-link" *ngSwitchCase="'next'"> <ng-container [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="left"></span> <span *ngSwitchDefault nz-icon nzType="right"></span> </ng-container> </button> <ng-container *ngSwitchDefault> <a class="ant-pagination-item-link" [ngSwitch]="type"> <div class="ant-pagination-item-container" *ngSwitchDefault> <ng-container [ngSwitch]="type"> <ng-container *ngSwitchCase="'prev_5'" [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="double-right" class="ant-pagination-item-link-icon" ></span> <span *ngSwitchDefault nz-icon nzType="double-left" class="ant-pagination-item-link-icon"></span> </ng-container> <ng-container *ngSwitchCase="'next_5'" [ngSwitch]="direction"> <span *ngSwitchCase="'rtl'" nz-icon nzType="double-left" class="ant-pagination-item-link-icon"></span> <span *ngSwitchDefault nz-icon nzType="double-right" class="ant-pagination-item-link-icon"></span> </ng-container> </ng-container> <span class="ant-pagination-item-ellipsis">•••</span> </div> </a> </ng-container> </ng-container> </ng-template> <ng-template [ngTemplateOutlet]="itemRender || renderItemTemplate" [ngTemplateOutletContext]="{ $implicit: type, page: index }" ></ng-template> `, host: { '[class.ant-pagination-prev]': `type === 'prev'`, '[class.ant-pagination-next]': `type === 'next'`, '[class.ant-pagination-item]': `type === 'page'`, '[class.ant-pagination-jump-prev]': `type === 'prev_5'`, '[class.ant-pagination-jump-prev-custom-icon]': `type === 'prev_5'`, '[class.ant-pagination-jump-next]': `type === 'next_5'`, '[class.ant-pagination-jump-next-custom-icon]': `type === 'next_5'`, '[class.ant-pagination-disabled]': 'disabled', '[class.ant-pagination-item-active]': 'active', '[attr.title]': 'title', '(click)': 'clickItem()' }, imports: [NgSwitch, NgSwitchCase, NzIconModule, NgSwitchDefault, NgTemplateOutlet], standalone: true }] }], propDecorators: { active: [{ type: Input }], locale: [{ type: Input }], index: [{ type: Input }], disabled: [{ type: Input }], direction: [{ type: Input }], type: [{ type: Input }], itemRender: [{ type: Input }], diffIndex: [{ type: Output }], gotoIndex: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFvQjtBQUNwQjs7O0dBR0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFvRWxELE1BQU0sT0FBTyx5QkFBeUI7SUFsRXRDO1FBc0VXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsU0FBSSxHQUF1QyxJQUFJLENBQUM7UUFDaEQsZUFBVSxHQUFvRCxJQUFJLENBQUM7UUFDekQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUQsVUFBSyxHQUFrQixJQUFJLENBQUM7S0FtQzdCO0lBakNDLFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO2dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBRWY7b0JBQ0UsSUFBSSxFQUFFLENBQUM7b0JBQ1AsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDUixNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNWLE1BQU0sRUFBRSxDQUFDO2lCQUVaLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxDQUNkLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDeEMsSUFBSSxNQUFNLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUMzQixJQUFJLENBQUMsS0FBSyxHQUNSO2dCQUNFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVM7Z0JBQzVCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVM7Z0JBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU07Z0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU07YUFFOUIsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLENBQUM7U0FDZjtJQUNILENBQUM7OEdBL0NVLHlCQUF5QjtrR0FBekIseUJBQXlCLGkzQkE3RDFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDVCw0REFjUyxRQUFRLDZFQUFFLFlBQVksb0ZBQUUsWUFBWSxrTkFBRSxlQUFlLDhEQUFFLGdCQUFnQjs7MkZBR3RFLHlCQUF5QjtrQkFsRXJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsbUJBQW1CLEVBQUUsS0FBSztvQkFDMUIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENUO29CQUNELElBQUksRUFBRTt3QkFDSiw2QkFBNkIsRUFBRSxpQkFBaUI7d0JBQ2hELDZCQUE2QixFQUFFLGlCQUFpQjt3QkFDaEQsNkJBQTZCLEVBQUUsaUJBQWlCO3dCQUNoRCxrQ0FBa0MsRUFBRSxtQkFBbUI7d0JBQ3ZELDhDQUE4QyxFQUFFLG1CQUFtQjt3QkFDbkUsa0NBQWtDLEVBQUUsbUJBQW1CO3dCQUN2RCw4Q0FBOEMsRUFBRSxtQkFBbUI7d0JBQ25FLGlDQUFpQyxFQUFFLFVBQVU7d0JBQzdDLG9DQUFvQyxFQUFFLFFBQVE7d0JBQzlDLGNBQWMsRUFBRSxPQUFPO3dCQUN2QixTQUFTLEVBQUUsYUFBYTtxQkFDekI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDO29CQUNsRixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBS1UsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNhLFNBQVM7c0JBQTNCLE1BQU07Z0JBQ1ksU0FBUztzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vKipcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcbmltcG9ydCB7IE56UGFnaW5hdGlvbkkxOG5JbnRlcmZhY2UgfSBmcm9tICduZy16b3Jyby1hbnRkL2kxOG4nO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkl0ZW1SZW5kZXJDb250ZXh0LCBQYWdpbmF0aW9uSXRlbVR5cGUgfSBmcm9tICcuL3BhZ2luYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0LCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE56SWNvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpW256LXBhZ2luYXRpb24taXRlbV0nLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNyZW5kZXJJdGVtVGVtcGxhdGUgbGV0LXR5cGUgbGV0LXBhZ2U9XCJwYWdlXCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XG4gICAgICAgIDxhICpuZ1N3aXRjaENhc2U9XCIncGFnZSdcIj57eyBwYWdlIH19PC9hPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBjbGFzcz1cImFudC1wYWdpbmF0aW9uLWl0ZW0tbGlua1wiICpuZ1N3aXRjaENhc2U9XCIncHJldidcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkaXJlY3Rpb25cIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIncnRsJ1wiIG56LWljb24gbnpUeXBlPVwicmlnaHRcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0IG56LWljb24gbnpUeXBlPVwibGVmdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGNsYXNzPVwiYW50LXBhZ2luYXRpb24taXRlbS1saW5rXCIgKm5nU3dpdGNoQ2FzZT1cIiduZXh0J1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRpcmVjdGlvblwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidydGwnXCIgbnotaWNvbiBuelR5cGU9XCJsZWZ0XCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdCBuei1pY29uIG56VHlwZT1cInJpZ2h0XCI+PC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICAgIDxhIGNsYXNzPVwiYW50LXBhZ2luYXRpb24taXRlbS1saW5rXCIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbnQtcGFnaW5hdGlvbi1pdGVtLWNvbnRhaW5lclwiICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncHJldl81J1wiIFtuZ1N3aXRjaF09XCJkaXJlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncnRsJ1wiXG4gICAgICAgICAgICAgICAgICAgIG56LWljb25cbiAgICAgICAgICAgICAgICAgICAgbnpUeXBlPVwiZG91YmxlLXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhbnQtcGFnaW5hdGlvbi1pdGVtLWxpbmstaWNvblwiXG4gICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdCBuei1pY29uIG56VHlwZT1cImRvdWJsZS1sZWZ0XCIgY2xhc3M9XCJhbnQtcGFnaW5hdGlvbi1pdGVtLWxpbmstaWNvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbmV4dF81J1wiIFtuZ1N3aXRjaF09XCJkaXJlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIncnRsJ1wiIG56LWljb24gbnpUeXBlPVwiZG91YmxlLWxlZnRcIiBjbGFzcz1cImFudC1wYWdpbmF0aW9uLWl0ZW0tbGluay1pY29uXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdCBuei1pY29uIG56VHlwZT1cImRvdWJsZS1yaWdodFwiIGNsYXNzPVwiYW50LXBhZ2luYXRpb24taXRlbS1saW5rLWljb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFudC1wYWdpbmF0aW9uLWl0ZW0tZWxsaXBzaXNcIj7igKLigKLigKI8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1SZW5kZXIgfHwgcmVuZGVySXRlbVRlbXBsYXRlXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdHlwZSwgcGFnZTogaW5kZXggfVwiXG4gICAgPjwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmFudC1wYWdpbmF0aW9uLXByZXZdJzogYHR5cGUgPT09ICdwcmV2J2AsXG4gICAgJ1tjbGFzcy5hbnQtcGFnaW5hdGlvbi1uZXh0XSc6IGB0eXBlID09PSAnbmV4dCdgLFxuICAgICdbY2xhc3MuYW50LXBhZ2luYXRpb24taXRlbV0nOiBgdHlwZSA9PT0gJ3BhZ2UnYCxcbiAgICAnW2NsYXNzLmFudC1wYWdpbmF0aW9uLWp1bXAtcHJldl0nOiBgdHlwZSA9PT0gJ3ByZXZfNSdgLFxuICAgICdbY2xhc3MuYW50LXBhZ2luYXRpb24tanVtcC1wcmV2LWN1c3RvbS1pY29uXSc6IGB0eXBlID09PSAncHJldl81J2AsXG4gICAgJ1tjbGFzcy5hbnQtcGFnaW5hdGlvbi1qdW1wLW5leHRdJzogYHR5cGUgPT09ICduZXh0XzUnYCxcbiAgICAnW2NsYXNzLmFudC1wYWdpbmF0aW9uLWp1bXAtbmV4dC1jdXN0b20taWNvbl0nOiBgdHlwZSA9PT0gJ25leHRfNSdgLFxuICAgICdbY2xhc3MuYW50LXBhZ2luYXRpb24tZGlzYWJsZWRdJzogJ2Rpc2FibGVkJyxcbiAgICAnW2NsYXNzLmFudC1wYWdpbmF0aW9uLWl0ZW0tYWN0aXZlXSc6ICdhY3RpdmUnLFxuICAgICdbYXR0ci50aXRsZV0nOiAndGl0bGUnLFxuICAgICcoY2xpY2spJzogJ2NsaWNrSXRlbSgpJ1xuICB9LFxuICBpbXBvcnRzOiBbTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTnpJY29uTW9kdWxlLCBOZ1N3aXRjaERlZmF1bHQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE56UGFnaW5hdGlvbkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfdHlwZTogUGFnaW5hdGlvbkl0ZW1UeXBlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2luZGV4OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpIGFjdGl2ZSA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2NhbGUhOiBOelBhZ2luYXRpb25JMThuSW50ZXJmYWNlO1xuICBASW5wdXQoKSBpbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRpcmVjdGlvbiA9ICdsdHInO1xuICBASW5wdXQoKSB0eXBlOiBQYWdpbmF0aW9uSXRlbVR5cGUgfCBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgaXRlbVJlbmRlcjogVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkl0ZW1SZW5kZXJDb250ZXh0PiB8IG51bGwgPSBudWxsO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgZGlmZkluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBnb3RvSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgdGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNsaWNrSXRlbSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdwYWdlJykge1xuICAgICAgICB0aGlzLmdvdG9JbmRleC5lbWl0KHRoaXMuaW5kZXghKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlmZkluZGV4LmVtaXQoXG4gICAgICAgICAgKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuZXh0OiAxLFxuICAgICAgICAgICAgICBwcmV2OiAtMSxcbiAgICAgICAgICAgICAgcHJldl81OiAtNSxcbiAgICAgICAgICAgICAgbmV4dF81OiA1XG4gICAgICAgICAgICB9IGFzIE56U2FmZUFueVxuICAgICAgICAgIClbdGhpcy50eXBlIV1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgeyBsb2NhbGUsIGluZGV4LCB0eXBlIH0gPSBjaGFuZ2VzO1xuICAgIGlmIChsb2NhbGUgfHwgaW5kZXggfHwgdHlwZSkge1xuICAgICAgdGhpcy50aXRsZSA9IChcbiAgICAgICAge1xuICAgICAgICAgIHBhZ2U6IGAke3RoaXMuaW5kZXh9YCxcbiAgICAgICAgICBuZXh0OiB0aGlzLmxvY2FsZT8ubmV4dF9wYWdlLFxuICAgICAgICAgIHByZXY6IHRoaXMubG9jYWxlPy5wcmV2X3BhZ2UsXG4gICAgICAgICAgcHJldl81OiB0aGlzLmxvY2FsZT8ucHJldl81LFxuICAgICAgICAgIG5leHRfNTogdGhpcy5sb2NhbGU/Lm5leHRfNVxuICAgICAgICB9IGFzIE56U2FmZUFueVxuICAgICAgKVt0aGlzLnR5cGUhXTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==