UNPKG

tuain-ng-forms-lib

Version:

Componentes y Clases Angular para la gestión de formularios TUAIN

59 lines 8.68 kB
import { Component, signal, computed, ChangeDetectionStrategy } from '@angular/core'; import * as i0 from "@angular/core"; export class PieceComponent { form; formConfig; visible = signal(false); disabled = signal(false); enabled = computed(() => !this.disabled()); customAttributes = signal({}); setForm(form) { this.form = form; } propagatedAttributeChange(attribute, value) { } updatePieceAttribute(signaledAttributes, signaledAttribute, value) { if (!signaledAttributes.includes(signaledAttribute)) { return; } this[signaledAttribute]?.set(value); this.propagatedAttributeChange(signaledAttribute, value); } updatePieceAttributes(piece, signaledAttributes) { if (!piece) { return; } for (let index = 0; index < signaledAttributes.length; index++) { const signaledAttribute = signaledAttributes[index]; try { this[signaledAttribute]?.set(piece?.[signaledAttribute]); this.propagatedAttributeChange(signaledAttribute, piece?.[signaledAttribute]); } catch (e) { console.error(`Señal ${signaledAttribute} invalida en el componente. ${e}`); } } } customAttributeChange(subAttribute, value) { } updateCustomAttribute(attrName, attrValue) { this.customAttributes.update(old => ({ ...old, [attrName]: attrValue })); this.customAttributeChange(attrName, attrValue); this.customAttributeChange(attrName, attrValue); } replaceCustomAttributes(customAttributes) { this.customAttributes.set(customAttributes ?? {}); Object.keys(customAttributes).forEach(attrName => { const attrValue = customAttributes[attrName]; this.customAttributeChange(attrName, attrValue); }); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PieceComponent, isStandalone: true, selector: "lib-piece", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieceComponent, decorators: [{ type: Component, args: [{ standalone: true, selector: 'lib-piece', template: `<ng-content></ng-content>`, changeDetection: ChangeDetectionStrategy.OnPush }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvcGllY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFTckYsTUFBTSxPQUFnQixjQUFjO0lBQ2xDLElBQUksQ0FBTTtJQUNWLFVBQVUsQ0FBTTtJQUNoQixPQUFPLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDbEMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLGdCQUFnQixHQUFHLE1BQU0sQ0FBc0IsRUFBRSxDQUFDLENBQUM7SUFFbkQsT0FBTyxDQUFDLElBQVMsSUFBVSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFOUMseUJBQXlCLENBQUMsU0FBaUIsRUFBRSxLQUFXLElBQVUsQ0FBQztJQUVuRSxvQkFBb0IsQ0FBQyxrQkFBNEIsRUFBRSxpQkFBeUIsRUFBRSxLQUFVO1FBQ3RGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDL0QsSUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBVSxFQUFFLGtCQUE0QjtRQUM1RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUN2QixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDL0QsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUM7Z0JBQ0YsSUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUNoRixDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsaUJBQWlCLCtCQUErQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLFlBQW9CLEVBQUUsS0FBVyxJQUFVLENBQUM7SUFFbEUscUJBQXFCLENBQUMsUUFBZ0IsRUFBRSxTQUFjO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxnQkFBcUM7UUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9DLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQTdDbUIsY0FBYzs0RkFBZCxjQUFjLHFFQUh4QiwyQkFBMkI7OzRGQUdqQixjQUFjO2tCQU5uQyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBzaWduYWwsIGNvbXB1dGVkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ1VTVE9NX0FUVFJJQlVURVMgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnbGliLXBpZWNlJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGllY2VDb21wb25lbnQge1xuICBmb3JtOiBhbnk7XG4gIGZvcm1Db25maWc6IGFueTtcbiAgdmlzaWJsZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGRpc2FibGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgZW5hYmxlZCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmRpc2FibGVkKCkpO1xuICBjdXN0b21BdHRyaWJ1dGVzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIGFueT4+KHt9KTtcblxuICBzZXRGb3JtKGZvcm06IGFueSk6IHZvaWQgeyB0aGlzLmZvcm0gPSBmb3JtOyB9XG5cbiAgcHJvcGFnYXRlZEF0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpOiB2b2lkIHsgfVxuXG4gIHVwZGF0ZVBpZWNlQXR0cmlidXRlKHNpZ25hbGVkQXR0cmlidXRlczogc3RyaW5nW10sIHNpZ25hbGVkQXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXNpZ25hbGVkQXR0cmlidXRlcy5pbmNsdWRlcyhzaWduYWxlZEF0dHJpYnV0ZSkpIHsgcmV0dXJuOyB9XG4gICAgKHRoaXMgYXMgYW55KVtzaWduYWxlZEF0dHJpYnV0ZV0/LnNldCh2YWx1ZSk7XG4gICAgdGhpcy5wcm9wYWdhdGVkQXR0cmlidXRlQ2hhbmdlKHNpZ25hbGVkQXR0cmlidXRlLCB2YWx1ZSk7XG4gIH1cblxuICB1cGRhdGVQaWVjZUF0dHJpYnV0ZXMocGllY2U6IGFueSwgc2lnbmFsZWRBdHRyaWJ1dGVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICghcGllY2UpIHsgcmV0dXJuOyB9XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNpZ25hbGVkQXR0cmlidXRlcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IHNpZ25hbGVkQXR0cmlidXRlID0gc2lnbmFsZWRBdHRyaWJ1dGVzW2luZGV4XTtcbiAgICAgIHRyeSB7XG4gICAgICAgICh0aGlzIGFzIGFueSlbc2lnbmFsZWRBdHRyaWJ1dGVdPy5zZXQocGllY2U/LltzaWduYWxlZEF0dHJpYnV0ZV0pO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZWRBdHRyaWJ1dGVDaGFuZ2Uoc2lnbmFsZWRBdHRyaWJ1dGUsIHBpZWNlPy5bc2lnbmFsZWRBdHRyaWJ1dGVdKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgU2XDsWFsICR7c2lnbmFsZWRBdHRyaWJ1dGV9IGludmFsaWRhIGVuIGVsIGNvbXBvbmVudGUuICR7ZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjdXN0b21BdHRyaWJ1dGVDaGFuZ2Uoc3ViQXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogYW55KTogdm9pZCB7IH1cblxuICB1cGRhdGVDdXN0b21BdHRyaWJ1dGUoYXR0ck5hbWU6IHN0cmluZywgYXR0clZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMudXBkYXRlKG9sZCA9PiAoeyAuLi5vbGQsIFthdHRyTmFtZV06IGF0dHJWYWx1ZSB9KSk7XG4gICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gIH1cblxuICByZXBsYWNlQ3VzdG9tQXR0cmlidXRlcyhjdXN0b21BdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVzLnNldChjdXN0b21BdHRyaWJ1dGVzID8/IHt9KTtcbiAgICBPYmplY3Qua2V5cyhjdXN0b21BdHRyaWJ1dGVzKS5mb3JFYWNoKGF0dHJOYW1lID0+IHtcbiAgICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGN1c3RvbUF0dHJpYnV0ZXNbYXR0ck5hbWVdO1xuICAgICAgdGhpcy5jdXN0b21BdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==