UNPKG

tuain-ng-forms-lib

Version:

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

71 lines 8.92 kB
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core'; import { PieceComponent } from '../layout/piece.component'; import * as i0 from "@angular/core"; const INLINE_ACTION = 'INLINE'; const CUSTOM_ATTRIBUTES = 'customAttributes'; const signaledAttributes = [ 'visible', 'disabled', ]; export class LibTableRecordActionComponent extends PieceComponent { recordId; recordData; action; actionSelected = new EventEmitter(); updatePropagatedAttributes() { this.updatePieceAttributes(this.action, signaledAttributes); } ngOnInit() { if (!this.action) { return; } this.formConfig = this.action?._formConfig; this.updatePropagatedAttributes(); this.replaceCustomAttributes(this.action?.customAttributes); this.start(); } start() { if (this.action && this.action.restrictedOnField && this.recordData) { const relatedField = this.action.restrictedOnField; if (relatedField) { const relatedFieldValue = this.recordData[relatedField]; const restrictionOper = this.action.restrictedOnOperator; const restrictionValue = this.action.restrictedOnValue; if ((restrictionOper === '==' && relatedFieldValue !== restrictionValue) || (restrictionOper === '!=' && relatedFieldValue === restrictionValue)) { this.visible.set(false); } else { this.visible.set(true); } } } } onActivate() { const tableEvent = { actionCode: this.action?.actionCode ?? '', recordId: this.recordId, recordData: this.recordData, }; this.actionSelected.emit(tableEvent); } class() { } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableRecordActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LibTableRecordActionComponent, selector: "lib-table-record-action", inputs: { recordId: "recordId", recordData: "recordData", action: "action" }, outputs: { actionSelected: "actionSelected" }, usesInheritance: true, 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: LibTableRecordActionComponent, decorators: [{ type: Component, args: [{ selector: 'lib-table-record-action', template: `<ng-content></ng-content>`, changeDetection: ChangeDetectionStrategy.OnPush }] }], propDecorators: { recordId: [{ type: Input }], recordData: [{ type: Input }], action: [{ type: Input }], actionSelected: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmVjb3JkLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL3RhYmxlcy90YWJsZS1yZWNvcmQtYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJM0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBQy9CLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixTQUFTLEVBQUUsVUFBVTtDQUN0QixDQUFDO0FBUUYsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGNBQWM7SUFDdEQsUUFBUSxDQUFNO0lBQ2QsVUFBVSxDQUFNO0lBQ2hCLE1BQU0sQ0FBMEI7SUFFL0IsY0FBYyxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUVoRywwQkFBMEI7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztZQUNuRCxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3pELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQTtnQkFDdEQsSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksaUJBQWlCLEtBQUssZ0JBQWdCLENBQUM7dUJBQ25FLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxpQkFBaUIsS0FBSyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7b0JBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxVQUFVLEdBQXFCO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsSUFBSSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLEtBQUssQ0FBQzt3R0E3Q0EsNkJBQTZCOzRGQUE3Qiw2QkFBNkIsbU5BSjlCLDJCQUEyQjs7NEZBSTFCLDZCQUE2QjtrQkFOekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OEJBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBpZWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0L3BpZWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUV2ZW50LCBUYWJsZUFjdGlvbkV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS90YWJsZSc7XG5pbXBvcnQgeyBUYWJsZUFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvYWN0aW9uJztcblxuY29uc3QgSU5MSU5FX0FDVElPTiA9ICdJTkxJTkUnO1xuY29uc3QgQ1VTVE9NX0FUVFJJQlVURVMgPSAnY3VzdG9tQXR0cmlidXRlcyc7XG5cbmNvbnN0IHNpZ25hbGVkQXR0cmlidXRlcyA9IFtcbiAgJ3Zpc2libGUnLCAnZGlzYWJsZWQnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLXJlY29yZC1hY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlUmVjb3JkQWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUGllY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSByZWNvcmRJZDogYW55O1xuICBASW5wdXQoKSByZWNvcmREYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGFjdGlvbjogVGFibGVBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIGFjdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uRXZlbnQ+KCk7XG5cbiAgdXBkYXRlUHJvcGFnYXRlZEF0dHJpYnV0ZXMoKSB7XG4gICAgdGhpcy51cGRhdGVQaWVjZUF0dHJpYnV0ZXModGhpcy5hY3Rpb24sIHNpZ25hbGVkQXR0cmlidXRlcylcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5hY3Rpb24pIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5hY3Rpb24/Ll9mb3JtQ29uZmlnO1xuICAgIHRoaXMudXBkYXRlUHJvcGFnYXRlZEF0dHJpYnV0ZXMoKTtcbiAgICB0aGlzLnJlcGxhY2VDdXN0b21BdHRyaWJ1dGVzKHRoaXMuYWN0aW9uPy5jdXN0b21BdHRyaWJ1dGVzKTtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24gJiYgdGhpcy5hY3Rpb24ucmVzdHJpY3RlZE9uRmllbGQgJiYgdGhpcy5yZWNvcmREYXRhKSB7XG4gICAgICBjb25zdCByZWxhdGVkRmllbGQgPSB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25GaWVsZDtcbiAgICAgIGlmIChyZWxhdGVkRmllbGQpIHtcbiAgICAgICAgY29uc3QgcmVsYXRlZEZpZWxkVmFsdWUgPSB0aGlzLnJlY29yZERhdGFbcmVsYXRlZEZpZWxkXTtcbiAgICAgICAgY29uc3QgcmVzdHJpY3Rpb25PcGVyID0gdGhpcy5hY3Rpb24ucmVzdHJpY3RlZE9uT3BlcmF0b3I7XG4gICAgICAgIGNvbnN0IHJlc3RyaWN0aW9uVmFsdWUgPSB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25WYWx1ZVxuICAgICAgICBpZiAoKHJlc3RyaWN0aW9uT3BlciA9PT0gJz09JyAmJiByZWxhdGVkRmllbGRWYWx1ZSAhPT0gcmVzdHJpY3Rpb25WYWx1ZSlcbiAgICAgICAgICB8fCAocmVzdHJpY3Rpb25PcGVyID09PSAnIT0nICYmIHJlbGF0ZWRGaWVsZFZhbHVlID09PSByZXN0cmljdGlvblZhbHVlKSkge1xuICAgICAgICAgIHRoaXMudmlzaWJsZS5zZXQoZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudmlzaWJsZS5zZXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkFjdGl2YXRlKCkge1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQgPSB7XG4gICAgICBhY3Rpb25Db2RlOiB0aGlzLmFjdGlvbj8uYWN0aW9uQ29kZSA/PyAnJyxcbiAgICAgIHJlY29yZElkOiB0aGlzLnJlY29yZElkLFxuICAgICAgcmVjb3JkRGF0YTogdGhpcy5yZWNvcmREYXRhLFxuICAgIH07XG4gICAgdGhpcy5hY3Rpb25TZWxlY3RlZC5lbWl0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgY2xhc3MoKSB7IH1cbn1cbiJdfQ==