UNPKG

govuk-angular

Version:

Angular components port of govuk-frontend nunjucks macros.

97 lines (93 loc) 8.9 kB
import { Component, EventEmitter, Input, Output } from '@angular/core'; import { emptyLabel } from '../label/label'; import { emptyHint } from '../hint/hint'; import { emptyErrorMessage } from '../error/error-message.model'; import * as i0 from "@angular/core"; import * as i1 from "../field/field.component"; import * as i2 from "@angular/forms"; import * as i3 from "@angular/common"; /** * Input component with error handling. * * ```javascript * <govuk-input [id]="'with-date-fill'" * [(model)]="model.date" * [label]="{text:'What is the date today?', classes: 'govuk-label--m'}" * [linkAction]="{ text:'Use todays date', action: today } " * [hint]="{ text: 'Try the link below '}" * [classes]="'govuk-input--width-10'" * maxlength="10"></govuk-input> * ``` */ export class GovUKTextAreaComponent { constructor() { this.rows = '5'; this.label = emptyLabel(); this.hint = emptyHint(); this.errorMessage = emptyErrorMessage(); this.modelChange = new EventEmitter(); this.maxlength = 50; } } GovUKTextAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: GovUKTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); GovUKTextAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: GovUKTextAreaComponent, selector: "govuk-textarea", inputs: { id: "id", name: "name", classes: "classes", type: "type", rows: "rows", describeBy: "describeBy", label: "label", hint: "hint", errorMessage: "errorMessage", model: "model", maxlength: "maxlength" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: ` <govuk-field [id]="id" [label]="label" [hint]="hint" [errorMessage]="errorMessage"> <textarea [id]="id" [attr.name]="name || id" [attr.rows]="rows" class="govuk-textarea {{classes}}" [ngClass]="{'govuk-textarea--error' : errorMessage.text}" [attr.aria-describedby]="describeBy" [attr.maxlength]="maxlength" [attr.type]="type" [(ngModel)]="model" (ngModelChange)="modelChange.emit($event)" > </textarea> <govuk-field> `, isInline: true, components: [{ type: i1.GovUKFieldComponent, selector: "govuk-field", inputs: ["id", "name", "classes", "hint", "errorMessage", "label"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: GovUKTextAreaComponent, decorators: [{ type: Component, args: [{ selector: 'govuk-textarea', template: ` <govuk-field [id]="id" [label]="label" [hint]="hint" [errorMessage]="errorMessage"> <textarea [id]="id" [attr.name]="name || id" [attr.rows]="rows" class="govuk-textarea {{classes}}" [ngClass]="{'govuk-textarea--error' : errorMessage.text}" [attr.aria-describedby]="describeBy" [attr.maxlength]="maxlength" [attr.type]="type" [(ngModel)]="model" (ngModelChange)="modelChange.emit($event)" > </textarea> <govuk-field> ` }] }], propDecorators: { id: [{ type: Input }], name: [{ type: Input }], classes: [{ type: Input }], type: [{ type: Input }], rows: [{ type: Input }], describeBy: [{ type: Input }], label: [{ type: Input }], hint: [{ type: Input }], errorMessage: [{ type: Input }], model: [{ type: Input }], modelChange: [{ type: Output }], maxlength: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ292dWstYW5ndWxhci9zcmMvbGliL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFRLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBZ0IsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFDL0U7Ozs7Ozs7Ozs7OztHQVlHO0FBcUJILE1BQU0sT0FBTyxzQkFBc0I7SUFwQm5DO1FBNEJXLFNBQUksR0FBRyxHQUFHLENBQUM7UUFJWCxVQUFLLEdBQVUsVUFBVSxFQUFFLENBQUM7UUFFNUIsU0FBSSxHQUFTLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLGlCQUFZLEdBQWlCLGlCQUFpQixFQUFFLENBQUM7UUFHaEQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTFDLGNBQVMsR0FBRyxFQUFFLENBQUM7S0FDekI7O21IQXJCWSxzQkFBc0I7dUdBQXRCLHNCQUFzQixpVEFsQnZCOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JYOzJGQUVZLHNCQUFzQjtrQkFwQmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0NBZ0JYO2lCQUNBOzhCQUVVLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUUsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlbXB0eUxhYmVsLCBMYWJlbCB9IGZyb20gJy4uL2xhYmVsL2xhYmVsJztcbmltcG9ydCB7IEdvdlVLRGF0YUNhcHR1cmUgfSBmcm9tICcuLi9kYXRhLWNhcHR1cmUuY29tcG9uZW50JztcbmltcG9ydCB7IGVtcHR5SGludCwgSGludCB9IGZyb20gJy4uL2hpbnQvaGludCc7XG5pbXBvcnQgeyBlbXB0eUVycm9yTWVzc2FnZSwgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vZXJyb3IvZXJyb3ItbWVzc2FnZS5tb2RlbCc7XG4vKipcbiAqIElucHV0IGNvbXBvbmVudCB3aXRoIGVycm9yIGhhbmRsaW5nLlxuICpcbiAqIGBgYGphdmFzY3JpcHRcbiAqICAgIDxnb3Z1ay1pbnB1dCBbaWRdPVwiJ3dpdGgtZGF0ZS1maWxsJ1wiXG4gKiAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWwuZGF0ZVwiXG4gKiAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInt0ZXh0OidXaGF0IGlzIHRoZSBkYXRlIHRvZGF5PycsIGNsYXNzZXM6ICdnb3Z1ay1sYWJlbC0tbSd9XCJcbiAqICAgICAgICAgICAgICAgICBbbGlua0FjdGlvbl09XCJ7IHRleHQ6J1VzZSB0b2RheXMgZGF0ZScsIGFjdGlvbjogdG9kYXkgfSBcIlxuICogICAgICAgICAgICAgICAgIFtoaW50XT1cInsgdGV4dDogJ1RyeSB0aGUgbGluayBiZWxvdyAnfVwiXG4gKiAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiJ2dvdnVrLWlucHV0LS13aWR0aC0xMCdcIlxuICogICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjEwXCI+PC9nb3Z1ay1pbnB1dD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnb3Z1ay10ZXh0YXJlYScsXG4gIHRlbXBsYXRlOiBgXG48Z292dWstZmllbGQgW2lkXT1cImlkXCIgW2xhYmVsXT1cImxhYmVsXCIgW2hpbnRdPVwiaGludFwiIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlXCI+XG5cbiAgPHRleHRhcmVhIFtpZF09XCJpZFwiXG4gICAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lIHx8IGlkXCJcbiAgICAgICAgICBbYXR0ci5yb3dzXT1cInJvd3NcIlxuICAgICAgICAgIGNsYXNzPVwiZ292dWstdGV4dGFyZWEge3tjbGFzc2VzfX1cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstdGV4dGFyZWEtLWVycm9yJyA6IGVycm9yTWVzc2FnZS50ZXh0fVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJkZXNjcmliZUJ5XCJcbiAgICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcbiAgICAgICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWxcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlLmVtaXQoJGV2ZW50KVwiID5cbjwvdGV4dGFyZWE+XG5cbjxnb3Z1ay1maWVsZD5cbmBcbn0pXG5leHBvcnQgY2xhc3MgR292VUtUZXh0QXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIEdvdlVLRGF0YUNhcHR1cmU8c3RyaW5nPiB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIC8qKiBUeXBlIG9mIGlucHV0IGNvbnRyb2wgdG8gcmVuZGVyLiBEZWZhdWx0cyB0byAndGV4dCcgKi9cbiAgQElucHV0KCkgdHlwZTogJ3RleHQnO1xuXG4gIEBJbnB1dCgpIHJvd3MgPSAnNSc7XG5cbiAgQElucHV0KCkgZGVzY3JpYmVCeT86IHN0cmluZztcblxuICBASW5wdXQoKSBsYWJlbDogTGFiZWwgPSBlbXB0eUxhYmVsKCk7XG5cbiAgQElucHV0KCkgaGludDogSGludCA9IGVtcHR5SGludCgpO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZSA9IGVtcHR5RXJyb3JNZXNzYWdlKCk7XG5cbiAgQElucHV0KCkgbW9kZWw6IHN0cmluZztcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQElucHV0KCkgbWF4bGVuZ3RoID0gNTA7XG59XG4iXX0=