UNPKG

@abgov/angular-components

Version:

Government of Alberta - UI components for Angular

125 lines 11.3 kB
import { CUSTOM_ELEMENTS_SCHEMA, Component, EventEmitter, Input, Output, forwardRef, TemplateRef, booleanAttribute, } from "@angular/core"; import { NG_VALUE_ACCESSOR } from "@angular/forms"; import { NgIf, NgTemplateOutlet } from "@angular/common"; import { GoabControlValueAccessor } from "../base.component"; import * as i0 from "@angular/core"; export class GoabCheckbox extends GoabControlValueAccessor { constructor() { super(...arguments); this.onChange = new EventEmitter(); } getDescriptionAsString() { return typeof this.description === "string" ? this.description : ""; } getDescriptionAsTemplate() { if (this.description) { return typeof this.description === "string" ? null : this.description; } return null; } _onChange(e) { const detail = e.detail; this.onChange.emit(detail); this.markAsTouched(); this.fcChange?.(detail.binding === "check" ? detail.checked : detail.value || ""); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: GoabCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.3", type: GoabCheckbox, isStandalone: true, selector: "goab-checkbox", inputs: { name: "name", checked: ["checked", "checked", booleanAttribute], text: "text", value: "value", ariaLabel: "ariaLabel", description: "description", reveal: "reveal", revealArialLabel: "revealArialLabel", maxWidth: "maxWidth" }, outputs: { onChange: "onChange" }, providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GoabCheckbox), }, ], usesInheritance: true, ngImport: i0, template: ` <goa-checkbox [attr.name]="name" [checked]="checked" [disabled]="disabled" [attr.error]="error" [attr.text]="text" [value]="value" [attr.testid]="testId" [attr.arialabel]="ariaLabel" [attr.description]="getDescriptionAsString()" [attr.revealarialabel]="revealArialLabel" [id]="id" [attr.maxwidth]="maxWidth" [attr.mt]="mt" [attr.mb]="mb" [attr.ml]="ml" [attr.mr]="mr" (_change)="_onChange($event)" > <ng-content /> <div slot="description"> <ng-container [ngTemplateOutlet]="getDescriptionAsTemplate()"></ng-container> </div> <div slot="reveal"> <ng-container *ngIf="reveal" [ngTemplateOutlet]="reveal"></ng-container> </div> </goa-checkbox>`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: GoabCheckbox, decorators: [{ type: Component, args: [{ standalone: true, selector: "goab-checkbox", template: ` <goa-checkbox [attr.name]="name" [checked]="checked" [disabled]="disabled" [attr.error]="error" [attr.text]="text" [value]="value" [attr.testid]="testId" [attr.arialabel]="ariaLabel" [attr.description]="getDescriptionAsString()" [attr.revealarialabel]="revealArialLabel" [id]="id" [attr.maxwidth]="maxWidth" [attr.mt]="mt" [attr.mb]="mb" [attr.ml]="ml" [attr.mr]="mr" (_change)="_onChange($event)" > <ng-content /> <div slot="description"> <ng-container [ngTemplateOutlet]="getDescriptionAsTemplate()"></ng-container> </div> <div slot="reveal"> <ng-container *ngIf="reveal" [ngTemplateOutlet]="reveal"></ng-container> </div> </goa-checkbox>`, schemas: [CUSTOM_ELEMENTS_SCHEMA], providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => GoabCheckbox), }, ], imports: [NgTemplateOutlet, NgIf], }] }], propDecorators: { name: [{ type: Input }], checked: [{ type: Input, args: [{ transform: booleanAttribute }] }], text: [{ type: Input }], value: [{ type: Input }], ariaLabel: [{ type: Input }], description: [{ type: Input }], reveal: [{ type: Input }], revealArialLabel: [{ type: Input }], maxWidth: [{ type: Input }], onChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQTBDN0QsTUFBTSxPQUFPLFlBQWEsU0FBUSx3QkFBd0I7SUF4QzFEOztRQW9EWSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQThCLENBQUM7S0FtQnJFO0lBakJDLHNCQUFzQjtRQUNwQixPQUFPLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTLENBQUMsQ0FBUTtRQUNoQixNQUFNLE1BQU0sR0FBSSxDQUE2QyxDQUFDLE1BQU0sQ0FBQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7OEdBOUJVLFlBQVk7a0dBQVosWUFBWSx5R0FFSCxnQkFBZ0IsbU5BWHpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDNUM7U0FDRixpREFsQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQTBCTSw0REFTTixnQkFBZ0Isb0pBQUUsSUFBSTs7MkZBRXJCLFlBQVk7a0JBeEN4QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkEwQk07b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDO3lCQUM1QztxQkFDRjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7aUJBQ2xDOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDa0MsT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsSUFBSTtzQkFBWixLQUFLO2dCQUVZLEtBQUs7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR29hYkNoZWNrYm94T25DaGFuZ2VEZXRhaWwgfSBmcm9tIFwiQGFiZ292L3VpLWNvbXBvbmVudHMtY29tbW9uXCI7XG5pbXBvcnQge1xuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgZm9yd2FyZFJlZixcbiAgVGVtcGxhdGVSZWYsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEdvYWJDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gXCIuLi9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6IFwiZ29hYi1jaGVja2JveFwiLFxuICB0ZW1wbGF0ZTogYCA8Z29hLWNoZWNrYm94XG4gICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLmVycm9yXT1cImVycm9yXCJcbiAgICBbYXR0ci50ZXh0XT1cInRleHRcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgW2F0dHIudGVzdGlkXT1cInRlc3RJZFwiXG4gICAgW2F0dHIuYXJpYWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuZGVzY3JpcHRpb25dPVwiZ2V0RGVzY3JpcHRpb25Bc1N0cmluZygpXCJcbiAgICBbYXR0ci5yZXZlYWxhcmlhbGFiZWxdPVwicmV2ZWFsQXJpYWxMYWJlbFwiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbYXR0ci5tYXh3aWR0aF09XCJtYXhXaWR0aFwiXG4gICAgW2F0dHIubXRdPVwibXRcIlxuICAgIFthdHRyLm1iXT1cIm1iXCJcbiAgICBbYXR0ci5tbF09XCJtbFwiXG4gICAgW2F0dHIubXJdPVwibXJcIlxuICAgIChfY2hhbmdlKT1cIl9vbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IC8+XG4gICAgPGRpdiBzbG90PVwiZGVzY3JpcHRpb25cIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2V0RGVzY3JpcHRpb25Bc1RlbXBsYXRlKClcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHNsb3Q9XCJyZXZlYWxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXZlYWxcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZlYWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9nb2EtY2hlY2tib3g+YCxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR29hYkNoZWNrYm94KSxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgTmdJZl0sXG59KVxuZXhwb3J0IGNsYXNzIEdvYWJDaGVja2JveCBleHRlbmRzIEdvYWJDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjaGVja2VkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgdGV4dD86IHN0cmluZztcbiAgLy8gKiogTk9URTogY2FuIHdlIGp1c3QgdXNlIHRoZSBiYXNlIGNvbXBvbmVudCBmb3IgdGhpcz9cbiAgQElucHV0KCkgb3ZlcnJpZGUgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uITogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgcmV2ZWFsPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgcmV2ZWFsQXJpYWxMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgbWF4V2lkdGg/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxHb2FiQ2hlY2tib3hPbkNoYW5nZURldGFpbD4oKTtcblxuICBnZXREZXNjcmlwdGlvbkFzU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uID09PSBcInN0cmluZ1wiID8gdGhpcy5kZXNjcmlwdGlvbiA6IFwiXCI7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvbkFzVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwge1xuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gPT09IFwic3RyaW5nXCIgPyBudWxsIDogdGhpcy5kZXNjcmlwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBfb25DaGFuZ2UoZTogRXZlbnQpIHtcbiAgICBjb25zdCBkZXRhaWwgPSAoZSBhcyBDdXN0b21FdmVudDxHb2FiQ2hlY2tib3hPbkNoYW5nZURldGFpbD4pLmRldGFpbDtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZGV0YWlsKTtcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmZjQ2hhbmdlPy4oZGV0YWlsLmJpbmRpbmcgPT09IFwiY2hlY2tcIiA/IGRldGFpbC5jaGVja2VkIDogZGV0YWlsLnZhbHVlIHx8IFwiXCIpO1xuICB9XG59XG4iXX0=