UNPKG

cfc-ds

Version:

Design System do Conselho Federal de Contabilidade baseado no govbr-ds

69 lines 7.87 kB
import { Component } from '@angular/core'; import { NgControl, Validators } from '@angular/forms'; import * as i0 from "@angular/core"; export class CustomValueAccessor { injector; id = crypto.randomUUID(); disabled = false; required = false; ngControl; innerValue; onChange = () => { }; onTouched = () => { }; constructor(injector) { this.injector = injector; this.ngControl = this.injector.get(NgControl, null); if (this.ngControl) { this.ngControl.valueAccessor = this; } } ngOnInit() { if (this.ngControl?.control?.validator) { const validatorResult = this.ngControl?.control?.validator(this.ngControl?.control ?? undefined); this.required = !!validatorResult?.[Validators.required.name]; } } get value() { return this.innerValue; } get valid() { return this.ngControl?.valid; } get invalid() { return this.ngControl?.invalid; } get hasErrors() { if (this.ngControl) { const { invalid, dirty, touched } = this.ngControl; return invalid && (dirty || touched); } return false; } set value(value) { if (this.innerValue !== value) { this.innerValue = value; this.onChange(value); } } writeValue(value) { this.innerValue = value; } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } setDisabledState(isDisabled) { this.disabled = isDisabled; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomValueAccessor, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CustomValueAccessor, selector: "ng-component", ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CustomValueAccessor, decorators: [{ type: Component, args: [{ template: '', }] }], ctorParameters: () => [{ type: i0.Injector }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYWNjZXNzb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2ZjLWRzL3NyYy9saWIvY29tcG9uZW50cy9fYmFzZS92YWx1ZS1hY2Nlc3Nvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUF3QixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSzdFLE1BQU0sT0FBZ0IsbUJBQW1CO0lBaUJqQjtJQWR0QixFQUFFLEdBQVcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRWpDLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFFMUIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUUxQixTQUFTLENBQW1CO0lBRXBCLFVBQVUsQ0FBVTtJQUVsQixRQUFRLEdBQTRCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUU3QyxTQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRTNDLFlBQXNCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDdkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUN4RCxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxTQUFTLENBQ3JDLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ25ELE9BQU8sT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFjLEtBQUssQ0FBQyxLQUFhO1FBQy9CLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQTJCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO3dHQTFFbUIsbUJBQW1COzRGQUFuQixtQkFBbUIsb0RBRjdCLEVBQUU7OzRGQUVRLG1CQUFtQjtrQkFIeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3VzdG9tVmFsdWVBY2Nlc3NvcjxUVmFsdWU+XHJcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0XHJcbntcclxuICBpZDogc3RyaW5nID0gY3J5cHRvLnJhbmRvbVVVSUQoKTtcclxuXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbmdDb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsO1xyXG5cclxuICBwcml2YXRlIGlubmVyVmFsdWU/OiBUVmFsdWU7XHJcblxyXG4gIHByb3RlY3RlZCBvbkNoYW5nZTogKHZhbHVlOiBUVmFsdWUpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgcHJvdGVjdGVkIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbD8uY29udHJvbD8udmFsaWRhdG9yKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkYXRvclJlc3VsdCA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWxpZGF0b3IoXHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2wgPz8gdW5kZWZpbmVkXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMucmVxdWlyZWQgPSAhIXZhbGlkYXRvclJlc3VsdD8uW1ZhbGlkYXRvcnMucmVxdWlyZWQubmFtZV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKTogVFZhbHVlIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsaWQoKTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy52YWxpZDtcclxuICB9XHJcblxyXG4gIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uaW52YWxpZDtcclxuICB9XHJcblxyXG4gIGdldCBoYXNFcnJvcnMoKTogYm9vbGVhbiB8IG51bGwge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIGNvbnN0IHsgaW52YWxpZCwgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMubmdDb250cm9sO1xyXG4gICAgICByZXR1cm4gaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2V0IHZhbHVlKHZhbHVlOiBUVmFsdWUpIHtcclxuICAgIGlmICh0aGlzLmlubmVyVmFsdWUgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IFRWYWx1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5pbm5lclZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFRWYWx1ZSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxufVxyXG4iXX0=