UNPKG

tuain-ng-forms-lib

Version:

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

96 lines 15.8 kB
import { FormPiecePropagate } from './piece-propagate'; import { ElementType } 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); 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 ElementType.Field: elementObject = formObject.getField(code); arrayToAdd = this._subSectionFields; break; case ElementType.Table: elementObject = formObject.getTable(code); arrayToAdd = this._subSectionTables; break; case ElementType.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; } } inactivate() { if (this._active) { this._active = false; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc3Vic2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUt2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHL0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQUNsRCxhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxlQUFlLEdBQWtCLElBQUksQ0FBQztJQUN0QyxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ3ZDLG1CQUFtQixHQUFrQixFQUFFLENBQUM7SUFDeEMsaUJBQWlCLEdBQXNCLEVBQUUsQ0FBQztJQUMxQyxpQkFBaUIsR0FBa0IsRUFBRSxDQUFDO0lBQ3RDLGtCQUFrQixHQUFpQixFQUFFLENBQUM7SUFDdEMsY0FBYyxHQUFnQyxFQUFFLENBQUM7SUFDakQsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV4QixZQUFZLGtCQUF3QyxFQUFFLFVBQWUsRUFBRSxVQUF1QjtRQUM1RixLQUFLLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pHLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMs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LENBQUM7SUFDakMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtUGllY2VQcm9wYWdhdGUgfSBmcm9tICcuL3BpZWNlLXByb3BhZ2F0ZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi9maWVsZCc7XG5pbXBvcnQgeyBGb3JtRWxlbWVudCB9IGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgeyBSZWNvcmRUYWJsZSB9IGZyb20gJy4vdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgRWxlbWVudFR5cGUgfSBmcm9tICcuL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IElGb3JtQ29uZmlnLCBTdWJzZWN0aW9uRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZm9ybS1jb25maWcuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1TdWJTZWN0aW9uIGV4dGVuZHMgRm9ybVBpZWNlUHJvcGFnYXRlIHtcbiAgcHJpdmF0ZSBfY3VzdG9tUmVuZGVyOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3Vic2VjdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3Vic2VjdGlvbkNvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zdWJzZWN0aW9uVGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uRWxlbWVudHM6IEZvcm1FbGVtZW50W10gPSBbXTtcbiAgcHJpdmF0ZSBfc3ViU2VjdGlvbkZpZWxkczogRmllbGREZXNjcmlwdG9yW10gPSBbXTtcbiAgcHJpdmF0ZSBfc3ViU2VjdGlvblRhYmxlczogUmVjb3JkVGFibGVbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uQWN0aW9uczogRm9ybUFjdGlvbltdID0gW107XG4gIHByaXZhdGUgX2VsZW1lbnRzQXJyYXk6IFJlY29yZDxzdHJpbmcsIEZvcm1FbGVtZW50PiA9IHt9O1xuICBwcml2YXRlIF9hY3RpdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihzdWJzZWN0aW9uUmVjZWl2ZWQ6IFN1YnNlY3Rpb25EZWZpbml0aW9uLCBmb3JtT2JqZWN0OiBhbnksIGZvcm1Db25maWc6IElGb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIoc3Vic2VjdGlvblJlY2VpdmVkLCBmb3JtQ29uZmlnKTtcbiAgICBpZiAoIXN1YnNlY3Rpb25SZWNlaXZlZCkgeyByZXR1cm47IH1cbiAgICB0aGlzLl9zdWJzZWN0aW9uSWQgPSAoc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25JZCkgPyBzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbklkLnRvU3RyaW5nKCkgOiAnJztcbiAgICB0aGlzLl9zdWJzZWN0aW9uQ29kZSA9IChzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbkNvZGUpID8gc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25Db2RlIDogJyc7XG4gICAgdGhpcy5fc3Vic2VjdGlvblRpdGxlID0gKHN1YnNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9uVGl0bGUpID8gc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25UaXRsZSA6ICcnO1xuICAgIGlmIChzdWJzZWN0aW9uUmVjZWl2ZWQuZWxlbWVudHMpIHtcbiAgICAgIGZvciAoY29uc3QgcmVjZWl2ZWRFbGVtZW50IG9mIHN1YnNlY3Rpb25SZWNlaXZlZC5lbGVtZW50cykge1xuICAgICAgICBsZXQgZWxlbWVudE9iamVjdDogYW55ID0gbnVsbDtcbiAgICAgICAgbGV0IGFycmF5VG9BZGQ6IGFueVtdID0gW107XG4gICAgICAgIGNvbnN0IHsgdHlwZSwgY29kZSB9ID0gcmVjZWl2ZWRFbGVtZW50O1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlIEVsZW1lbnRUeXBlLkZpZWxkOlxuICAgICAgICAgICAgZWxlbWVudE9iamVjdCA9IGZvcm1PYmplY3QuZ2V0RmllbGQoY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5fc3ViU2VjdGlvbkZpZWxkcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgRWxlbWVudFR5cGUuVGFibGU6XG4gICAgICAgICAgICBlbGVtZW50T2JqZWN0ID0gZm9ybU9iamVjdC5nZXRUYWJsZShjb2RlKTtcbiAgICAgICAgICAgIGFycmF5VG9BZGQgPSB0aGlzLl9zdWJTZWN0aW9uVGFibGVzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBFbGVtZW50VHlwZS5BY3Rpb246XG4gICAgICAgICAgICBlbGVtZW50T2JqZWN0ID0gZm9ybU9iamVjdC5nZXRBY3Rpb24oY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5fc3ViU2VjdGlvbkFjdGlvbnM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudE9iamVjdCkge1xuICAgICAgICAgIGVsZW1lbnRPYmplY3QuZWxlbWVudFR5cGUgPSB0eXBlO1xuICAgICAgICAgIGFycmF5VG9BZGQucHVzaChlbGVtZW50T2JqZWN0KTtcbiAgICAgICAgICB0aGlzLl9zdWJTZWN0aW9uRWxlbWVudHMucHVzaChlbGVtZW50T2JqZWN0KTtcbiAgICAgICAgICB0aGlzLl9lbGVtZW50c0FycmF5W2NvZGVdID0gZWxlbWVudE9iamVjdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBjdXN0b21SZW5kZXIoKTogc3RyaW5nIHwgbnVsbCB7IHJldHVybiB0aGlzLl9jdXN0b21SZW5kZXI7IH1cbiAgc2V0IGN1c3RvbVJlbmRlcihjdXN0b21SZW5kZXJOYW1lKSB7IHRoaXMuX2N1c3RvbVJlbmRlciA9IGN1c3RvbVJlbmRlck5hbWU7IH1cblxuICBnZXQgc3Vic2VjdGlvbklkKCk6IHN0cmluZyB8IG51bGwgeyByZXR1cm4gdGhpcy5fc3Vic2VjdGlvbklkOyB9XG4gIGdldCBzdWJzZWN0aW9uQ29kZSgpOiBzdHJpbmcgfCBudWxsIHsgcmV0dXJuIHRoaXMuX3N1YnNlY3Rpb25Db2RlOyB9XG4gIGdldCBzdWJzZWN0aW9uVGl0bGUoKTogc3RyaW5nIHwgbnVsbCB7IHJldHVybiB0aGlzLl9zdWJzZWN0aW9uVGl0bGU7IH1cbiAgZ2V0IHN1YlNlY3Rpb25FbGVtZW50cygpOiBGb3JtRWxlbWVudFtdIHsgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25FbGVtZW50czsgfVxuICBnZXQgc3ViU2VjdGlvbkZpZWxkcygpOiBGaWVsZERlc2NyaXB0b3JbXSB7IHJldHVybiB0aGlzLl9zdWJTZWN0aW9uRmllbGRzOyB9XG4gIGdldCBzdWJTZWN0aW9uVGFibGVzKCk6IFJlY29yZFRhYmxlW10geyByZXR1cm4gdGhpcy5fc3ViU2VjdGlvblRhYmxlczsgfVxuICBnZXQgc3ViU2VjdGlvbkFjdGlvbnMoKTogRm9ybUFjdGlvbltdIHsgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25BY3Rpb25zOyB9XG4gIGdldCBlbGVtZW50c0FycmF5KCk6IFJlY29yZDxzdHJpbmcsIEZvcm1FbGVtZW50PiB7IHJldHVybiB0aGlzLl9lbGVtZW50c0FycmF5OyB9XG4gIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9hY3RpdmU7IH1cblxuICBzZXQgc3Vic2VjdGlvbklkKHN1YnNlY3Rpb25JZCkgeyB0aGlzLl9zdWJzZWN0aW9uSWQgPSBzdWJzZWN0aW9uSWQ7IH1cbiAgc2V0IHN1YnNlY3Rpb25Db2RlKHN1YnNlY3Rpb25Db2RlKSB7IHRoaXMuX3N1YnNlY3Rpb25Db2RlID0gc3Vic2VjdGlvbkNvZGU7IH1cbiAgc2V0IHN1YnNlY3Rpb25UaXRsZShzdWJzZWN0aW9uVGl0bGUpIHsgdGhpcy5fc3Vic2VjdGlvblRpdGxlID0gc3Vic2VjdGlvblRpdGxlOyB9XG4gIHNldCBzdWJTZWN0aW9uRWxlbWVudHMoc3ViU2VjdGlvbkVsZW1lbnRzKSB7IHRoaXMuX3N1YlNlY3Rpb25FbGVtZW50cyA9IHN1YlNlY3Rpb25FbGVtZW50czsgfVxuICBzZXQgc3ViU2VjdGlvbkZpZWxkcyhzdWJTZWN0aW9uRmllbGRzKSB7IHRoaXMuX3N1YlNlY3Rpb25GaWVsZHMgPSBzdWJTZWN0aW9uRmllbGRzOyB9XG4gIHNldCBzdWJTZWN0aW9uVGFibGVzKHN1YlNlY3Rpb25UYWJsZXMpIHsgdGhpcy5fc3ViU2VjdGlvblRhYmxlcyA9IHN1YlNlY3Rpb25UYWJsZXM7IH1cbiAgc2V0IHN1YlNlY3Rpb25BY3Rpb25zKHN1YlNlY3Rpb25BY3Rpb25zKSB7IHRoaXMuX3N1YlNlY3Rpb25BY3Rpb25zID0gc3ViU2VjdGlvbkFjdGlvbnM7IH1cbiAgc2V0IGVsZW1lbnRzQXJyYXkoZWxlbWVudHNBcnJheSkgeyB0aGlzLl9lbGVtZW50c0FycmF5ID0gZWxlbWVudHNBcnJheTsgfVxuICBzZXQgYWN0aXZlKGFjdGl2ZSkgeyB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7IH1cblxuICBnZXRGaWVsZChuYW1lOiBzdHJpbmcpOiBGaWVsZERlc2NyaXB0b3IgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zdWJTZWN0aW9uRmllbGRzLmZpbmQoZmxkID0+IGZsZC5uYW1lID09PSBuYW1lKTtcbiAgfVxuXG4gIGdldEZpZWxkcygpOiBGaWVsZERlc2NyaXB0b3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25GaWVsZHM7XG4gIH1cblxuICBnZXRGaWVsZE5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQuY29kZSk7XG4gIH1cblxuICBnZXRBY3Rpb25zKCk6IEZvcm1BY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25BY3Rpb25zO1xuICB9XG5cbiAgZ2V0QWN0aW9uTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9zdWJTZWN0aW9uQWN0aW9ucy5tYXAoYWN0aW9uID0+IGFjdGlvbi5hY3Rpb25Db2RlKTtcbiAgfVxuXG4gIGFjdGl2YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYWN0aXZlKSB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGluYWN0aXZhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=