tuain-ng-forms-lib
Version:
Componentes y Clases Angular para la gestión de formularios TUAIN
99 lines • 15.8 kB
JavaScript
import { FormPiecePropagate } from './piece-propagate';
import { elementTypes } from './form.constants';
export class RecordFormSubSection extends FormPiecePropagate {
_customRender = null;
_subsectionId = null;
_subsectionCode = null;
_subsectionTitle = null;
_subSectionElements = [];
_subSectionFields = [];
_subSectionTables = [];
_subSectionActions = [];
_elementsArray = {};
_active = false;
constructor(subsectionReceived, formObject, formConfig) {
super(subsectionReceived, formConfig);
this.propagationCustomAttributes = this._formConfig?.propagationCustomAttributes?.subsections ?? [];
if (!subsectionReceived) {
return;
}
this._subsectionId = (subsectionReceived.subsectionId) ? subsectionReceived.subsectionId.toString() : '';
this._subsectionCode = (subsectionReceived.subsectionCode) ? subsectionReceived.subsectionCode : '';
this._subsectionTitle = (subsectionReceived.subsectionTitle) ? subsectionReceived.subsectionTitle : '';
if (subsectionReceived.elements) {
for (const receivedElement of subsectionReceived.elements) {
let elementObject = null;
let arrayToAdd = [];
const { type, code } = receivedElement;
switch (type) {
case elementTypes.field:
elementObject = formObject.getField(code);
arrayToAdd = this._subSectionFields;
break;
case elementTypes.table:
elementObject = formObject.getTable(code);
arrayToAdd = this._subSectionTables;
break;
case elementTypes.action:
elementObject = formObject.getAction(code);
arrayToAdd = this._subSectionActions;
break;
}
if (elementObject) {
elementObject.elementType = type;
arrayToAdd.push(elementObject);
this._subSectionElements.push(elementObject);
this._elementsArray[code] = elementObject;
}
}
}
}
get customRender() { return this._customRender; }
set customRender(customRenderName) { this._customRender = customRenderName; }
get subsectionId() { return this._subsectionId; }
get subsectionCode() { return this._subsectionCode; }
get subsectionTitle() { return this._subsectionTitle; }
get subSectionElements() { return this._subSectionElements; }
get subSectionFields() { return this._subSectionFields; }
get subSectionTables() { return this._subSectionTables; }
get subSectionActions() { return this._subSectionActions; }
get elementsArray() { return this._elementsArray; }
get active() { return this._active; }
set subsectionId(subsectionId) { this._subsectionId = subsectionId; }
set subsectionCode(subsectionCode) { this._subsectionCode = subsectionCode; }
set subsectionTitle(subsectionTitle) { this._subsectionTitle = subsectionTitle; }
set subSectionElements(subSectionElements) { this._subSectionElements = subSectionElements; }
set subSectionFields(subSectionFields) { this._subSectionFields = subSectionFields; }
set subSectionTables(subSectionTables) { this._subSectionTables = subSectionTables; }
set subSectionActions(subSectionActions) { this._subSectionActions = subSectionActions; }
set elementsArray(elementsArray) { this._elementsArray = elementsArray; }
set active(active) { this._active = active; }
getField(name) {
return this._subSectionFields.find(fld => fld.name === name);
}
getFields() {
return this._subSectionFields;
}
getFieldNames() {
return this._subSectionFields.map(field => field.code);
}
getActions() {
return this._subSectionActions;
}
getActionNames() {
return this._subSectionActions.map(action => action.actionCode);
}
activate() {
if (!this._active) {
this._active = true;
// this.subsectionCode && this._activation.next(this.subsectionCode);
}
}
inactivate() {
if (this._active) {
this._active = false;
// this.subsectionCode && this._inactivation.next(this.subsectionCode);
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc3Vic2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQUNsRCxhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxlQUFlLEdBQWtCLElBQUksQ0FBQztJQUN0QyxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ3ZDLG1CQUFtQixHQUFVLEVBQUUsQ0FBQztJQUNoQyxpQkFBaUIsR0FBVSxFQUFFLENBQUM7SUFDOUIsaUJBQWlCLEdBQVUsRUFBRSxDQUFDO0lBQzlCLGtCQUFrQixHQUFVLEVBQUUsQ0FBQztJQUMvQixjQUFjLEdBQVEsRUFBRSxDQUFDO0lBQ3pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFeEIsWUFBWSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsVUFBVTtRQUNwRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNwRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFF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QyxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixxRUFBcUU7UUFDdkUsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsdUVBQXVFO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtUGllY2VQcm9wYWdhdGUgfSBmcm9tICcuL3BpZWNlLXByb3BhZ2F0ZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi9mb3JtLmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRGb3JtU3ViU2VjdGlvbiBleHRlbmRzIEZvcm1QaWVjZVByb3BhZ2F0ZSB7XG4gIHByaXZhdGUgX2N1c3RvbVJlbmRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3N1YnNlY3Rpb25JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3N1YnNlY3Rpb25Db2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3Vic2VjdGlvblRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3ViU2VjdGlvbkVsZW1lbnRzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uRmllbGRzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uVGFibGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uQWN0aW9uczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBfZWxlbWVudHNBcnJheTogYW55ID0ge307XG4gIHByaXZhdGUgX2FjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHN1YnNlY3Rpb25SZWNlaXZlZCwgZm9ybU9iamVjdCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKHN1YnNlY3Rpb25SZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLl9mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXM/LnN1YnNlY3Rpb25zID8/IFtdO1xuICAgIGlmICghc3Vic2VjdGlvblJlY2VpdmVkKSB7IHJldHVybjsgfVxuICAgIHRoaXMuX3N1YnNlY3Rpb25JZCA9IChzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbklkKSA/IHN1YnNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9uSWQudG9TdHJpbmcoKSA6ICcnO1xuICAgIHRoaXMuX3N1YnNlY3Rpb25Db2RlID0gKHN1YnNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9uQ29kZSkgPyBzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbkNvZGUgOiAnJztcbiAgICB0aGlzLl9zdWJzZWN0aW9uVGl0bGUgPSAoc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25UaXRsZSkgPyBzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvblRpdGxlIDogJyc7XG4gICAgaWYgKHN1YnNlY3Rpb25SZWNlaXZlZC5lbGVtZW50cykge1xuICAgICAgZm9yIChjb25zdCByZWNlaXZlZEVsZW1lbnQgb2Ygc3Vic2VjdGlvblJlY2VpdmVkLmVsZW1lbnRzKSB7XG4gICAgICAgIGxldCBlbGVtZW50T2JqZWN0OiBhbnkgPSBudWxsO1xuICAgICAgICBsZXQgYXJyYXlUb0FkZDogYW55W10gPSBbXTtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBjb2RlIH0gPSByZWNlaXZlZEVsZW1lbnQ7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgZWxlbWVudFR5cGVzLmZpZWxkOlxuICAgICAgICAgICAgZWxlbWVudE9iamVjdCA9IGZvcm1PYmplY3QuZ2V0RmllbGQoY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5fc3ViU2VjdGlvbkZpZWxkcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgZWxlbWVudFR5cGVzLnRhYmxlOlxuICAgICAgICAgICAgZWxlbWVudE9iamVjdCA9IGZvcm1PYmplY3QuZ2V0VGFibGUoY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5fc3ViU2VjdGlvblRhYmxlcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgZWxlbWVudFR5cGVzLmFjdGlvbjpcbiAgICAgICAgICAgIGVsZW1lbnRPYmplY3QgPSBmb3JtT2JqZWN0LmdldEFjdGlvbihjb2RlKTtcbiAgICAgICAgICAgIGFycmF5VG9BZGQgPSB0aGlzLl9zdWJTZWN0aW9uQWN0aW9ucztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50T2JqZWN0KSB7XG4gICAgICAgICAgZWxlbWVudE9iamVjdC5lbGVtZW50VHlwZSA9IHR5cGU7XG4gICAgICAgICAgYXJyYXlUb0FkZC5wdXNoKGVsZW1lbnRPYmplY3QpO1xuICAgICAgICAgIHRoaXMuX3N1YlNlY3Rpb25FbGVtZW50cy5wdXNoKGVsZW1lbnRPYmplY3QpO1xuICAgICAgICAgIHRoaXMuX2VsZW1lbnRzQXJyYXlbY29kZV0gPSBlbGVtZW50T2JqZWN0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1c3RvbVJlbmRlcigpIHsgcmV0dXJuIHRoaXMuX2N1c3RvbVJlbmRlcjsgfVxuICBzZXQgY3VzdG9tUmVuZGVyKGN1c3RvbVJlbmRlck5hbWUpIHsgdGhpcy5fY3VzdG9tUmVuZGVyID0gY3VzdG9tUmVuZGVyTmFtZTsgfVxuXG4gIGdldCBzdWJzZWN0aW9uSWQoKSB7IHJldHVybiB0aGlzLl9zdWJzZWN0aW9uSWQ7IH1cbiAgZ2V0IHN1YnNlY3Rpb25Db2RlKCkgeyByZXR1cm4gdGhpcy5fc3Vic2VjdGlvbkNvZGU7IH1cbiAgZ2V0IHN1YnNlY3Rpb25UaXRsZSgpIHsgcmV0dXJuIHRoaXMuX3N1YnNlY3Rpb25UaXRsZTsgfVxuICBnZXQgc3ViU2VjdGlvbkVsZW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkVsZW1lbnRzOyB9XG4gIGdldCBzdWJTZWN0aW9uRmllbGRzKCkgeyByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkZpZWxkczsgfVxuICBnZXQgc3ViU2VjdGlvblRhYmxlcygpIHsgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25UYWJsZXM7IH1cbiAgZ2V0IHN1YlNlY3Rpb25BY3Rpb25zKCkgeyByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkFjdGlvbnM7IH1cbiAgZ2V0IGVsZW1lbnRzQXJyYXkoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50c0FycmF5OyB9XG4gIGdldCBhY3RpdmUoKSB7IHJldHVybiB0aGlzLl9hY3RpdmU7IH1cblxuICBzZXQgc3Vic2VjdGlvbklkKHN1YnNlY3Rpb25JZCkgeyB0aGlzLl9zdWJzZWN0aW9uSWQgPSBzdWJzZWN0aW9uSWQ7IH1cbiAgc2V0IHN1YnNlY3Rpb25Db2RlKHN1YnNlY3Rpb25Db2RlKSB7IHRoaXMuX3N1YnNlY3Rpb25Db2RlID0gc3Vic2VjdGlvbkNvZGU7IH1cbiAgc2V0IHN1YnNlY3Rpb25UaXRsZShzdWJzZWN0aW9uVGl0bGUpIHsgdGhpcy5fc3Vic2VjdGlvblRpdGxlID0gc3Vic2VjdGlvblRpdGxlOyB9XG4gIHNldCBzdWJTZWN0aW9uRWxlbWVudHMoc3ViU2VjdGlvbkVsZW1lbnRzKSB7IHRoaXMuX3N1YlNlY3Rpb25FbGVtZW50cyA9IHN1YlNlY3Rpb25FbGVtZW50czsgfVxuICBzZXQgc3ViU2VjdGlvbkZpZWxkcyhzdWJTZWN0aW9uRmllbGRzKSB7IHRoaXMuX3N1YlNlY3Rpb25GaWVsZHMgPSBzdWJTZWN0aW9uRmllbGRzOyB9XG4gIHNldCBzdWJTZWN0aW9uVGFibGVzKHN1YlNlY3Rpb25UYWJsZXMpIHsgdGhpcy5fc3ViU2VjdGlvblRhYmxlcyA9IHN1YlNlY3Rpb25UYWJsZXM7IH1cbiAgc2V0IHN1YlNlY3Rpb25BY3Rpb25zKHN1YlNlY3Rpb25BY3Rpb25zKSB7IHRoaXMuX3N1YlNlY3Rpb25BY3Rpb25zID0gc3ViU2VjdGlvbkFjdGlvbnM7IH1cbiAgc2V0IGVsZW1lbnRzQXJyYXkoZWxlbWVudHNBcnJheSkgeyB0aGlzLl9lbGVtZW50c0FycmF5ID0gZWxlbWVudHNBcnJheTsgfVxuICBzZXQgYWN0aXZlKGFjdGl2ZSkgeyB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7IH1cblxuICBnZXRGaWVsZChuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25GaWVsZHMuZmluZChmbGQgPT4gZmxkLm5hbWUgPT09IG5hbWUpO1xuICB9XG5cbiAgZ2V0RmllbGRzKCkge1xuICAgIHJldHVybiB0aGlzLl9zdWJTZWN0aW9uRmllbGRzO1xuICB9XG5cbiAgZ2V0RmllbGROYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQuY29kZSk7XG4gIH1cblxuICBnZXRBY3Rpb25zKCk6IEZvcm1BY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25BY3Rpb25zO1xuICB9XG5cbiAgZ2V0QWN0aW9uTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9zdWJTZWN0aW9uQWN0aW9ucy5tYXAoYWN0aW9uID0+IGFjdGlvbi5hY3Rpb25Db2RlKTtcbiAgfVxuXG4gIGFjdGl2YXRlKCkge1xuICAgIGlmICghdGhpcy5fYWN0aXZlKSB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSB0cnVlO1xuICAgICAgLy8gdGhpcy5zdWJzZWN0aW9uQ29kZSAmJiB0aGlzLl9hY3RpdmF0aW9uLm5leHQodGhpcy5zdWJzZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgaW5hY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICAgIC8vIHRoaXMuc3Vic2VjdGlvbkNvZGUgJiYgdGhpcy5faW5hY3RpdmF0aW9uLm5leHQodGhpcy5zdWJzZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG59XG4iXX0=