UNPKG

@crediblefinance/credible-ui

Version:

Credible's standard UI library

47 lines 22.8 kB
import { Component, Input, EventEmitter, Output } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@angular/material/progress-spinner"; export class CfButtonComponent { label = ''; type = 'solid'; clicked = new EventEmitter(); loading = false; disabled = false; align = 'center'; theme = 'dark'; constructor() { } raiseClickEvent($event) { $event.preventDefault(); $event.stopImmediatePropagation(); $event.stopPropagation(); this.clicked.emit(); } get classes() { if (this.disabled) return ['disabled', `button-${this.align}`, this.theme]; else return [`button-${this.align}`, this.theme]; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CfButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: CfButtonComponent, selector: "cf-button", inputs: { label: "label", type: "type", loading: "loading", disabled: "disabled", align: "align", theme: "theme" }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<div class=\"cf-button\">\n <div class=\"cf-button-solid\" *ngIf=\"type === 'solid'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"solid\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n\n <div class=\"cf-button-theme\" *ngIf=\"type === 'theme'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"theme\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n\n <div class=\"cf-button-outline\" *ngIf=\"type === 'outline'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"outline\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n\n <div class=\"cf-button-text\" *ngIf=\"type === 'text'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"text\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n</div>", styles: [".cf-button{line-height:normal}.cf-button .button-left{margin-right:auto}.cf-button .button-right{margin-left:auto}.cf-button .button-center{margin:auto}.cf-button .cf-button-solid.disabled,.cf-button .cf-button-theme.disabled{background:#0C0C0C!important}.cf-button .cf-button-outline.disabled,.cf-button .cf-button-text.disabled{background:rgba(0,0,0,.1)}.cf-button .cf-button-solid{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-solid .solid{padding:12px 1.5rem;border-radius:inherit}.cf-button .cf-button-solid .solid:disabled{cursor:not-allowed}.cf-button .cf-button-solid .solid:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-solid .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-solid .loader.disabled{cursor:not-allowed}.cf-button .cf-button-solid.dark{background:white!important}.cf-button .cf-button-solid.dark .solid{color:#000!important;background-color:transparent;border:none}.cf-button .cf-button-solid.dark .solid:disabled{color:gray!important}.cf-button .cf-button-solid.dark .solid:hover:not(:disabled){color:#000!important;background-color:#cf0!important;border:.5px solid #cf0}.cf-button .cf-button-solid.light{background:black!important}.cf-button .cf-button-solid.light .solid{color:#fff!important;background-color:transparent;border:1px solid black}.cf-button .cf-button-solid.light .solid:disabled{color:gray!important}.cf-button .cf-button-solid.light .solid:hover:not(:disabled){color:#000!important;background-color:#cf0!important;border:.5px solid #cf0}.cf-button .cf-button-theme{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-theme .theme{padding:12px 1.5rem;border-radius:inherit}.cf-button .cf-button-theme .theme:disabled{cursor:not-allowed}.cf-button .cf-button-theme .theme:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-theme .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-theme .loader.disabled{cursor:not-allowed}.cf-button .cf-button-theme.dark{background:#cf0!important}.cf-button .cf-button-theme.dark .theme{color:#000!important;background-color:transparent;border:none}.cf-button .cf-button-theme.dark .theme:disabled{color:gray!important}.cf-button .cf-button-theme.dark .theme:hover:not(:disabled){color:#000!important;background-color:#fff!important;border:.5px solid white}.cf-button .cf-button-theme.light{background:#cf0!important}.cf-button .cf-button-theme.light .theme{color:#000!important;background-color:transparent;border:none}.cf-button .cf-button-theme.light .theme:disabled{color:gray!important}.cf-button .cf-button-theme.light .theme:hover:not(:disabled){color:#000!important;background-color:#fff!important;border:1px solid #cf0}.cf-button .cf-button-outline{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-outline .outline{padding:12px 1.5rem;border-radius:inherit}.cf-button .cf-button-outline .outline:disabled{cursor:not-allowed;opacity:.5}.cf-button .cf-button-outline .outline:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-outline .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-outline .loader.disabled{cursor:not-allowed}.cf-button .cf-button-outline.dark{border:.5px solid rgb(125,125,125)!important;background:#1c1c1c!important}.cf-button .cf-button-outline.dark:hover:not(.disabled){border:.5px solid #cf0!important;background-color:#cf0!important;color:#000!important}.cf-button .cf-button-outline.dark .outline{color:#fff!important;border:none;background-color:transparent}.cf-button .cf-button-outline.dark .outline:disabled{background-color:transparent!important;color:inherit!important}.cf-button .cf-button-outline.dark .outline:hover:not([disabled]){color:#000!important}.cf-button .cf-button-outline.light{border:.1px solid lightgrey!important;background:transparent!important}.cf-button .cf-button-outline.light:hover:not(.disabled){background-color:#cf0!important;color:#000!important}.cf-button .cf-button-outline.light .outline{color:#000!important;border:none;background-color:transparent;border-radius:inherit}.cf-button .cf-button-outline.light .outline:disabled{background-color:transparent!important;color:inherit!important}.cf-button .cf-button-outline.light .outline:hover:not([disabled]){border:.1px solid black}.cf-button .cf-button-text{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-text .text{padding:12px 1.5rem;font-weight:700;border-radius:inherit}.cf-button .cf-button-text .text:disabled{cursor:not-allowed}.cf-button .cf-button-text .text:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-text .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-text .loader.disabled{cursor:not-allowed}.cf-button .cf-button-text.dark{background:transparent}.cf-button .cf-button-text.dark .text{color:#d3d3d3;background-color:transparent;border:none}.cf-button .cf-button-text.dark:hover{border:.1px solid lightgrey}.cf-button .cf-button-text.dark:hover .text{color:#fff}.cf-button .cf-button-text.light{background:transparent;border-radius:9px}.cf-button .cf-button-text.light .text{color:#000;background-color:transparent;border:none}.cf-button .cf-button-text.light .text:disabled{cursor:not-allowed}.cf-button .cf-button-text.light:hover{border:.1px solid lightgrey}::ng-deep .cf-button .mdc-circular-progress__circle-left svg{stroke:#cf0}::ng-deep .cf-button .mdc-circular-progress__gap-patch svg{stroke:#cf0}::ng-deep .cf-button .mdc-circular-progress__circle-right svg{stroke:#000}@media only screen and (max-width: 500px){button{font-size:1rem!important}.cf-button-solid .solid,.cf-button-outline .outline,.cf-button-text .text{padding:.5rem 1rem!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: CfButtonComponent, decorators: [{ type: Component, args: [{ selector: 'cf-button', template: "<div class=\"cf-button\">\n <div class=\"cf-button-solid\" *ngIf=\"type === 'solid'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"solid\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n\n <div class=\"cf-button-theme\" *ngIf=\"type === 'theme'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"theme\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n\n <div class=\"cf-button-outline\" *ngIf=\"type === 'outline'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"outline\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n\n <div class=\"cf-button-text\" *ngIf=\"type === 'text'\" [ngClass]=\"classes\" [class.disabled]=\"disabled\">\n <button class=\"text\" (click)=\"raiseClickEvent($event)\" [disabled]=\"loading || disabled\">\n {{ label }}\n </button>\n <mat-spinner mode=\"indeterminate\" diameter=\"20\" *ngIf=\"loading\" class=\"loader d-flex\"\n [ngClass]=\"{ disabled: loading }\"></mat-spinner>\n </div>\n</div>", styles: [".cf-button{line-height:normal}.cf-button .button-left{margin-right:auto}.cf-button .button-right{margin-left:auto}.cf-button .button-center{margin:auto}.cf-button .cf-button-solid.disabled,.cf-button .cf-button-theme.disabled{background:#0C0C0C!important}.cf-button .cf-button-outline.disabled,.cf-button .cf-button-text.disabled{background:rgba(0,0,0,.1)}.cf-button .cf-button-solid{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-solid .solid{padding:12px 1.5rem;border-radius:inherit}.cf-button .cf-button-solid .solid:disabled{cursor:not-allowed}.cf-button .cf-button-solid .solid:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-solid .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-solid .loader.disabled{cursor:not-allowed}.cf-button .cf-button-solid.dark{background:white!important}.cf-button .cf-button-solid.dark .solid{color:#000!important;background-color:transparent;border:none}.cf-button .cf-button-solid.dark .solid:disabled{color:gray!important}.cf-button .cf-button-solid.dark .solid:hover:not(:disabled){color:#000!important;background-color:#cf0!important;border:.5px solid #cf0}.cf-button .cf-button-solid.light{background:black!important}.cf-button .cf-button-solid.light .solid{color:#fff!important;background-color:transparent;border:1px solid black}.cf-button .cf-button-solid.light .solid:disabled{color:gray!important}.cf-button .cf-button-solid.light .solid:hover:not(:disabled){color:#000!important;background-color:#cf0!important;border:.5px solid #cf0}.cf-button .cf-button-theme{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-theme .theme{padding:12px 1.5rem;border-radius:inherit}.cf-button .cf-button-theme .theme:disabled{cursor:not-allowed}.cf-button .cf-button-theme .theme:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-theme .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-theme .loader.disabled{cursor:not-allowed}.cf-button .cf-button-theme.dark{background:#cf0!important}.cf-button .cf-button-theme.dark .theme{color:#000!important;background-color:transparent;border:none}.cf-button .cf-button-theme.dark .theme:disabled{color:gray!important}.cf-button .cf-button-theme.dark .theme:hover:not(:disabled){color:#000!important;background-color:#fff!important;border:.5px solid white}.cf-button .cf-button-theme.light{background:#cf0!important}.cf-button .cf-button-theme.light .theme{color:#000!important;background-color:transparent;border:none}.cf-button .cf-button-theme.light .theme:disabled{color:gray!important}.cf-button .cf-button-theme.light .theme:hover:not(:disabled){color:#000!important;background-color:#fff!important;border:1px solid #cf0}.cf-button .cf-button-outline{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-outline .outline{padding:12px 1.5rem;border-radius:inherit}.cf-button .cf-button-outline .outline:disabled{cursor:not-allowed;opacity:.5}.cf-button .cf-button-outline .outline:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-outline .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-outline .loader.disabled{cursor:not-allowed}.cf-button .cf-button-outline.dark{border:.5px solid rgb(125,125,125)!important;background:#1c1c1c!important}.cf-button .cf-button-outline.dark:hover:not(.disabled){border:.5px solid #cf0!important;background-color:#cf0!important;color:#000!important}.cf-button .cf-button-outline.dark .outline{color:#fff!important;border:none;background-color:transparent}.cf-button .cf-button-outline.dark .outline:disabled{background-color:transparent!important;color:inherit!important}.cf-button .cf-button-outline.dark .outline:hover:not([disabled]){color:#000!important}.cf-button .cf-button-outline.light{border:.1px solid lightgrey!important;background:transparent!important}.cf-button .cf-button-outline.light:hover:not(.disabled){background-color:#cf0!important;color:#000!important}.cf-button .cf-button-outline.light .outline{color:#000!important;border:none;background-color:transparent;border-radius:inherit}.cf-button .cf-button-outline.light .outline:disabled{background-color:transparent!important;color:inherit!important}.cf-button .cf-button-outline.light .outline:hover:not([disabled]){border:.1px solid black}.cf-button .cf-button-text{display:flex;width:max-content;border-radius:9px}.cf-button .cf-button-text .text{padding:12px 1.5rem;font-weight:700;border-radius:inherit}.cf-button .cf-button-text .text:disabled{cursor:not-allowed}.cf-button .cf-button-text .text:hover:not(:disabled){cursor:pointer}.cf-button .cf-button-text .loader{margin:4px 4px 0 0;align-self:center}.cf-button .cf-button-text .loader.disabled{cursor:not-allowed}.cf-button .cf-button-text.dark{background:transparent}.cf-button .cf-button-text.dark .text{color:#d3d3d3;background-color:transparent;border:none}.cf-button .cf-button-text.dark:hover{border:.1px solid lightgrey}.cf-button .cf-button-text.dark:hover .text{color:#fff}.cf-button .cf-button-text.light{background:transparent;border-radius:9px}.cf-button .cf-button-text.light .text{color:#000;background-color:transparent;border:none}.cf-button .cf-button-text.light .text:disabled{cursor:not-allowed}.cf-button .cf-button-text.light:hover{border:.1px solid lightgrey}::ng-deep .cf-button .mdc-circular-progress__circle-left svg{stroke:#cf0}::ng-deep .cf-button .mdc-circular-progress__gap-patch svg{stroke:#cf0}::ng-deep .cf-button .mdc-circular-progress__circle-right svg{stroke:#000}@media only screen and (max-width: 500px){button{font-size:1rem!important}.cf-button-solid .solid,.cf-button-outline .outline,.cf-button-text .text{padding:.5rem 1rem!important}}\n"] }] }], ctorParameters: () => [], propDecorators: { label: [{ type: Input }], type: [{ type: Input }], clicked: [{ type: Output }], loading: [{ type: Input }], disabled: [{ type: Input }], align: [{ type: Input }], theme: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWRpYmxlLXVpL3NyYy9saWIvY2YtYnV0dG9uL2NmLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVkaWJsZS11aS9zcmMvbGliL2NmLWJ1dHRvbi9jZi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFDekMsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkIsTUFBTSxPQUFPLGlCQUFpQjtJQUNqQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLElBQUksR0FBVyxPQUFPLENBQUM7SUFDdEIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDOUIsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLEtBQUssR0FBVyxRQUFRLENBQUM7SUFDekIsS0FBSyxHQUFXLE1BQU0sQ0FBQztJQUVoQyxnQkFBZ0IsQ0FBQztJQUVqQixlQUFlLENBQUMsTUFBYTtRQUN6QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDbEMsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDYixPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzs7WUFHeEQsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO3VHQXpCUSxpQkFBaUI7MkZBQWpCLGlCQUFpQixzTUNWOUIsNHhEQWdDTTs7MkZEdEJPLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFFSSxXQUFXO3dEQUtaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2NmLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NmLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2YtYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2ZCdXR0b25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgPSAnc29saWQnO1xuICAgIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFsaWduOiBzdHJpbmcgPSAnY2VudGVyJztcbiAgICBASW5wdXQoKSB0aGVtZTogc3RyaW5nID0gJ2RhcmsnO1xuXG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIHJhaXNlQ2xpY2tFdmVudCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmNsaWNrZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKVxuICAgICAgICAgICAgcmV0dXJuIFsnZGlzYWJsZWQnLCBgYnV0dG9uLSR7dGhpcy5hbGlnbn1gLCB0aGlzLnRoZW1lXTtcblxuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gW2BidXR0b24tJHt0aGlzLmFsaWdufWAsIHRoaXMudGhlbWVdO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjZi1idXR0b25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2YtYnV0dG9uLXNvbGlkXCIgKm5nSWY9XCJ0eXBlID09PSAnc29saWQnXCIgW25nQ2xhc3NdPVwiY2xhc3Nlc1wiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwic29saWRcIiAoY2xpY2spPVwicmFpc2VDbGlja0V2ZW50KCRldmVudClcIiBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBkaXNhYmxlZFwiPlxuICAgICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGRpYW1ldGVyPVwiMjBcIiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRlciBkLWZsZXhcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogbG9hZGluZyB9XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjZi1idXR0b24tdGhlbWVcIiAqbmdJZj1cInR5cGUgPT09ICd0aGVtZSdcIiBbbmdDbGFzc109XCJjbGFzc2VzXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJ0aGVtZVwiIChjbGljayk9XCJyYWlzZUNsaWNrRXZlbnQoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGRpc2FibGVkXCI+XG4gICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1zcGlubmVyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgZGlhbWV0ZXI9XCIyMFwiICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwibG9hZGVyIGQtZmxleFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBsb2FkaW5nIH1cIj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNmLWJ1dHRvbi1vdXRsaW5lXCIgKm5nSWY9XCJ0eXBlID09PSAnb3V0bGluZSdcIiBbbmdDbGFzc109XCJjbGFzc2VzXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInJhaXNlQ2xpY2tFdmVudCgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZGlzYWJsZWRcIj5cbiAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8bWF0LXNwaW5uZXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiBkaWFtZXRlcj1cIjIwXCIgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJsb2FkZXIgZC1mbGV4XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IGxvYWRpbmcgfVwiPjwvbWF0LXNwaW5uZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2YtYnV0dG9uLXRleHRcIiAqbmdJZj1cInR5cGUgPT09ICd0ZXh0J1wiIFtuZ0NsYXNzXT1cImNsYXNzZXNcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRleHRcIiAoY2xpY2spPVwicmFpc2VDbGlja0V2ZW50KCRldmVudClcIiBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBkaXNhYmxlZFwiPlxuICAgICAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtc3Bpbm5lciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIGRpYW1ldGVyPVwiMjBcIiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cImxvYWRlciBkLWZsZXhcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogbG9hZGluZyB9XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbjwvZGl2PiJdfQ==