tuain-ng-forms-lib 17.0.0 → 17.1.0

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 (28) hide show
  1. package/esm2022/lib/classes/forms/action.mjs +66 -40
  2. package/esm2022/lib/classes/forms/element.mjs +8 -3
  3. package/esm2022/lib/classes/forms/field.mjs +81 -71
  4. package/esm2022/lib/classes/forms/section.mjs +51 -39
  5. package/esm2022/lib/classes/forms/subsection.mjs +45 -27
  6. package/esm2022/lib/classes/forms/table/table.mjs +124 -82
  7. package/esm2022/lib/components/elements/action.component.mjs +29 -19
  8. package/esm2022/lib/components/elements/field.component.mjs +56 -69
  9. package/esm2022/lib/components/elements/layout/piece.component.mjs +43 -19
  10. package/esm2022/lib/components/elements/layout/section.component.mjs +21 -13
  11. package/esm2022/lib/components/elements/layout/sub-section.component.mjs +21 -13
  12. package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +13 -8
  13. package/esm2022/lib/components/elements/tables/table.component.mjs +38 -35
  14. package/fesm2022/tuain-ng-forms-lib.mjs +581 -423
  15. package/fesm2022/tuain-ng-forms-lib.mjs.map +1 -1
  16. package/lib/classes/forms/action.d.ts +30 -14
  17. package/lib/classes/forms/field.d.ts +9 -4
  18. package/lib/classes/forms/section.d.ts +18 -6
  19. package/lib/classes/forms/subsection.d.ts +28 -10
  20. package/lib/classes/forms/table/table.d.ts +63 -21
  21. package/lib/components/elements/action.component.d.ts +8 -1
  22. package/lib/components/elements/field.component.d.ts +21 -15
  23. package/lib/components/elements/layout/piece.component.d.ts +8 -4
  24. package/lib/components/elements/layout/section.component.d.ts +1 -0
  25. package/lib/components/elements/layout/sub-section.component.d.ts +1 -0
  26. package/lib/components/elements/tables/table-record-action.component.d.ts +1 -0
  27. package/lib/components/elements/tables/table.component.d.ts +12 -5
  28. package/package.json +1 -1
@@ -1,32 +1,42 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, signal, Input } from '@angular/core';
2
2
  import { ElementComponent } from './layout/element.component';
3
3
  import * as i0 from "@angular/core";
4
+ const CUSTOM_ATTRIBUTES = 'customAttributes';
5
+ const signaledAttributes = [
6
+ 'actionCode', 'actionName', 'iconName', 'inProgress', 'restrictedOnField', 'restrictedOnOperator',
7
+ 'restrictedOnValue', 'visible', 'disabled',
8
+ ];
4
9
  export class ActionComponent extends ElementComponent {
5
- inProgress = false;
10
+ actionCode = signal(null);
11
+ actionName = signal(null);
12
+ iconName = signal(null);
13
+ inProgress = signal(false);
14
+ restrictedOnField = signal(null);
15
+ restrictedOnOperator = signal(null);
16
+ restrictedOnValue = signal(null);
6
17
  action = null;
18
+ updatePropagatedAttributes() {
19
+ this.updatePieceAttributes(this.action, signaledAttributes);
20
+ }
7
21
  ngOnInit() {
8
22
  if (!this.action) {
9
23
  return;
10
24
  }
25
+ this.action.widget = this;
11
26
  this.formConfig = this.action?._formConfig;
12
- const mapping = Object.entries(this.formConfig?.actionPropagateAttributes);
13
- for (let index = 0; index < mapping.length; index++) {
14
- const actionAttr = mapping[index]?.[0];
15
- const componentAttr = mapping[index]?.[1]?.toString() ?? '';
16
- if (componentAttr) {
17
- const value = this.action?.[actionAttr];
18
- this.defaultProcessAttributeChange(componentAttr, value);
19
- this.customProcessAttributeChange(componentAttr, value);
27
+ this.updatePropagatedAttributes();
28
+ this.replaceCustomAttributes(this.action?.customAttributes);
29
+ this.action?.attributeChange.subscribe(event => {
30
+ const { name: attribute, value = null } = event ?? {};
31
+ const attributeParts = attribute?.split('.') ?? [];
32
+ if (signaledAttributes.includes(attribute)) {
33
+ this.updatePieceAttribute(signaledAttributes, attribute, value);
34
+ }
35
+ else if (attributeParts?.length > 1 && attributeParts?.[0] === CUSTOM_ATTRIBUTES) {
36
+ const subAttribute = attributeParts?.[1] ?? null;
37
+ this.updateCustomAttribute(subAttribute, value);
20
38
  }
21
- }
22
- this.action?.attributeChange?.subscribe(event => {
23
- const { name: componentAttr, value } = event;
24
- this.defaultProcessAttributeChange(componentAttr, value);
25
- this.customProcessAttributeChange(componentAttr, value);
26
39
  });
27
- if (this.action) {
28
- this.action.widget = this;
29
- }
30
40
  this.start();
31
41
  }
32
42
  start() {
@@ -49,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
49
59
  }], propDecorators: { action: [{
50
60
  type: Input
51
61
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWxlbWVudHMvYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTs7QUFPN0QsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0lBQ25ELFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDbkIsTUFBTSxHQUFzQixJQUFJLENBQUM7SUFFMUMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzNFLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzVELElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM5QyxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFDN0MsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRVEsS0FBSztRQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzt3R0FwQ1UsZUFBZTs0RkFBZixlQUFlLHVHQUhoQiwyQkFBMkI7OzRGQUcxQixlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs4QkFJVSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BY3Rpb24gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm1zL2FjdGlvbic7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aW9uOiBGb3JtQWN0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbikgeyByZXR1cm47IH1cbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLmFjdGlvbj8uX2Zvcm1Db25maWc7XG4gICAgY29uc3QgbWFwcGluZyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZm9ybUNvbmZpZz8uYWN0aW9uUHJvcGFnYXRlQXR0cmlidXRlcyk7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBhY3Rpb25BdHRyID0gbWFwcGluZ1tpbmRleF0/LlswXTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEF0dHIgPSBtYXBwaW5nW2luZGV4XT8uWzFdPy50b1N0cmluZygpID8/ICcnO1xuICAgICAgaWYgKGNvbXBvbmVudEF0dHIpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmFjdGlvbj8uW2FjdGlvbkF0dHJdO1xuICAgICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5hY3Rpb24/LmF0dHJpYnV0ZUNoYW5nZT8uc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZTogY29tcG9uZW50QXR0ciwgdmFsdWUgfSA9IGV2ZW50O1xuICAgICAgdGhpcy5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShjb21wb25lbnRBdHRyLCB2YWx1ZSk7XG4gICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgdmFsdWUpO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLmFjdGlvbikge1xuICAgICAgdGhpcy5hY3Rpb24ud2lkZ2V0ID0gdGhpcztcbiAgICB9XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc3RhcnQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKHRoaXMuYWN0aW9uPy5fZm9ybSk7XG4gIH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24/Lm5vdGlmeUFjdGl2YXRpb24pIHtcbiAgICAgIHRoaXMuYWN0aW9uLm5vdGlmeUFjdGl2YXRpb24oKTtcbiAgICB9XG4gIH1cbn0iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWxlbWVudHMvYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTlELE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCO0lBQ2pHLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxVQUFVO0NBQzNDLENBQUM7QUFPRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUFDbkQsVUFBVSxHQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixVQUFVLEdBQVEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLFFBQVEsR0FBUSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsVUFBVSxHQUFRLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxpQkFBaUIsR0FBUSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsb0JBQW9CLEdBQVEsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLGlCQUFpQixHQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU3QixNQUFNLEdBQXNCLElBQUksQ0FBQztJQUUxQywwQkFBMEI7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN0RCxNQUFNLGNBQWMsR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRCxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLENBQUM7aUJBQU0sSUFBSSxjQUFjLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNuRixNQUFNLFlBQVksR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVRLEtBQUs7UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7d0dBMUNVLGVBQWU7NEZBQWYsZUFBZSx1R0FIaEIsMkJBQTJCOzs0RkFHMUIsZUFBZTtrQkFMM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7OEJBV1UsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBzaWduYWwsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BY3Rpb24gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm1zL2FjdGlvbic7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnO1xuXG5jb25zdCBDVVNUT01fQVRUUklCVVRFUyA9ICdjdXN0b21BdHRyaWJ1dGVzJztcblxuY29uc3Qgc2lnbmFsZWRBdHRyaWJ1dGVzID0gW1xuICAnYWN0aW9uQ29kZScsICdhY3Rpb25OYW1lJywgJ2ljb25OYW1lJywgJ2luUHJvZ3Jlc3MnLCAncmVzdHJpY3RlZE9uRmllbGQnLCAncmVzdHJpY3RlZE9uT3BlcmF0b3InLFxuICAncmVzdHJpY3RlZE9uVmFsdWUnLCAndmlzaWJsZScsICdkaXNhYmxlZCcsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYWN0aW9uJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkNvbXBvbmVudCBleHRlbmRzIEVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBhY3Rpb25Db2RlOiBhbnkgPSBzaWduYWwobnVsbCk7XG4gIGFjdGlvbk5hbWU6IGFueSA9IHNpZ25hbChudWxsKTtcbiAgaWNvbk5hbWU6IGFueSA9IHNpZ25hbChudWxsKTtcbiAgaW5Qcm9ncmVzczogYW55ID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVzdHJpY3RlZE9uRmllbGQ6IGFueSA9IHNpZ25hbChudWxsKTtcbiAgcmVzdHJpY3RlZE9uT3BlcmF0b3I6IGFueSA9IHNpZ25hbChudWxsKTtcbiAgcmVzdHJpY3RlZE9uVmFsdWU6IGFueSA9IHNpZ25hbChudWxsKTtcblxuICBASW5wdXQoKSBhY3Rpb246IEZvcm1BY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICB1cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlcyh0aGlzLmFjdGlvbiwgc2lnbmFsZWRBdHRyaWJ1dGVzKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbikgeyByZXR1cm47IH1cbiAgICB0aGlzLmFjdGlvbi53aWRnZXQgPSB0aGlzO1xuICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMuYWN0aW9uPy5fZm9ybUNvbmZpZztcbiAgICB0aGlzLnVwZGF0ZVByb3BhZ2F0ZWRBdHRyaWJ1dGVzKCk7XG4gICAgdGhpcy5yZXBsYWNlQ3VzdG9tQXR0cmlidXRlcyh0aGlzLmFjdGlvbj8uY3VzdG9tQXR0cmlidXRlcyk7XG4gICAgdGhpcy5hY3Rpb24/LmF0dHJpYnV0ZUNoYW5nZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lOiBhdHRyaWJ1dGUsIHZhbHVlID0gbnVsbCB9ID0gZXZlbnQgPz8ge307XG4gICAgICBjb25zdCBhdHRyaWJ1dGVQYXJ0cyA9IGF0dHJpYnV0ZT8uc3BsaXQoJy4nKSA/PyBbXTtcbiAgICAgIGlmIChzaWduYWxlZEF0dHJpYnV0ZXMuaW5jbHVkZXMoYXR0cmlidXRlKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlKHNpZ25hbGVkQXR0cmlidXRlcywgYXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVBhcnRzPy5sZW5ndGggPiAxICYmIGF0dHJpYnV0ZVBhcnRzPy5bMF0gPT09IENVU1RPTV9BVFRSSUJVVEVTKSB7XG4gICAgICAgIGNvbnN0IHN1YkF0dHJpYnV0ZSA9IGF0dHJpYnV0ZVBhcnRzPy5bMV0gPz8gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVDdXN0b21BdHRyaWJ1dGUoc3ViQXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc3RhcnQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKHRoaXMuYWN0aW9uPy5fZm9ybSk7XG4gIH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5hY3Rpb24/Lm5vdGlmeUFjdGl2YXRpb24pIHtcbiAgICAgIHRoaXMuYWN0aW9uLm5vdGlmeUFjdGl2YXRpb24oKTtcbiAgICB9XG4gIH1cbn0iXX0=
@@ -1,85 +1,76 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, signal, Input } from '@angular/core';
2
2
  import { ElementComponent } from './layout/element.component';
3
3
  import * as i0 from "@angular/core";
4
+ const CUSTOM_ATTRIBUTES = 'customAttributes';
5
+ const signaledAttributes = ['captureType', 'errorCode', 'errorMessage', 'errorType', 'defaultValue',
6
+ 'defaultEditable', 'alignment', 'code', 'info', 'required', 'title', 'type', 'format', 'options',
7
+ 'hasChanged', 'maxLength', 'maxValue', 'minLength', 'minValue', 'onValidation', 'outputOnly',
8
+ 'placeholder', 'tooltip', 'validateOnServer', 'visibleLabel', 'visible', 'disabled',
9
+ ];
4
10
  const VALUE = 'value';
5
11
  const FOCUS = 'focus';
6
12
  export class FieldComponent extends ElementComponent {
7
- // Atributos obtenidos estáticamente
8
- code = '';
9
- value;
10
- info = '';
11
- alignment = '';
12
- tooltip = '';
13
- // Atributos actualizados por subscripción
14
- minLength;
15
- maxLength;
16
- minValue;
17
- maxValue;
18
- onValidation;
19
- captureType;
20
- title;
21
- type;
22
- visibleLabel;
23
- required;
24
- options;
25
- errorType;
26
- errorCode;
27
- errorMessage;
13
+ // Atributos propagados desde el campo
14
+ captureType = signal('');
15
+ errorCode = signal('');
16
+ errorMessage = signal('');
17
+ errorType = signal('');
18
+ defaultValue = signal(null);
19
+ defaultEditable = signal(false);
20
+ alignment = signal('');
21
+ code = signal('');
22
+ info = signal(null);
23
+ required = signal(false);
24
+ title = signal('');
25
+ type = signal('');
26
+ format = signal(null);
27
+ options = signal(null);
28
+ hasChanged = signal(false);
29
+ minLength = signal(0);
30
+ maxLength = signal(0);
31
+ minValue = signal(null);
32
+ maxValue = signal(null);
33
+ onValidation = signal(false);
34
+ outputOnly = signal(false);
35
+ placeholder = signal('');
36
+ tooltip = signal('');
37
+ validateOnServer = signal(false);
38
+ visibleLabel = signal(true);
39
+ value; // Valor del componente relacionado con el campo (pueden diferir en formato y tipo)
28
40
  field = null;
41
+ updatePropagatedAttributes() {
42
+ this.updatePieceAttributes(this.field, signaledAttributes);
43
+ }
29
44
  ngOnInit() {
30
45
  if (!this.field) {
31
46
  return;
32
47
  }
48
+ this.field.widget = this;
33
49
  this.formConfig = this.field?._formConfig;
34
- const mapping = Object.entries(this.formConfig?.fieldPropagateAttributes);
35
- const customAttributesMapping = this.formConfig?.propagationCustomAttributes.fields ?? [];
36
- for (let index = 0; index < mapping.length; index++) {
37
- const fieldAttr = mapping[index]?.[0];
38
- const componentAttr = mapping[index]?.[1]?.toString() ?? '';
39
- if (componentAttr) {
40
- const value = this.field?.[fieldAttr];
41
- this.defaultProcessAttributeChange(componentAttr, value);
42
- this.customProcessAttributeChange(componentAttr, value);
50
+ this.updatePropagatedAttributes();
51
+ this.replaceCustomAttributes(this.field?.customAttributes);
52
+ this.field?.attributeChange.subscribe(event => {
53
+ const { name: attribute, value = null } = event ?? {};
54
+ const attributeParts = attribute?.split('.') ?? [];
55
+ if (attribute === VALUE) {
56
+ this.updateValue();
43
57
  }
44
- }
45
- // Atributos personalizados
46
- for (let index = 0; index < customAttributesMapping.length; index++) {
47
- const customAttribute = customAttributesMapping[index];
48
- if (customAttribute) {
49
- const value = this.field?.getCustomAttribute(customAttribute);
50
- const fullName = `customAttributes.${customAttribute}`;
51
- if (value) {
52
- this.defaultProcessAttributeChange(fullName, value);
53
- this.customProcessAttributeChange(fullName, value);
54
- }
58
+ else if (attribute === FOCUS) {
59
+ this.focus();
55
60
  }
56
- }
57
- // Subscripción a cambios en atributos
58
- this.field?.attributeChange.subscribe(event => {
59
- const { name: componentAttr, value = null } = event ?? {};
60
- if (componentAttr) {
61
- this.defaultProcessAttributeChange(componentAttr, value);
62
- this.customProcessAttributeChange(componentAttr, value);
61
+ else if (signaledAttributes.includes(attribute)) {
62
+ this.updatePieceAttribute(signaledAttributes, attribute, value);
63
+ }
64
+ else if (attributeParts?.length > 1 && attributeParts?.[0] === CUSTOM_ATTRIBUTES) {
65
+ const subAttribute = attributeParts?.[1] ?? null;
66
+ this.updateCustomAttribute(subAttribute, value);
63
67
  }
64
68
  });
65
- if (this.field) {
66
- this.field.widget = this;
67
- }
68
69
  this.start();
69
70
  }
70
- defaultProcessAttributeChange(attribute, value) {
71
- if (attribute === VALUE) {
72
- this.updateValue();
73
- }
74
- else if (attribute === FOCUS) {
75
- this.focus();
76
- }
77
- else {
78
- return super.defaultProcessAttributeChange(attribute, value);
79
- }
80
- return true;
71
+ updateValue() {
72
+ this.value = this.field?.value;
81
73
  }
82
- updateValue() { this.value = this.field?.value; }
83
74
  onInputChange() { setTimeout(() => this.field?.notifyEditionPartial(), 50); }
84
75
  onChangeContent() { setTimeout(() => this.field?.notifyEditionFinish(), 50); }
85
76
  onShowInfo(detail = null) { setTimeout(() => this.field?.notifyEditionDetailRequest(detail), 50); }
@@ -93,10 +84,6 @@ export class FieldComponent extends ElementComponent {
93
84
  this.updateObject(false);
94
85
  this.onInputChange();
95
86
  }
96
- numberInputValidation(event) {
97
- const k = event.charCode;
98
- return (k > 47 && k < 58);
99
- }
100
87
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
101
88
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FieldComponent, selector: "lib-field", inputs: { field: "field" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
102
89
  }
@@ -109,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
109
96
  }], propDecorators: { field: [{
110
97
  type: Input
111
98
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7O0FBRTdELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7QUFLdEIsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBZ0I7SUFDbEQsb0NBQW9DO0lBQ3BDLElBQUksR0FBVyxFQUFFLENBQUM7SUFDbEIsS0FBSyxDQUFNO0lBQ1gsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFFckIsMENBQTBDO0lBQzFDLFNBQVMsQ0FBTTtJQUNmLFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBTTtJQUNkLFFBQVEsQ0FBTTtJQUNkLFlBQVksQ0FBTTtJQUNsQixXQUFXLENBQU07SUFDakIsS0FBSyxDQUFNO0lBQ1gsSUFBSSxDQUFNO0lBQ1YsWUFBWSxDQUFNO0lBQ2xCLFFBQVEsQ0FBTTtJQUNkLE9BQU8sQ0FBTTtJQUViLFNBQVMsQ0FBTTtJQUNmLFNBQVMsQ0FBTTtJQUNmLFlBQVksQ0FBTTtJQUVULEtBQUssR0FBMkIsSUFBSSxDQUFDO0lBRTlDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztRQUMxQyxNQUFN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QUFkLGNBQWMsb0dBRmYsMkJBQTJCOzs0RkFFMUIsY0FBYztrQkFKMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7OEJBMEJVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnXG5cbmNvbnN0IFZBTFVFID0gJ3ZhbHVlJztcbmNvbnN0IEZPQ1VTID0gJ2ZvY3VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWVsZCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnQgZXh0ZW5kcyBFbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gQXRyaWJ1dG9zIG9idGVuaWRvcyBlc3TDoXRpY2FtZW50ZVxuICBjb2RlOiBzdHJpbmcgPSAnJztcbiAgdmFsdWU6IGFueTtcbiAgaW5mbzogc3RyaW5nID0gJyc7XG4gIGFsaWdubWVudDogc3RyaW5nID0gJyc7XG4gIHRvb2x0aXA6IHN0cmluZyA9ICcnO1xuXG4gIC8vIEF0cmlidXRvcyBhY3R1YWxpemFkb3MgcG9yIHN1YnNjcmlwY2nDs25cbiAgbWluTGVuZ3RoOiBhbnk7XG4gIG1heExlbmd0aDogYW55O1xuICBtaW5WYWx1ZTogYW55O1xuICBtYXhWYWx1ZTogYW55O1xuICBvblZhbGlkYXRpb246IGFueTtcbiAgY2FwdHVyZVR5cGU6IGFueTtcbiAgdGl0bGU6IGFueTtcbiAgdHlwZTogYW55O1xuICB2aXNpYmxlTGFiZWw6IGFueTtcbiAgcmVxdWlyZWQ6IGFueTtcbiAgb3B0aW9uczogYW55O1xuXG4gIGVycm9yVHlwZTogYW55O1xuICBlcnJvckNvZGU6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGQ6IEZpZWxkRGVzY3JpcHRvciB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5maWVsZCkgeyByZXR1cm47IH1cbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLmZpZWxkPy5fZm9ybUNvbmZpZztcbiAgICBjb25zdCBtYXBwaW5nID0gT2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29uZmlnPy5maWVsZFByb3BhZ2F0ZUF0dHJpYnV0ZXMpO1xuICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXNNYXBwaW5nID0gdGhpcy5mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMuZmllbGRzID8/IFtdO1xuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBmaWVsZEF0dHIgPSBtYXBwaW5nW2luZGV4XT8uWzBdO1xuICAgICAgY29uc3QgY29tcG9uZW50QXR0ciA9IG1hcHBpbmdbaW5kZXhdPy5bMV0/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgICBpZiAoY29tcG9uZW50QXR0cikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZmllbGQ/LltmaWVsZEF0dHJdO1xuICAgICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQXRyaWJ1dG9zIHBlcnNvbmFsaXphZG9zXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGN1c3RvbUF0dHJpYnV0ZXNNYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgY3VzdG9tQXR0cmlidXRlID0gY3VzdG9tQXR0cmlidXRlc01hcHBpbmdbaW5kZXhdO1xuICAgICAgaWYgKGN1c3RvbUF0dHJpYnV0ZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZmllbGQ/LmdldEN1c3RvbUF0dHJpYnV0ZShjdXN0b21BdHRyaWJ1dGUpO1xuICAgICAgICBjb25zdCBmdWxsTmFtZSA9IGBjdXN0b21BdHRyaWJ1dGVzLiR7Y3VzdG9tQXR0cmlidXRlfWA7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoZnVsbE5hbWUsIHZhbHVlKTtcbiAgICAgICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoZnVsbE5hbWUsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBTdWJzY3JpcGNpw7NuIGEgY2FtYmlvcyBlbiBhdHJpYnV0b3NcbiAgICB0aGlzLmZpZWxkPy5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZTogY29tcG9uZW50QXR0ciwgdmFsdWUgPSBudWxsIH0gPSBldmVudCA/PyB7fTtcbiAgICAgIGlmIChjb21wb25lbnRBdHRyKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgdmFsdWUpO1xuICAgICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkLndpZGdldCA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChhdHRyaWJ1dGUgPT09IFZBTFVFKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgPT09IEZPQ1VTKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdXBlci5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB1cGRhdGVWYWx1ZSgpIHsgdGhpcy52YWx1ZSA9IHRoaXMuZmllbGQ/LnZhbHVlOyB9XG4gIG9uSW5wdXRDaGFuZ2UoKSB7IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZD8ubm90aWZ5RWRpdGlvblBhcnRpYWwoKSwgNTApOyB9XG4gIG9uQ2hhbmdlQ29udGVudCgpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRmluaXNoKCksIDUwKTsgfVxuICBvblNob3dJbmZvKGRldGFpbCA9IG51bGwpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRGV0YWlsUmVxdWVzdChkZXRhaWwpLCA1MCk7IH1cblxuICBmb2N1cygpIHsgfVxuICB1cGRhdGVPYmplY3Qod2lkZ2V0VXBkYXRlID0gdHJ1ZSkgeyB0aGlzLmZpZWxkPy5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB3aWRnZXRVcGRhdGUpOyB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmllbGQ/LnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2VDb250ZW50KCk7XG4gIH1cblxuICBpbnB1dFR5cGVkKCkge1xuICAgIHRoaXMudXBkYXRlT2JqZWN0KGZhbHNlKTtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgfVxuXG4gIG51bWJlcklucHV0VmFsaWRhdGlvbihldmVudCkge1xuICAgIGNvbnN0IGsgPSBldmVudC5jaGFyQ29kZTtcbiAgICByZXR1cm4gKGsgPiA0NyAmJiBrIDwgNTgpO1xuICB9XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBOztBQUU3RCxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDO0FBRTdDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYztJQUNqRyxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUztJQUNoRyxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxZQUFZO0lBQzVGLGFBQWEsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxVQUFVO0NBQ3BGLENBQUM7QUFFRixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0FBS3RCLE1BQU0sT0FBTyxjQUFlLFNBQVEsZ0JBQWdCO0lBQ2xELHNDQUFzQztJQUN0QyxXQUFXLEdBQVEsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLFNBQVMsR0FBUSxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7SUFDcEMsWUFBWSxHQUFRLE1BQU0sQ0FBUyxFQUFFLENBQUMsQ0FBQztJQUN2QyxTQUFTLEdBQVEsTUFBTSxDQUFTLEVBQUUs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QUFDO0lBQ3pCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzt3R0E5RVUsY0FBYzs0RkFBZCxjQUFjLG9HQUZmLDJCQUEyQjs7NEZBRTFCLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzhCQThCVSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIHNpZ25hbCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnXG5cbmNvbnN0IENVU1RPTV9BVFRSSUJVVEVTID0gJ2N1c3RvbUF0dHJpYnV0ZXMnO1xuXG5jb25zdCBzaWduYWxlZEF0dHJpYnV0ZXMgPSBbJ2NhcHR1cmVUeXBlJywgJ2Vycm9yQ29kZScsICdlcnJvck1lc3NhZ2UnLCAnZXJyb3JUeXBlJywgJ2RlZmF1bHRWYWx1ZScsXG4gICdkZWZhdWx0RWRpdGFibGUnLCAnYWxpZ25tZW50JywgJ2NvZGUnLCAnaW5mbycsICdyZXF1aXJlZCcsICd0aXRsZScsICd0eXBlJywgJ2Zvcm1hdCcsICdvcHRpb25zJyxcbiAgJ2hhc0NoYW5nZWQnLCAnbWF4TGVuZ3RoJywgJ21heFZhbHVlJywgJ21pbkxlbmd0aCcsICdtaW5WYWx1ZScsICdvblZhbGlkYXRpb24nLCAnb3V0cHV0T25seScsXG4gICdwbGFjZWhvbGRlcicsICd0b29sdGlwJywgJ3ZhbGlkYXRlT25TZXJ2ZXInLCAndmlzaWJsZUxhYmVsJywgJ3Zpc2libGUnLCAnZGlzYWJsZWQnLFxuXTtcblxuY29uc3QgVkFMVUUgPSAndmFsdWUnO1xuY29uc3QgRk9DVVMgPSAnZm9jdXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWZpZWxkJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZENvbXBvbmVudCBleHRlbmRzIEVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBBdHJpYnV0b3MgcHJvcGFnYWRvcyBkZXNkZSBlbCBjYW1wb1xuICBjYXB0dXJlVHlwZTogYW55ID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBlcnJvckNvZGU6IGFueSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgZXJyb3JNZXNzYWdlOiBhbnkgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIGVycm9yVHlwZTogYW55ID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBkZWZhdWx0VmFsdWU6IGFueSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuICBkZWZhdWx0RWRpdGFibGU6IGFueSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGFsaWdubWVudDogYW55ID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBjb2RlOiBhbnkgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIGluZm86IGFueSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuICByZXF1aXJlZDogYW55ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgdGl0bGU6IGFueSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgdHlwZTogYW55ID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICBmb3JtYXQ6IGFueSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuICBvcHRpb25zOiBhbnkgPSBzaWduYWw8YW55PihudWxsKTtcbiAgaGFzQ2hhbmdlZDogYW55ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgbWluTGVuZ3RoOiBhbnkgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgbWF4TGVuZ3RoOiBhbnkgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgbWluVmFsdWU6IGFueSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuICBtYXhWYWx1ZTogYW55ID0gc2lnbmFsPGFueT4obnVsbCk7XG4gIG9uVmFsaWRhdGlvbjogYW55ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgb3V0cHV0T25seTogYW55ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcGxhY2Vob2xkZXI6IGFueSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgdG9vbHRpcDogYW55ID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICB2YWxpZGF0ZU9uU2VydmVyOiBhbnkgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICB2aXNpYmxlTGFiZWw6IGFueSA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcblxuICB2YWx1ZTogYW55OyAgLy8gVmFsb3IgZGVsIGNvbXBvbmVudGUgcmVsYWNpb25hZG8gY29uIGVsIGNhbXBvIChwdWVkZW4gZGlmZXJpciBlbiBmb3JtYXRvIHkgdGlwbylcbiAgQElucHV0KCkgZmllbGQ6IEZpZWxkRGVzY3JpcHRvciB8IG51bGwgPSBudWxsO1xuXG4gIHVwZGF0ZVByb3BhZ2F0ZWRBdHRyaWJ1dGVzKCkge1xuICAgIHRoaXMudXBkYXRlUGllY2VBdHRyaWJ1dGVzKHRoaXMuZmllbGQsIHNpZ25hbGVkQXR0cmlidXRlcylcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5maWVsZCkgeyByZXR1cm47IH1cbiAgICB0aGlzLmZpZWxkLndpZGdldCA9IHRoaXM7XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5maWVsZD8uX2Zvcm1Db25maWc7XG4gICAgdGhpcy51cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpO1xuICAgIHRoaXMucmVwbGFjZUN1c3RvbUF0dHJpYnV0ZXModGhpcy5maWVsZD8uY3VzdG9tQXR0cmlidXRlcyk7XG4gICAgdGhpcy5maWVsZD8uYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWU6IGF0dHJpYnV0ZSwgdmFsdWUgPSBudWxsIH0gPSBldmVudCA/PyB7fTtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZVBhcnRzID0gYXR0cmlidXRlPy5zcGxpdCgnLicpID8/IFtdO1xuICAgICAgaWYgKGF0dHJpYnV0ZSA9PT0gVkFMVUUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSgpO1xuICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgPT09IEZPQ1VTKSB7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSBpZiAoc2lnbmFsZWRBdHRyaWJ1dGVzLmluY2x1ZGVzKGF0dHJpYnV0ZSkpIHtcbiAgICAgICAgdGhpcy51cGRhdGVQaWVjZUF0dHJpYnV0ZShzaWduYWxlZEF0dHJpYnV0ZXMsIGF0dHJpYnV0ZSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVQYXJ0cz8ubGVuZ3RoID4gMSAmJiBhdHRyaWJ1dGVQYXJ0cz8uWzBdID09PSBDVVNUT01fQVRUUklCVVRFUykge1xuICAgICAgICBjb25zdCBzdWJBdHRyaWJ1dGUgPSBhdHRyaWJ1dGVQYXJ0cz8uWzFdID8/IG51bGw7XG4gICAgICAgIHRoaXMudXBkYXRlQ3VzdG9tQXR0cmlidXRlKHN1YkF0dHJpYnV0ZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmZpZWxkPy52YWx1ZTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoKSB7IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZD8ubm90aWZ5RWRpdGlvblBhcnRpYWwoKSwgNTApOyB9XG4gIG9uQ2hhbmdlQ29udGVudCgpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRmluaXNoKCksIDUwKTsgfVxuICBvblNob3dJbmZvKGRldGFpbCA9IG51bGwpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRGV0YWlsUmVxdWVzdChkZXRhaWwpLCA1MCk7IH1cblxuICBmb2N1cygpIHsgfVxuXG4gIHVwZGF0ZU9iamVjdCh3aWRnZXRVcGRhdGUgPSB0cnVlKSB7IHRoaXMuZmllbGQ/LnNldFZhbHVlKHRoaXMudmFsdWUsIHdpZGdldFVwZGF0ZSk7IH1cblxuICBpbnB1dENoYW5nZWQoKSB7XG4gICAgdGhpcy5maWVsZD8uc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZUNvbnRlbnQoKTtcbiAgfVxuXG4gIGlucHV0VHlwZWQoKSB7XG4gICAgdGhpcy51cGRhdGVPYmplY3QoZmFsc2UpO1xuICAgIHRoaXMub25JbnB1dENoYW5nZSgpO1xuICB9XG59XG4iXX0=
@@ -1,32 +1,56 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, signal, computed } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  const CUSTOM_ATTRIBUTES = 'customAttributes';
4
4
  export class PieceComponent {
5
5
  form;
6
6
  formConfig;
7
- visible = true;
8
- disabled = false;
9
- customAttributes = {};
7
+ visible = signal(false);
8
+ disabled = signal(false);
9
+ enabled = computed(() => !this.disabled());
10
+ customAttributes = signal({});
10
11
  setForm(form) { this.form = form; }
11
- defaultProcessAttributeChange(attribute, value) {
12
- if (!attribute || attribute.trim() === '') {
13
- return false;
12
+ propagatedAttributeChange(attribute, value) { }
13
+ updatePieceAttribute(signaledAttributes, signaledAttribute, value) {
14
+ if (!signaledAttributes.includes(signaledAttribute)) {
15
+ return;
14
16
  }
15
- const attributeParts = attribute.split('.');
16
- if (attributeParts?.length > 1) {
17
- const [attributeType, subAttribute] = attributeParts;
18
- if (attributeType === CUSTOM_ATTRIBUTES) {
19
- this.customAttributes[subAttribute] = value;
20
- this.customAttributeChange(subAttribute, value);
21
- }
17
+ this[signaledAttribute]?.set(value);
18
+ this.propagatedAttributeChange(signaledAttribute, value);
19
+ }
20
+ updatePieceAttributes(piece, signaledAttributes) {
21
+ if (!piece) {
22
+ return;
22
23
  }
23
- else {
24
- this[attribute] = value;
24
+ // Se recore el conjunto de los atributos propagados desde el piece y se asigna el valor respectivo
25
+ for (let index = 0; index < signaledAttributes.length; index++) {
26
+ const signaledAttribute = signaledAttributes[index];
27
+ try {
28
+ this[signaledAttribute]?.set(piece?.[signaledAttribute]);
29
+ this.propagatedAttributeChange(signaledAttribute, piece?.[signaledAttribute]);
30
+ }
31
+ catch (e) {
32
+ console.log(`Señal ${signaledAttribute} invalida en el componente. ${e}`);
33
+ }
25
34
  }
26
- return true;
27
35
  }
28
- customProcessAttributeChange(attribute, value) { }
36
+ // Función que las subclases pueden sobrecargar para manejar un comportamiento específico
29
37
  customAttributeChange(subAttribute, value) { }
38
+ updateCustomAttribute(attrName, attrValue) {
39
+ this.customAttributes.update(oldCustomAttr => {
40
+ oldCustomAttr[attrName] = attrValue;
41
+ return oldCustomAttr;
42
+ });
43
+ // Ejecución de función personalizada ante un cambio de atributo personalizado
44
+ this.customAttributeChange(attrName, attrValue);
45
+ }
46
+ replaceCustomAttributes(customAttributes) {
47
+ this.customAttributes.set(customAttributes ?? {});
48
+ Object.keys(customAttributes).forEach(attrName => {
49
+ const attrValue = customAttributes[attrName];
50
+ // Ejecución de función personalizada ante un cambio de atributo personalizado
51
+ this.customAttributeChange(attrName, attrValue);
52
+ });
53
+ }
30
54
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
55
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PieceComponent, selector: "lib-piece", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
32
56
  }
@@ -37,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
37
61
  template: `<ng-content></ng-content>`
38
62
  }]
39
63
  }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvcGllY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFLN0MsTUFBTSxPQUFPLGNBQWM7SUFDekIsSUFBSSxDQUFNO0lBQ1YsVUFBVSxDQUFNO0lBQ2hCLE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixnQkFBZ0IsR0FBUSxFQUFFLENBQUM7SUFFM0IsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbkMsNkJBQTZCLENBQUMsU0FBaUIsRUFBRSxLQUFXO1FBQzFELElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxjQUFjLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDO1lBQ3JELElBQUksYUFBYSxLQUFLLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsU0FBaUIsRUFBRSxLQUFXLElBQUksQ0FBQztJQUVoRSxxQkFBcUIsQ0FBQyxZQUFvQixFQUFFLEtBQVcsSUFBSSxDQUFDO3dHQTVCakQsY0FBYzs0RkFBZCxjQUFjLGlEQUZmLDJCQUEyQjs7NEZBRTFCLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IENVU1RPTV9BVFRSSUJVVEVTID0gJ2N1c3RvbUF0dHJpYnV0ZXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXBpZWNlJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBQaWVjZUNvbXBvbmVudCB7XG4gIGZvcm06IGFueTtcbiAgZm9ybUNvbmZpZzogYW55O1xuICB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3VzdG9tQXR0cmlidXRlczogYW55ID0ge307XG5cbiAgc2V0Rm9ybShmb3JtKSB7IHRoaXMuZm9ybSA9IGZvcm07IH1cblxuICBkZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSB8fCBhdHRyaWJ1dGUudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBhdHRyaWJ1dGVQYXJ0cyA9IGF0dHJpYnV0ZS5zcGxpdCgnLicpO1xuICAgIGlmIChhdHRyaWJ1dGVQYXJ0cz8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgW2F0dHJpYnV0ZVR5cGUsIHN1YkF0dHJpYnV0ZV0gPSBhdHRyaWJ1dGVQYXJ0cztcbiAgICAgIGlmIChhdHRyaWJ1dGVUeXBlID09PSBDVVNUT01fQVRUUklCVVRFUykge1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbc3ViQXR0cmlidXRlXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZUNoYW5nZShzdWJBdHRyaWJ1dGUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1thdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY3VzdG9tUHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxuXG4gIGN1c3RvbUF0dHJpYnV0ZUNoYW5nZShzdWJBdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxufVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvcGllY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFNUQsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUs3QyxNQUFNLE9BQU8sY0FBYztJQUN6QixJQUFJLENBQU07SUFDVixVQUFVLENBQU07SUFDaEIsT0FBTyxHQUFRLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixRQUFRLEdBQVEsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLE9BQU8sR0FBUSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNoRCxnQkFBZ0IsR0FBUSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFbkMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbkMseUJBQXlCLENBQUMsU0FBaUIsRUFBRSxLQUFXLElBQUksQ0FBQztJQUU3RCxvQkFBb0IsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxLQUFLO1FBQy9ELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBSyxFQUFFLGtCQUFrQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUN2QixtR0FBbUc7UUFDbkcsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQy9ELE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDO2dCQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7WUFDaEYsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLGlCQUFpQiwrQkFBK0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCx5RkFBeUY7SUFDekYscUJBQXFCLENBQUMsWUFBb0IsRUFBRSxLQUFXLElBQUksQ0FBQztJQUU1RCxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsU0FBUztRQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzNDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUM7WUFDcEMsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCw4RUFBOEU7UUFDOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsZ0JBQWdCO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMvQyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3Qyw4RUFBOEU7WUFDOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBbkRVLGNBQWM7NEZBQWQsY0FBYyxpREFGZiwyQkFBMkI7OzRGQUUxQixjQUFjO2tCQUoxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgc2lnbmFsLCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBDVVNUT01fQVRUUklCVVRFUyA9ICdjdXN0b21BdHRyaWJ1dGVzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1waWVjZScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgUGllY2VDb21wb25lbnQge1xuICBmb3JtOiBhbnk7XG4gIGZvcm1Db25maWc6IGFueTtcbiAgdmlzaWJsZTogYW55ID0gc2lnbmFsKGZhbHNlKTtcbiAgZGlzYWJsZWQ6IGFueSA9IHNpZ25hbChmYWxzZSk7XG4gIGVuYWJsZWQ6IGFueSA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmRpc2FibGVkKCkpO1xuICBjdXN0b21BdHRyaWJ1dGVzOiBhbnkgPSBzaWduYWwoe30pO1xuXG4gIHNldEZvcm0oZm9ybSkgeyB0aGlzLmZvcm0gPSBmb3JtOyB9XG5cbiAgcHJvcGFnYXRlZEF0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxuXG4gIHVwZGF0ZVBpZWNlQXR0cmlidXRlKHNpZ25hbGVkQXR0cmlidXRlcywgc2lnbmFsZWRBdHRyaWJ1dGUsIHZhbHVlKSB7XG4gICAgaWYgKCFzaWduYWxlZEF0dHJpYnV0ZXMuaW5jbHVkZXMoc2lnbmFsZWRBdHRyaWJ1dGUpKSB7IHJldHVybjsgfVxuICAgIHRoaXNbc2lnbmFsZWRBdHRyaWJ1dGVdPy5zZXQodmFsdWUpO1xuICAgIHRoaXMucHJvcGFnYXRlZEF0dHJpYnV0ZUNoYW5nZShzaWduYWxlZEF0dHJpYnV0ZSwgdmFsdWUpO1xuICB9XG5cbiAgdXBkYXRlUGllY2VBdHRyaWJ1dGVzKHBpZWNlLCBzaWduYWxlZEF0dHJpYnV0ZXMpIHtcbiAgICBpZiAoIXBpZWNlKSB7IHJldHVybjsgfVxuICAgIC8vIFNlIHJlY29yZSBlbCBjb25qdW50byBkZSBsb3MgYXRyaWJ1dG9zIHByb3BhZ2Fkb3MgZGVzZGUgZWwgcGllY2UgeSBzZSBhc2lnbmEgZWwgdmFsb3IgcmVzcGVjdGl2b1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzaWduYWxlZEF0dHJpYnV0ZXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBzaWduYWxlZEF0dHJpYnV0ZSA9IHNpZ25hbGVkQXR0cmlidXRlc1tpbmRleF07XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzW3NpZ25hbGVkQXR0cmlidXRlXT8uc2V0KHBpZWNlPy5bc2lnbmFsZWRBdHRyaWJ1dGVdKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVkQXR0cmlidXRlQ2hhbmdlKHNpZ25hbGVkQXR0cmlidXRlLCBwaWVjZT8uW3NpZ25hbGVkQXR0cmlidXRlXSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTZcOxYWwgJHtzaWduYWxlZEF0dHJpYnV0ZX0gaW52YWxpZGEgZW4gZWwgY29tcG9uZW50ZS4gJHtlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEZ1bmNpw7NuIHF1ZSBsYXMgc3ViY2xhc2VzIHB1ZWRlbiBzb2JyZWNhcmdhciBwYXJhIG1hbmVqYXIgdW4gY29tcG9ydGFtaWVudG8gZXNwZWPDrWZpY29cbiAgY3VzdG9tQXR0cmlidXRlQ2hhbmdlKHN1YkF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSkgeyB9XG5cbiAgdXBkYXRlQ3VzdG9tQXR0cmlidXRlKGF0dHJOYW1lLCBhdHRyVmFsdWUpIHtcbiAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXMudXBkYXRlKG9sZEN1c3RvbUF0dHIgPT4ge1xuICAgICAgb2xkQ3VzdG9tQXR0clthdHRyTmFtZV0gPSBhdHRyVmFsdWU7XG4gICAgICByZXR1cm4gb2xkQ3VzdG9tQXR0cjtcbiAgICB9KTtcbiAgICAvLyBFamVjdWNpw7NuIGRlIGZ1bmNpw7NuIHBlcnNvbmFsaXphZGEgYW50ZSB1biBjYW1iaW8gZGUgYXRyaWJ1dG8gcGVyc29uYWxpemFkb1xuICAgIHRoaXMuY3VzdG9tQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICB9XG5cbiAgcmVwbGFjZUN1c3RvbUF0dHJpYnV0ZXMoY3VzdG9tQXR0cmlidXRlcykge1xuICAgIHRoaXMuY3VzdG9tQXR0cmlidXRlcy5zZXQoY3VzdG9tQXR0cmlidXRlcyA/PyB7fSk7XG4gICAgT2JqZWN0LmtleXMoY3VzdG9tQXR0cmlidXRlcykuZm9yRWFjaChhdHRyTmFtZSA9PiB7XG4gICAgICBjb25zdCBhdHRyVmFsdWUgPSBjdXN0b21BdHRyaWJ1dGVzW2F0dHJOYW1lXTtcbiAgICAgIC8vIEVqZWN1Y2nDs24gZGUgZnVuY2nDs24gcGVyc29uYWxpemFkYSBhbnRlIHVuIGNhbWJpbyBkZSBhdHJpYnV0byBwZXJzb25hbGl6YWRvXG4gICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZUNoYW5nZShhdHRyTmFtZSwgYXR0clZhbHVlKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,23 +1,31 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { PieceComponent } from './piece.component';
3
3
  import * as i0 from "@angular/core";
4
+ const CUSTOM_ATTRIBUTES = 'customAttributes';
5
+ const signaledAttributes = [
6
+ 'visible', 'disabled',
7
+ ];
4
8
  export class SectionComponent extends PieceComponent {
5
9
  section;
10
+ updatePropagatedAttributes() {
11
+ this.updatePieceAttributes(this.section, signaledAttributes);
12
+ }
6
13
  ngOnInit() {
7
- this.formConfig = this.section?._formConfig;
8
- const mapping = this.formConfig?.sectionPropagateAttributes;
9
- for (let index = 0; index < mapping.length; index++) {
10
- const attrName = mapping[index].toString();
11
- const attributeValue = this.section?.[attrName];
12
- this.defaultProcessAttributeChange(attrName, attributeValue);
13
- this.customProcessAttributeChange(attrName, attributeValue);
14
+ if (!this.section) {
15
+ return;
14
16
  }
15
- // Subscripción a cambios en atributos
17
+ this.formConfig = this.section?._formConfig;
18
+ this.updatePropagatedAttributes();
19
+ this.replaceCustomAttributes(this.section?.customAttributes);
16
20
  this.section?.attributeChange.subscribe(event => {
17
- const { name: attrName, value = null } = event ?? {};
18
- if (attrName) {
19
- this.defaultProcessAttributeChange(attrName, value);
20
- this.customProcessAttributeChange(attrName, value);
21
+ const { name: attribute, value = null } = event ?? {};
22
+ const attributeParts = attribute?.split('.') ?? [];
23
+ if (signaledAttributes.includes(attribute)) {
24
+ this.updatePieceAttribute(signaledAttributes, attribute, value);
25
+ }
26
+ else if (attributeParts?.length > 1 && attributeParts?.[0] === CUSTOM_ATTRIBUTES) {
27
+ const subAttribute = attributeParts?.[1] ?? null;
28
+ this.updateCustomAttribute(subAttribute, value);
21
29
  }
22
30
  });
23
31
  this.start();
@@ -37,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
37
45
  }], propDecorators: { section: [{
38
46
  type: Input
39
47
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL2xheW91dC9zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUFjO0lBQ3pDLE9BQU8sQ0FBTTtJQUV0QixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLDBCQUEwQixDQUFDO1FBQzVELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDckQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBekJVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLDBHQUZqQiwyQkFBMkI7OzRGQUUxQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzhCQUVVLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGllY2VDb21wb25lbnQgfSBmcm9tICcuL3BpZWNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUGllY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZWN0aW9uOiBhbnk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5zZWN0aW9uPy5fZm9ybUNvbmZpZztcbiAgICBjb25zdCBtYXBwaW5nID0gdGhpcy5mb3JtQ29uZmlnPy5zZWN0aW9uUHJvcGFnYXRlQXR0cmlidXRlcztcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWFwcGluZy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGF0dHJOYW1lID0gbWFwcGluZ1tpbmRleF0udG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5zZWN0aW9uPy5bYXR0ck5hbWVdO1xuICAgICAgdGhpcy5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgfVxuICAgIC8vIFN1YnNjcmlwY2nDs24gYSBjYW1iaW9zIGVuIGF0cmlidXRvc1xuICAgIHRoaXMuc2VjdGlvbj8uYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWU6IGF0dHJOYW1lLCB2YWx1ZSA9IG51bGwgfSA9IGV2ZW50ID8/IHt9O1xuICAgICAgaWYgKGF0dHJOYW1lKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKHRoaXMuc2VjdGlvbj8uX2Zvcm0pO1xuICB9XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL2xheW91dC9zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRW5ELE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixTQUFTLEVBQUUsVUFBVTtDQUN0QixDQUFDO0FBTUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGNBQWM7SUFDekMsT0FBTyxDQUFNO0lBR3RCLDBCQUEwQjtRQUN4QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUM7UUFDNUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkQsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsRSxDQUFDO2lCQUFNLElBQUksY0FBYyxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztnQkFDbkYsTUFBTSxZQUFZLEdBQUcsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO2dCQUNqRCxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBNUJVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLDBHQUZqQiwyQkFBMkI7OzRGQUUxQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzhCQUVVLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGllY2VDb21wb25lbnQgfSBmcm9tICcuL3BpZWNlLmNvbXBvbmVudCc7XG5cbmNvbnN0IENVU1RPTV9BVFRSSUJVVEVTID0gJ2N1c3RvbUF0dHJpYnV0ZXMnO1xuXG5jb25zdCBzaWduYWxlZEF0dHJpYnV0ZXMgPSBbXG4gICd2aXNpYmxlJywgJ2Rpc2FibGVkJyxcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUGllY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZWN0aW9uOiBhbnk7XG5cblxuICB1cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlcyh0aGlzLnNlY3Rpb24sIHNpZ25hbGVkQXR0cmlidXRlcylcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5zZWN0aW9uKSB7IHJldHVybjsgfVxuICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMuc2VjdGlvbj8uX2Zvcm1Db25maWc7XG4gICAgdGhpcy51cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpO1xuICAgIHRoaXMucmVwbGFjZUN1c3RvbUF0dHJpYnV0ZXModGhpcy5zZWN0aW9uPy5jdXN0b21BdHRyaWJ1dGVzKTtcbiAgICB0aGlzLnNlY3Rpb24/LmF0dHJpYnV0ZUNoYW5nZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lOiBhdHRyaWJ1dGUsIHZhbHVlID0gbnVsbCB9ID0gZXZlbnQgPz8ge307XG4gICAgICBjb25zdCBhdHRyaWJ1dGVQYXJ0cyA9IGF0dHJpYnV0ZT8uc3BsaXQoJy4nKSA/PyBbXTtcbiAgICAgIGlmIChzaWduYWxlZEF0dHJpYnV0ZXMuaW5jbHVkZXMoYXR0cmlidXRlKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlKHNpZ25hbGVkQXR0cmlidXRlcywgYXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVBhcnRzPy5sZW5ndGggPiAxICYmIGF0dHJpYnV0ZVBhcnRzPy5bMF0gPT09IENVU1RPTV9BVFRSSUJVVEVTKSB7XG4gICAgICAgIGNvbnN0IHN1YkF0dHJpYnV0ZSA9IGF0dHJpYnV0ZVBhcnRzPy5bMV0gPz8gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVDdXN0b21BdHRyaWJ1dGUoc3ViQXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKHRoaXMuc2VjdGlvbj8uX2Zvcm0pO1xuICB9XG59XG4iXX0=
@@ -1,23 +1,31 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { PieceComponent } from './piece.component';
3
3
  import * as i0 from "@angular/core";
4
+ const CUSTOM_ATTRIBUTES = 'customAttributes';
5
+ const signaledAttributes = [
6
+ 'visible', 'disabled',
7
+ ];
4
8
  export class SubSectionComponent extends PieceComponent {
5
9
  subSection;
10
+ updatePropagatedAttributes() {
11
+ this.updatePieceAttributes(this.subSection, signaledAttributes);
12
+ }
6
13
  ngOnInit() {
7
- this.formConfig = this.subSection?._formConfig;
8
- const mapping = this.formConfig?.subSectionPropagateAttributes;
9
- for (let index = 0; index < mapping.length; index++) {
10
- const attrName = mapping[index].toString();
11
- const attributeValue = this.subSection?.[attrName];
12
- this.defaultProcessAttributeChange(attrName, attributeValue);
13
- this.customProcessAttributeChange(attrName, attributeValue);
14
+ if (!this.subSection) {
15
+ return;
14
16
  }
15
- // Subscripción a cambios en atributos
17
+ this.formConfig = this.subSection?._formConfig;
18
+ this.updatePropagatedAttributes();
19
+ this.replaceCustomAttributes(this.subSection?.customAttributes);
16
20
  this.subSection?.attributeChange.subscribe(event => {
17
- const { name: attrName, value = null } = event ?? {};
18
- if (attrName) {
19
- this.defaultProcessAttributeChange(attrName, value);
20
- this.customProcessAttributeChange(attrName, value);
21
+ const { name: attribute, value = null } = event ?? {};
22
+ const attributeParts = attribute?.split('.') ?? [];
23
+ if (signaledAttributes.includes(attribute)) {
24
+ this.updatePieceAttribute(signaledAttributes, attribute, value);
25
+ }
26
+ else if (attributeParts?.length > 1 && attributeParts?.[0] === CUSTOM_ATTRIBUTES) {
27
+ const subAttribute = attributeParts?.[1] ?? null;
28
+ this.updateCustomAttribute(subAttribute, value);
21
29
  }
22
30
  });
23
31
  this.start();
@@ -37,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
37
45
  }], propDecorators: { subSection: [{
38
46
  type: Input
39
47
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvc3ViLXNlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFDNUMsVUFBVSxDQUFNO0lBRXpCLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsNkJBQTZCLENBQUM7UUFDL0QsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0Qsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyRCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0F6QlUsbUJBQW1COzRGQUFuQixtQkFBbUIsbUhBRnBCLDJCQUEyQjs7NEZBRTFCLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs4QkFFVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQaWVjZUNvbXBvbmVudCB9IGZyb20gJy4vcGllY2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN1YnNlY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIFN1YlNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBQaWVjZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN1YlNlY3Rpb246IGFueTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLnN1YlNlY3Rpb24/Ll9mb3JtQ29uZmlnO1xuICAgIGNvbnN0IG1hcHBpbmcgPSB0aGlzLmZvcm1Db25maWc/LnN1YlNlY3Rpb25Qcm9wYWdhdGVBdHRyaWJ1dGVzO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgYXR0ck5hbWUgPSBtYXBwaW5nW2luZGV4XS50b1N0cmluZygpO1xuICAgICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSB0aGlzLnN1YlNlY3Rpb24/LlthdHRyTmFtZV07XG4gICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICB9XG4gICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgdGhpcy5zdWJTZWN0aW9uPy5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZTogYXR0ck5hbWUsIHZhbHVlID0gbnVsbCB9ID0gZXZlbnQgPz8ge307XG4gICAgICBpZiAoYXR0ck5hbWUpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyTmFtZSwgdmFsdWUpO1xuICAgICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHtcbiAgICB0aGlzLnNldEZvcm0odGhpcy5zdWJTZWN0aW9uPy5fZm9ybSk7XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvc3ViLXNlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFbkQsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUU3QyxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLFNBQVMsRUFBRSxVQUFVO0NBQ3RCLENBQUM7QUFNRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQUM1QyxVQUFVLENBQU07SUFFekIsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUE7SUFDakUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQztRQUMvQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN0RCxNQUFNLGNBQWMsR0FBRyxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRCxJQUFJLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLENBQUM7aUJBQU0sSUFBSSxjQUFjLEVBQUUsTUFBTSxHQUFHLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO2dCQUNuRixNQUFNLFlBQVksR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0EzQlUsbUJBQW1COzRGQUFuQixtQkFBbUIsbUhBRnBCLDJCQUEyQjs7NEZBRTFCLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs4QkFFVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQaWVjZUNvbXBvbmVudCB9IGZyb20gJy4vcGllY2UuY29tcG9uZW50JztcblxuY29uc3QgQ1VTVE9NX0FUVFJJQlVURVMgPSAnY3VzdG9tQXR0cmlidXRlcyc7XG5cbmNvbnN0IHNpZ25hbGVkQXR0cmlidXRlcyA9IFtcbiAgJ3Zpc2libGUnLCAnZGlzYWJsZWQnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN1YnNlY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIFN1YlNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBQaWVjZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN1YlNlY3Rpb246IGFueTtcblxuICB1cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlcyh0aGlzLnN1YlNlY3Rpb24sIHNpZ25hbGVkQXR0cmlidXRlcylcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5zdWJTZWN0aW9uKSB7IHJldHVybjsgfVxuICAgIHRoaXMuZm9ybUNvbmZpZyA9IHRoaXMuc3ViU2VjdGlvbj8uX2Zvcm1Db25maWc7XG4gICAgdGhpcy51cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpO1xuICAgIHRoaXMucmVwbGFjZUN1c3RvbUF0dHJpYnV0ZXModGhpcy5zdWJTZWN0aW9uPy5jdXN0b21BdHRyaWJ1dGVzKTtcbiAgICB0aGlzLnN1YlNlY3Rpb24/LmF0dHJpYnV0ZUNoYW5nZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lOiBhdHRyaWJ1dGUsIHZhbHVlID0gbnVsbCB9ID0gZXZlbnQgPz8ge307XG4gICAgICBjb25zdCBhdHRyaWJ1dGVQYXJ0cyA9IGF0dHJpYnV0ZT8uc3BsaXQoJy4nKSA/PyBbXTtcbiAgICAgIGlmIChzaWduYWxlZEF0dHJpYnV0ZXMuaW5jbHVkZXMoYXR0cmlidXRlKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlKHNpZ25hbGVkQXR0cmlidXRlcywgYXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZVBhcnRzPy5sZW5ndGggPiAxICYmIGF0dHJpYnV0ZVBhcnRzPy5bMF0gPT09IENVU1RPTV9BVFRSSUJVVEVTKSB7XG4gICAgICAgIGNvbnN0IHN1YkF0dHJpYnV0ZSA9IGF0dHJpYnV0ZVBhcnRzPy5bMV0gPz8gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVDdXN0b21BdHRyaWJ1dGUoc3ViQXR0cmlidXRlLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKHRoaXMuc3ViU2VjdGlvbj8uX2Zvcm0pO1xuICB9XG59XG4iXX0=
@@ -2,21 +2,26 @@ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from
2
2
  import { PieceComponent } from '../layout/piece.component';
3
3
  import * as i0 from "@angular/core";
4
4
  const INLINE_ACTION = 'INLINE';
5
+ const CUSTOM_ATTRIBUTES = 'customAttributes';
6
+ const signaledAttributes = [
7
+ 'visible', 'disabled',
8
+ ];
5
9
  export class LibTableRecordActionComponent extends PieceComponent {
6
10
  isVisible = true;
7
11
  recordId;
8
12
  recordData;
9
13
  action;
10
14
  actionSelected = new EventEmitter();
15
+ updatePropagatedAttributes() {
16
+ this.updatePieceAttributes(this.action, signaledAttributes);
17
+ }
11
18
  ngOnInit() {
12
- this.formConfig = this.action?._formConfig;
13
- const mapping = this.formConfig?.actionPropagateAttributes;
14
- for (let index = 0; index < mapping.length; index++) {
15
- const attrName = mapping[index].toString();
16
- const attributeValue = this.action?.[attrName];
17
- this.defaultProcessAttributeChange(attrName, attributeValue);
18
- this.customProcessAttributeChange(attrName, attributeValue);
19
+ if (!this.action) {
20
+ return;
19
21
  }
22
+ this.formConfig = this.action?._formConfig;
23
+ this.updatePropagatedAttributes();
24
+ this.replaceCustomAttributes(this.action?.customAttributes);
20
25
  this.start();
21
26
  }
22
27
  start() {
@@ -64,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
64
69
  }], actionSelected: [{
65
70
  type: Output
66
71
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmVjb3JkLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL3RhYmxlcy90YWJsZS1yZWNvcmQtYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJM0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBUS9CLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxjQUFjO0lBQy9ELFNBQVMsR0FBWSxJQUFJLENBQUM7SUFDakIsUUFBUSxDQUFNO0lBQ2QsVUFBVSxDQUFNO0lBQ2hCLE1BQU0sQ0FBMEI7SUFFL0IsY0FBYyxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUVoRyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLHlCQUF5QixDQUFDO1FBQzNELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7WUFDbkQsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2dCQUN6RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUE7Z0JBQ3RELElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLGlCQUFpQixLQUFLLGdCQUFnQixDQUFDO3VCQUNuRSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksaUJBQWlCLEtBQUssZ0JBQWdCLENBQUMsRUFBRSxDQUFDO29CQUMxRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sVUFBVSxHQUFxQjtZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksRUFBRTtZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxLQUFLLENBQUM7d0dBOUNBLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLG1OQUo5QiwyQkFBMkI7OzRGQUkxQiw2QkFBNkI7a0JBTnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUlVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQaWVjZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC9waWVjZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVFdmVudCwgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL2FjdGlvbic7XG5cbmNvbnN0IElOTElORV9BQ1RJT04gPSAnSU5MSU5FJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLXJlY29yZC1hY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlUmVjb3JkQWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUGllY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc1Zpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSByZWNvcmRJZDogYW55O1xuICBASW5wdXQoKSByZWNvcmREYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGFjdGlvbjogVGFibGVBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIGFjdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uRXZlbnQ+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5hY3Rpb24/Ll9mb3JtQ29uZmlnO1xuICAgIGNvbnN0IG1hcHBpbmcgPSB0aGlzLmZvcm1Db25maWc/LmFjdGlvblByb3BhZ2F0ZUF0dHJpYnV0ZXM7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IG1hcHBpbmdbaW5kZXhdLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuYWN0aW9uPy5bYXR0ck5hbWVdO1xuICAgICAgdGhpcy5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHN0YXJ0KCkge1xuICAgIGlmICh0aGlzLmFjdGlvbiAmJiB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25GaWVsZCAmJiB0aGlzLnJlY29yZERhdGEpIHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IHRoaXMuYWN0aW9uLnJlc3RyaWN0ZWRPbkZpZWxkO1xuICAgICAgaWYgKHJlbGF0ZWRGaWVsZCkge1xuICAgICAgICBjb25zdCByZWxhdGVkRmllbGRWYWx1ZSA9IHRoaXMucmVjb3JkRGF0YVtyZWxhdGVkRmllbGRdO1xuICAgICAgICBjb25zdCByZXN0cmljdGlvbk9wZXIgPSB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25PcGVyYXRvcjtcbiAgICAgICAgY29uc3QgcmVzdHJpY3Rpb25WYWx1ZSA9IHRoaXMuYWN0aW9uLnJlc3RyaWN0ZWRPblZhbHVlXG4gICAgICAgIGlmICgocmVzdHJpY3Rpb25PcGVyID09PSAnPT0nICYmIHJlbGF0ZWRGaWVsZFZhbHVlICE9PSByZXN0cmljdGlvblZhbHVlKVxuICAgICAgICAgIHx8IChyZXN0cmljdGlvbk9wZXIgPT09ICchPScgJiYgcmVsYXRlZEZpZWxkVmFsdWUgPT09IHJlc3RyaWN0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkFjdGl2YXRlKCkge1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQgPSB7XG4gICAgICBhY3Rpb25Db2RlOiB0aGlzLmFjdGlvbj8uYWN0aW9uQ29kZSA/PyAnJyxcbiAgICAgIHJlY29yZElkOiB0aGlzLnJlY29yZElkLFxuICAgICAgcmVjb3JkRGF0YTogdGhpcy5yZWNvcmREYXRhLFxuICAgIH07XG4gICAgdGhpcy5hY3Rpb25TZWxlY3RlZC5lbWl0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgY2xhc3MoKSB7IH1cbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmVjb3JkLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL3RhYmxlcy90YWJsZS1yZWNvcmQtYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJM0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBQy9CLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixTQUFTLEVBQUUsVUFBVTtDQUN0QixDQUFDO0FBUUYsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGNBQWM7SUFDL0QsU0FBUyxHQUFZLElBQUksQ0FBQztJQUNqQixRQUFRLENBQU07SUFDZCxVQUFVLENBQU07SUFDaEIsTUFBTSxDQUEwQjtJQUUvQixjQUFjLEdBQW1DLElBQUksWUFBWSxFQUFvQixDQUFDO0lBRWhHLDBCQUEwQjtRQUN4QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7UUFDM0MsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ25ELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDeEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztnQkFDekQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFBO2dCQUN0RCxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxpQkFBaUIsS0FBSyxnQkFBZ0IsQ0FBQzt1QkFDbkUsQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLGlCQUFpQixLQUFLLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLFVBQVUsR0FBcUI7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxJQUFJLEVBQUU7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM1QixDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELEtBQUssS0FBSyxDQUFDO3dHQTlDQSw2QkFBNkI7NEZBQTdCLDZCQUE2QixtTkFKOUIsMkJBQTJCOzs0RkFJMUIsNkJBQTZCO2tCQU56QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFJVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIE9uSW5pdCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGllY2VDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvcGllY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlRXZlbnQsIFRhYmxlQWN0aW9uRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3Jtcy90YWJsZS9hY3Rpb24nO1xuXG5jb25zdCBJTkxJTkVfQUNUSU9OID0gJ0lOTElORSc7XG5jb25zdCBDVVNUT01fQVRUUklCVVRFUyA9ICdjdXN0b21BdHRyaWJ1dGVzJztcblxuY29uc3Qgc2lnbmFsZWRBdHRyaWJ1dGVzID0gW1xuICAndmlzaWJsZScsICdkaXNhYmxlZCcsXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUtcmVjb3JkLWFjdGlvbicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgTGliVGFibGVSZWNvcmRBY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBQaWVjZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHJlY29yZElkOiBhbnk7XG4gIEBJbnB1dCgpIHJlY29yZERhdGE6IGFueTtcbiAgQElucHV0KCkgYWN0aW9uOiBUYWJsZUFjdGlvbiB8IHVuZGVmaW5lZDtcblxuICBAT3V0cHV0KCkgYWN0aW9uU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxUYWJsZUFjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb25FdmVudD4oKTtcblxuICB1cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpIHtcbiAgICB0aGlzLnVwZGF0ZVBpZWNlQXR0cmlidXRlcyh0aGlzLmFjdGlvbiwgc2lnbmFsZWRBdHRyaWJ1dGVzKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbikgeyByZXR1cm47IH1cbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLmFjdGlvbj8uX2Zvcm1Db25maWc7XG4gICAgdGhpcy51cGRhdGVQcm9wYWdhdGVkQXR0cmlidXRlcygpO1xuICAgIHRoaXMucmVwbGFjZUN1c3RvbUF0dHJpYnV0ZXModGhpcy5hY3Rpb24/LmN1c3RvbUF0dHJpYnV0ZXMpO1xuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHN0YXJ0KCkge1xuICAgIGlmICh0aGlzLmFjdGlvbiAmJiB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25GaWVsZCAmJiB0aGlzLnJlY29yZERhdGEpIHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IHRoaXMuYWN0aW9uLnJlc3RyaWN0ZWRPbkZpZWxkO1xuICAgICAgaWYgKHJlbGF0ZWRGaWVsZCkge1xuICAgICAgICBjb25zdCByZWxhdGVkRmllbGRWYWx1ZSA9IHRoaXMucmVjb3JkRGF0YVtyZWxhdGVkRmllbGRdO1xuICAgICAgICBjb25zdCByZXN0cmljdGlvbk9wZXIgPSB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25PcGVyYXRvcjtcbiAgICAgICAgY29uc3QgcmVzdHJpY3Rpb25WYWx1ZSA9IHRoaXMuYWN0aW9uLnJlc3RyaWN0ZWRPblZhbHVlXG4gICAgICAgIGlmICgocmVzdHJpY3Rpb25PcGVyID09PSAnPT0nICYmIHJlbGF0ZWRGaWVsZFZhbHVlICE9PSByZXN0cmljdGlvblZhbHVlKVxuICAgICAgICAgIHx8IChyZXN0cmljdGlvbk9wZXIgPT09ICchPScgJiYgcmVsYXRlZEZpZWxkVmFsdWUgPT09IHJlc3RyaWN0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkFjdGl2YXRlKCkge1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQgPSB7XG4gICAgICBhY3Rpb25Db2RlOiB0aGlzLmFjdGlvbj8uYWN0aW9uQ29kZSA/PyAnJyxcbiAgICAgIHJlY29yZElkOiB0aGlzLnJlY29yZElkLFxuICAgICAgcmVjb3JkRGF0YTogdGhpcy5yZWNvcmREYXRhLFxuICAgIH07XG4gICAgdGhpcy5hY3Rpb25TZWxlY3RlZC5lbWl0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgY2xhc3MoKSB7IH1cbn1cbiJdfQ==