UNPKG

@abgov/angular-components

Version:

Government of Alberta - UI components for Angular

213 lines 18.2 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", 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.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]="!!_onTrailingIconClick" [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.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]="!!_onTrailingIconClick" [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 }], 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUVWLGdCQUFnQixFQUNoQixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQTREN0QsTUFBTSxPQUFPLFNBQVUsU0FBUSx3QkFBd0I7SUF0RHZEOztRQXVEVyxTQUFJLEdBQW1CLE1BQU0sQ0FBQztRQW9COUIsY0FBUyxHQUFzQixNQUFNLENBQUM7UUFFckMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDckQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBQ25ELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUMzRCxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFekQsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO0tBeUN6QztJQXZDQyxRQUFRO1FBQ04sSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7UUFDakUsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsQ0FBUTtRQUMz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QUFlLEVBQUU7Z0JBQzVCLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ2lDLElBQUk7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUM1QixjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBHb2FiSWNvblR5cGUsXG4gIEdvYWJJbnB1dEF1dG9DYXBpdGFsaXplLFxuICBHb2FiSW5wdXRPbkJsdXJEZXRhaWwsXG4gIEdvYWJJbnB1dE9uQ2hhbmdlRGV0YWlsLFxuICBHb2FiSW5wdXRPbkZvY3VzRGV0YWlsLFxuICBHb2FiSW5wdXRPbktleVByZXNzRGV0YWlsLFxuICBHb2FiSW5wdXRUeXBlLFxufSBmcm9tIFwiQGFiZ292L3VpLWNvbXBvbmVudHMtY29tbW9uXCI7XG5pbXBvcnQge1xuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgZm9yd2FyZFJlZixcbiAgT25Jbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgR29hYkNvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSBcIi4uL2Jhc2UuY29tcG9uZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWdub3JlTWUge1xuICBpZ25vcmU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiBcImdvYWItaW5wdXRcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8Z29hLWlucHV0XG4gICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgIFthdHRyLmZvY3VzZWRdPVwiZm9jdXNlZFwiXG4gICAgICBbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICBbYXR0ci5hdXRvY2FwaXRhbGl6ZV09XCJhdXRvQ2FwaXRhbGl6ZVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbYXR0ci5sZWFkaW5naWNvbl09XCJsZWFkaW5nSWNvblwiXG4gICAgICBbYXR0ci50cmFpbGluZ2ljb25dPVwidHJhaWxpbmdJY29uXCJcbiAgICAgIFthdHRyLnZhcmlhbnRdPVwidmFyaWFudFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2F0dHIuZXJyb3JdPVwiZXJyb3JcIlxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwidGVzdElkXCJcbiAgICAgIFthdHRyLndpZHRoXT1cIndpZHRoXCJcbiAgICAgIFthdHRyLmFyaWFsYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgW2F0dHIuYXJpYWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgW2F0dHIubWluXT1cIm1pblwiXG4gICAgICBbYXR0ci5tYXhdPVwibWF4XCJcbiAgICAgIFthdHRyLnN0ZXBdPVwic3RlcFwiXG4gICAgICBbYXR0ci5wcmVmaXhdPVwicHJlZml4XCJcbiAgICAgIFthdHRyLnN1ZmZpeF09XCJzdWZmaXhcIlxuICAgICAgW2F0dHIuZGVib3VuY2VdPVwiZGVib3VuY2VcIlxuICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICBbYXR0ci5pZF09XCJpZFwiXG4gICAgICBbYXR0ci5tdF09XCJtdFwiXG4gICAgICBbYXR0ci5tcl09XCJtclwiXG4gICAgICBbYXR0ci5tYl09XCJtYlwiXG4gICAgICBbYXR0ci5tbF09XCJtbFwiXG4gICAgICBbYXR0ci5oYW5kbGV0cmFpbGluZ2ljb25jbGlja109XCIhIV9vblRyYWlsaW5nSWNvbkNsaWNrXCJcbiAgICAgIFthdHRyLnRleHRhbGlnbl09XCJ0ZXh0QWxpZ25cIlxuICAgICAgKF90cmFpbGluZ0ljb25DbGljayk9XCJfb25UcmFpbGluZ0ljb25DbGljaygkZXZlbnQpXCJcbiAgICAgIChfY2hhbmdlKT1cIl9vbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChfZm9jdXMpPVwiX29uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAoX2JsdXIpPVwiX29uQmx1cigkZXZlbnQpXCJcbiAgICAgIChfa2V5UHJlc3MpPVwiX29uS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICBbYXR0ci50cmFpbGluZ2ljb25hcmlhbGFiZWxdPVwidHJhaWxpbmdJY29uQXJpYUxhYmVsXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZ29hLWlucHV0PlxuICBgLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHb2FiSW5wdXQpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEdvYWJJbnB1dCBleHRlbmRzIEdvYWJDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHR5cGU/OiBHb2FiSW5wdXRUeXBlID0gXCJ0ZXh0XCI7XG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGRlYm91bmNlPzogbnVtYmVyO1xuICBASW5wdXQoKSBhdXRvQ2FwaXRhbGl6ZT86IEdvYWJJbnB1dEF1dG9DYXBpdGFsaXplO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgQElucHV0KCkgbGVhZGluZ0ljb24/OiBHb2FiSWNvblR5cGU7XG4gIEBJbnB1dCgpIHRyYWlsaW5nSWNvbj86IEdvYWJJY29uVHlwZTtcbiAgQElucHV0KCkgdmFyaWFudD86IHN0cmluZztcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGZvY3VzZWQ/OiBib29sZWFuO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcmVhZG9ubHk/OiBib29sZWFuO1xuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgcHJlZml4Pzogc3RyaW5nO1xuICBASW5wdXQoKSBzdWZmaXg/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbD86IHN0cmluZztcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBtaW4/OiBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgc3RlcD86IG51bWJlcjtcbiAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRyYWlsaW5nSWNvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgdGV4dEFsaWduPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgPSBcImxlZnRcIjtcblxuICBAT3V0cHV0KCkgb25UcmFpbGluZ0ljb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEdvYWJJbnB1dE9uRm9jdXNEZXRhaWw+KCk7XG4gIEBPdXRwdXQoKSBvbkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEdvYWJJbnB1dE9uQmx1ckRldGFpbD4oKTtcbiAgQE91dHB1dCgpIG9uS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPEdvYWJJbnB1dE9uS2V5UHJlc3NEZXRhaWw+KCk7XG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8R29hYklucHV0T25DaGFuZ2VEZXRhaWw+KCk7XG5cbiAgcHJpdmF0ZSBoYW5kbGVUcmFpbGluZ0ljb25DbGljayA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaGFuZGxlVHJhaWxpbmdJY29uQ2xpY2sgPSB0aGlzLm9uVHJhaWxpbmdJY29uQ2xpY2sub2JzZXJ2ZWQ7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJGb3IgbnVtZXJpYyB2YWx1ZXMgdXNlIGdvYWItaW5wdXQtbnVtYmVyLlwiKTtcbiAgICB9XG4gIH1cblxuICBfb25UcmFpbGluZ0ljb25DbGljayhfOiBFdmVudCkge1xuICAgIGlmICh0aGlzLmhhbmRsZVRyYWlsaW5nSWNvbkNsaWNrKSB7XG4gICAgICB0aGlzLm9uVHJhaWxpbmdJY29uQ2xpY2suZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIF9vbkNoYW5nZShlOiBFdmVudCkge1xuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgIGNvbnN0IGRldGFpbCA9IChlIGFzIEN1c3RvbUV2ZW50PEdvYWJJbnB1dE9uQ2hhbmdlRGV0YWlsPikuZGV0YWlsO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdChkZXRhaWwpO1xuXG4gICAgdGhpcy5mY0NoYW5nZT8uKGRldGFpbC52YWx1ZSk7XG4gIH1cblxuICBfb25LZXlQcmVzcyhlOiBFdmVudCkge1xuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgIGNvbnN0IGRldGFpbCA9IChlIGFzIEN1c3RvbUV2ZW50PEdvYWJJbnB1dE9uS2V5UHJlc3NEZXRhaWw+KS5kZXRhaWw7XG4gICAgdGhpcy5vbktleVByZXNzLmVtaXQoZGV0YWlsKTtcblxuICAgIHRoaXMuZmNUb3VjaGVkPy4oKTtcbiAgfVxuXG4gIF9vbkZvY3VzKGU6IEV2ZW50KSB7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgY29uc3QgZGV0YWlsID0gKGUgYXMgQ3VzdG9tRXZlbnQ8R29hYklucHV0T25Gb2N1c0RldGFpbD4pLmRldGFpbDtcbiAgICB0aGlzLm9uRm9jdXMuZW1pdChkZXRhaWwpO1xuICB9XG5cbiAgX29uQmx1cihlOiBFdmVudCkge1xuICAgIGNvbnN0IGRldGFpbCA9IChlIGFzIEN1c3RvbUV2ZW50PEdvYWJJbnB1dE9uQmx1ckRldGFpbD4pLmRldGFpbDtcbiAgICB0aGlzLm9uQmx1ci5lbWl0KGRldGFpbCk7XG4gIH1cbn1cbiJdfQ==