UNPKG

@abgov/angular-components

Version:

Government of Alberta - UI components for Angular

61 lines 6.87 kB
import { forwardRef, Directive, ElementRef, HostListener, Renderer2, } from "@angular/core"; import { CheckboxControlValueAccessor, NG_VALUE_ACCESSOR, } from "@angular/forms"; import * as i0 from "@angular/core"; // @deprecated: Use the new <goab-checkbox .. /> component export class CheckedDirective extends CheckboxControlValueAccessor { constructor(renderer, elementRef) { super(renderer, elementRef); this.renderer = renderer; this.elementRef = elementRef; this._checked = false; /* eslint-disable @typescript-eslint/no-explicit-any */ this.onChange = () => { }; this.onTouched = () => { }; } get value() { return this._checked ? "checked" : ""; } set value(checked) { this._checked = !!checked; this.onChange(this._checked); this.onTouched(); this.elementRef.nativeElement.checked = checked; } writeValue(checked) { this.value = checked; } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } listenForValueChange(checked) { this.value = checked; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CheckedDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: CheckedDirective, selector: "[goaChecked]", host: { listeners: { "_change": "listenForValueChange($event.detail.checked)" } }, providers: [ { useExisting: forwardRef(() => CheckedDirective), provide: NG_VALUE_ACCESSOR, multi: true, }, ], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: CheckedDirective, decorators: [{ type: Directive, args: [{ selector: "[goaChecked]", providers: [ { useExisting: forwardRef(() => CheckedDirective), provide: NG_VALUE_ACCESSOR, multi: true, }, ], }] }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { listenForValueChange: [{ type: HostListener, args: ["_change", ["$event.detail.checked"]] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tlZC1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NoZWNrZWQtZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXhCLDBEQUEwRDtBQVcxRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsNEJBQTRCO0lBT2hFLFlBQXNCLFFBQW1CLEVBQVksVUFBc0I7UUFDekUsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQURSLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBWSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTm5FLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFekIsdURBQXVEO1FBQzlDLGFBQVEsR0FBUSxHQUFHLEVBQUUsR0FBNEIsQ0FBQyxDQUFDO1FBQ25ELGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBNEIsQ0FBQyxDQUFDO0lBSTdELENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFZO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUNsRCxDQUFDO0lBRVEsVUFBVSxDQUFDLE9BQVk7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDdkIsQ0FBQztJQUVRLGdCQUFnQixDQUFDLEVBQW9CO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFUSxpQkFBaUIsQ0FBQyxFQUFjO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFHRCxvQkFBb0IsQ0FBQyxPQUFZO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ3ZCLENBQUM7OEdBckNVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDBIQVJoQjtZQUNUO2dCQUNFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQy9DLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7MkZBRVUsZ0JBQWdCO2tCQVY1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUM7NEJBQy9DLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGO3VHQW9DQyxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBmb3J3YXJkUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgUmVuZGVyZXIyLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG4vLyBAZGVwcmVjYXRlZDogVXNlIHRoZSBuZXcgPGdvYWItY2hlY2tib3ggLi4gLz4gY29tcG9uZW50XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2dvYUNoZWNrZWRdXCIsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrZWREaXJlY3RpdmUpLFxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2VkRGlyZWN0aXZlIGV4dGVuZHMgQ2hlY2tib3hDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHByaXZhdGUgX2NoZWNrZWQgPSBmYWxzZTtcblxuICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4gIG92ZXJyaWRlIG9uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7LyoqIE5vIGltcGxlbWVudGF0aW9uICoqLyB9O1xuICBvdmVycmlkZSBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHsvKiogTm8gaW1wbGVtZW50YXRpb24gKiovIH07XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIocmVuZGVyZXIsIGVsZW1lbnRSZWYpO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrZWQgPyBcImNoZWNrZWRcIiA6IFwiXCI7XG4gIH1cblxuICBzZXQgdmFsdWUoY2hlY2tlZDogYW55KSB7XG4gICAgdGhpcy5fY2hlY2tlZCA9ICEhY2hlY2tlZDtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX2NoZWNrZWQpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IGNoZWNrZWQ7XG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKGNoZWNrZWQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSBjaGVja2VkO1xuICB9XG5cbiAgb3ZlcnJpZGUgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJfY2hhbmdlXCIsIFtcIiRldmVudC5kZXRhaWwuY2hlY2tlZFwiXSlcbiAgbGlzdGVuRm9yVmFsdWVDaGFuZ2UoY2hlY2tlZDogYW55KSB7XG4gICAgdGhpcy52YWx1ZSA9IGNoZWNrZWQ7XG4gIH1cbn1cbiJdfQ==