UNPKG

tuain-ng-forms-lib

Version:

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

56 lines 7.15 kB
import { Component, Input } from '@angular/core'; import { Subject, takeUntil } from 'rxjs'; import { PieceComponent } from './piece.component'; import * as i0 from "@angular/core"; const CUSTOM_ATTRIBUTES = 'customAttributes'; const signaledAttributes = [ 'visible', 'disabled', ]; export class SubSectionComponent extends PieceComponent { destroy$ = new Subject(); subSection; updatePropagatedAttributes() { this.updatePieceAttributes(this.subSection, signaledAttributes); } ngOnInit() { if (!this.subSection) { return; } this.formConfig = this.subSection?._formConfig; this.updatePropagatedAttributes(); this.replaceCustomAttributes(this.subSection?.customAttributes); this.subSection?.attributeChange .pipe(takeUntil(this.destroy$)) .subscribe(event => { const { name: attribute, value = null } = event ?? {}; const attributeParts = attribute?.split('.') ?? []; if (signaledAttributes.includes(attribute)) { this.updatePieceAttribute(signaledAttributes, attribute, value); } else if (attributeParts?.length > 1 && attributeParts?.[0] === CUSTOM_ATTRIBUTES) { const subAttribute = attributeParts?.[1] ?? null; this.updateCustomAttribute(subAttribute, value); } }); this.start(); } start() { this.setForm(this.subSection?._form); } ngOnDestroy() { this.destroy$.next(); this.destroy$.complete(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SubSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SubSectionComponent, selector: "lib-subsection", inputs: { subSection: "subSection" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SubSectionComponent, decorators: [{ type: Component, args: [{ selector: 'lib-subsection', template: `<ng-content></ng-content>` }] }], propDecorators: { subSection: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvc3ViLXNlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFbkQsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUU3QyxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLFNBQVMsRUFBRSxVQUFVO0NBQ3RCLENBQUM7QUFNRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQUM3QyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUU5QixVQUFVLENBQU07SUFFekIsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFDakUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZTthQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkQsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsRSxDQUFDO2lCQUFNLElBQUksY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztnQkFDbkYsTUFBTSxZQUFZLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNqRCxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7d0dBcENVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLG1IQUZwQiwyQkFBMkI7OzRGQUUxQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7OEJBSVUsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQaWVjZUNvbXBvbmVudCB9IGZyb20gJy4vcGllY2UuY29tcG9uZW50JztcblxuY29uc3QgQ1VTVE9NX0FUVFJJQlVURVMgPSAnY3VzdG9tQXR0cmlidXRlcyc7XG5cbmNvbnN0IHNpZ25hbGVkQXR0cmlidXRlcyA9IFtcbiAgJ3Zpc2libGUnLCAnZGlzYWJsZWQnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN1YnNlY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIFN1YlNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBQaWVjZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpIHN1YlNlY3Rpb246IGFueTtcblxuICB1cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlcyh0aGlzLnN1YlNlY3Rpb24sIHNpZ25hbGVkQXR0cmlidXRlcylcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5zdWJTZWN0aW9uKSB7IHJldHVybjsgfVxuICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMuc3ViU2VjdGlvbj8uX2Zvcm1Db25maWc7XG4gICAgdGhpcy51cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpO1xuICAgIHRoaXMucmVwbGFjZUN1c3RvbUF0dHJpYnV0ZXModGhpcy5zdWJTZWN0aW9uPy5jdXN0b21BdHRyaWJ1dGVzKTtcbiAgICB0aGlzLnN1YlNlY3Rpb24/LmF0dHJpYnV0ZUNoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGNvbnN0IHsgbmFtZTogYXR0cmlidXRlLCB2YWx1ZSA9IG51bGwgfSA9IGV2ZW50ID8/IHt9O1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVQYXJ0cyA9IGF0dHJpYnV0ZT8uc3BsaXQoJy4nKSA/PyBbXTtcbiAgICAgICAgaWYgKHNpZ25hbGVkQXR0cmlidXRlcy5pbmNsdWRlcyhhdHRyaWJ1dGUpKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVQaWVjZUF0dHJpYnV0ZShzaWduYWxlZEF0dHJpYnV0ZXMsIGF0dHJpYnV0ZSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVBhcnRzPy5sZW5ndGggPiAxICYmIGF0dHJpYnV0ZVBhcnRzPy5bMF0gPT09IENVU1RPTV9BVFRSSUJVVEVTKSB7XG4gICAgICAgICAgY29uc3Qgc3ViQXR0cmlidXRlID0gYXR0cmlidXRlUGFydHM/LlsxXSA/PyBudWxsO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ3VzdG9tQXR0cmlidXRlKHN1YkF0dHJpYnV0ZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHtcbiAgICB0aGlzLnNldEZvcm0odGhpcy5zdWJTZWN0aW9uPy5fZm9ybSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==