tuain-ng-forms-lib 15.2.11 → 17.0.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 (76) hide show
  1. package/esm2022/lib/classes/forms/action.mjs +78 -0
  2. package/esm2022/lib/classes/forms/element.mjs +18 -0
  3. package/esm2022/lib/classes/forms/field.mjs +458 -0
  4. package/esm2022/lib/classes/forms/form.mjs +581 -0
  5. package/esm2022/lib/classes/forms/piece-propagate.mjs +39 -0
  6. package/esm2022/lib/classes/forms/piece.mjs +126 -0
  7. package/esm2022/lib/classes/forms/section.mjs +139 -0
  8. package/esm2022/lib/classes/forms/subsection.mjs +81 -0
  9. package/esm2022/lib/classes/forms/table/action.mjs +38 -0
  10. package/esm2022/lib/classes/forms/table/column.mjs +74 -0
  11. package/esm2022/lib/classes/forms/table/row-data.mjs +116 -0
  12. package/esm2022/lib/classes/forms/table/table.mjs +481 -0
  13. package/esm2022/lib/components/elements/action.component.mjs +52 -0
  14. package/esm2022/lib/components/elements/field.component.mjs +112 -0
  15. package/esm2022/lib/components/elements/layout/element.component.mjs +21 -0
  16. package/esm2022/lib/components/elements/layout/form-error.component.mjs +23 -0
  17. package/esm2022/lib/components/elements/layout/form-header.component.mjs +23 -0
  18. package/esm2022/lib/components/elements/layout/piece.component.mjs +40 -0
  19. package/esm2022/lib/components/elements/layout/section.component.mjs +40 -0
  20. package/esm2022/lib/components/elements/layout/sub-section.component.mjs +40 -0
  21. package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +67 -0
  22. package/esm2022/lib/components/elements/tables/table-record-field.component.mjs +31 -0
  23. package/esm2022/lib/components/elements/tables/table.component.mjs +95 -0
  24. package/esm2022/lib/components/forms/basic-form.mjs +1314 -0
  25. package/esm2022/lib/services/event-manager.service.mjs +43 -0
  26. package/esm2022/lib/services/form-manager.service.mjs +81 -0
  27. package/{esm2020 → esm2022}/lib/tuain-ng-forms-lib.module.mjs +29 -29
  28. package/{fesm2020 → fesm2022}/tuain-ng-forms-lib.mjs +331 -270
  29. package/fesm2022/tuain-ng-forms-lib.mjs.map +1 -0
  30. package/lib/components/elements/action.component.d.ts +1 -1
  31. package/lib/components/elements/field.component.d.ts +1 -2
  32. package/lib/components/elements/layout/element.component.d.ts +1 -1
  33. package/lib/components/elements/layout/form-error.component.d.ts +1 -1
  34. package/lib/components/elements/layout/form-header.component.d.ts +1 -1
  35. package/lib/components/elements/layout/piece.component.d.ts +1 -1
  36. package/lib/components/elements/layout/section.component.d.ts +1 -1
  37. package/lib/components/elements/layout/sub-section.component.d.ts +1 -1
  38. package/lib/components/elements/tables/table-record-action.component.d.ts +1 -1
  39. package/lib/components/elements/tables/table-record-field.component.d.ts +1 -1
  40. package/lib/components/elements/tables/table.component.d.ts +1 -1
  41. package/lib/components/forms/basic-form.d.ts +1 -1
  42. package/package.json +7 -13
  43. package/esm2020/lib/classes/forms/action.mjs +0 -72
  44. package/esm2020/lib/classes/forms/element.mjs +0 -18
  45. package/esm2020/lib/classes/forms/field.mjs +0 -456
  46. package/esm2020/lib/classes/forms/form.mjs +0 -574
  47. package/esm2020/lib/classes/forms/piece-propagate.mjs +0 -41
  48. package/esm2020/lib/classes/forms/piece.mjs +0 -123
  49. package/esm2020/lib/classes/forms/section.mjs +0 -138
  50. package/esm2020/lib/classes/forms/subsection.mjs +0 -81
  51. package/esm2020/lib/classes/forms/table/action.mjs +0 -30
  52. package/esm2020/lib/classes/forms/table/column.mjs +0 -74
  53. package/esm2020/lib/classes/forms/table/row-data.mjs +0 -116
  54. package/esm2020/lib/classes/forms/table/table.mjs +0 -464
  55. package/esm2020/lib/components/elements/action.component.mjs +0 -55
  56. package/esm2020/lib/components/elements/field.component.mjs +0 -104
  57. package/esm2020/lib/components/elements/layout/element.component.mjs +0 -20
  58. package/esm2020/lib/components/elements/layout/form-error.component.mjs +0 -20
  59. package/esm2020/lib/components/elements/layout/form-header.component.mjs +0 -24
  60. package/esm2020/lib/components/elements/layout/piece.component.mjs +0 -40
  61. package/esm2020/lib/components/elements/layout/section.component.mjs +0 -39
  62. package/esm2020/lib/components/elements/layout/sub-section.component.mjs +0 -39
  63. package/esm2020/lib/components/elements/tables/table-record-action.component.mjs +0 -67
  64. package/esm2020/lib/components/elements/tables/table-record-field.component.mjs +0 -30
  65. package/esm2020/lib/components/elements/tables/table.component.mjs +0 -92
  66. package/esm2020/lib/components/forms/basic-form.mjs +0 -1310
  67. package/esm2020/lib/services/event-manager.service.mjs +0 -43
  68. package/esm2020/lib/services/form-manager.service.mjs +0 -80
  69. package/fesm2015/tuain-ng-forms-lib.mjs +0 -4315
  70. package/fesm2015/tuain-ng-forms-lib.mjs.map +0 -1
  71. package/fesm2020/tuain-ng-forms-lib.mjs.map +0 -1
  72. /package/{esm2020 → esm2022}/lib/classes/forms/form.constants.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/services/file-manager.service.mjs +0 -0
  74. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  75. /package/{esm2020 → esm2022}/tuain-ng-forms-lib.mjs +0 -0
  76. /package/{tuain-ng-forms-lib.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,112 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { ElementComponent } from './layout/element.component';
3
+ import * as i0 from "@angular/core";
4
+ const VALUE = 'value';
5
+ const FOCUS = 'focus';
6
+ 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;
28
+ field = null;
29
+ ngOnInit() {
30
+ if (!this.field) {
31
+ return;
32
+ }
33
+ 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);
43
+ }
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
+ }
55
+ }
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);
63
+ }
64
+ });
65
+ if (this.field) {
66
+ this.field.widget = this;
67
+ }
68
+ this.start();
69
+ }
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;
81
+ }
82
+ updateValue() { this.value = this.field?.value; }
83
+ onInputChange() { setTimeout(() => this.field?.notifyEditionPartial(), 50); }
84
+ onChangeContent() { setTimeout(() => this.field?.notifyEditionFinish(), 50); }
85
+ onShowInfo(detail = null) { setTimeout(() => this.field?.notifyEditionDetailRequest(detail), 50); }
86
+ focus() { }
87
+ updateObject(widgetUpdate = true) { this.field?.setValue(this.value, widgetUpdate); }
88
+ inputChanged() {
89
+ this.field?.setValue(this.value);
90
+ this.onChangeContent();
91
+ }
92
+ inputTyped() {
93
+ this.updateObject(false);
94
+ this.onInputChange();
95
+ }
96
+ numberInputValidation(event) {
97
+ const k = event.charCode;
98
+ return (k > 47 && k < 58);
99
+ }
100
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
101
+ 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
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FieldComponent, decorators: [{
104
+ type: Component,
105
+ args: [{
106
+ selector: 'lib-field',
107
+ template: `<ng-content></ng-content>`
108
+ }]
109
+ }], propDecorators: { field: [{
110
+ type: Input
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7O0FBRTdELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7QUFLdEIsTUFBTSxPQUFPLGNBQWUsU0FBUSxnQkFBZ0I7SUFDbEQsb0NBQW9DO0lBQ3BDLElBQUksR0FBVyxFQUFFLENBQUM7SUFDbEIsS0FBSyxDQUFNO0lBQ1gsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixTQUFTLEdBQVcsRUFBRSxDQUFDO0lBQ3ZCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFFckIsMENBQTBDO0lBQzFDLFNBQVMsQ0FBTTtJQUNmLFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBTTtJQUNkLFFBQVEsQ0FBTTtJQUNkLFlBQVksQ0FBTTtJQUNsQixXQUFXLENBQU07SUFDakIsS0FBSyxDQUFNO0lBQ1gsSUFBSSxDQUFNO0lBQ1YsWUFBWSxDQUFNO0lBQ2xCLFFBQVEsQ0FBTTtJQUNkLE9BQU8sQ0FBTTtJQUViLFNBQVMsQ0FBTTtJQUNmLFNBQVMsQ0FBTTtJQUNmLFlBQVksQ0FBTTtJQUVULEtBQUssR0FBMkIsSUFBSSxDQUFDO0lBRTlDLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQztRQUMxQyxNQUFN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QUFkLGNBQWMsb0dBRmYsMkJBQTJCOzs0RkFFMUIsY0FBYztrQkFKMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7OEJBMEJVLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3Jtcy9maWVsZCc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnXG5cbmNvbnN0IFZBTFVFID0gJ3ZhbHVlJztcbmNvbnN0IEZPQ1VTID0gJ2ZvY3VzJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maWVsZCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnQgZXh0ZW5kcyBFbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gQXRyaWJ1dG9zIG9idGVuaWRvcyBlc3TDoXRpY2FtZW50ZVxuICBjb2RlOiBzdHJpbmcgPSAnJztcbiAgdmFsdWU6IGFueTtcbiAgaW5mbzogc3RyaW5nID0gJyc7XG4gIGFsaWdubWVudDogc3RyaW5nID0gJyc7XG4gIHRvb2x0aXA6IHN0cmluZyA9ICcnO1xuXG4gIC8vIEF0cmlidXRvcyBhY3R1YWxpemFkb3MgcG9yIHN1YnNjcmlwY2nDs25cbiAgbWluTGVuZ3RoOiBhbnk7XG4gIG1heExlbmd0aDogYW55O1xuICBtaW5WYWx1ZTogYW55O1xuICBtYXhWYWx1ZTogYW55O1xuICBvblZhbGlkYXRpb246IGFueTtcbiAgY2FwdHVyZVR5cGU6IGFueTtcbiAgdGl0bGU6IGFueTtcbiAgdHlwZTogYW55O1xuICB2aXNpYmxlTGFiZWw6IGFueTtcbiAgcmVxdWlyZWQ6IGFueTtcbiAgb3B0aW9uczogYW55O1xuXG4gIGVycm9yVHlwZTogYW55O1xuICBlcnJvckNvZGU6IGFueTtcbiAgZXJyb3JNZXNzYWdlOiBhbnk7XG5cbiAgQElucHV0KCkgZmllbGQ6IEZpZWxkRGVzY3JpcHRvciB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5maWVsZCkgeyByZXR1cm47IH1cbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLmZpZWxkPy5fZm9ybUNvbmZpZztcbiAgICBjb25zdCBtYXBwaW5nID0gT2JqZWN0LmVudHJpZXModGhpcy5mb3JtQ29uZmlnPy5maWVsZFByb3BhZ2F0ZUF0dHJpYnV0ZXMpO1xuICAgIGNvbnN0IGN1c3RvbUF0dHJpYnV0ZXNNYXBwaW5nID0gdGhpcy5mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMuZmllbGRzID8/IFtdO1xuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBmaWVsZEF0dHIgPSBtYXBwaW5nW2luZGV4XT8uWzBdO1xuICAgICAgY29uc3QgY29tcG9uZW50QXR0ciA9IG1hcHBpbmdbaW5kZXhdPy5bMV0/LnRvU3RyaW5nKCkgPz8gJyc7XG4gICAgICBpZiAoY29tcG9uZW50QXR0cikge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZmllbGQ/LltmaWVsZEF0dHJdO1xuICAgICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQXRyaWJ1dG9zIHBlcnNvbmFsaXphZG9zXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGN1c3RvbUF0dHJpYnV0ZXNNYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgY3VzdG9tQXR0cmlidXRlID0gY3VzdG9tQXR0cmlidXRlc01hcHBpbmdbaW5kZXhdO1xuICAgICAgaWYgKGN1c3RvbUF0dHJpYnV0ZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZmllbGQ/LmdldEN1c3RvbUF0dHJpYnV0ZShjdXN0b21BdHRyaWJ1dGUpO1xuICAgICAgICBjb25zdCBmdWxsTmFtZSA9IGBjdXN0b21BdHRyaWJ1dGVzLiR7Y3VzdG9tQXR0cmlidXRlfWA7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoZnVsbE5hbWUsIHZhbHVlKTtcbiAgICAgICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoZnVsbE5hbWUsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBTdWJzY3JpcGNpw7NuIGEgY2FtYmlvcyBlbiBhdHJpYnV0b3NcbiAgICB0aGlzLmZpZWxkPy5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZTogY29tcG9uZW50QXR0ciwgdmFsdWUgPSBudWxsIH0gPSBldmVudCA/PyB7fTtcbiAgICAgIGlmIChjb21wb25lbnRBdHRyKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgdmFsdWUpO1xuICAgICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICB0aGlzLmZpZWxkLndpZGdldCA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChhdHRyaWJ1dGUgPT09IFZBTFVFKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCk7XG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgPT09IEZPQ1VTKSB7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBzdXBlci5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB1cGRhdGVWYWx1ZSgpIHsgdGhpcy52YWx1ZSA9IHRoaXMuZmllbGQ/LnZhbHVlOyB9XG4gIG9uSW5wdXRDaGFuZ2UoKSB7IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWVsZD8ubm90aWZ5RWRpdGlvblBhcnRpYWwoKSwgNTApOyB9XG4gIG9uQ2hhbmdlQ29udGVudCgpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRmluaXNoKCksIDUwKTsgfVxuICBvblNob3dJbmZvKGRldGFpbCA9IG51bGwpIHsgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpZWxkPy5ub3RpZnlFZGl0aW9uRGV0YWlsUmVxdWVzdChkZXRhaWwpLCA1MCk7IH1cblxuICBmb2N1cygpIHsgfVxuICB1cGRhdGVPYmplY3Qod2lkZ2V0VXBkYXRlID0gdHJ1ZSkgeyB0aGlzLmZpZWxkPy5zZXRWYWx1ZSh0aGlzLnZhbHVlLCB3aWRnZXRVcGRhdGUpOyB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMuZmllbGQ/LnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2VDb250ZW50KCk7XG4gIH1cblxuICBpbnB1dFR5cGVkKCkge1xuICAgIHRoaXMudXBkYXRlT2JqZWN0KGZhbHNlKTtcbiAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgfVxuXG4gIG51bWJlcklucHV0VmFsaWRhdGlvbihldmVudCkge1xuICAgIGNvbnN0IGsgPSBldmVudC5jaGFyQ29kZTtcbiAgICByZXR1cm4gKGsgPiA0NyAmJiBrIDwgNTgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { PieceComponent } from './piece.component';
3
+ import * as i0 from "@angular/core";
4
+ export class ElementComponent extends PieceComponent {
5
+ element;
6
+ start() {
7
+ this.setForm(this.element?._form);
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ElementComponent, selector: "lib-element", inputs: { element: "element" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ElementComponent, decorators: [{
13
+ type: Component,
14
+ args: [{
15
+ selector: 'lib-element',
16
+ template: `<ng-content></ng-content>`
17
+ }]
18
+ }], propDecorators: { element: [{
19
+ type: Input
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL2xheW91dC9lbGVtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUFjO0lBQ3pDLE9BQU8sQ0FBTTtJQUV0QixLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBTFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsMEdBRmpCLDJCQUEyQjs7NEZBRTFCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLDJCQUEyQjtpQkFDdEM7OEJBRVUsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGllY2VDb21wb25lbnQgfSBmcm9tICcuL3BpZWNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1lbGVtZW50JyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBFbGVtZW50Q29tcG9uZW50IGV4dGVuZHMgUGllY2VDb21wb25lbnQge1xuICBASW5wdXQoKSBlbGVtZW50OiBhbnk7XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKHRoaXMuZWxlbWVudD8uX2Zvcm0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FormErrorComponent {
4
+ errorTitle;
5
+ errorMessage;
6
+ errorType;
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormErrorComponent, selector: "lib-form-error", inputs: { errorTitle: "errorTitle", errorMessage: "errorMessage", errorType: "errorType" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormErrorComponent, decorators: [{
11
+ type: Component,
12
+ args: [{
13
+ selector: 'lib-form-error',
14
+ template: `<ng-content></ng-content>`
15
+ }]
16
+ }], propDecorators: { errorTitle: [{
17
+ type: Input
18
+ }], errorMessage: [{
19
+ type: Input
20
+ }], errorType: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL2xheW91dC9mb3JtLWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNakQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixVQUFVLENBQU07SUFDaEIsWUFBWSxDQUFNO0lBQ2xCLFNBQVMsQ0FBTTt3R0FIYixrQkFBa0I7NEZBQWxCLGtCQUFrQixrSkFGbkIsMkJBQTJCOzs0RkFFMUIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzhCQUVVLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1lcnJvcicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZXJyb3JUaXRsZTogYW55O1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IGFueTtcbiAgQElucHV0KCkgZXJyb3JUeXBlOiBhbnk7XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FormHeaderComponent {
4
+ form;
5
+ goBackEvent = new EventEmitter();
6
+ goBackForm() {
7
+ this.goBackEvent.emit();
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormHeaderComponent, selector: "lib-form-header", inputs: { form: "form" }, outputs: { goBackEvent: "goBackEvent" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormHeaderComponent, decorators: [{
13
+ type: Component,
14
+ args: [{
15
+ selector: 'lib-form-header',
16
+ template: `<ng-content></ng-content>`
17
+ }]
18
+ }], propDecorators: { form: [{
19
+ type: Input
20
+ }], goBackEvent: [{
21
+ type: Output
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvZm9ybS1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTXZFLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsSUFBSSxDQUFNO0lBQ1QsV0FBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXJFLFVBQVU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBTlUsbUJBQW1COzRGQUFuQixtQkFBbUIsMEhBRnBCLDJCQUEyQjs7NEZBRTFCLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1mb3JtLWhlYWRlcicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmBcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUhlYWRlckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGZvcm06IGFueTtcbiAgQE91dHB1dCgpIGdvQmFja0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZ29CYWNrRm9ybSgpIHtcbiAgICB0aGlzLmdvQmFja0V2ZW50LmVtaXQoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const CUSTOM_ATTRIBUTES = 'customAttributes';
4
+ export class PieceComponent {
5
+ form;
6
+ formConfig;
7
+ visible = true;
8
+ disabled = false;
9
+ customAttributes = {};
10
+ setForm(form) { this.form = form; }
11
+ defaultProcessAttributeChange(attribute, value) {
12
+ if (!attribute || attribute.trim() === '') {
13
+ return false;
14
+ }
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
+ }
22
+ }
23
+ else {
24
+ this[attribute] = value;
25
+ }
26
+ return true;
27
+ }
28
+ customProcessAttributeChange(attribute, value) { }
29
+ customAttributeChange(subAttribute, value) { }
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ 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
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieceComponent, decorators: [{
34
+ type: Component,
35
+ args: [{
36
+ selector: 'lib-piece',
37
+ template: `<ng-content></ng-content>`
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGllY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvcGllY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFLN0MsTUFBTSxPQUFPLGNBQWM7SUFDekIsSUFBSSxDQUFNO0lBQ1YsVUFBVSxDQUFNO0lBQ2hCLE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixnQkFBZ0IsR0FBUSxFQUFFLENBQUM7SUFFM0IsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFbkMsNkJBQTZCLENBQUMsU0FBaUIsRUFBRSxLQUFXO1FBQzFELElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxjQUFjLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLEdBQUcsY0FBYyxDQUFDO1lBQ3JELElBQUksYUFBYSxLQUFLLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsU0FBaUIsRUFBRSxLQUFXLElBQUksQ0FBQztJQUVoRSxxQkFBcUIsQ0FBQyxZQUFvQixFQUFFLEtBQVcsSUFBSSxDQUFDO3dHQTVCakQsY0FBYzs0RkFBZCxjQUFjLGlEQUZmLDJCQUEyQjs7NEZBRTFCLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IENVU1RPTV9BVFRSSUJVVEVTID0gJ2N1c3RvbUF0dHJpYnV0ZXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXBpZWNlJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBQaWVjZUNvbXBvbmVudCB7XG4gIGZvcm06IGFueTtcbiAgZm9ybUNvbmZpZzogYW55O1xuICB2aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY3VzdG9tQXR0cmlidXRlczogYW55ID0ge307XG5cbiAgc2V0Rm9ybShmb3JtKSB7IHRoaXMuZm9ybSA9IGZvcm07IH1cblxuICBkZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIWF0dHJpYnV0ZSB8fCBhdHRyaWJ1dGUudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBhdHRyaWJ1dGVQYXJ0cyA9IGF0dHJpYnV0ZS5zcGxpdCgnLicpO1xuICAgIGlmIChhdHRyaWJ1dGVQYXJ0cz8ubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgW2F0dHJpYnV0ZVR5cGUsIHN1YkF0dHJpYnV0ZV0gPSBhdHRyaWJ1dGVQYXJ0cztcbiAgICAgIGlmIChhdHRyaWJ1dGVUeXBlID09PSBDVVNUT01fQVRUUklCVVRFUykge1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZXNbc3ViQXR0cmlidXRlXSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmN1c3RvbUF0dHJpYnV0ZUNoYW5nZShzdWJBdHRyaWJ1dGUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpc1thdHRyaWJ1dGVdID0gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY3VzdG9tUHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxuXG4gIGN1c3RvbUF0dHJpYnV0ZUNoYW5nZShzdWJBdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU/OiBhbnkpIHsgfVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { PieceComponent } from './piece.component';
3
+ import * as i0 from "@angular/core";
4
+ export class SectionComponent extends PieceComponent {
5
+ section;
6
+ 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
+ }
15
+ // Subscripción a cambios en atributos
16
+ 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
+ }
22
+ });
23
+ this.start();
24
+ }
25
+ start() {
26
+ this.setForm(this.section?._form);
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SectionComponent, selector: "lib-section", inputs: { section: "section" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'lib-section',
35
+ template: `<ng-content></ng-content>`
36
+ }]
37
+ }], propDecorators: { section: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL2xheW91dC9zZWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUFjO0lBQ3pDLE9BQU8sQ0FBTTtJQUV0QixRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLDBCQUEwQixDQUFDO1FBQzVELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELHNDQUFzQztRQUN0QyxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDckQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7d0dBekJVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLDBHQUZqQiwyQkFBMkI7OzRGQUUxQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDOzhCQUVVLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGllY2VDb21wb25lbnQgfSBmcm9tICcuL3BpZWNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uJyxcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YFxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUGllY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZWN0aW9uOiBhbnk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5zZWN0aW9uPy5fZm9ybUNvbmZpZztcbiAgICBjb25zdCBtYXBwaW5nID0gdGhpcy5mb3JtQ29uZmlnPy5zZWN0aW9uUHJvcGFnYXRlQXR0cmlidXRlcztcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbWFwcGluZy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGF0dHJOYW1lID0gbWFwcGluZ1tpbmRleF0udG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5zZWN0aW9uPy5bYXR0ck5hbWVdO1xuICAgICAgdGhpcy5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgfVxuICAgIC8vIFN1YnNjcmlwY2nDs24gYSBjYW1iaW9zIGVuIGF0cmlidXRvc1xuICAgIHRoaXMuc2VjdGlvbj8uYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWU6IGF0dHJOYW1lLCB2YWx1ZSA9IG51bGwgfSA9IGV2ZW50ID8/IHt9O1xuICAgICAgaWYgKGF0dHJOYW1lKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgc3RhcnQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKHRoaXMuc2VjdGlvbj8uX2Zvcm0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,40 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { PieceComponent } from './piece.component';
3
+ import * as i0 from "@angular/core";
4
+ export class SubSectionComponent extends PieceComponent {
5
+ subSection;
6
+ 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
+ }
15
+ // Subscripción a cambios en atributos
16
+ 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
+ }
22
+ });
23
+ this.start();
24
+ }
25
+ start() {
26
+ this.setForm(this.subSection?._form);
27
+ }
28
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SubSectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
29
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SubSectionComponent, selector: "lib-subsection", inputs: { subSection: "subSection" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SubSectionComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'lib-subsection',
35
+ template: `<ng-content></ng-content>`
36
+ }]
37
+ }], propDecorators: { subSection: [{
38
+ type: Input
39
+ }] } });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy9sYXlvdXQvc3ViLXNlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNBQWM7SUFDNUMsVUFBVSxDQUFNO0lBRXpCLFFBQVE7UUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsNkJBQTZCLENBQUM7UUFDL0QsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0Qsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEdBQUcsSUFBSSxFQUFFLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyRCxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0F6QlUsbUJBQW1COzRGQUFuQixtQkFBbUIsbUhBRnBCLDJCQUEyQjs7NEZBRTFCLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs4QkFFVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQaWVjZUNvbXBvbmVudCB9IGZyb20gJy4vcGllY2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN1YnNlY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gXG59KVxuZXhwb3J0IGNsYXNzIFN1YlNlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBQaWVjZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN1YlNlY3Rpb246IGFueTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLnN1YlNlY3Rpb24/Ll9mb3JtQ29uZmlnO1xuICAgIGNvbnN0IG1hcHBpbmcgPSB0aGlzLmZvcm1Db25maWc/LnN1YlNlY3Rpb25Qcm9wYWdhdGVBdHRyaWJ1dGVzO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgYXR0ck5hbWUgPSBtYXBwaW5nW2luZGV4XS50b1N0cmluZygpO1xuICAgICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSB0aGlzLnN1YlNlY3Rpb24/LlthdHRyTmFtZV07XG4gICAgICB0aGlzLmRlZmF1bHRQcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICB9XG4gICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgdGhpcy5zdWJTZWN0aW9uPy5hdHRyaWJ1dGVDaGFuZ2Uuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZTogYXR0ck5hbWUsIHZhbHVlID0gbnVsbCB9ID0gZXZlbnQgPz8ge307XG4gICAgICBpZiAoYXR0ck5hbWUpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyTmFtZSwgdmFsdWUpO1xuICAgICAgICB0aGlzLmN1c3RvbVByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnN0YXJ0KCk7XG4gIH1cblxuICBzdGFydCgpIHtcbiAgICB0aGlzLnNldEZvcm0odGhpcy5zdWJTZWN0aW9uPy5fZm9ybSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
+ import { PieceComponent } from '../layout/piece.component';
3
+ import * as i0 from "@angular/core";
4
+ const INLINE_ACTION = 'INLINE';
5
+ export class LibTableRecordActionComponent extends PieceComponent {
6
+ isVisible = true;
7
+ recordId;
8
+ recordData;
9
+ action;
10
+ actionSelected = new EventEmitter();
11
+ 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
+ }
20
+ this.start();
21
+ }
22
+ start() {
23
+ if (this.action && this.action.restrictedOnField && this.recordData) {
24
+ const relatedField = this.action.restrictedOnField;
25
+ if (relatedField) {
26
+ const relatedFieldValue = this.recordData[relatedField];
27
+ const restrictionOper = this.action.restrictedOnOperator;
28
+ const restrictionValue = this.action.restrictedOnValue;
29
+ if ((restrictionOper === '==' && relatedFieldValue !== restrictionValue)
30
+ || (restrictionOper === '!=' && relatedFieldValue === restrictionValue)) {
31
+ this.isVisible = false;
32
+ }
33
+ else {
34
+ this.isVisible = true;
35
+ }
36
+ }
37
+ }
38
+ }
39
+ onActivate() {
40
+ const tableEvent = {
41
+ actionCode: this.action?.actionCode ?? '',
42
+ recordId: this.recordId,
43
+ recordData: this.recordData,
44
+ };
45
+ this.actionSelected.emit(tableEvent);
46
+ }
47
+ class() { }
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableRecordActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LibTableRecordActionComponent, selector: "lib-table-record-action", inputs: { recordId: "recordId", recordData: "recordData", action: "action" }, outputs: { actionSelected: "actionSelected" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableRecordActionComponent, decorators: [{
52
+ type: Component,
53
+ args: [{
54
+ selector: 'lib-table-record-action',
55
+ template: `<ng-content></ng-content>`,
56
+ changeDetection: ChangeDetectionStrategy.OnPush
57
+ }]
58
+ }], propDecorators: { recordId: [{
59
+ type: Input
60
+ }], recordData: [{
61
+ type: Input
62
+ }], action: [{
63
+ type: Input
64
+ }], actionSelected: [{
65
+ type: Output
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmVjb3JkLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL3RhYmxlcy90YWJsZS1yZWNvcmQtYWN0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJM0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBUS9CLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxjQUFjO0lBQy9ELFNBQVMsR0FBWSxJQUFJLENBQUM7SUFDakIsUUFBUSxDQUFNO0lBQ2QsVUFBVSxDQUFNO0lBQ2hCLE1BQU0sQ0FBMEI7SUFFL0IsY0FBYyxHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUVoRyxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLHlCQUF5QixDQUFDO1FBQzNELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7WUFDbkQsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDO2dCQUN6RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUE7Z0JBQ3RELElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLGlCQUFpQixLQUFLLGdCQUFnQixDQUFDO3VCQUNuRSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksaUJBQWlCLEtBQUssZ0JBQWdCLENBQUMsRUFBRSxDQUFDO29CQUMxRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sVUFBVSxHQUFxQjtZQUNuQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLElBQUksRUFBRTtZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxLQUFLLENBQUM7d0dBOUNBLDZCQUE2Qjs0RkFBN0IsNkJBQTZCLG1OQUo5QiwyQkFBMkI7OzRGQUkxQiw2QkFBNkI7a0JBTnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUlVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQaWVjZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC9waWVjZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVFdmVudCwgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL2FjdGlvbic7XG5cbmNvbnN0IElOTElORV9BQ1RJT04gPSAnSU5MSU5FJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLXJlY29yZC1hY3Rpb24nLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlUmVjb3JkQWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUGllY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc1Zpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSByZWNvcmRJZDogYW55O1xuICBASW5wdXQoKSByZWNvcmREYXRhOiBhbnk7XG4gIEBJbnB1dCgpIGFjdGlvbjogVGFibGVBY3Rpb24gfCB1bmRlZmluZWQ7XG5cbiAgQE91dHB1dCgpIGFjdGlvblNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VGFibGVBY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uRXZlbnQ+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5mb3JtQ29uZmlnID0gdGhpcy5hY3Rpb24/Ll9mb3JtQ29uZmlnO1xuICAgIGNvbnN0IG1hcHBpbmcgPSB0aGlzLmZvcm1Db25maWc/LmFjdGlvblByb3BhZ2F0ZUF0dHJpYnV0ZXM7XG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IG1hcHBpbmcubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICBjb25zdCBhdHRyTmFtZSA9IG1hcHBpbmdbaW5kZXhdLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuYWN0aW9uPy5bYXR0ck5hbWVdO1xuICAgICAgdGhpcy5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyTmFtZSwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCBhdHRyaWJ1dGVWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHN0YXJ0KCkge1xuICAgIGlmICh0aGlzLmFjdGlvbiAmJiB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25GaWVsZCAmJiB0aGlzLnJlY29yZERhdGEpIHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IHRoaXMuYWN0aW9uLnJlc3RyaWN0ZWRPbkZpZWxkO1xuICAgICAgaWYgKHJlbGF0ZWRGaWVsZCkge1xuICAgICAgICBjb25zdCByZWxhdGVkRmllbGRWYWx1ZSA9IHRoaXMucmVjb3JkRGF0YVtyZWxhdGVkRmllbGRdO1xuICAgICAgICBjb25zdCByZXN0cmljdGlvbk9wZXIgPSB0aGlzLmFjdGlvbi5yZXN0cmljdGVkT25PcGVyYXRvcjtcbiAgICAgICAgY29uc3QgcmVzdHJpY3Rpb25WYWx1ZSA9IHRoaXMuYWN0aW9uLnJlc3RyaWN0ZWRPblZhbHVlXG4gICAgICAgIGlmICgocmVzdHJpY3Rpb25PcGVyID09PSAnPT0nICYmIHJlbGF0ZWRGaWVsZFZhbHVlICE9PSByZXN0cmljdGlvblZhbHVlKVxuICAgICAgICAgIHx8IChyZXN0cmljdGlvbk9wZXIgPT09ICchPScgJiYgcmVsYXRlZEZpZWxkVmFsdWUgPT09IHJlc3RyaWN0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbkFjdGl2YXRlKCkge1xuICAgIGNvbnN0IHRhYmxlRXZlbnQ6IFRhYmxlQWN0aW9uRXZlbnQgPSB7XG4gICAgICBhY3Rpb25Db2RlOiB0aGlzLmFjdGlvbj8uYWN0aW9uQ29kZSA/PyAnJyxcbiAgICAgIHJlY29yZElkOiB0aGlzLnJlY29yZElkLFxuICAgICAgcmVjb3JkRGF0YTogdGhpcy5yZWNvcmREYXRhLFxuICAgIH07XG4gICAgdGhpcy5hY3Rpb25TZWxlY3RlZC5lbWl0KHRhYmxlRXZlbnQpO1xuICB9XG5cbiAgY2xhc3MoKSB7IH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LibTableRecordFieldComponent {
4
+ fieldCode;
5
+ fieldType;
6
+ fieldValue;
7
+ column = null;
8
+ ngOnInit() {
9
+ this.start();
10
+ }
11
+ start() { }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableRecordFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LibTableRecordFieldComponent, selector: "lib-table-record-field", inputs: { fieldCode: "fieldCode", fieldType: "fieldType", fieldValue: "fieldValue", column: "column" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableRecordFieldComponent, decorators: [{
16
+ type: Component,
17
+ args: [{
18
+ selector: 'lib-table-record-field',
19
+ template: `<ng-content></ng-content>`,
20
+ changeDetection: ChangeDetectionStrategy.OnPush
21
+ }]
22
+ }], propDecorators: { fieldCode: [{
23
+ type: Input
24
+ }], fieldType: [{
25
+ type: Input
26
+ }], fieldValue: [{
27
+ type: Input
28
+ }], column: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcmVjb3JkLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZWxlbWVudHMvdGFibGVzL3RhYmxlLXJlY29yZC1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUWxGLE1BQU0sT0FBTyw0QkFBNEI7SUFDOUIsU0FBUyxDQUFNO0lBQ2YsU0FBUyxDQUFNO0lBQ2YsVUFBVSxDQUFNO0lBQ2hCLE1BQU0sR0FBUSxJQUFJLENBQUM7SUFFNUIsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLEtBQUssQ0FBQzt3R0FWQSw0QkFBNEI7NEZBQTVCLDRCQUE0QixzS0FKN0IsMkJBQTJCOzs0RkFJMUIsNEJBQTRCO2tCQU54QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFHVSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10YWJsZS1yZWNvcmQtZmllbGQnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlUmVjb3JkRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmaWVsZENvZGU6IGFueTtcbiAgQElucHV0KCkgZmllbGRUeXBlOiBhbnk7XG4gIEBJbnB1dCgpIGZpZWxkVmFsdWU6IGFueTtcbiAgQElucHV0KCkgY29sdW1uOiBhbnkgPSBudWxsO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3RhcnQoKTtcbiAgfVxuXG4gIHN0YXJ0KCkgeyB9XG59XG4iXX0=
@@ -0,0 +1,95 @@
1
+ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
2
+ import { ElementComponent } from '../layout/element.component';
3
+ import * as i0 from "@angular/core";
4
+ export class LibTableComponent extends ElementComponent {
5
+ // Atributos sincronizados del objeto
6
+ code;
7
+ globalFilterString = '';
8
+ tableFieldStyles;
9
+ loaded = false;
10
+ selectable = false;
11
+ hasActions = false;
12
+ inlineActions;
13
+ globalActions;
14
+ selectionActions;
15
+ table = null;
16
+ visibleRecords = [];
17
+ waiting = false;
18
+ ngOnInit() {
19
+ if (!this.table) {
20
+ return;
21
+ }
22
+ this.table.setWidget(this);
23
+ this.formConfig = this.table?._formConfig;
24
+ this.tableFieldStyles = this.formConfig?.tableFieldStyles;
25
+ this.selectable = this.table?.selectable;
26
+ this.hasActions = this.table?.hasActions();
27
+ this.inlineActions = this.table?.getActions(this.formConfig?.tableActions.inline);
28
+ this.globalActions = this.table?.getActions(this.formConfig?.tableActions.global);
29
+ this.selectionActions = this.table?.getActions(this.formConfig?.tableActions.selection);
30
+ // Inicialización de campos mapeados del objeto
31
+ const mapping = Object.entries(this.formConfig?.tablePropagationAttributes);
32
+ for (let index = 0; index < mapping.length; index++) {
33
+ const tableAttr = mapping[index]?.[0];
34
+ const componentAttr = mapping[index]?.[1]?.toString() ?? '';
35
+ const attributeValue = this.table?.[tableAttr];
36
+ this.defaultProcessAttributeChange(componentAttr, attributeValue);
37
+ this.customProcessAttributeChange(componentAttr, attributeValue);
38
+ }
39
+ // Subscripción a cambios en atributos
40
+ this.table?.attributeChange.subscribe(event => {
41
+ const { name: attrName, value = null } = event ?? {};
42
+ if (attrName) {
43
+ this.defaultProcessAttributeChange(attrName, value);
44
+ this.customProcessAttributeChange(attrName, value);
45
+ }
46
+ });
47
+ this.start();
48
+ }
49
+ updateTableData() { }
50
+ tableGlobalAction(actionCode) { this.table?.notifyGlobalAction(actionCode); }
51
+ tableSelectionAction(actionCode) { this.table?.notifySelectionAction(actionCode); }
52
+ tableActionSelected(actionEvent) { this.table?.notifyInlineAction(actionEvent); }
53
+ tableSelectionToggle(recordId) { this.table?.notifyRecordSelection(recordId); }
54
+ toggleSelectAll() { return (this.table?.allSelected) ? this.table?.unSelectAll() : this.table?.selectAll(); }
55
+ globalFilterCompleted() { this.changePage(1); }
56
+ changePage(requestedPage) { this.table?.changePage(requestedPage); }
57
+ tableColumnSort(columnName, direction = null) { this.table?.sort(columnName, direction ?? 'ascend'); }
58
+ globalFilterChanged() { this.table?.setGlobalFilterString(this.globalFilterString?.trim() ?? '', false); }
59
+ defaultProcessAttributeChange(attribute, value) {
60
+ try {
61
+ if (attribute === 'visibleRecords') {
62
+ this.updateTableData();
63
+ }
64
+ return super.defaultProcessAttributeChange(attribute, value);
65
+ }
66
+ catch {
67
+ return false;
68
+ }
69
+ }
70
+ filterHasChanged(column, values) {
71
+ if (!values || values.length === 0) {
72
+ this.table?.removeColumnFilter(column.fieldCode);
73
+ }
74
+ else {
75
+ this.table?.addColumnFilter(column.fieldCode, values);
76
+ }
77
+ }
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
79
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LibTableComponent, selector: "lib-table", inputs: { table: "table", visibleRecords: "visibleRecords", waiting: "waiting" }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LibTableComponent, decorators: [{
82
+ type: Component,
83
+ args: [{
84
+ selector: 'lib-table',
85
+ template: `<ng-content></ng-content>`,
86
+ changeDetection: ChangeDetectionStrategy.OnPush
87
+ }]
88
+ }], propDecorators: { table: [{
89
+ type: Input
90
+ }], visibleRecords: [{
91
+ type: Input
92
+ }], waiting: [{
93
+ type: Input
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9lbGVtZW50cy90YWJsZXMvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQVEvRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZ0JBQWdCO0lBQ3JELHFDQUFxQztJQUNyQyxJQUFJLENBQU07SUFDVixrQkFBa0IsR0FBVyxFQUFFLENBQUM7SUFFaEMsZ0JBQWdCLENBQU07SUFDdEIsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNmLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixhQUFhLENBQU07SUFDbkIsYUFBYSxDQUFNO0lBQ25CLGdCQUFnQixDQUFNO0lBRWIsS0FBSyxHQUF1QixJQUFJLENBQUM7SUFDakMsY0FBYyxHQUFzQixFQUFFLENBQUM7SUFDdkMsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUVsQyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUM7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUM7UUFDMUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxF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QUFqQixpQkFBaUIsMEpBSmxCLDJCQUEyQjs7NEZBSTFCLGlCQUFpQjtrQkFON0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQWVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlUmVjb3JkRGF0YSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvcm93LWRhdGEnO1xuaW1wb3J0IHsgVGFibGVBY3Rpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybXMvdGFibGUvdGFibGUnO1xuaW1wb3J0IHsgUmVjb3JkVGFibGUsIFRhYmxlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm1zL3RhYmxlL3RhYmxlJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvZWxlbWVudC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIExpYlRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIEF0cmlidXRvcyBzaW5jcm9uaXphZG9zIGRlbCBvYmpldG9cbiAgY29kZTogYW55O1xuICBnbG9iYWxGaWx0ZXJTdHJpbmc6IHN0cmluZyA9ICcnO1xuXG4gIHRhYmxlRmllbGRTdHlsZXM6IGFueTtcbiAgbG9hZGVkID0gZmFsc2U7XG4gIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgaGFzQWN0aW9ucyA9IGZhbHNlO1xuICBpbmxpbmVBY3Rpb25zOiBhbnk7XG4gIGdsb2JhbEFjdGlvbnM6IGFueTtcbiAgc2VsZWN0aW9uQWN0aW9uczogYW55O1xuXG4gIEBJbnB1dCgpIHRhYmxlOiBSZWNvcmRUYWJsZSB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB2aXNpYmxlUmVjb3JkczogVGFibGVSZWNvcmREYXRhW10gPSBbXTtcbiAgQElucHV0KCkgd2FpdGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy50YWJsZSkgeyByZXR1cm47IH1cbiAgICB0aGlzLnRhYmxlLnNldFdpZGdldCh0aGlzKTtcbiAgICB0aGlzLmZvcm1Db25maWcgPSB0aGlzLnRhYmxlPy5fZm9ybUNvbmZpZztcbiAgICB0aGlzLnRhYmxlRmllbGRTdHlsZXMgPSB0aGlzLmZvcm1Db25maWc/LnRhYmxlRmllbGRTdHlsZXM7XG4gICAgdGhpcy5zZWxlY3RhYmxlID0gdGhpcy50YWJsZT8uc2VsZWN0YWJsZTtcbiAgICB0aGlzLmhhc0FjdGlvbnMgPSB0aGlzLnRhYmxlPy5oYXNBY3Rpb25zKCk7XG4gICAgdGhpcy5pbmxpbmVBY3Rpb25zID0gdGhpcy50YWJsZT8uZ2V0QWN0aW9ucyh0aGlzLmZvcm1Db25maWc/LnRhYmxlQWN0aW9ucy5pbmxpbmUpO1xuICAgIHRoaXMuZ2xvYmFsQWN0aW9ucyA9IHRoaXMudGFibGU/LmdldEFjdGlvbnModGhpcy5mb3JtQ29uZmlnPy50YWJsZUFjdGlvbnMuZ2xvYmFsKTtcbiAgICB0aGlzLnNlbGVjdGlvbkFjdGlvbnMgPSB0aGlzLnRhYmxlPy5nZXRBY3Rpb25zKHRoaXMuZm9ybUNvbmZpZz8udGFibGVBY3Rpb25zLnNlbGVjdGlvbik7XG4gICAgLy8gSW5pY2lhbGl6YWNpw7NuIGRlIGNhbXBvcyBtYXBlYWRvcyBkZWwgb2JqZXRvXG4gICAgY29uc3QgbWFwcGluZyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuZm9ybUNvbmZpZz8udGFibGVQcm9wYWdhdGlvbkF0dHJpYnV0ZXMpO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXBwaW5nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgdGFibGVBdHRyID0gbWFwcGluZ1tpbmRleF0/LlswXTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudEF0dHIgPSBtYXBwaW5nW2luZGV4XT8uWzFdPy50b1N0cmluZygpID8/ICcnO1xuICAgICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSB0aGlzLnRhYmxlPy5bdGFibGVBdHRyXTtcbiAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoY29tcG9uZW50QXR0ciwgYXR0cmlidXRlVmFsdWUpO1xuICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGNvbXBvbmVudEF0dHIsIGF0dHJpYnV0ZVZhbHVlKTtcbiAgICB9XG4gICAgLy8gU3Vic2NyaXBjacOzbiBhIGNhbWJpb3MgZW4gYXRyaWJ1dG9zXG4gICAgdGhpcy50YWJsZT8uYXR0cmlidXRlQ2hhbmdlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWU6IGF0dHJOYW1lLCB2YWx1ZSA9IG51bGwgfSA9IGV2ZW50ID8/IHt9O1xuICAgICAgaWYgKGF0dHJOYW1lKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0ck5hbWUsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5jdXN0b21Qcm9jZXNzQXR0cmlidXRlQ2hhbmdlKGF0dHJOYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zdGFydCgpO1xuICB9XG5cbiAgdXBkYXRlVGFibGVEYXRhKCkgeyB9XG4gIHRhYmxlR2xvYmFsQWN0aW9uKGFjdGlvbkNvZGU6IHN0cmluZykgeyB0aGlzLnRhYmxlPy5ub3RpZnlHbG9iYWxBY3Rpb24oYWN0aW9uQ29kZSk7IH1cbiAgdGFibGVTZWxlY3Rpb25BY3Rpb24oYWN0aW9uQ29kZTogc3RyaW5nKSB7IHRoaXMudGFibGU/Lm5vdGlmeVNlbGVjdGlvbkFjdGlvbihhY3Rpb25Db2RlKTsgfVxuICB0YWJsZUFjdGlvblNlbGVjdGVkKGFjdGlvbkV2ZW50OiBUYWJsZUFjdGlvbkV2ZW50KSB7IHRoaXMudGFibGU/Lm5vdGlmeUlubGluZUFjdGlvbihhY3Rpb25FdmVudCk7IH1cbiAgdGFibGVTZWxlY3Rpb25Ub2dnbGUocmVjb3JkSWQ6IGFueSkgeyB0aGlzLnRhYmxlPy5ub3RpZnlSZWNvcmRTZWxlY3Rpb24ocmVjb3JkSWQpOyB9XG4gIHRvZ2dsZVNlbGVjdEFsbCgpIHsgcmV0dXJuICh0aGlzLnRhYmxlPy5hbGxTZWxlY3RlZCkgPyB0aGlzLnRhYmxlPy51blNlbGVjdEFsbCgpIDogdGhpcy50YWJsZT8uc2VsZWN0QWxsKCk7IH1cbiAgZ2xvYmFsRmlsdGVyQ29tcGxldGVkKCkgeyB0aGlzLmNoYW5nZVBhZ2UoMSk7IH1cbiAgY2hhbmdlUGFnZShyZXF1ZXN0ZWRQYWdlOiBudW1iZXIpIHsgdGhpcy50YWJsZT8uY2hhbmdlUGFnZShyZXF1ZXN0ZWRQYWdlKTsgfVxuICB0YWJsZUNvbHVtblNvcnQoY29sdW1uTmFtZTogc3RyaW5nLCBkaXJlY3Rpb24gPSBudWxsKSB7IHRoaXMudGFibGU/LnNvcnQoY29sdW1uTmFtZSwgZGlyZWN0aW9uID8/ICdhc2NlbmQnKTsgfVxuICBnbG9iYWxGaWx0ZXJDaGFuZ2VkKCkgeyB0aGlzLnRhYmxlPy5zZXRHbG9iYWxGaWx0ZXJTdHJpbmcodGhpcy5nbG9iYWxGaWx0ZXJTdHJpbmc/LnRyaW0oKSA/PyAnJywgZmFsc2UpOyB9XG5cbiAgb3ZlcnJpZGUgZGVmYXVsdFByb2Nlc3NBdHRyaWJ1dGVDaGFuZ2UoYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogYW55KTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChhdHRyaWJ1dGUgPT09ICd2aXNpYmxlUmVjb3JkcycpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUYWJsZURhdGEoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdXBlci5kZWZhdWx0UHJvY2Vzc0F0dHJpYnV0ZUNoYW5nZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJIYXNDaGFuZ2VkKGNvbHVtbiwgdmFsdWVzKSB7XG4gICAgaWYgKCF2YWx1ZXMgfHwgdmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy50YWJsZT8ucmVtb3ZlQ29sdW1uRmlsdGVyKGNvbHVtbi5maWVsZENvZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYmxlPy5hZGRDb2x1bW5GaWx0ZXIoY29sdW1uLmZpZWxkQ29kZSwgdmFsdWVzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==