tuain-ng-forms-lib
Version:
Componentes y Clases Angular para la gestión de formularios TUAIN
36 lines • 5.35 kB
JavaScript
import { BehaviorSubject } from 'rxjs';
import { FormPiece } from './piece';
const VISIBLE = 'visible';
const DISABLED = 'disabled';
export class FormPiecePropagate extends FormPiece {
_attributeChange;
constructor(pieceDefinition, formConfig) {
super(pieceDefinition, formConfig);
this._attributeChange = new BehaviorSubject(null);
}
get attributeChange() { return this._attributeChange.asObservable(); }
propagateAttribute(name, value) {
this._attributeChange?.next({ name, value });
}
setCustomAttribute(name, value) {
super.setCustomAttribute(name, value);
const fullName = `customAttributes.${name}`;
this.propagateAttribute(fullName, value);
}
setVisibility(visible, forced = null) {
super.setVisibility(visible, forced);
this.propagateAttribute(VISIBLE, this._visible);
}
set enabled(enabled) {
super.enabled = enabled;
this.propagateAttribute(DISABLED, this._disabled);
}
formStateChange(state) {
super.formStateChange(state);
if (state) {
this.propagateAttribute(VISIBLE, this._visible);
this.propagateAttribute(DISABLED, this._disabled);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllY2UtcHJvcGFnYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy9waWVjZS1wcm9wYWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR3BDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQztBQUMxQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUM7QUFFNUIsTUFBTSxPQUFnQixrQkFBbUIsU0FBUSxTQUFTO0lBQzlDLGdCQUFnQixDQUEwQztJQUVwRSxZQUFZLGVBQWdDLEVBQUUsVUFBdUI7UUFDbkUsS0FBSyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxlQUFlLENBQXlCLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLGVBQWUsS0FBeUMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTFHLGtCQUFrQixDQUFDLElBQVksRUFBRSxLQUFVO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVEsa0JBQWtCLENBQUMsSUFBWSxFQUFFLEtBQVU7UUFDbEQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsSUFBSSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRVEsYUFBYSxDQUFDLE9BQWdCLEVBQUUsU0FBeUIsSUFBSTtRQUNwRSxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBZ0I7UUFDbkMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVRLGVBQWUsQ0FBQyxLQUFVO1FBQ2pDLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1QaWVjZSB9IGZyb20gJy4vcGllY2UnO1xuaW1wb3J0IHsgQXR0cmlidXRlQ2hhbmdlLCBJRm9ybUNvbmZpZywgUGllY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9mb3JtLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5jb25zdCBWSVNJQkxFID0gJ3Zpc2libGUnO1xuY29uc3QgRElTQUJMRUQgPSAnZGlzYWJsZWQnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9ybVBpZWNlUHJvcGFnYXRlIGV4dGVuZHMgRm9ybVBpZWNlIHtcbiAgcHJvdGVjdGVkIF9hdHRyaWJ1dGVDaGFuZ2U6IEJlaGF2aW9yU3ViamVjdDxBdHRyaWJ1dGVDaGFuZ2UgfCBudWxsPjtcblxuICBjb25zdHJ1Y3RvcihwaWVjZURlZmluaXRpb246IFBpZWNlRGVmaW5pdGlvbiwgZm9ybUNvbmZpZzogSUZvcm1Db25maWcpIHtcbiAgICBzdXBlcihwaWVjZURlZmluaXRpb24sIGZvcm1Db25maWcpO1xuICAgIHRoaXMuX2F0dHJpYnV0ZUNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXR0cmlidXRlQ2hhbmdlIHwgbnVsbD4obnVsbCk7XG4gIH1cblxuICBnZXQgYXR0cmlidXRlQ2hhbmdlKCk6IE9ic2VydmFibGU8QXR0cmlidXRlQ2hhbmdlIHwgbnVsbD4geyByZXR1cm4gdGhpcy5fYXR0cmlidXRlQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpOyB9XG5cbiAgcHJvcGFnYXRlQXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX2F0dHJpYnV0ZUNoYW5nZT8ubmV4dCh7IG5hbWUsIHZhbHVlIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0Q3VzdG9tQXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHN1cGVyLnNldEN1c3RvbUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgY29uc3QgZnVsbE5hbWUgPSBgY3VzdG9tQXR0cmlidXRlcy4ke25hbWV9YDtcbiAgICB0aGlzLnByb3BhZ2F0ZUF0dHJpYnV0ZShmdWxsTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0VmlzaWJpbGl0eSh2aXNpYmxlOiBib29sZWFuLCBmb3JjZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbCk6IHZvaWQge1xuICAgIHN1cGVyLnNldFZpc2liaWxpdHkodmlzaWJsZSwgZm9yY2VkKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUF0dHJpYnV0ZShWSVNJQkxFLCB0aGlzLl92aXNpYmxlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHNldCBlbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICBzdXBlci5lbmFibGVkID0gZW5hYmxlZDtcbiAgICB0aGlzLnByb3BhZ2F0ZUF0dHJpYnV0ZShESVNBQkxFRCwgdGhpcy5fZGlzYWJsZWQpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZm9ybVN0YXRlQ2hhbmdlKHN0YXRlOiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5mb3JtU3RhdGVDaGFuZ2Uoc3RhdGUpO1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5wcm9wYWdhdGVBdHRyaWJ1dGUoVklTSUJMRSwgdGhpcy5fdmlzaWJsZSk7XG4gICAgICB0aGlzLnByb3BhZ2F0ZUF0dHJpYnV0ZShESVNBQkxFRCwgdGhpcy5fZGlzYWJsZWQpO1xuICAgIH1cbiAgfVxufVxuIl19