tuain-ng-forms-lib 17.4.0 → 19.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/fesm2022/tuain-ng-forms-lib.mjs +87 -53
  2. package/fesm2022/tuain-ng-forms-lib.mjs.map +1 -1
  3. package/lib/interfaces/sse-live-connection.interface.d.ts +8 -0
  4. package/lib/services/sse-live-connection.service.d.ts +8 -0
  5. package/package.json +1 -3
  6. package/esm2022/lib/classes/forms/action.mjs +0 -112
  7. package/esm2022/lib/classes/forms/element.mjs +0 -25
  8. package/esm2022/lib/classes/forms/field.mjs +0 -481
  9. package/esm2022/lib/classes/forms/form.constants.mjs +0 -55
  10. package/esm2022/lib/classes/forms/form.mjs +0 -587
  11. package/esm2022/lib/classes/forms/piece-propagate.mjs +0 -36
  12. package/esm2022/lib/classes/forms/piece.mjs +0 -139
  13. package/esm2022/lib/classes/forms/section.mjs +0 -150
  14. package/esm2022/lib/classes/forms/subsection.mjs +0 -96
  15. package/esm2022/lib/classes/forms/table/action.mjs +0 -49
  16. package/esm2022/lib/classes/forms/table/column.mjs +0 -74
  17. package/esm2022/lib/classes/forms/table/row-data.mjs +0 -114
  18. package/esm2022/lib/classes/forms/table/table.mjs +0 -537
  19. package/esm2022/lib/components/elements/action.component.mjs +0 -71
  20. package/esm2022/lib/components/elements/field.component.mjs +0 -113
  21. package/esm2022/lib/components/elements/layout/element.component.mjs +0 -23
  22. package/esm2022/lib/components/elements/layout/form-error.component.mjs +0 -25
  23. package/esm2022/lib/components/elements/layout/form-header.component.mjs +0 -25
  24. package/esm2022/lib/components/elements/layout/piece.component.mjs +0 -59
  25. package/esm2022/lib/components/elements/layout/section.component.mjs +0 -57
  26. package/esm2022/lib/components/elements/layout/sub-section.component.mjs +0 -57
  27. package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +0 -71
  28. package/esm2022/lib/components/elements/tables/table-record-field.component.mjs +0 -32
  29. package/esm2022/lib/components/elements/tables/table.component.mjs +0 -109
  30. package/esm2022/lib/components/forms/basic-form.mjs +0 -1407
  31. package/esm2022/lib/components/shared/constants.mjs +0 -2
  32. package/esm2022/lib/interfaces/action.interface.mjs +0 -2
  33. package/esm2022/lib/interfaces/field.interface.mjs +0 -2
  34. package/esm2022/lib/interfaces/form-config.interface.mjs +0 -2
  35. package/esm2022/lib/interfaces/form.interface.mjs +0 -2
  36. package/esm2022/lib/interfaces/icon-resolver.interface.mjs +0 -2
  37. package/esm2022/lib/interfaces/index.mjs +0 -11
  38. package/esm2022/lib/interfaces/piece.interface.mjs +0 -2
  39. package/esm2022/lib/interfaces/section.interface.mjs +0 -2
  40. package/esm2022/lib/interfaces/sse-live-connection.interface.mjs +0 -2
  41. package/esm2022/lib/interfaces/table.interface.mjs +0 -2
  42. package/esm2022/lib/services/base-icon-resolver.service.mjs +0 -40
  43. package/esm2022/lib/services/event-manager.service.mjs +0 -55
  44. package/esm2022/lib/services/file-manager.service.mjs +0 -14
  45. package/esm2022/lib/services/form-manager.service.mjs +0 -88
  46. package/esm2022/lib/services/icon-dictionary.service.mjs +0 -162
  47. package/esm2022/lib/services/sse-live-connection.service.mjs +0 -165
  48. package/esm2022/lib/tokens/icon-resolver.token.mjs +0 -3
  49. package/esm2022/lib/tokens/sse-live-connection.token.mjs +0 -7
  50. package/esm2022/lib/tuain-ng-forms-lib.module.mjs +0 -54
  51. package/esm2022/public-api.mjs +0 -45
  52. package/esm2022/tuain-ng-forms-lib.mjs +0 -5
@@ -46,8 +46,16 @@ export interface SseLiveConnectionConfig {
46
46
  * Default: `"sessionEnded"`.
47
47
  */
48
48
  sessionEndedEventName?: string;
49
+ /**
50
+ * Nombre del evento a emitir ante un `sessionClosed` del servidor (el gateway ordenó cerrar ESTA
51
+ * sesión porque expiró/dejó de ser válida). Permite mostrar un mensaje propio antes del logout.
52
+ * Default: `sessionEndedEventName` (o `"sessionEnded"`).
53
+ */
54
+ sessionClosedEventName?: string;
49
55
  /** Habilita el manejo del evento de lifecycle `sessionReplaced`. Default: `true`. */
50
56
  handleSessionReplaced?: boolean;
57
+ /** Habilita el manejo del evento de control `sessionClosed` (cierre ordenado por el servidor). Default: `true`. */
58
+ handleSessionClosed?: boolean;
51
59
  /** Logger opcional. */
52
60
  logger?: SseLogger;
53
61
  /**
@@ -43,6 +43,14 @@ export declare class SseLiveConnectionService {
43
43
  * Devuelve `true` cuando consume el evento.
44
44
  */
45
45
  private _handleSessionReplaced;
46
+ /**
47
+ * Maneja el evento de control `sessionClosed` dirigido a ESTA sesión (el gateway lo envía con
48
+ * recipientType 'session' al detectar que la sesión expiró/dejó de ser válida). Ordena cerrar la
49
+ * sesión en el navegador. Se ejecuta antes del allow-list porque no se re-emite al bus genérico.
50
+ * Emite `sessionClosedEventName` (o, en su defecto, el de fin de sesión) para que la app muestre
51
+ * su propio mensaje antes del logout. Devuelve `true` cuando consume el evento.
52
+ */
53
+ private _handleSessionClosed;
46
54
  static ɵfac: i0.ɵɵFactoryDeclaration<SseLiveConnectionService, never>;
47
55
  static ɵprov: i0.ɵɵInjectableDeclaration<SseLiveConnectionService>;
48
56
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tuain-ng-forms-lib",
3
- "version": "17.4.0",
3
+ "version": "19.0.3",
4
4
  "description": "Componentes y Clases Angular para la gestión de formularios TUAIN",
5
5
  "author": "Mauricio Méndez, Imix Consulting",
6
6
  "license": "MIT",
@@ -35,8 +35,6 @@
35
35
  },
36
36
  ".": {
37
37
  "types": "./index.d.ts",
38
- "esm2022": "./esm2022/tuain-ng-forms-lib.mjs",
39
- "esm": "./esm2022/tuain-ng-forms-lib.mjs",
40
38
  "default": "./fesm2022/tuain-ng-forms-lib.mjs"
41
39
  }
42
40
  },
@@ -1,112 +0,0 @@
1
- import { Subject, takeUntil } from 'rxjs';
2
- import { ElementType, HEADER } from './form.constants';
3
- import { FormElement } from './element';
4
- const attrs = {
5
- actionCode: { name: '_actionCode', propagate: 'actionCode' },
6
- actionName: { name: '_actionName', propagate: 'actionName' },
7
- iconName: { name: '_iconName', propagate: 'iconName' },
8
- inProgress: { name: '_inProgress', propagate: 'inProgress' },
9
- restrictedOnField: { name: '_restrictedOnField', propagate: 'restrictedOnField' },
10
- restrictedOnOperator: { name: '_restrictedOnOperator', propagate: 'restrictedOnOperator' },
11
- restrictedOnValue: { name: '_restrictedOnValue', propagate: 'restrictedOnValue' },
12
- };
13
- export class FormAction extends FormElement {
14
- _actionActivated = new Subject();
15
- _actionCode = '';
16
- _actionName = '';
17
- _iconName = '';
18
- _inProgress = false;
19
- _newState;
20
- _backend;
21
- _restrictedOnField = null;
22
- _restrictedOnOperator = null;
23
- _restrictedOnValue = null;
24
- constructor(actionDefinition, formConfig) {
25
- super(actionDefinition, formConfig);
26
- this.elementType = ElementType.Action;
27
- this.setAttr(attrs.actionCode, actionDefinition.actionCode ? actionDefinition.actionCode.toString() : '');
28
- this.setAttr(attrs.actionName, actionDefinition.actionTitle);
29
- this.setAttr(attrs.iconName, actionDefinition.iconName || '');
30
- this.setAttr(attrs.restrictedOnField, actionDefinition.fieldRestrictedCode?.toString() ?? null);
31
- if (this._restrictedOnField) {
32
- this.setAttr(attrs.restrictedOnOperator, actionDefinition.operatorRestricted || '');
33
- this.setAttr(attrs.restrictedOnValue, actionDefinition.valueRestricted ?? '');
34
- }
35
- this._backend = actionDefinition?.serverAction ?? false;
36
- this._newState = actionDefinition?.newState;
37
- this.setCustomAttribute('location', actionDefinition.position || HEADER);
38
- }
39
- get actionCode() { return this._actionCode; }
40
- get actionName() { return this._actionName; }
41
- get iconName() { return this._iconName; }
42
- get inProgress() { return this._inProgress; }
43
- get newState() { return this._newState; }
44
- get backend() { return this._backend; }
45
- get restrictedOnField() { return this._restrictedOnField; }
46
- get restrictedOnOperator() { return this._restrictedOnOperator; }
47
- get restrictedOnValue() { return this._restrictedOnValue; }
48
- set actionCode(actionCode) { this.setAttr(attrs.actionCode, actionCode); }
49
- set actionName(actionName) { this.setAttr(attrs.actionName, actionName); }
50
- set iconName(iconName) { this.setAttr(attrs.iconName, iconName); }
51
- set inProgress(inProgress) { this.setAttr(attrs.inProgress, inProgress); }
52
- set newState(newState) { this._newState = newState; }
53
- set backend(backend) { this._backend = backend; }
54
- set restrictedOnField(restrictedOnField) { this.setAttr(attrs.restrictedOnField, restrictedOnField); }
55
- set restrictedOnOperator(restrictedOnOperator) { this.setAttr(attrs.restrictedOnOperator, restrictedOnOperator); }
56
- set restrictedOnValue(restrictedOnValue) { this.setAttr(attrs.restrictedOnValue, restrictedOnValue); }
57
- start() { this.inProgress = true; }
58
- stop() { this.inProgress = false; }
59
- connectWithParentForm(form, formChangeSubject) {
60
- super.connectWithParentForm(form, formChangeSubject);
61
- if (this._restrictedOnField) {
62
- const relatedField = this._form.fields?.[this._restrictedOnField];
63
- if (relatedField) {
64
- relatedField.editionFinish
65
- .pipe(takeUntil(this.destroy$))
66
- .subscribe({
67
- next: (event) => this.updateRestrictedVisibility(event),
68
- error: (err) => console.error(`Error en restricted visibility subscription: ${err}`)
69
- });
70
- relatedField.editionPartial
71
- .pipe(takeUntil(this.destroy$))
72
- .subscribe({
73
- next: (event) => this.updateRestrictedVisibility(event),
74
- error: (err) => console.error(`Error en restricted visibility subscription: ${err}`)
75
- });
76
- }
77
- }
78
- }
79
- updateRestrictedVisibility(_event) {
80
- const newVisible = this._absoluteVisible && this.viewOnState(this._formState);
81
- (this._visible !== newVisible) && this.setVisibility(newVisible);
82
- }
83
- viewOnState(state) {
84
- const actionVisible = (this.visibleStates && state) ? this.visibleStates.includes(state) : false;
85
- if (actionVisible && this._form && this._restrictedOnField) {
86
- const relatedField = this._form.fields?.[this._restrictedOnField];
87
- if (relatedField) {
88
- const fieldValue = relatedField.value;
89
- if ((this._restrictedOnOperator === '==' && fieldValue !== this._restrictedOnValue)
90
- || (this._restrictedOnOperator === '!=' && fieldValue === this._restrictedOnValue)) {
91
- return false;
92
- }
93
- }
94
- }
95
- return actionVisible;
96
- }
97
- get actionActivated() { return this._actionActivated.asObservable(); }
98
- notifyActivation() { this._actionActivated.next(this._actionCode); }
99
- updateFromServer(receivedAction) {
100
- for (const propertyName in receivedAction) {
101
- if (propertyName !== 'actionCode' && propertyName !== 'actionId') {
102
- try {
103
- this[propertyName] = receivedAction[propertyName];
104
- }
105
- catch (e) {
106
- console.error(`Error actualizando la propiedad ${propertyName} de la acción ${this.actionCode}. ${e}`);
107
- }
108
- }
109
- }
110
- }
111
- }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXhDLE1BQU0sS0FBSyxHQUFHO0lBQ1osVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQzVELFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRTtJQUM1RCxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUU7SUFDdEQsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQzVELGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRTtJQUNqRixvQkFBb0IsRUFBRSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUU7SUFDMUYsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFO0NBQ2xGLENBQUE7QUFFRCxNQUFNLE9BQU8sVUFBVyxTQUFRLFdBQVc7SUFDeEIsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNsRCxXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLFdBQVcsR0FBVyxFQUFFLENB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QVksQ0FBQyxZQUFZLENBQUMsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzdELENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxZQUFZLGlCQUFpQixJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pHLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWxlbWVudFR5cGUsIEhFQURFUiB9IGZyb20gJy4vZm9ybS5jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnQgfSBmcm9tICcuL2VsZW1lbnQnO1xuaW1wb3J0IHsgQWN0aW9uRGVmaW5pdGlvbiwgRmllbGRFZGl0aW9uRXZlbnQsIElGb3JtQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9mb3JtLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hY3Rpb24uaW50ZXJmYWNlJztcblxuY29uc3QgYXR0cnMgPSB7XG4gIGFjdGlvbkNvZGU6IHsgbmFtZTogJ19hY3Rpb25Db2RlJywgcHJvcGFnYXRlOiAnYWN0aW9uQ29kZScgfSxcbiAgYWN0aW9uTmFtZTogeyBuYW1lOiAnX2FjdGlvbk5hbWUnLCBwcm9wYWdhdGU6ICdhY3Rpb25OYW1lJyB9LFxuICBpY29uTmFtZTogeyBuYW1lOiAnX2ljb25OYW1lJywgcHJvcGFnYXRlOiAnaWNvbk5hbWUnIH0sXG4gIGluUHJvZ3Jlc3M6IHsgbmFtZTogJ19pblByb2dyZXNzJywgcHJvcGFnYXRlOiAnaW5Qcm9ncmVzcycgfSxcbiAgcmVzdHJpY3RlZE9uRmllbGQ6IHsgbmFtZTogJ19yZXN0cmljdGVkT25GaWVsZCcsIHByb3BhZ2F0ZTogJ3Jlc3RyaWN0ZWRPbkZpZWxkJyB9LFxuICByZXN0cmljdGVkT25PcGVyYXRvcjogeyBuYW1lOiAnX3Jlc3RyaWN0ZWRPbk9wZXJhdG9yJywgcHJvcGFnYXRlOiAncmVzdHJpY3RlZE9uT3BlcmF0b3InIH0sXG4gIHJlc3RyaWN0ZWRPblZhbHVlOiB7IG5hbWU6ICdfcmVzdHJpY3RlZE9uVmFsdWUnLCBwcm9wYWdhdGU6ICdyZXN0cmljdGVkT25WYWx1ZScgfSxcbn1cblxuZXhwb3J0IGNsYXNzIEZvcm1BY3Rpb24gZXh0ZW5kcyBGb3JtRWxlbWVudCBpbXBsZW1lbnRzIElBY3Rpb24ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3Rpb25BY3RpdmF0ZWQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgX2FjdGlvbkNvZGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9hY3Rpb25OYW1lOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfaWNvbk5hbWU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9pblByb2dyZXNzID0gZmFsc2U7XG4gIHByaXZhdGUgX25ld1N0YXRlOiBzdHJpbmc7XG4gIHByaXZhdGUgX2JhY2tlbmQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX3Jlc3RyaWN0ZWRPbkZpZWxkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVzdHJpY3RlZE9uT3BlcmF0b3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9yZXN0cmljdGVkT25WYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoYWN0aW9uRGVmaW5pdGlvbjogQWN0aW9uRGVmaW5pdGlvbiwgZm9ybUNvbmZpZzogSUZvcm1Db25maWcpIHtcbiAgICBzdXBlcihhY3Rpb25EZWZpbml0aW9uLCBmb3JtQ29uZmlnKTtcbiAgICB0aGlzLmVsZW1lbnRUeXBlID0gRWxlbWVudFR5cGUuQWN0aW9uO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5hY3Rpb25Db2RlLCBhY3Rpb25EZWZpbml0aW9uLmFjdGlvbkNvZGUgPyBhY3Rpb25EZWZpbml0aW9uLmFjdGlvbkNvZGUudG9TdHJpbmcoKSA6ICcnKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuYWN0aW9uTmFtZSwgYWN0aW9uRGVmaW5pdGlvbi5hY3Rpb25UaXRsZSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmljb25OYW1lLCBhY3Rpb25EZWZpbml0aW9uLmljb25OYW1lIHx8ICcnKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMucmVzdHJpY3RlZE9uRmllbGQsIGFjdGlvbkRlZmluaXRpb24uZmllbGRSZXN0cmljdGVkQ29kZT8udG9TdHJpbmcoKSA/PyBudWxsKTtcbiAgICBpZiAodGhpcy5fcmVzdHJpY3RlZE9uRmllbGQpIHtcbiAgICAgIHRoaXMuc2V0QXR0cihhdHRycy5yZXN0cmljdGVkT25PcGVyYXRvciwgYWN0aW9uRGVmaW5pdGlvbi5vcGVyYXRvclJlc3RyaWN0ZWQgfHwgJycpO1xuICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLnJlc3RyaWN0ZWRPblZhbHVlLCBhY3Rpb25EZWZpbml0aW9uLnZhbHVlUmVzdHJpY3RlZCA/PyAnJyk7XG4gICAgfVxuICAgIHRoaXMuX2JhY2tlbmQgPSBhY3Rpb25EZWZpbml0aW9uPy5zZXJ2ZXJBY3Rpb24gPz8gZmFsc2U7XG4gICAgdGhpcy5fbmV3U3RhdGUgPSBhY3Rpb25EZWZpbml0aW9uPy5uZXdTdGF0ZTtcbiAgICB0aGlzLnNldEN1c3RvbUF0dHJpYnV0ZSgnbG9jYXRpb24nLCBhY3Rpb25EZWZpbml0aW9uLnBvc2l0aW9uIHx8IEhFQURFUik7XG4gIH1cblxuICBnZXQgYWN0aW9uQ29kZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fYWN0aW9uQ29kZTsgfVxuICBnZXQgYWN0aW9uTmFtZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fYWN0aW9uTmFtZTsgfVxuICBnZXQgaWNvbk5hbWUoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2ljb25OYW1lOyB9XG4gIGdldCBpblByb2dyZXNzKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faW5Qcm9ncmVzczsgfVxuICBnZXQgbmV3U3RhdGUoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX25ld1N0YXRlOyB9XG4gIGdldCBiYWNrZW5kKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fYmFja2VuZDsgfVxuICBnZXQgcmVzdHJpY3RlZE9uRmllbGQoKTogc3RyaW5nIHwgbnVsbCB7IHJldHVybiB0aGlzLl9yZXN0cmljdGVkT25GaWVsZDsgfVxuICBnZXQgcmVzdHJpY3RlZE9uT3BlcmF0b3IoKTogc3RyaW5nIHwgbnVsbCB7IHJldHVybiB0aGlzLl9yZXN0cmljdGVkT25PcGVyYXRvcjsgfVxuICBnZXQgcmVzdHJpY3RlZE9uVmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7IHJldHVybiB0aGlzLl9yZXN0cmljdGVkT25WYWx1ZTsgfVxuXG4gIHNldCBhY3Rpb25Db2RlKGFjdGlvbkNvZGUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmFjdGlvbkNvZGUsIGFjdGlvbkNvZGUpOyB9XG4gIHNldCBhY3Rpb25OYW1lKGFjdGlvbk5hbWUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmFjdGlvbk5hbWUsIGFjdGlvbk5hbWUpOyB9XG4gIHNldCBpY29uTmFtZShpY29uTmFtZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuaWNvbk5hbWUsIGljb25OYW1lKTsgfVxuICBzZXQgaW5Qcm9ncmVzcyhpblByb2dyZXNzKSB7IHRoaXMuc2V0QXR0cihhdHRycy5pblByb2dyZXNzLCBpblByb2dyZXNzKTsgfVxuICBzZXQgbmV3U3RhdGUobmV3U3RhdGUpIHsgdGhpcy5fbmV3U3RhdGUgPSBuZXdTdGF0ZTsgfVxuICBzZXQgYmFja2VuZChiYWNrZW5kKSB7IHRoaXMuX2JhY2tlbmQgPSBiYWNrZW5kOyB9XG4gIHNldCByZXN0cmljdGVkT25GaWVsZChyZXN0cmljdGVkT25GaWVsZCkgeyB0aGlzLnNldEF0dHIoYXR0cnMucmVzdHJpY3RlZE9uRmllbGQsIHJlc3RyaWN0ZWRPbkZpZWxkKTsgfVxuICBzZXQgcmVzdHJpY3RlZE9uT3BlcmF0b3IocmVzdHJpY3RlZE9uT3BlcmF0b3IpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLnJlc3RyaWN0ZWRPbk9wZXJhdG9yLCByZXN0cmljdGVkT25PcGVyYXRvcik7IH1cbiAgc2V0IHJlc3RyaWN0ZWRPblZhbHVlKHJlc3RyaWN0ZWRPblZhbHVlKSB7IHRoaXMuc2V0QXR0cihhdHRycy5yZXN0cmljdGVkT25WYWx1ZSwgcmVzdHJpY3RlZE9uVmFsdWUpOyB9XG5cbiAgc3RhcnQoKTogdm9pZCB7IHRoaXMuaW5Qcm9ncmVzcyA9IHRydWU7IH1cbiAgc3RvcCgpOiB2b2lkIHsgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7IH1cblxuICBvdmVycmlkZSBjb25uZWN0V2l0aFBhcmVudEZvcm0oZm9ybTogYW55LCBmb3JtQ2hhbmdlU3ViamVjdDogYW55KTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdFdpdGhQYXJlbnRGb3JtKGZvcm0sIGZvcm1DaGFuZ2VTdWJqZWN0KTtcbiAgICBpZiAodGhpcy5fcmVzdHJpY3RlZE9uRmllbGQpIHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IHRoaXMuX2Zvcm0uZmllbGRzPy5bdGhpcy5fcmVzdHJpY3RlZE9uRmllbGRdO1xuICAgICAgaWYgKHJlbGF0ZWRGaWVsZCkge1xuICAgICAgICByZWxhdGVkRmllbGQuZWRpdGlvbkZpbmlzaFxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChldmVudDogRmllbGRFZGl0aW9uRXZlbnQpID0+IHRoaXMudXBkYXRlUmVzdHJpY3RlZFZpc2liaWxpdHkoZXZlbnQpLFxuICAgICAgICAgICAgZXJyb3I6IChlcnI6IHVua25vd24pID0+IGNvbnNvbGUuZXJyb3IoYEVycm9yIGVuIHJlc3RyaWN0ZWQgdmlzaWJpbGl0eSBzdWJzY3JpcHRpb246ICR7ZXJyfWApXG4gICAgICAgICAgfSk7XG4gICAgICAgIHJlbGF0ZWRGaWVsZC5lZGl0aW9uUGFydGlhbFxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChldmVudDogRmllbGRFZGl0aW9uRXZlbnQpID0+IHRoaXMudXBkYXRlUmVzdHJpY3RlZFZpc2liaWxpdHkoZXZlbnQpLFxuICAgICAgICAgICAgZXJyb3I6IChlcnI6IHVua25vd24pID0+IGNvbnNvbGUuZXJyb3IoYEVycm9yIGVuIHJlc3RyaWN0ZWQgdmlzaWJpbGl0eSBzdWJzY3JpcHRpb246ICR7ZXJyfWApXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUmVzdHJpY3RlZFZpc2liaWxpdHkoX2V2ZW50OiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmlzaWJsZSA9IHRoaXMuX2Fic29sdXRlVmlzaWJsZSAmJiB0aGlzLnZpZXdPblN0YXRlKHRoaXMuX2Zvcm1TdGF0ZSk7XG4gICAgKHRoaXMuX3Zpc2libGUgIT09IG5ld1Zpc2libGUpICYmIHRoaXMuc2V0VmlzaWJpbGl0eShuZXdWaXNpYmxlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHZpZXdPblN0YXRlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBhY3Rpb25WaXNpYmxlID0gKHRoaXMudmlzaWJsZVN0YXRlcyAmJiBzdGF0ZSkgPyB0aGlzLnZpc2libGVTdGF0ZXMuaW5jbHVkZXMoc3RhdGUpIDogZmFsc2U7XG4gICAgaWYgKGFjdGlvblZpc2libGUgJiYgdGhpcy5fZm9ybSAmJiB0aGlzLl9yZXN0cmljdGVkT25GaWVsZCkge1xuICAgICAgY29uc3QgcmVsYXRlZEZpZWxkID0gdGhpcy5fZm9ybS5maWVsZHM/Llt0aGlzLl9yZXN0cmljdGVkT25GaWVsZF07XG4gICAgICBpZiAocmVsYXRlZEZpZWxkKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSByZWxhdGVkRmllbGQudmFsdWU7XG4gICAgICAgIGlmICgodGhpcy5fcmVzdHJpY3RlZE9uT3BlcmF0b3IgPT09ICc9PScgJiYgZmllbGRWYWx1ZSAhPT0gdGhpcy5fcmVzdHJpY3RlZE9uVmFsdWUpXG4gICAgICAgICAgfHwgKHRoaXMuX3Jlc3RyaWN0ZWRPbk9wZXJhdG9yID09PSAnIT0nICYmIGZpZWxkVmFsdWUgPT09IHRoaXMuX3Jlc3RyaWN0ZWRPblZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uVmlzaWJsZTtcbiAgfVxuXG4gIGdldCBhY3Rpb25BY3RpdmF0ZWQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHsgcmV0dXJuIHRoaXMuX2FjdGlvbkFjdGl2YXRlZC5hc09ic2VydmFibGUoKTsgfVxuXG4gIG5vdGlmeUFjdGl2YXRpb24oKTogdm9pZCB7IHRoaXMuX2FjdGlvbkFjdGl2YXRlZC5uZXh0KHRoaXMuX2FjdGlvbkNvZGUpOyB9XG5cbiAgdXBkYXRlRnJvbVNlcnZlcihyZWNlaXZlZEFjdGlvbjogYW55KTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gcmVjZWl2ZWRBY3Rpb24pIHtcbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgIT09ICdhY3Rpb25Db2RlJyAmJiBwcm9wZXJ0eU5hbWUgIT09ICdhY3Rpb25JZCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAodGhpcyBhcyBhbnkpW3Byb3BlcnR5TmFtZV0gPSByZWNlaXZlZEFjdGlvbltwcm9wZXJ0eU5hbWVdO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgYWN0dWFsaXphbmRvIGxhIHByb3BpZWRhZCAke3Byb3BlcnR5TmFtZX0gZGUgbGEgYWNjacOzbiAke3RoaXMuYWN0aW9uQ29kZX0uICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,25 +0,0 @@
1
- import { FormPiecePropagate } from './piece-propagate';
2
- import { ElementType } from './form.constants';
3
- export class FormElement extends FormPiecePropagate {
4
- elementType = null;
5
- constructor(elementDefinition, formConfig) {
6
- super(elementDefinition, formConfig);
7
- }
8
- setAttr(attr, value) {
9
- const { name: attrName, propagate: name } = attr;
10
- try {
11
- const currentValue = this[attrName];
12
- if (currentValue !== value) {
13
- this[attrName] = value;
14
- name && this.propagateAttribute(name, value);
15
- }
16
- }
17
- catch (e) {
18
- console.error(`Atributo ${attrName} no presente o valor ${value} inconsistente. ${e}`);
19
- }
20
- }
21
- isField() { return this.elementType === ElementType.Field; }
22
- isAction() { return this.elementType === ElementType.Action; }
23
- isTable() { return this.elementType === ElementType.Table; }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJL0MsTUFBTSxPQUFnQixXQUFZLFNBQVEsa0JBQWtCO0lBQzFELFdBQVcsR0FBa0IsSUFBSSxDQUFDO0lBRWxDLFlBQVksaUJBQWtDLEVBQUUsVUFBdUI7UUFDckUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBc0IsRUFBRSxLQUFVO1FBQ3hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDakQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUksSUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLElBQUksWUFBWSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUMxQixJQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUNoQyxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksUUFBUSx3QkFBd0IsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBYyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckUsUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RSxPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0NBQ3RFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybVBpZWNlUHJvcGFnYXRlIH0gZnJvbSAnLi9waWVjZS1wcm9wYWdhdGUnO1xuaW1wb3J0IHsgRWxlbWVudFR5cGUgfSBmcm9tICcuL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IEVsZW1lbnRBdHRyaWJ1dGUsIElGb3JtQ29uZmlnLCBQaWVjZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2Zvcm0tY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7IElGb3JtRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGllY2UuaW50ZXJmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1FbGVtZW50IGV4dGVuZHMgRm9ybVBpZWNlUHJvcGFnYXRlIGltcGxlbWVudHMgSUZvcm1FbGVtZW50IHtcbiAgZWxlbWVudFR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnREZWZpbml0aW9uOiBQaWVjZURlZmluaXRpb24sIGZvcm1Db25maWc6IElGb3JtQ29uZmlnKSB7XG4gICAgc3VwZXIoZWxlbWVudERlZmluaXRpb24sIGZvcm1Db25maWcpO1xuICB9XG5cbiAgc2V0QXR0cihhdHRyOiBFbGVtZW50QXR0cmlidXRlLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgeyBuYW1lOiBhdHRyTmFtZSwgcHJvcGFnYXRlOiBuYW1lIH0gPSBhdHRyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSAodGhpcyBhcyBhbnkpW2F0dHJOYW1lXTtcbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICh0aGlzIGFzIGFueSlbYXR0ck5hbWVdID0gdmFsdWU7XG4gICAgICAgIG5hbWUgJiYgdGhpcy5wcm9wYWdhdGVBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEF0cmlidXRvICR7YXR0ck5hbWV9IG5vIHByZXNlbnRlIG8gdmFsb3IgJHt2YWx1ZX0gaW5jb25zaXN0ZW50ZS4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlzRmllbGQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmVsZW1lbnRUeXBlID09PSBFbGVtZW50VHlwZS5GaWVsZDsgfVxuICBpc0FjdGlvbigpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuZWxlbWVudFR5cGUgPT09IEVsZW1lbnRUeXBlLkFjdGlvbjsgfVxuICBpc1RhYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5lbGVtZW50VHlwZSA9PT0gRWxlbWVudFR5cGUuVGFibGU7IH1cbn1cbiJdfQ==