UNPKG

@abgov/angular-components

Version:

Government of Alberta - UI components for Angular

217 lines 18.5 kB
import { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, Input, Output, forwardRef, booleanAttribute, numberAttribute, } from "@angular/core"; import { NG_VALUE_ACCESSOR } from "@angular/forms"; import { GoabControlValueAccessor } from "../base.component"; import * as i0 from "@angular/core"; export class GoabInput extends GoabControlValueAccessor { constructor() { super(...arguments); this.type = "text"; this.textAlign = "left"; this.onTrailingIconClick = new EventEmitter(); this.onFocus = new EventEmitter(); this.onBlur = new EventEmitter(); this.onKeyPress = new EventEmitter(); this.onChange = new EventEmitter(); this.handleTrailingIconClick = false; } ngOnInit() { this.handleTrailingIconClick = this.onTrailingIconClick.observed; if (typeof this.value === "number") { console.warn("For numeric values use goab-input-number."); } } _onTrailingIconClick(_) { if (this.handleTrailingIconClick) { this.onTrailingIconClick.emit(); } } _onChange(e) { this.markAsTouched(); const detail = e.detail; this.onChange.emit(detail); this.fcChange?.(detail.value); } _onKeyPress(e) { this.markAsTouched(); const detail = e.detail; this.onKeyPress.emit(detail); this.fcTouched?.(); } _onFocus(e) { this.markAsTouched(); const detail = e.detail; this.onFocus.emit(detail); } _onBlur(e) { const detail = e.detail; this.onBlur.emit(detail); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: GoabInput, deps: null, target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.3", type: GoabInput, isStandalone: true, selector: "goab-input", inputs: { type: "type", name: "name", debounce: ["debounce", "debounce", numberAttribute], autoCapitalize: "autoCapitalize", autoComplete: "autoComplete", placeholder: "placeholder", leadingIcon: "leadingIcon", trailingIcon: "trailingIcon", variant: "variant", focused: ["focused", "focused", booleanAttribute], readonly: ["readonly", "readonly", booleanAttribute], width: "width", prefix: "prefix", suffix: "suffix", ariaLabel: "ariaLabel", maxLength: ["maxLength", "maxLength", numberAttribute], min: "min", max: "max", step: ["step", "step", numberAttribute], ariaLabelledBy: "ariaLabelledBy", trailingIconAriaLabel: "trailingIconAriaLabel", textAlign: "textAlign" }, outputs: { onTrailingIconClick: "onTrailingIconClick", onFocus: "onFocus", onBlur: "onBlur", onKeyPress: "onKeyPress", onChange: "onChange" }, providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GoabInput), }, ], usesInheritance: true, ngImport: i0, template: ` <goa-input [attr.type]="type" [attr.name]="name" [attr.focused]="focused" [attr.value]="value" [attr.autocapitalize]="autoCapitalize" [attr.autocomplete]="autoComplete" [attr.placeholder]="placeholder" [attr.leadingicon]="leadingIcon" [attr.trailingicon]="trailingIcon" [attr.variant]="variant" [disabled]="disabled" [attr.readonly]="readonly" [attr.error]="error" [attr.data-testid]="testId" [attr.width]="width" [attr.arialabel]="ariaLabel" [attr.arialabelledby]="ariaLabelledBy" [attr.min]="min" [attr.max]="max" [attr.step]="step" [attr.prefix]="prefix" [attr.suffix]="suffix" [attr.debounce]="debounce" [attr.maxlength]="maxLength" [attr.id]="id" [attr.mt]="mt" [attr.mr]="mr" [attr.mb]="mb" [attr.ml]="ml" [attr.handletrailingiconclick]="handleTrailingIconClick" [attr.textalign]="textAlign" (_trailingIconClick)="_onTrailingIconClick($event)" (_change)="_onChange($event)" (_focus)="_onFocus($event)" (_blur)="_onBlur($event)" (_keyPress)="_onKeyPress($event)" [attr.trailingiconarialabel]="trailingIconAriaLabel" > <ng-content /> </goa-input> `, isInline: true }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: GoabInput, decorators: [{ type: Component, args: [{ standalone: true, selector: "goab-input", template: ` <goa-input [attr.type]="type" [attr.name]="name" [attr.focused]="focused" [attr.value]="value" [attr.autocapitalize]="autoCapitalize" [attr.autocomplete]="autoComplete" [attr.placeholder]="placeholder" [attr.leadingicon]="leadingIcon" [attr.trailingicon]="trailingIcon" [attr.variant]="variant" [disabled]="disabled" [attr.readonly]="readonly" [attr.error]="error" [attr.data-testid]="testId" [attr.width]="width" [attr.arialabel]="ariaLabel" [attr.arialabelledby]="ariaLabelledBy" [attr.min]="min" [attr.max]="max" [attr.step]="step" [attr.prefix]="prefix" [attr.suffix]="suffix" [attr.debounce]="debounce" [attr.maxlength]="maxLength" [attr.id]="id" [attr.mt]="mt" [attr.mr]="mr" [attr.mb]="mb" [attr.ml]="ml" [attr.handletrailingiconclick]="handleTrailingIconClick" [attr.textalign]="textAlign" (_trailingIconClick)="_onTrailingIconClick($event)" (_change)="_onChange($event)" (_focus)="_onFocus($event)" (_blur)="_onBlur($event)" (_keyPress)="_onKeyPress($event)" [attr.trailingiconarialabel]="trailingIconAriaLabel" > <ng-content /> </goa-input> `, schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GoabInput), }, ], }] }], propDecorators: { type: [{ type: Input }], name: [{ type: Input }], debounce: [{ type: Input, args: [{ transform: numberAttribute }] }], autoCapitalize: [{ type: Input }], autoComplete: [{ type: Input }], placeholder: [{ type: Input }], leadingIcon: [{ type: Input }], trailingIcon: [{ type: Input }], variant: [{ type: Input }], focused: [{ type: Input, args: [{ transform: booleanAttribute }] }], readonly: [{ type: Input, args: [{ transform: booleanAttribute }] }], width: [{ type: Input }], prefix: [{ type: Input }], suffix: [{ type: Input }], ariaLabel: [{ type: Input }], maxLength: [{ type: Input, args: [{ transform: numberAttribute }] }], min: [{ type: Input }], max: [{ type: Input }], step: [{ type: Input, args: [{ transform: numberAttribute }] }], ariaLabelledBy: [{ type: Input }], trailingIconAriaLabel: [{ type: Input }], textAlign: [{ type: Input }], onTrailingIconClick: [{ type: Output }], onFocus: [{ type: Output }], onBlur: [{ type: Output }], onKeyPress: [{ type: Output }], onChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUVWLGdCQUFnQixFQUNoQixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQTZEN0QsTUFBTSxPQUFPLFNBQVUsU0FBUSx3QkFBd0I7SUF2RHZEOztRQXdEVyxTQUFJLEdBQW1CLE1BQU0sQ0FBQztRQXFCOUIsY0FBUyxHQUFzQixNQUFNLENBQUM7UUFFckMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDckQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBQ25ELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUMzRCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFakUsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO0tBeUNqQztJQXZDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDakUsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsQ0FBUTtRQUMzQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxDQUFRO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixNQUFNLE1BQU0sR0FBSSxDQUEwQyxDQUFDLE1BQU0sQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBUTtRQUNsQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsTUFBTSxNQUFNLEdBQUksQ0FBNEMsQ0FBQyxNQUFNLENBQUM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFRO1FBQ2YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sTUFBTSxHQUFJLENBQXlDLENBQUMsTUFBTSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBUTtRQUNkLE1BQU0sTUFBTSxHQUFJLENBQXdDLENBQUMsTUFBTSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBdEVVLFNBQVM7a0dBQVQsU0FBUyx1SEFHQSxlQUFlLDZNQU9mLGdCQUFnQixzQ0FDaEIsZ0JBQWdCLHFIQUtoQixlQUFlLGtEQUdmLGVBQWUseVFBM0J4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO2FBQ3pDO1NBQ0YsaURBbERTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ1Q7OzJGQVVVLFNBQVM7a0JBdkRyQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUM7eUJBQ3pDO3FCQUNGO2lCQUNGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2lDLFFBQVE7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUM1QixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNrQyxPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ2lDLFNBQVM7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUM1QixHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNpQyxJQUFJO3NCQUExQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFDNUIsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgR29hYkljb25UeXBlLFxuICBHb2FiSW5wdXRBdXRvQ2FwaXRhbGl6ZSxcbiAgR29hYklucHV0T25CbHVyRGV0YWlsLFxuICBHb2FiSW5wdXRPbkNoYW5nZURldGFpbCxcbiAgR29hYklucHV0T25Gb2N1c0RldGFpbCxcbiAgR29hYklucHV0T25LZXlQcmVzc0RldGFpbCxcbiAgR29hYklucHV0VHlwZSxcbn0gZnJvbSBcIkBhYmdvdi91aS1jb21wb25lbnRzLWNvbW1vblwiO1xuaW1wb3J0IHtcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIGZvcndhcmRSZWYsXG4gIE9uSW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEdvYWJDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gXCIuLi9iYXNlLmNvbXBvbmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElnbm9yZU1lIHtcbiAgaWdub3JlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogXCJnb2FiLWlucHV0XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGdvYS1pbnB1dFxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICBbYXR0ci5mb2N1c2VkXT1cImZvY3VzZWRcIlxuICAgICAgW2F0dHIudmFsdWVdPVwidmFsdWVcIlxuICAgICAgW2F0dHIuYXV0b2NhcGl0YWxpemVdPVwiYXV0b0NhcGl0YWxpemVcIlxuICAgICAgW2F0dHIuYXV0b2NvbXBsZXRlXT1cImF1dG9Db21wbGV0ZVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbYXR0ci5sZWFkaW5naWNvbl09XCJsZWFkaW5nSWNvblwiXG4gICAgICBbYXR0ci50cmFpbGluZ2ljb25dPVwidHJhaWxpbmdJY29uXCJcbiAgICAgIFthdHRyLnZhcmlhbnRdPVwidmFyaWFudFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2F0dHIuZXJyb3JdPVwiZXJyb3JcIlxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkXCJcbiAgICAgIFthdHRyLndpZHRoXT1cIndpZHRoXCJcbiAgICAgIFthdHRyLmFyaWFsYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgW2F0dHIuYXJpYWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICAgIFthdHRyLnN0ZXBdPVwic3RlcFwiXG4gICAgICBbYXR0ci5wcmVmaXhdPVwicHJlZml4XCJcbiAgICAgIFthdHRyLnN1ZmZpeF09XCJzdWZmaXhcIlxuICAgICAgW2F0dHIuZGVib3VuY2VdPVwiZGVib3VuY2VcIlxuICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgICBbYXR0ci5tdF09XCJtdFwiXG4gICAgICBbYXR0ci5tcl09XCJtclwiXG4gICAgICBbYXR0ci5tYl09XCJtYlwiXG4gICAgICBbYXR0ci5tbF09XCJtbFwiXG4gICAgICBbYXR0ci5oYW5kbGV0cmFpbGluZ2ljb25jbGlja109XCJoYW5kbGVUcmFpbGluZ0ljb25DbGlja1wiXG4gICAgICBbYXR0ci50ZXh0YWxpZ25dPVwidGV4dEFsaWduXCJcbiAgICAgIChfdHJhaWxpbmdJY29uQ2xpY2spPVwiX29uVHJhaWxpbmdJY29uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAoX2NoYW5nZSk9XCJfb25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoX2ZvY3VzKT1cIl9vbkZvY3VzKCRldmVudClcIlxuICAgICAgKF9ibHVyKT1cIl9vbkJsdXIoJGV2ZW50KVwiXG4gICAgICAoX2tleVByZXNzKT1cIl9vbktleVByZXNzKCRldmVudClcIlxuICAgICAgW2F0dHIudHJhaWxpbmdpY29uYXJpYWxhYmVsXT1cInRyYWlsaW5nSWNvbkFyaWFMYWJlbFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICA8L2dvYS1pbnB1dD5cbiAgYCxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR29hYklucHV0KSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHb2FiSW5wdXQgZXh0ZW5kcyBHb2FiQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0eXBlPzogR29hYklucHV0VHlwZSA9IFwidGV4dFwiO1xuICBASW5wdXQoKSBuYW1lPzogc3RyaW5nO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBkZWJvdW5jZT86IG51bWJlcjtcbiAgQElucHV0KCkgYXV0b0NhcGl0YWxpemU/OiBHb2FiSW5wdXRBdXRvQ2FwaXRhbGl6ZTtcbiAgQElucHV0KCkgYXV0b0NvbXBsZXRlPzogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgQElucHV0KCkgbGVhZGluZ0ljb24/OiBHb2FiSWNvblR5cGU7XG4gIEBJbnB1dCgpIHRyYWlsaW5nSWNvbj86IEdvYWJJY29uVHlwZTtcbiAgQElucHV0KCkgdmFyaWFudD86IHN0cmluZztcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGZvY3VzZWQ/OiBib29sZWFuO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVhZG9ubHk/OiBib29sZWFuO1xuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgcHJlZml4Pzogc3RyaW5nO1xuICBASW5wdXQoKSBzdWZmaXg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbD86IHN0cmluZztcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBtaW4/OiBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgc3RlcD86IG51bWJlcjtcbiAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRyYWlsaW5nSWNvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgdGV4dEFsaWduPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgPSBcImxlZnRcIjtcblxuICBAT3V0cHV0KCkgb25UcmFpbGluZ0ljb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEdvYWJJbnB1dE9uRm9jdXNEZXRhaWw+KCk7XG4gIEBPdXRwdXQoKSBvbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEdvYWJJbnB1dE9uQmx1ckRldGFpbD4oKTtcbiAgQE91dHB1dCgpIG9uS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPEdvYWJJbnB1dE9uS2V5UHJlc3NEZXRhaWw+KCk7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8R29hYklucHV0T25DaGFuZ2VEZXRhaWw+KCk7XG5cbiAgaGFuZGxlVHJhaWxpbmdJY29uQ2xpY2sgPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZVRyYWlsaW5nSWNvbkNsaWNrID0gdGhpcy5vblRyYWlsaW5nSWNvbkNsaWNrLm9ic2VydmVkO1xuICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgY29uc29sZS53YXJuKFwiRm9yIG51bWVyaWMgdmFsdWVzIHVzZSBnb2FiLWlucHV0LW51bWJlci5cIik7XG4gICAgfVxuICB9XG5cbiAgX29uVHJhaWxpbmdJY29uQ2xpY2soXzogRXZlbnQpIHtcbiAgICBpZiAodGhpcy5oYW5kbGVUcmFpbGluZ0ljb25DbGljaykge1xuICAgICAgdGhpcy5vblRyYWlsaW5nSWNvbkNsaWNrLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBfb25DaGFuZ2UoZTogRXZlbnQpIHtcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBjb25zdCBkZXRhaWwgPSAoZSBhcyBDdXN0b21FdmVudDxHb2FiSW5wdXRPbkNoYW5nZURldGFpbD4pLmRldGFpbDtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZGV0YWlsKTtcblxuICAgIHRoaXMuZmNDaGFuZ2U/LihkZXRhaWwudmFsdWUpO1xuICB9XG5cbiAgX29uS2V5UHJlc3MoZTogRXZlbnQpIHtcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBjb25zdCBkZXRhaWwgPSAoZSBhcyBDdXN0b21FdmVudDxHb2FiSW5wdXRPbktleVByZXNzRGV0YWlsPikuZGV0YWlsO1xuICAgIHRoaXMub25LZXlQcmVzcy5lbWl0KGRldGFpbCk7XG5cbiAgICB0aGlzLmZjVG91Y2hlZD8uKCk7XG4gIH1cblxuICBfb25Gb2N1cyhlOiBFdmVudCkge1xuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgIGNvbnN0IGRldGFpbCA9IChlIGFzIEN1c3RvbUV2ZW50PEdvYWJJbnB1dE9uRm9jdXNEZXRhaWw+KS5kZXRhaWw7XG4gICAgdGhpcy5vbkZvY3VzLmVtaXQoZGV0YWlsKTtcbiAgfVxuXG4gIF9vbkJsdXIoZTogRXZlbnQpIHtcbiAgICBjb25zdCBkZXRhaWwgPSAoZSBhcyBDdXN0b21FdmVudDxHb2FiSW5wdXRPbkJsdXJEZXRhaWw+KS5kZXRhaWw7XG4gICAgdGhpcy5vbkJsdXIuZW1pdChkZXRhaWwpO1xuICB9XG59XG4iXX0=