@abgov/angular-components
Version:
Government of Alberta - UI components for Angular
213 lines • 18.2 kB
JavaScript
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
[]="type"
[]="name"
[]="focused"
[]="value"
[]="autoCapitalize"
[]="placeholder"
[]="leadingIcon"
[]="trailingIcon"
[]="variant"
[]="disabled"
[]="readonly"
[]="error"
[]="testId"
[]="width"
[]="ariaLabel"
[]="ariaLabelledBy"
[]="min"
[]="max"
[]="step"
[]="prefix"
[]="suffix"
[]="debounce"
[]="maxLength"
[]="id"
[]="mt"
[]="mr"
[]="mb"
[]="ml"
[]="!!_onTrailingIconClick"
[]="textAlign"
(_trailingIconClick)="_onTrailingIconClick($event)"
(_change)="_onChange($event)"
(_focus)="_onFocus($event)"
(_blur)="_onBlur($event)"
(_keyPress)="_onKeyPress($event)"
[]="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
[]="type"
[]="name"
[]="focused"
[]="value"
[]="autoCapitalize"
[]="placeholder"
[]="leadingIcon"
[]="trailingIcon"
[]="variant"
[]="disabled"
[]="readonly"
[]="error"
[]="testId"
[]="width"
[]="ariaLabel"
[]="ariaLabelledBy"
[]="min"
[]="max"
[]="step"
[]="prefix"
[]="suffix"
[]="debounce"
[]="maxLength"
[]="id"
[]="mt"
[]="mr"
[]="mb"
[]="ml"
[]="!!_onTrailingIconClick"
[]="textAlign"
(_trailingIconClick)="_onTrailingIconClick($event)"
(_change)="_onChange($event)"
(_focus)="_onFocus($event)"
(_blur)="_onBlur($event)"
(_keyPress)="_onKeyPress($event)"
[]="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==