tuain-ng-forms-lib 17.2.21 → 17.2.22

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 (106) hide show
  1. package/.browserslistrc +16 -0
  2. package/.yarn/cache/nanoid-npm-4.0.0-924f5c6312-7d5946df5c.zip +0 -0
  3. package/.yarn/cache/tslib-npm-2.4.1-36f0ed04db-19480d6e03.zip +0 -0
  4. package/.yarn/cache/yn-npm-5.0.0-b001dab23c-f0ec7710d3.zip +0 -0
  5. package/.yarn/install-state.gz +0 -0
  6. package/karma.conf.js +44 -0
  7. package/ng-package.json +11 -0
  8. package/package.json +2 -16
  9. package/src/lib/classes/forms/action.ts +117 -0
  10. package/src/lib/classes/forms/element.ts +26 -0
  11. package/src/lib/classes/forms/field.ts +522 -0
  12. package/src/lib/classes/forms/form.constants.ts +28 -0
  13. package/src/lib/classes/forms/form.ts +692 -0
  14. package/src/lib/classes/forms/piece-propagate.ts +47 -0
  15. package/src/lib/classes/forms/piece.ts +164 -0
  16. package/src/lib/classes/forms/section.ts +165 -0
  17. package/src/lib/classes/forms/subsection.ts +109 -0
  18. package/src/lib/classes/forms/table/action.ts +41 -0
  19. package/src/lib/classes/forms/table/column.ts +94 -0
  20. package/src/lib/classes/forms/table/row-data.ts +121 -0
  21. package/src/lib/classes/forms/table/table.ts +582 -0
  22. package/src/lib/components/elements/action.component.ts +70 -0
  23. package/src/lib/components/elements/field.component.ts +115 -0
  24. package/src/lib/components/elements/layout/element.component.ts +14 -0
  25. package/src/lib/components/elements/layout/form-error.component.ts +11 -0
  26. package/src/lib/components/elements/layout/form-header.component.ts +14 -0
  27. package/src/lib/components/elements/layout/piece.component.ts +60 -0
  28. package/src/lib/components/elements/layout/section.component.ts +52 -0
  29. package/src/lib/components/elements/layout/sub-section.component.ts +52 -0
  30. package/src/lib/components/elements/tables/table-record-action.component.ts +66 -0
  31. package/src/lib/components/elements/tables/table-record-field.component.ts +20 -0
  32. package/src/lib/components/elements/tables/table.component.ts +112 -0
  33. package/src/lib/components/forms/basic-form.ts +1464 -0
  34. package/src/lib/services/event-manager.service.ts +45 -0
  35. package/src/lib/services/file-manager.service.ts +7 -0
  36. package/src/lib/services/form-manager.service.ts +89 -0
  37. package/src/lib/services/icon-dictionary.service.ts +159 -0
  38. package/src/lib/tuain-ng-forms-lib.module.ts +40 -0
  39. package/{public-api.d.ts → src/public-api.ts} +5 -0
  40. package/src/test.ts +27 -0
  41. package/tsconfig.lib.json +15 -0
  42. package/tsconfig.lib.prod.json +10 -0
  43. package/tsconfig.spec.json +17 -0
  44. package/esm2022/lib/classes/forms/action.mjs +0 -106
  45. package/esm2022/lib/classes/forms/element.mjs +0 -25
  46. package/esm2022/lib/classes/forms/field.mjs +0 -474
  47. package/esm2022/lib/classes/forms/form.constants.mjs +0 -26
  48. package/esm2022/lib/classes/forms/form.mjs +0 -608
  49. package/esm2022/lib/classes/forms/piece-propagate.mjs +0 -39
  50. package/esm2022/lib/classes/forms/piece.mjs +0 -134
  51. package/esm2022/lib/classes/forms/section.mjs +0 -151
  52. package/esm2022/lib/classes/forms/subsection.mjs +0 -99
  53. package/esm2022/lib/classes/forms/table/action.mjs +0 -38
  54. package/esm2022/lib/classes/forms/table/column.mjs +0 -74
  55. package/esm2022/lib/classes/forms/table/row-data.mjs +0 -116
  56. package/esm2022/lib/classes/forms/table/table.mjs +0 -535
  57. package/esm2022/lib/components/elements/action.component.mjs +0 -70
  58. package/esm2022/lib/components/elements/field.component.mjs +0 -115
  59. package/esm2022/lib/components/elements/layout/element.component.mjs +0 -21
  60. package/esm2022/lib/components/elements/layout/form-error.component.mjs +0 -23
  61. package/esm2022/lib/components/elements/layout/form-header.component.mjs +0 -23
  62. package/esm2022/lib/components/elements/layout/piece.component.mjs +0 -64
  63. package/esm2022/lib/components/elements/layout/section.component.mjs +0 -56
  64. package/esm2022/lib/components/elements/layout/sub-section.component.mjs +0 -56
  65. package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +0 -72
  66. package/esm2022/lib/components/elements/tables/table-record-field.component.mjs +0 -31
  67. package/esm2022/lib/components/elements/tables/table.component.mjs +0 -109
  68. package/esm2022/lib/components/forms/basic-form.mjs +0 -1399
  69. package/esm2022/lib/services/event-manager.service.mjs +0 -43
  70. package/esm2022/lib/services/file-manager.service.mjs +0 -7
  71. package/esm2022/lib/services/form-manager.service.mjs +0 -81
  72. package/esm2022/lib/tuain-ng-forms-lib.module.mjs +0 -71
  73. package/esm2022/public-api.mjs +0 -19
  74. package/esm2022/tuain-ng-forms-lib.mjs +0 -5
  75. package/fesm2022/tuain-ng-forms-lib.mjs +0 -4593
  76. package/fesm2022/tuain-ng-forms-lib.mjs.map +0 -1
  77. package/index.d.ts +0 -5
  78. package/lib/classes/forms/action.d.ts +0 -40
  79. package/lib/classes/forms/element.d.ts +0 -9
  80. package/lib/classes/forms/field.d.ts +0 -206
  81. package/lib/classes/forms/form.constants.d.ts +0 -25
  82. package/lib/classes/forms/form.d.ts +0 -232
  83. package/lib/classes/forms/piece-propagate.d.ts +0 -13
  84. package/lib/classes/forms/piece.d.ts +0 -51
  85. package/lib/classes/forms/section.d.ts +0 -43
  86. package/lib/classes/forms/subsection.d.ts +0 -42
  87. package/lib/classes/forms/table/action.d.ts +0 -16
  88. package/lib/classes/forms/table/column.d.ts +0 -33
  89. package/lib/classes/forms/table/row-data.d.ts +0 -14
  90. package/lib/classes/forms/table/table.d.ts +0 -145
  91. package/lib/components/elements/action.component.d.ts +0 -22
  92. package/lib/components/elements/field.component.d.ts +0 -47
  93. package/lib/components/elements/layout/element.component.d.ts +0 -8
  94. package/lib/components/elements/layout/form-error.component.d.ts +0 -8
  95. package/lib/components/elements/layout/form-header.component.d.ts +0 -9
  96. package/lib/components/elements/layout/piece.component.d.ts +0 -18
  97. package/lib/components/elements/layout/section.component.d.ts +0 -13
  98. package/lib/components/elements/layout/sub-section.component.d.ts +0 -13
  99. package/lib/components/elements/tables/table-record-action.component.d.ts +0 -18
  100. package/lib/components/elements/tables/table-record-field.component.d.ts +0 -12
  101. package/lib/components/elements/tables/table.component.d.ts +0 -44
  102. package/lib/components/forms/basic-form.d.ts +0 -256
  103. package/lib/services/event-manager.service.d.ts +0 -11
  104. package/lib/services/file-manager.service.d.ts +0 -6
  105. package/lib/services/form-manager.service.d.ts +0 -28
  106. package/lib/tuain-ng-forms-lib.module.d.ts +0 -20
@@ -0,0 +1,45 @@
1
+ import { Subject, BehaviorSubject, ReplaySubject } from 'rxjs';
2
+
3
+ export class LibEventManagerService {
4
+ eventSubjects: any = {};
5
+ eventSubjectParams: any = {};
6
+
7
+ constructor(eventSet: any[]) {
8
+ eventSet.forEach((event) => { this.addEventName(event); });
9
+ }
10
+
11
+ addEventName(event: any, rebuild = false) {
12
+ const eventObject = (typeof event === 'string') ? { name: event } : event;
13
+ const { name, type, initialValue, windowTime, timestampProvider } = eventObject;
14
+ const currentSubject = this.eventSubjects[name];
15
+ if (rebuild || !currentSubject) {
16
+ if (type === 'behaviour') {
17
+ const newEventSubject: BehaviorSubject<any> = new BehaviorSubject(initialValue);
18
+ this.eventSubjects[name] = newEventSubject;
19
+ } else if (type === 'subject') {
20
+ const newEventSubject: Subject<any> = new Subject();
21
+ this.eventSubjects[name] = newEventSubject;
22
+ } else {
23
+ const newEventSubject: ReplaySubject<any> = new ReplaySubject(initialValue, windowTime, timestampProvider);
24
+ this.eventSubjects[name] = newEventSubject;
25
+ }
26
+ this.eventSubjectParams[name] = { name: name, windowTime, timestampProvider };
27
+ }
28
+ }
29
+
30
+ resetSubject(eventClassName) {
31
+ const { name, windowTime, timestampProvider } = this.eventSubjectParams[eventClassName];
32
+ return this.addEventName({ name, windowTime, timestampProvider });
33
+ }
34
+
35
+ getEventNames() { return Object.keys(this.eventSubjects); }
36
+ getSubject(eventClassName) { return eventClassName ? this.eventSubjects[eventClassName] : null; }
37
+ subscribe(eventClassName, callback) { return this.getSubject(eventClassName).subscribe(callback); }
38
+ next(eventClassName, data) {
39
+ const subject = this.getSubject(eventClassName);
40
+ if (!subject) {
41
+ console.log(`No se encontró subject ${eventClassName}`);
42
+ }
43
+ subject.next(data);
44
+ }
45
+ }
@@ -0,0 +1,7 @@
1
+ export class LibFileManagementService {
2
+ openFile(fileBase64Data, fileName, fileType) { }
3
+ saveFileFromURL(fileUrl, fileName = null, fileType = null) { }
4
+ saveFile(fileBase64Data, fileName, fileType) { }
5
+ printPdfFile(pdfBufferData) { }
6
+ }
7
+
@@ -0,0 +1,89 @@
1
+ import { nanoid } from 'nanoid';
2
+
3
+ export class LibFormManagerService {
4
+ pageStack: any[];
5
+
6
+ constructor() {
7
+ this.cleanStack();
8
+ }
9
+
10
+ // Métodos virtuales para las aplicaciones
11
+ getFormDefinition(formCode) { }
12
+ execServerAction(actionDetail) { }
13
+ goToForm(formCode, token, subject) { }
14
+ async loadStack() { }
15
+ saveStack() { }
16
+
17
+ cleanStack() { this.pageStack = []; }
18
+ resetPageStack() { this.cleanStack() }
19
+
20
+ findFormInStack(token) {
21
+ const index = this.pageStack.findIndex(item => item?.token === token);
22
+ const data = (index >= 0) ? this.pageStack[index] : null;
23
+ return { index, data };
24
+ }
25
+
26
+ replaceItem(token, formInfo) {
27
+ if (!token || !formInfo) { return; }
28
+ const { index, data: storedForm } = this.findFormInStack(token);
29
+ let updatedForm: any = null;
30
+ if (index >= 0) {
31
+ updatedForm = { ...storedForm };
32
+ updatedForm.subject = formInfo?.subject ?? storedForm.subject;
33
+ updatedForm.state = formInfo?.state ?? storedForm.state;
34
+ updatedForm.fields = storedForm?.fields ?? {};
35
+ updatedForm.extra = storedForm?.extra ?? {};
36
+ if (formInfo.fields) {
37
+ Object.assign(updatedForm.fields, formInfo.fields);
38
+ }
39
+ if (formInfo.extra) {
40
+ Object.assign(updatedForm.extra, formInfo.extra);
41
+ }
42
+ this.pageStack[index] = updatedForm;
43
+ this.saveStack();
44
+ }
45
+ }
46
+
47
+ stack(origin, target) {
48
+ const token = nanoid(6);
49
+ this.replaceItem(target.originToken, origin);
50
+ this.pageStack.push({ token, ...target });
51
+ this.saveStack();
52
+ return token;
53
+ }
54
+
55
+ unstack(token = null) {
56
+ let index = (token) ? this.findFormInStack(token).index : this.pageStack.length - 2;
57
+ let formInfo = null;
58
+ if (index >= 0) {
59
+ formInfo = this.pageStack[index];
60
+ this.pageStack.splice(index + 1);
61
+ this.saveStack();
62
+ }
63
+ return formInfo;
64
+ }
65
+
66
+ getFormInfo(token: string) {
67
+ const { data } = this.findFormInStack(token);
68
+ return {
69
+ token: data?.token,
70
+ subject: data?.subject,
71
+ state: data?.state,
72
+ originToken: data?.originToken,
73
+ fields: data?.fields ?? {},
74
+ extra: data?.extra ?? {}
75
+ };
76
+ }
77
+
78
+ openForm(origin: any, target: any) {
79
+ (!origin) && this.cleanStack();
80
+ target.originToken = origin?.token ?? null;
81
+ const token = this.stack(origin, target);
82
+ this.goToForm(target.name, token, target.subject);
83
+ }
84
+
85
+ backTo(targetToken = null) {
86
+ const formInfo: any = this.unstack(targetToken);
87
+ formInfo && formInfo.name && this.goToForm(formInfo.name, formInfo.token, formInfo.subject);
88
+ }
89
+ }
@@ -0,0 +1,159 @@
1
+ export const iconDictionary = {
2
+ SELECT: 'icmn-pushpin',
3
+ selectHolder: 'icmn-user-check',
4
+ validateAML: 'icmn-warning',
5
+ NEW: 'icmn-file-empty',
6
+ 'FORM-CREATE': 'icmn-file-empty',
7
+ 'FORM-EDIT': 'icmn-pencil2',
8
+ 'FORM-VIEW': 'icmn-file-text2',
9
+ SHIELD: 'fa fa-shield',
10
+ LOGIN: 'fa fa-sign-in',
11
+ LOGOUT: 'fa fa-sign-out',
12
+ VIEW: 'icmn-eye',
13
+ EDIT: 'icmn-pencil',
14
+ DETAIL: 'icmn-binoculars',
15
+ DELETE: 'icmn-bin',
16
+ SERVERPROCESS: 'icmn-cloud-check',
17
+ DEFAULT: 'icmn-home',
18
+ HOME: 'icmn-home',
19
+ IMAGE: 'icmn-image',
20
+ PICTURE: 'icmn-camera',
21
+ TEXT: 'icmn-file-text',
22
+ MOVEUP: 'icmn-arrow-up',
23
+ MOVEDOWN: 'icmn-arrow-down',
24
+ NEWAFFILIATION: 'icmn-profile',
25
+ AUTONEWAFFILIATION: 'icmn-profile',
26
+ PROFILE: 'icmn-profile',
27
+ ZIPFILE: 'icmn-file-zip',
28
+ COPY: 'icmn-copy',
29
+ FOLDER: 'icmn-folder-open',
30
+ TAGS: 'icmn-price-tags',
31
+ BARCODE: 'icmn-barcode',
32
+ BARCODE2: 'fa fa-barcode',
33
+ KEYBOARD: 'fa fa-keyboard-o',
34
+ CART: 'icmn-cart',
35
+ CAMARACOMERCIO: 'icmn-book',
36
+ SARLAFT: 'icmn-binoculars',
37
+ SCREENING: 'icmn-user-check',
38
+ ENTITY: 'icmn-library',
39
+ COIN: 'icmn-coin-dollar',
40
+ CREDITCARD: 'icmn-credit-card',
41
+ CONTACTS: 'icmn-address-book',
42
+ LOCATION: 'icmn-location',
43
+ CODES: 'icmn-file-text',
44
+ BPMCODES: 'icmn-file-text2',
45
+ MAIL: 'icmn-envelop',
46
+ MAP: 'icmn-map',
47
+ WARNING: 'icmn-warning',
48
+ NOTIFICATION: 'icmn-notification',
49
+ QUESTION: 'icmn-question',
50
+ INFO: 'icmn-info',
51
+ SAVE: 'icmn-floppy-disk',
52
+ INBOXFULL: 'icmn-drawer',
53
+ INBOXEMPTY: 'icmn-drawer2',
54
+ DATABASE: 'icmn-database',
55
+ UNDO: 'icmn-undo2',
56
+ REDO: 'icmn-redo2',
57
+ CHAT: 'icmn-bubbles4',
58
+ BRIEFCASE: 'icmn-briefcase',
59
+ USER: 'icmn-user',
60
+ ADDUSER: 'icmn-user-plus',
61
+ REMOVEUSER: 'icmn-user-minus',
62
+ SPINNER: 'icmn-spiiner3',
63
+ SEARCH: 'icmn-search',
64
+ ZOOMIN: 'icmn-zoom-in',
65
+ ZOOMOUT: 'icmn-zoom-out',
66
+ KEY: 'icmn-key',
67
+ LOCK: 'icmn-lock',
68
+ lockDoc: 'icmn-lock',
69
+ UNLOCK: 'icmn-unlocked',
70
+ CONFIG: 'icmn-wrench',
71
+ TUNE: 'icmn-equalizer',
72
+ GEAR: 'icmn-cog',
73
+ ADMIN: 'fa fa-cogs',
74
+ LIST: 'icmn-list',
75
+ FORMRECORD: 'icmn-insert-template',
76
+ PIE: 'icmn-pie-chart',
77
+ GRAPH: 'icmn-stats-dots',
78
+ TROPHY: 'icmn-trophy',
79
+ GIFT: 'icmn-gift',
80
+ GAUGE: 'icmn-meter',
81
+ FIRE: 'icmn-fire',
82
+ LAB: 'icmn-lab',
83
+ DELIVER: 'icmn-truck',
84
+ MOBILE: 'icmn-mobile',
85
+ MOBILE2: 'icmn-mobile',
86
+ RECHARGE: 'icmn-power-cord',
87
+ TREE: 'icmn-tree',
88
+ EARTH: 'icmn-earth',
89
+ TARGET: 'icmn-target',
90
+ POWER: 'icmn-switch',
91
+ VERIFY: 'icmn-clipboard',
92
+ UPLOAD: 'icmn-cloud-upload',
93
+ DOWNLOAD: 'icmn-cloud-download',
94
+ DOWNLOADSET: 'icmn-cloud-download',
95
+ LINK: 'icmn-link',
96
+ ATACH: 'icmn-atachment',
97
+ EYE: 'icmn-eye',
98
+ NOEYE: 'icmn-eye-blocked',
99
+ BOOKMARK: 'icmn-bookmark',
100
+ STAR: 'icmn-star-full',
101
+ HEART: 'icmn-heart',
102
+ HEARTBROKEN: 'icmn-heart-broken',
103
+ HAPPY: 'icmn-happy',
104
+ SAD: 'icmn-sad',
105
+ ACTIVATE: 'icmn-checkmark',
106
+ INACTIVATE: 'icmn-cross',
107
+ APPROVE: 'icmn-checkmark',
108
+ REJECT: 'icmn-cross',
109
+ CANCEL: 'icmn-cross',
110
+ CLOSE: 'icmn-ungroup',
111
+ CLEAN: 'fa fa-eraser',
112
+ CHECK: 'icmn-checkmark',
113
+ UNCHECK: 'icmn-cross',
114
+ SELECTROW: 'icmn-checkbox-unchecked',
115
+ UNSELECTROW: 'icmn-checkbox-checked',
116
+ CHECKED: 'icmn-checkbox-checked',
117
+ UNCHECKED: 'icmn-checkbox-unchecked',
118
+ ENTER: 'icmn-enter',
119
+ EXIT: 'icmn-exit',
120
+ CUT: 'icmn-scissors',
121
+ FILTER: 'icmn-filter',
122
+ PLAY: 'icmn-play2',
123
+ STOP: 'icmn-stop',
124
+ UP: 'icmn-circle-up',
125
+ DOWN: 'icmn-circle-down',
126
+ RIGHT: 'icmn-circle-right',
127
+ LEFT: 'icmn-circle-left',
128
+ SORTASC: 'icmn-sort-alpha-asc',
129
+ SORTDSC: 'icmn-sort-alpha-desc',
130
+ TABLE: 'icmn-table',
131
+ OFFICE: 'icmn-office',
132
+ SHARE: 'icmn-share',
133
+ FACEBOOK: 'icmn-facebook',
134
+ WHATSAPP: 'icmn-whatsapp',
135
+ TWITTER: 'icmn-twitter',
136
+ YOUTUBE: 'icmn-youtube',
137
+ PDF: 'icmn-file-pdf',
138
+ EXCEL: 'icmn-file-excel',
139
+ HOLDER: 'icmn-profile',
140
+ XXX: 'fa fa-first-order',
141
+ BANK: 'fa fa-bank',
142
+ CREDITCARD2: 'fa fa-credit-card-alt',
143
+ BUS: 'fa fa-bus',
144
+ TELEVISION: 'icmn-tv',
145
+ BACK: 'fa fa-arrow-left',
146
+ SEND: 'fa fa-paper-plane-o',
147
+ TEXTFILE: 'fa fa-file-text-o',
148
+ PERSON: 'fa fa-user',
149
+ BATCHFILE: 'fa fa-wpforms',
150
+ REQUESTS: 'icmn-stack',
151
+ THUMBUP: 'fa fa-thumbs-o-up',
152
+ THUMBDOWN: 'fa fa-thumbs-o-down',
153
+ EXCLAMATION: 'fa fa-exclamation-circle',
154
+ };
155
+
156
+ export class IconDictionaryService {
157
+ mapIcon = (iconName) => (iconName && iconDictionary[iconName])
158
+ ? iconDictionary[iconName] : iconDictionary.DEFAULT
159
+ }
@@ -0,0 +1,40 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import { FormsModule } from '@angular/forms';
5
+
6
+ import { BasicFormComponent } from './components/forms/basic-form';
7
+ import { ActionComponent } from './components/elements/action.component';
8
+ import { FieldComponent } from './components/elements/field.component';
9
+ import { ElementComponent } from './components/elements/layout/element.component';
10
+ import { FormErrorComponent } from './components/elements/layout/form-error.component';
11
+ import { FormHeaderComponent } from './components/elements/layout/form-header.component';
12
+ import { SectionComponent } from './components/elements/layout/section.component';
13
+ import { SubSectionComponent } from './components/elements/layout/sub-section.component';
14
+ import { LibTableRecordActionComponent } from './components/elements/tables/table-record-action.component';
15
+ import { LibTableRecordFieldComponent } from './components/elements/tables/table-record-field.component';
16
+ import { LibTableComponent } from './components/elements/tables/table.component';
17
+
18
+ const COMPONENTS = [
19
+ BasicFormComponent,
20
+ ActionComponent,
21
+ FieldComponent,
22
+ ElementComponent,
23
+ FormErrorComponent,
24
+ FormHeaderComponent,
25
+ SectionComponent,
26
+ SubSectionComponent,
27
+ LibTableRecordActionComponent,
28
+ LibTableRecordFieldComponent,
29
+ LibTableComponent];
30
+
31
+ @NgModule({
32
+ declarations: COMPONENTS,
33
+ imports: [
34
+ CommonModule,
35
+ RouterModule,
36
+ FormsModule,
37
+ ],
38
+ exports: COMPONENTS
39
+ })
40
+ export class TuainNgFormsLibModule { }
@@ -1,3 +1,7 @@
1
+ /*
2
+ * Public API Surface of tuain-ng-forms-lib
3
+ */
4
+
1
5
  export * from './lib/components/elements/action.component';
2
6
  export * from './lib/components/elements/field.component';
3
7
  export * from './lib/components/elements/layout/element.component';
@@ -13,3 +17,4 @@ export * from './lib/services/event-manager.service';
13
17
  export * from './lib/services/form-manager.service';
14
18
  export * from './lib/services/file-manager.service';
15
19
  export * from './lib/tuain-ng-forms-lib.module';
20
+
package/src/test.ts ADDED
@@ -0,0 +1,27 @@
1
+ // This file is required by karma.conf.js and loads recursively all the .spec and framework files
2
+
3
+ import 'zone.js';
4
+ import 'zone.js/testing';
5
+ import { getTestBed } from '@angular/core/testing';
6
+ import {
7
+ BrowserDynamicTestingModule,
8
+ platformBrowserDynamicTesting
9
+ } from '@angular/platform-browser-dynamic/testing';
10
+
11
+ declare const require: {
12
+ context(path: string, deep?: boolean, filter?: RegExp): {
13
+ <T>(id: string): T;
14
+ keys(): string[];
15
+ };
16
+ };
17
+
18
+ // First, initialize the Angular testing environment.
19
+ getTestBed().initTestEnvironment(
20
+ BrowserDynamicTestingModule,
21
+ platformBrowserDynamicTesting(),
22
+ );
23
+
24
+ // Then we find all the tests.
25
+ const context = require.context('./', true, /\.spec\.ts$/);
26
+ // And load the modules.
27
+ context.keys().map(context);
@@ -0,0 +1,15 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/lib",
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "inlineSources": true,
9
+ "types": []
10
+ },
11
+ "exclude": [
12
+ "src/test.ts",
13
+ "**/*.spec.ts"
14
+ ]
15
+ }
@@ -0,0 +1,10 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.lib.json",
4
+ "compilerOptions": {
5
+ "declarationMap": false
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,17 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/spec",
6
+ "types": [
7
+ "jasmine"
8
+ ]
9
+ },
10
+ "files": [
11
+ "src/test.ts"
12
+ ],
13
+ "include": [
14
+ "**/*.spec.ts",
15
+ "**/*.d.ts"
16
+ ]
17
+ }
@@ -1,106 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- import { elementTypes } from './form.constants';
3
- import { FormElement } from './element';
4
- const HEADER = 'HEADER';
5
- const attrs = {
6
- actionCode: { name: '_actionCode', propagate: 'actionCode' },
7
- actionName: { name: '_actionName', propagate: 'actionName' },
8
- iconName: { name: '_iconName', propagate: 'iconName' },
9
- inProgress: { name: '_inProgress', propagate: 'inProgress' },
10
- restrictedOnField: { name: '_restrictedOnField', propagate: 'restrictedOnField' },
11
- restrictedOnOperator: { name: '_restrictedOnOperator', propagate: 'restrictedOnOperator' },
12
- restrictedOnValue: { name: '_restrictedOnValue', propagate: 'restrictedOnValue' },
13
- };
14
- export class FormAction extends FormElement {
15
- _actionActivated = new Subject();
16
- _actionCode = '';
17
- _actionName = '';
18
- _iconName = '';
19
- _inProgress = false;
20
- _newState;
21
- _backend;
22
- _restrictedOnField = null;
23
- _restrictedOnOperator = null;
24
- _restrictedOnValue = null;
25
- constructor(actionDefinition, formConfig) {
26
- super(actionDefinition, formConfig);
27
- this.propagationCustomAttributes = this._formConfig?.propagationCustomAttributes?.actions ?? [];
28
- this.elementType = elementTypes.action;
29
- this.setAttr(attrs.actionCode, actionDefinition.actionCode ? actionDefinition.actionCode.toString() : '');
30
- this.setAttr(attrs.actionName, actionDefinition.actionTitle);
31
- this.setAttr(attrs.iconName, actionDefinition.iconName || this._actionCode);
32
- this.setAttr(attrs.restrictedOnField, actionDefinition.fieldRestrictedCode?.toString() ?? null);
33
- if (this._restrictedOnField) {
34
- this.setAttr(attrs.restrictedOnOperator, actionDefinition.operatorRestricted || '');
35
- this.setAttr(attrs.restrictedOnValue, actionDefinition.valueRestricted ?? '');
36
- }
37
- this._backend = actionDefinition?.serverAction ?? false;
38
- this._newState = actionDefinition?.newState;
39
- this.setCustomAttribute('location', actionDefinition.position || HEADER);
40
- }
41
- get actionCode() { return this._actionCode; }
42
- get actionName() { return this._actionName; }
43
- get iconName() { return this._iconName; }
44
- get inProgress() { return this._inProgress; }
45
- get newState() { return this._newState; }
46
- get backend() { return this._backend; }
47
- get restrictedOnField() { return this._restrictedOnField; }
48
- get restrictedOnOperator() { return this._restrictedOnOperator; }
49
- get restrictedOnValue() { return this._restrictedOnValue; }
50
- set actionCode(actionCode) { this.setAttr(attrs.actionCode, actionCode); }
51
- set actionName(actionName) { this.setAttr(attrs.actionName, actionName); }
52
- set iconName(iconName) { this.setAttr(attrs.iconName, iconName); }
53
- set inProgress(inProgress) { this.setAttr(attrs.inProgress, inProgress); }
54
- set newState(newState) { this._newState, newState; }
55
- set backend(backend) { this._backend, backend; }
56
- set restrictedOnField(restrictedOnField) { this.setAttr(attrs.restrictedOnField, restrictedOnField); }
57
- set restrictedOnOperator(restrictedOnOperator) { this.setAttr(attrs.restrictedOnOperator, restrictedOnOperator); }
58
- set restrictedOnValue(restrictedOnValue) { this.setAttr(attrs.restrictedOnValue, restrictedOnValue); }
59
- start() { this.inProgress = true; }
60
- stop() { this.inProgress = false; }
61
- connectWithParentForm(form, formChangeSubject) {
62
- super.connectWithParentForm(form, formChangeSubject);
63
- if (this._restrictedOnField) {
64
- const relatedField = this._form.fields?.[this._restrictedOnField];
65
- if (relatedField) {
66
- relatedField.editionFinish
67
- .subscribe(event => this.updateRestrictedVisibility(event));
68
- relatedField.editionPartial
69
- .subscribe(event => this.updateRestrictedVisibility(event));
70
- }
71
- }
72
- }
73
- updateRestrictedVisibility(event) {
74
- const newVisible = this._absoluteVisible && this.viewOnState(this._formState);
75
- (this._visible !== newVisible) && this.setVisibility(newVisible);
76
- }
77
- viewOnState(state) {
78
- const actionVisible = (this.visibleStates && state) ? this.visibleStates.includes(state) : false;
79
- if (actionVisible && this._form && this._restrictedOnField) {
80
- const relatedField = this._form.fields?.[this._restrictedOnField];
81
- if (relatedField) {
82
- const fieldValue = relatedField.value;
83
- if ((this._restrictedOnOperator === '==' && fieldValue !== this._restrictedOnValue)
84
- || (this._restrictedOnOperator === '!=' && fieldValue === this._restrictedOnValue)) {
85
- return false;
86
- }
87
- }
88
- }
89
- return actionVisible;
90
- }
91
- get actionActivated() { return this._actionActivated.asObservable(); }
92
- notifyActivation() { this._actionActivated.next(this._actionCode); }
93
- updateFromServer(receivedAction) {
94
- for (const propertyName in receivedAction) {
95
- if (propertyName !== 'actionCode' && propertyName !== 'actionId') {
96
- try {
97
- this[propertyName] = receivedAction[propertyName];
98
- }
99
- catch (e) {
100
- console.log(`Error actualizando la propiedad ${propertyName} de la acción ${this.actionCode}. ${e}`);
101
- }
102
- }
103
- }
104
- }
105
- }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVhaW4tbmctZm9ybXMtbGliL3NyYy9saWIvY2xhc3Nlcy9mb3Jtcy9hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV4QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFFeEIsTUFBTSxLQUFLLEdBQUc7SUFDWixVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUU7SUFDNUQsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQzVELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRTtJQUN0RCxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUU7SUFDNUQsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFO0lBQ2pGLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRTtJQUMxRixpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUU7Q0FDbEYsQ0FBQTtBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsV0FBVztJQUN4QixnQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO0lBQ2xELFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsV0FBVyxH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dCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBlbGVtZW50VHlwZXMgfSBmcm9tICcuL2Zvcm0uY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1FbGVtZW50IH0gZnJvbSAnLi9lbGVtZW50JztcblxuY29uc3QgSEVBREVSID0gJ0hFQURFUic7XG5cbmNvbnN0IGF0dHJzID0ge1xuICBhY3Rpb25Db2RlOiB7IG5hbWU6ICdfYWN0aW9uQ29kZScsIHByb3BhZ2F0ZTogJ2FjdGlvbkNvZGUnIH0sXG4gIGFjdGlvbk5hbWU6IHsgbmFtZTogJ19hY3Rpb25OYW1lJywgcHJvcGFnYXRlOiAnYWN0aW9uTmFtZScgfSxcbiAgaWNvbk5hbWU6IHsgbmFtZTogJ19pY29uTmFtZScsIHByb3BhZ2F0ZTogJ2ljb25OYW1lJyB9LFxuICBpblByb2dyZXNzOiB7IG5hbWU6ICdfaW5Qcm9ncmVzcycsIHByb3BhZ2F0ZTogJ2luUHJvZ3Jlc3MnIH0sXG4gIHJlc3RyaWN0ZWRPbkZpZWxkOiB7IG5hbWU6ICdfcmVzdHJpY3RlZE9uRmllbGQnLCBwcm9wYWdhdGU6ICdyZXN0cmljdGVkT25GaWVsZCcgfSxcbiAgcmVzdHJpY3RlZE9uT3BlcmF0b3I6IHsgbmFtZTogJ19yZXN0cmljdGVkT25PcGVyYXRvcicsIHByb3BhZ2F0ZTogJ3Jlc3RyaWN0ZWRPbk9wZXJhdG9yJyB9LFxuICByZXN0cmljdGVkT25WYWx1ZTogeyBuYW1lOiAnX3Jlc3RyaWN0ZWRPblZhbHVlJywgcHJvcGFnYXRlOiAncmVzdHJpY3RlZE9uVmFsdWUnIH0sXG59XG5cbmV4cG9ydCBjbGFzcyBGb3JtQWN0aW9uIGV4dGVuZHMgRm9ybUVsZW1lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3Rpb25BY3RpdmF0ZWQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgX2FjdGlvbkNvZGU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9hY3Rpb25OYW1lOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBfaWNvbk5hbWU6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9pblByb2dyZXNzID0gZmFsc2U7XG4gIHByaXZhdGUgX25ld1N0YXRlOiBzdHJpbmc7XG4gIHByaXZhdGUgX2JhY2tlbmQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX3Jlc3RyaWN0ZWRPbkZpZWxkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVzdHJpY3RlZE9uT3BlcmF0b3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9yZXN0cmljdGVkT25WYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoYWN0aW9uRGVmaW5pdGlvbiwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKGFjdGlvbkRlZmluaXRpb24sIGZvcm1Db25maWcpO1xuICAgIHRoaXMucHJvcGFnYXRpb25DdXN0b21BdHRyaWJ1dGVzID0gdGhpcy5fZm9ybUNvbmZpZz8ucHJvcGFnYXRpb25DdXN0b21BdHRyaWJ1dGVzPy5hY3Rpb25zID8/IFtdO1xuICAgIHRoaXMuZWxlbWVudFR5cGUgPSBlbGVtZW50VHlwZXMuYWN0aW9uO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5hY3Rpb25Db2RlLCBhY3Rpb25EZWZpbml0aW9uLmFjdGlvbkNvZGUgPyBhY3Rpb25EZWZpbml0aW9uLmFjdGlvbkNvZGUudG9TdHJpbmcoKSA6ICcnKTtcbiAgICB0aGlzLnNldEF0dHIoYXR0cnMuYWN0aW9uTmFtZSwgYWN0aW9uRGVmaW5pdGlvbi5hY3Rpb25UaXRsZSk7XG4gICAgdGhpcy5zZXRBdHRyKGF0dHJzLmljb25OYW1lLCBhY3Rpb25EZWZpbml0aW9uLmljb25OYW1lIHx8IHRoaXMuX2FjdGlvbkNvZGUpO1xuICAgIHRoaXMuc2V0QXR0cihhdHRycy5yZXN0cmljdGVkT25GaWVsZCwgYWN0aW9uRGVmaW5pdGlvbi5maWVsZFJlc3RyaWN0ZWRDb2RlPy50b1N0cmluZygpID8/IG51bGwpO1xuICAgIGlmICh0aGlzLl9yZXN0cmljdGVkT25GaWVsZCkge1xuICAgICAgdGhpcy5zZXRBdHRyKGF0dHJzLnJlc3RyaWN0ZWRPbk9wZXJhdG9yLCBhY3Rpb25EZWZpbml0aW9uLm9wZXJhdG9yUmVzdHJpY3RlZCB8fCAnJyk7XG4gICAgICB0aGlzLnNldEF0dHIoYXR0cnMucmVzdHJpY3RlZE9uVmFsdWUsIGFjdGlvbkRlZmluaXRpb24udmFsdWVSZXN0cmljdGVkID8/ICcnKTtcbiAgICB9XG4gICAgdGhpcy5fYmFja2VuZCA9IGFjdGlvbkRlZmluaXRpb24/LnNlcnZlckFjdGlvbiA/PyBmYWxzZTtcbiAgICB0aGlzLl9uZXdTdGF0ZSA9IGFjdGlvbkRlZmluaXRpb24/Lm5ld1N0YXRlO1xuICAgIHRoaXMuc2V0Q3VzdG9tQXR0cmlidXRlKCdsb2NhdGlvbicsIGFjdGlvbkRlZmluaXRpb24ucG9zaXRpb24gfHwgSEVBREVSKTtcbiAgfVxuXG4gIGdldCBhY3Rpb25Db2RlKCkgeyByZXR1cm4gdGhpcy5fYWN0aW9uQ29kZTsgfVxuICBnZXQgYWN0aW9uTmFtZSgpIHsgcmV0dXJuIHRoaXMuX2FjdGlvbk5hbWU7IH1cbiAgZ2V0IGljb25OYW1lKCkgeyByZXR1cm4gdGhpcy5faWNvbk5hbWU7IH1cbiAgZ2V0IGluUHJvZ3Jlc3MoKSB7IHJldHVybiB0aGlzLl9pblByb2dyZXNzOyB9XG4gIGdldCBuZXdTdGF0ZSgpIHsgcmV0dXJuIHRoaXMuX25ld1N0YXRlOyB9XG4gIGdldCBiYWNrZW5kKCkgeyByZXR1cm4gdGhpcy5fYmFja2VuZDsgfVxuICBnZXQgcmVzdHJpY3RlZE9uRmllbGQoKSB7IHJldHVybiB0aGlzLl9yZXN0cmljdGVkT25GaWVsZDsgfVxuICBnZXQgcmVzdHJpY3RlZE9uT3BlcmF0b3IoKSB7IHJldHVybiB0aGlzLl9yZXN0cmljdGVkT25PcGVyYXRvcjsgfVxuICBnZXQgcmVzdHJpY3RlZE9uVmFsdWUoKSB7IHJldHVybiB0aGlzLl9yZXN0cmljdGVkT25WYWx1ZTsgfVxuXG4gIHNldCBhY3Rpb25Db2RlKGFjdGlvbkNvZGUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmFjdGlvbkNvZGUsIGFjdGlvbkNvZGUpOyB9XG4gIHNldCBhY3Rpb25OYW1lKGFjdGlvbk5hbWUpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLmFjdGlvbk5hbWUsIGFjdGlvbk5hbWUpOyB9XG4gIHNldCBpY29uTmFtZShpY29uTmFtZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMuaWNvbk5hbWUsIGljb25OYW1lKTsgfVxuICBzZXQgaW5Qcm9ncmVzcyhpblByb2dyZXNzKSB7IHRoaXMuc2V0QXR0cihhdHRycy5pblByb2dyZXNzLCBpblByb2dyZXNzKTsgfVxuICBzZXQgbmV3U3RhdGUobmV3U3RhdGUpIHsgdGhpcy5fbmV3U3RhdGUsIG5ld1N0YXRlOyB9XG4gIHNldCBiYWNrZW5kKGJhY2tlbmQpIHsgdGhpcy5fYmFja2VuZCwgYmFja2VuZDsgfVxuICBzZXQgcmVzdHJpY3RlZE9uRmllbGQocmVzdHJpY3RlZE9uRmllbGQpIHsgdGhpcy5zZXRBdHRyKGF0dHJzLnJlc3RyaWN0ZWRPbkZpZWxkLCByZXN0cmljdGVkT25GaWVsZCk7IH1cbiAgc2V0IHJlc3RyaWN0ZWRPbk9wZXJhdG9yKHJlc3RyaWN0ZWRPbk9wZXJhdG9yKSB7IHRoaXMuc2V0QXR0cihhdHRycy5yZXN0cmljdGVkT25PcGVyYXRvciwgcmVzdHJpY3RlZE9uT3BlcmF0b3IpOyB9XG4gIHNldCByZXN0cmljdGVkT25WYWx1ZShyZXN0cmljdGVkT25WYWx1ZSkgeyB0aGlzLnNldEF0dHIoYXR0cnMucmVzdHJpY3RlZE9uVmFsdWUsIHJlc3RyaWN0ZWRPblZhbHVlKTsgfVxuXG4gIHN0YXJ0KCkgeyB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlOyB9XG4gIHN0b3AoKSB7IHRoaXMuaW5Qcm9ncmVzcyA9IGZhbHNlOyB9XG5cbiAgb3ZlcnJpZGUgY29ubmVjdFdpdGhQYXJlbnRGb3JtKGZvcm0sIGZvcm1DaGFuZ2VTdWJqZWN0KSB7XG4gICAgc3VwZXIuY29ubmVjdFdpdGhQYXJlbnRGb3JtKGZvcm0sIGZvcm1DaGFuZ2VTdWJqZWN0KTtcbiAgICBpZiAodGhpcy5fcmVzdHJpY3RlZE9uRmllbGQpIHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IHRoaXMuX2Zvcm0uZmllbGRzPy5bdGhpcy5fcmVzdHJpY3RlZE9uRmllbGRdO1xuICAgICAgaWYgKHJlbGF0ZWRGaWVsZCkge1xuICAgICAgICByZWxhdGVkRmllbGQuZWRpdGlvbkZpbmlzaFxuICAgICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy51cGRhdGVSZXN0cmljdGVkVmlzaWJpbGl0eShldmVudCkpO1xuICAgICAgICByZWxhdGVkRmllbGQuZWRpdGlvblBhcnRpYWxcbiAgICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHRoaXMudXBkYXRlUmVzdHJpY3RlZFZpc2liaWxpdHkoZXZlbnQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVSZXN0cmljdGVkVmlzaWJpbGl0eShldmVudCkge1xuICAgIGNvbnN0IG5ld1Zpc2libGUgPSB0aGlzLl9hYnNvbHV0ZVZpc2libGUgJiYgdGhpcy52aWV3T25TdGF0ZSh0aGlzLl9mb3JtU3RhdGUpO1xuICAgICh0aGlzLl92aXNpYmxlICE9PSBuZXdWaXNpYmxlKSAmJiB0aGlzLnNldFZpc2liaWxpdHkobmV3VmlzaWJsZSk7XG4gIH1cblxuICBvdmVycmlkZSB2aWV3T25TdGF0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYWN0aW9uVmlzaWJsZSA9ICh0aGlzLnZpc2libGVTdGF0ZXMgJiYgc3RhdGUpID8gdGhpcy52aXNpYmxlU3RhdGVzLmluY2x1ZGVzKHN0YXRlKSA6IGZhbHNlO1xuICAgIGlmIChhY3Rpb25WaXNpYmxlICYmIHRoaXMuX2Zvcm0gJiYgdGhpcy5fcmVzdHJpY3RlZE9uRmllbGQpIHtcbiAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IHRoaXMuX2Zvcm0uZmllbGRzPy5bdGhpcy5fcmVzdHJpY3RlZE9uRmllbGRdO1xuICAgICAgaWYgKHJlbGF0ZWRGaWVsZCkge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gcmVsYXRlZEZpZWxkLnZhbHVlO1xuICAgICAgICBpZiAoKHRoaXMuX3Jlc3RyaWN0ZWRPbk9wZXJhdG9yID09PSAnPT0nICYmIGZpZWxkVmFsdWUgIT09IHRoaXMuX3Jlc3RyaWN0ZWRPblZhbHVlKVxuICAgICAgICAgIHx8ICh0aGlzLl9yZXN0cmljdGVkT25PcGVyYXRvciA9PT0gJyE9JyAmJiBmaWVsZFZhbHVlID09PSB0aGlzLl9yZXN0cmljdGVkT25WYWx1ZSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvblZpc2libGU7XG4gIH1cblxuICBnZXQgYWN0aW9uQWN0aXZhdGVkKCkgeyByZXR1cm4gdGhpcy5fYWN0aW9uQWN0aXZhdGVkLmFzT2JzZXJ2YWJsZSgpOyB9XG5cbiAgbm90aWZ5QWN0aXZhdGlvbigpIHsgdGhpcy5fYWN0aW9uQWN0aXZhdGVkLm5leHQodGhpcy5fYWN0aW9uQ29kZSk7IH1cblxuICB1cGRhdGVGcm9tU2VydmVyKHJlY2VpdmVkQWN0aW9uKSB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gcmVjZWl2ZWRBY3Rpb24pIHtcbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgIT09ICdhY3Rpb25Db2RlJyAmJiBwcm9wZXJ0eU5hbWUgIT09ICdhY3Rpb25JZCcpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzW3Byb3BlcnR5TmFtZV0gPSByZWNlaXZlZEFjdGlvbltwcm9wZXJ0eU5hbWVdO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYEVycm9yIGFjdHVhbGl6YW5kbyBsYSBwcm9waWVkYWQgJHtwcm9wZXJ0eU5hbWV9IGRlIGxhIGFjY2nDs24gJHt0aGlzLmFjdGlvbkNvZGV9LiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- import { FormPiecePropagate } from './piece-propagate';
2
- import { elementTypes } from './form.constants';
3
- export class FormElement extends FormPiecePropagate {
4
- elementType = null;
5
- constructor(elementDefinition, formConfig) {
6
- super(elementDefinition, formConfig);
7
- }
8
- setAttr(attr, value) {
9
- const { name: attrName, propagate: name } = attr;
10
- try {
11
- const currentValue = this[attrName];
12
- if (currentValue !== value) {
13
- this[attrName] = value;
14
- name && this.propagateAttribute(name, value);
15
- }
16
- }
17
- catch (e) {
18
- console.log(`Atributo ${attrName} no presente o valor ${value} inconsistente. ${e}`);
19
- }
20
- }
21
- isField() { return this.elementType === elementTypes.field; }
22
- isAction() { return this.elementType === elementTypes.action; }
23
- isTable() { return this.elementType === elementTypes.table; }
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsTUFBTSxPQUFPLFdBQVksU0FBUSxrQkFBa0I7SUFDakQsV0FBVyxHQUFrQixJQUFJLENBQUM7SUFFbEMsWUFBWSxpQkFBc0IsRUFBRSxVQUFlO1FBQ2pELEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVMsRUFBRSxLQUFVO1FBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDakQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLElBQUksWUFBWSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksUUFBUSx3QkFBd0IsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBYyxPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN4RSxPQUFPLEtBQWMsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0NBQ3ZFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybVBpZWNlUHJvcGFnYXRlIH0gZnJvbSAnLi9waWVjZS1wcm9wYWdhdGUnO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi9mb3JtLmNvbnN0YW50cyc7XG5leHBvcnQgY2xhc3MgRm9ybUVsZW1lbnQgZXh0ZW5kcyBGb3JtUGllY2VQcm9wYWdhdGUge1xuICBlbGVtZW50VHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudERlZmluaXRpb246IGFueSwgZm9ybUNvbmZpZzogYW55KSB7XG4gICAgc3VwZXIoZWxlbWVudERlZmluaXRpb24sIGZvcm1Db25maWcpO1xuICB9XG5cbiAgc2V0QXR0cihhdHRyOiBhbnksIHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCB7IG5hbWU6IGF0dHJOYW1lLCBwcm9wYWdhdGU6IG5hbWUgfSA9IGF0dHI7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXNbYXR0ck5hbWVdO1xuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gdmFsdWUpIHtcbiAgICAgICAgdGhpc1thdHRyTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgbmFtZSAmJiB0aGlzLnByb3BhZ2F0ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coYEF0cmlidXRvICR7YXR0ck5hbWV9IG5vIHByZXNlbnRlIG8gdmFsb3IgJHt2YWx1ZX0gaW5jb25zaXN0ZW50ZS4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIGlzRmllbGQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmVsZW1lbnRUeXBlID09PSBlbGVtZW50VHlwZXMuZmllbGQ7IH1cbiAgaXNBY3Rpb24oKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmVsZW1lbnRUeXBlID09PSBlbGVtZW50VHlwZXMuYWN0aW9uOyB9XG4gIGlzVGFibGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLmVsZW1lbnRUeXBlID09PSBlbGVtZW50VHlwZXMudGFibGU7IH1cbn1cbiJdfQ==