tuain-ng-forms-lib 0.12.32 → 12.0.1

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.
@@ -3,71 +3,77 @@ export class LibFormManagerService {
3
3
  constructor() {
4
4
  this.cleanStack();
5
5
  }
6
- /**
7
- * Métodos virtuales de manejo de formularios
8
- */
6
+ // Métodos virtuales para las aplicaciones
9
7
  getFormDefinition(formCode) { }
8
+ getFormRoute(formCode) { }
9
+ getRouteForm(path) { }
10
10
  execServerAction(actionDetail) { }
11
- goToRoute(navigationArray) { }
12
- /**
13
- * Manejo del stack de navegación con atributos estados y parámetros
14
- */
15
- resetPageStack() { this.cleanStack(); }
16
- cleanStack() {
17
- this.pageStack = [];
18
- }
11
+ goToForm(formCode, token, subject) { }
19
12
  loadStack() { }
20
13
  saveStack() { }
21
- stack(data) {
22
- const id = nanoid(6);
23
- this.pageStack.push({ id, data });
24
- this.saveStack();
25
- return id;
14
+ cleanStack() { this.pageStack = []; }
15
+ resetPageStack() { this.cleanStack(); }
16
+ findFormInStack(token) {
17
+ const index = this.pageStack.findIndex(item => (item === null || item === void 0 ? void 0 : item.token) === token);
18
+ const data = (index >= 0) ? this.pageStack[index] : null;
19
+ return { index, data };
26
20
  }
27
- unstack(id) {
28
- const stackIdx = this.pageStack.findIndex(item => item.id === id);
29
- if (stackIdx >= 0) {
30
- const formData = this.pageStack[stackIdx].data;
31
- // Se eliminan los formularios posteriores al solicitado
32
- this.pageStack.splice(stackIdx + 1);
21
+ replaceItem(token, formInfo) {
22
+ var _a, _b;
23
+ if (!token || !formInfo) {
24
+ return;
25
+ }
26
+ const { index, data: storedForm } = this.findFormInStack(token);
27
+ let updatedForm = null;
28
+ if (index >= 0) {
29
+ updatedForm = Object.assign({}, storedForm);
30
+ updatedForm.subject = (_a = formInfo === null || formInfo === void 0 ? void 0 : formInfo.subject) !== null && _a !== void 0 ? _a : storedForm.subject;
31
+ updatedForm.state = (_b = formInfo === null || formInfo === void 0 ? void 0 : formInfo.state) !== null && _b !== void 0 ? _b : storedForm.state;
32
+ Object.assign(updatedForm.fields, formInfo.fields);
33
+ Object.assign(updatedForm.extra, formInfo.extra);
34
+ this.pageStack[index] = updatedForm;
33
35
  this.saveStack();
34
- return formData;
35
36
  }
36
37
  }
37
- getInputData(id) {
38
- const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;
39
- if (stackIdx >= 0) {
40
- const { target: { predefinedFields } } = this.pageStack[stackIdx].data;
41
- return predefinedFields;
42
- }
43
- return null;
38
+ stack(origin, target) {
39
+ const token = nanoid(6);
40
+ this.replaceItem(target.originToken, origin);
41
+ this.pageStack.push(Object.assign({ token }, target));
42
+ this.saveStack();
43
+ return token;
44
44
  }
45
- getOriginInfo(id) {
46
- const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;
47
- if (stackIdx >= 0) {
48
- const { origin } = this.pageStack[stackIdx].data;
49
- return JSON.parse(JSON.stringify(origin));
45
+ unstack(token = null) {
46
+ let index = (token) ? this.findFormInStack(token).index : this.pageStack.length - 2;
47
+ let formInfo = null;
48
+ if (index >= 0) {
49
+ formInfo = this.pageStack[index];
50
+ this.pageStack.splice(index + 1);
51
+ this.saveStack();
50
52
  }
51
- return null;
53
+ return formInfo;
52
54
  }
53
- changeForm(origin, target) {
54
- if (!origin) {
55
- this.cleanStack();
56
- }
57
- const { url, params } = target;
58
- const newToken = this.stack({ origin, target });
59
- const navigationArray = [url, ...params, newToken];
60
- this.goToRoute(navigationArray);
55
+ getFormInfo(token) {
56
+ var _a, _b;
57
+ const { data } = this.findFormInStack(token);
58
+ return {
59
+ token: data === null || data === void 0 ? void 0 : data.token,
60
+ subject: data === null || data === void 0 ? void 0 : data.subject,
61
+ state: data === null || data === void 0 ? void 0 : data.state,
62
+ originToken: data === null || data === void 0 ? void 0 : data.originToken,
63
+ fields: (_a = data === null || data === void 0 ? void 0 : data.fields) !== null && _a !== void 0 ? _a : {},
64
+ extra: (_b = data === null || data === void 0 ? void 0 : data.extra) !== null && _b !== void 0 ? _b : {}
65
+ };
61
66
  }
62
- changePreviousForm(transitionToken) {
63
- const prevForm = this.unstack(transitionToken);
64
- if (!prevForm) {
65
- return;
66
- }
67
- const { origin: { url, params, token } } = prevForm;
68
- const navigationArray = [url, ...params];
69
- token && navigationArray.push(token);
70
- this.goToRoute(navigationArray);
67
+ openForm(origin, target) {
68
+ var _a;
69
+ (!origin) && this.cleanStack();
70
+ target.originToken = (_a = origin === null || origin === void 0 ? void 0 : origin.token) !== null && _a !== void 0 ? _a : null;
71
+ const token = this.stack(origin, target);
72
+ this.goToForm(target.name, token, target.subject);
73
+ }
74
+ backTo(targetToken = null) {
75
+ const formInfo = this.unstack(targetToken);
76
+ formInfo && formInfo.name && this.goToForm(formInfo.name, formInfo.token, formInfo.subject);
71
77
  }
72
78
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mb3JtLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWhDLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEM7UUFDRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBRUgsaUJBQWlCLENBQUMsUUFBUSxJQUFJLENBQUM7SUFDL0IsZ0JBQWdCLENBQUMsWUFBWSxJQUFJLENBQUM7SUFDbEMsU0FBUyxDQUFDLGVBQXNCLElBQUksQ0FBQztJQUVyQzs7T0FFRztJQUVILGNBQWMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRXRDLFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUyxLQUFLLENBQUM7SUFDZixTQUFTLEtBQUssQ0FBQztJQUVmLEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFFO1FBQ1IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMvQyx3REFBd0Q7WUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixPQUFPLFFBQVEsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsRUFBVTtRQUNyQixNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3ZFLE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVTtRQUN0QixNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlFLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUNqQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDakQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFXLEVBQUUsTUFBVztRQUNqQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO1FBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQXVCO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUMxQixNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQztRQUNwRCxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLEtBQUssSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbmFub2lkIH0gZnJvbSAnbmFub2lkJztcblxuZXhwb3J0IGNsYXNzIExpYkZvcm1NYW5hZ2VyU2VydmljZSB7XG4gIHBhZ2VTdGFjazogYW55W107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jbGVhblN0YWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogTcOpdG9kb3MgdmlydHVhbGVzIGRlIG1hbmVqbyBkZSBmb3JtdWxhcmlvc1xuICAgKi9cblxuICBnZXRGb3JtRGVmaW5pdGlvbihmb3JtQ29kZSkgeyB9XG4gIGV4ZWNTZXJ2ZXJBY3Rpb24oYWN0aW9uRGV0YWlsKSB7IH1cbiAgZ29Ub1JvdXRlKG5hdmlnYXRpb25BcnJheTogYW55W10pIHsgfVxuXG4gIC8qKlxuICAgKiBNYW5lam8gZGVsIHN0YWNrIGRlIG5hdmVnYWNpw7NuIGNvbiBhdHJpYnV0b3MgZXN0YWRvcyB5IHBhcsOhbWV0cm9zXG4gICAqL1xuXG4gIHJlc2V0UGFnZVN0YWNrKCkgeyB0aGlzLmNsZWFuU3RhY2soKSB9XG5cbiAgY2xlYW5TdGFjaygpIHtcbiAgICB0aGlzLnBhZ2VTdGFjayA9IFtdO1xuICB9XG5cbiAgbG9hZFN0YWNrKCkgeyB9XG4gIHNhdmVTdGFjaygpIHsgfVxuXG4gIHN0YWNrKGRhdGEpIHtcbiAgICBjb25zdCBpZCA9IG5hbm9pZCg2KTtcbiAgICB0aGlzLnBhZ2VTdGFjay5wdXNoKHsgaWQsIGRhdGEgfSk7XG4gICAgdGhpcy5zYXZlU3RhY2soKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICB1bnN0YWNrKGlkKSB7XG4gICAgY29uc3Qgc3RhY2tJZHggPSB0aGlzLnBhZ2VTdGFjay5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBpZCk7XG4gICAgaWYgKHN0YWNrSWR4ID49IDApIHtcbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5wYWdlU3RhY2tbc3RhY2tJZHhdLmRhdGE7XG4gICAgICAvLyBTZSBlbGltaW5hbiBsb3MgZm9ybXVsYXJpb3MgcG9zdGVyaW9yZXMgYWwgc29saWNpdGFkb1xuICAgICAgdGhpcy5wYWdlU3RhY2suc3BsaWNlKHN0YWNrSWR4ICsgMSk7XG4gICAgICB0aGlzLnNhdmVTdGFjaygpO1xuICAgICAgcmV0dXJuIGZvcm1EYXRhO1xuICAgIH1cbiAgfVxuXG4gIGdldElucHV0RGF0YShpZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3RhY2tJZHggPSAoaWQpID8gdGhpcy5wYWdlU3RhY2suZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5pZCA9PT0gaWQpIDogLTE7XG4gICAgaWYgKHN0YWNrSWR4ID49IDApIHtcbiAgICAgIGNvbnN0IHsgdGFyZ2V0OiB7IHByZWRlZmluZWRGaWVsZHMgfSB9ID0gdGhpcy5wYWdlU3RhY2tbc3RhY2tJZHhdLmRhdGE7XG4gICAgICByZXR1cm4gcHJlZGVmaW5lZEZpZWxkcztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXRPcmlnaW5JbmZvKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdGFja0lkeCA9IChpZCkgPyB0aGlzLnBhZ2VTdGFjay5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmlkID09PSBpZCkgOiAtMTtcbiAgICBpZiAoc3RhY2tJZHggPj0gMCkge1xuICAgICAgY29uc3QgeyBvcmlnaW4gfSA9IHRoaXMucGFnZVN0YWNrW3N0YWNrSWR4XS5kYXRhO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3JpZ2luKSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY2hhbmdlRm9ybShvcmlnaW46IGFueSwgdGFyZ2V0OiBhbnkpIHtcbiAgICBpZiAoIW9yaWdpbikge1xuICAgICAgdGhpcy5jbGVhblN0YWNrKCk7XG4gICAgfVxuICAgIGNvbnN0IHsgdXJsLCBwYXJhbXMgfSA9IHRhcmdldDtcbiAgICBjb25zdCBuZXdUb2tlbiA9IHRoaXMuc3RhY2soeyBvcmlnaW4sIHRhcmdldCB9KTtcbiAgICBjb25zdCBuYXZpZ2F0aW9uQXJyYXkgPSBbdXJsLCAuLi5wYXJhbXMsIG5ld1Rva2VuXTtcbiAgICB0aGlzLmdvVG9Sb3V0ZShuYXZpZ2F0aW9uQXJyYXkpO1xuICB9XG5cbiAgY2hhbmdlUHJldmlvdXNGb3JtKHRyYW5zaXRpb25Ub2tlbjogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJldkZvcm0gPSB0aGlzLnVuc3RhY2sodHJhbnNpdGlvblRva2VuKTtcbiAgICBpZiAoIXByZXZGb3JtKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHsgb3JpZ2luOiB7IHVybCwgcGFyYW1zLCB0b2tlbiB9IH0gPSBwcmV2Rm9ybTtcbiAgICBjb25zdCBuYXZpZ2F0aW9uQXJyYXkgPSBbdXJsLCAuLi5wYXJhbXNdO1xuICAgIHRva2VuICYmIG5hdmlnYXRpb25BcnJheS5wdXNoKHRva2VuKTtcbiAgICB0aGlzLmdvVG9Sb3V0ZShuYXZpZ2F0aW9uQXJyYXkpO1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9zZXJ2aWNlcy9mb3JtLW1hbmFnZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWhDLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEM7UUFDRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELDBDQUEwQztJQUMxQyxpQkFBaUIsQ0FBQyxRQUFRLElBQUksQ0FBQztJQUMvQixZQUFZLENBQUMsUUFBUSxJQUFJLENBQUM7SUFDMUIsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3RCLGdCQUFnQixDQUFDLFlBQVksSUFBSSxDQUFDO0lBQ2xDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3RDLFNBQVMsS0FBSyxDQUFDO0lBQ2YsU0FBUyxLQUFLLENBQUM7SUFFZixVQUFVLEtBQUssSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLGNBQWMsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRXRDLGVBQWUsQ0FBQyxLQUFLO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsS0FBSyxNQUFLLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7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LEtBQUssRUFBRSxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxLQUFLLG1DQUFJLEVBQUU7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsTUFBVyxFQUFFLE1BQVc7O1FBQy9CLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsTUFBTSxDQUFDLFdBQVcsR0FBRyxNQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLG1DQUFJLElBQUksQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlGLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5cbmV4cG9ydCBjbGFzcyBMaWJGb3JtTWFuYWdlclNlcnZpY2Uge1xuICBwYWdlU3RhY2s6IGFueVtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY2xlYW5TdGFjaygpO1xuICB9XG5cbiAgLy8gTcOpdG9kb3MgdmlydHVhbGVzIHBhcmEgbGFzIGFwbGljYWNpb25lc1xuICBnZXRGb3JtRGVmaW5pdGlvbihmb3JtQ29kZSkgeyB9XG4gIGdldEZvcm1Sb3V0ZShmb3JtQ29kZSkgeyB9XG4gIGdldFJvdXRlRm9ybShwYXRoKSB7IH1cbiAgZXhlY1NlcnZlckFjdGlvbihhY3Rpb25EZXRhaWwpIHsgfVxuICBnb1RvRm9ybShmb3JtQ29kZSwgdG9rZW4sIHN1YmplY3QpIHsgfVxuICBsb2FkU3RhY2soKSB7IH1cbiAgc2F2ZVN0YWNrKCkgeyB9XG5cbiAgY2xlYW5TdGFjaygpIHsgdGhpcy5wYWdlU3RhY2sgPSBbXTsgfVxuICByZXNldFBhZ2VTdGFjaygpIHsgdGhpcy5jbGVhblN0YWNrKCkgfVxuXG4gIGZpbmRGb3JtSW5TdGFjayh0b2tlbikge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wYWdlU3RhY2suZmluZEluZGV4KGl0ZW0gPT4gaXRlbT8udG9rZW4gPT09IHRva2VuKTtcbiAgICBjb25zdCBkYXRhID0gKGluZGV4ID49IDApID8gdGhpcy5wYWdlU3RhY2tbaW5kZXhdIDogbnVsbDtcbiAgICByZXR1cm4geyBpbmRleCwgZGF0YSB9O1xuICB9XG5cbiAgcmVwbGFjZUl0ZW0odG9rZW4sIGZvcm1JbmZvKSB7XG4gICAgaWYgKCF0b2tlbiB8fCAhZm9ybUluZm8pIHsgcmV0dXJuOyB9XG4gICAgY29uc3QgeyBpbmRleCwgZGF0YTogc3RvcmVkRm9ybSB9ID0gdGhpcy5maW5kRm9ybUluU3RhY2sodG9rZW4pO1xuICAgIGxldCB1cGRhdGVkRm9ybTogYW55ID0gbnVsbDtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdXBkYXRlZEZvcm0gPSB7IC4uLnN0b3JlZEZvcm0gfTtcbiAgICAgIHVwZGF0ZWRGb3JtLnN1YmplY3QgPSBmb3JtSW5mbz8uc3ViamVjdCA/PyBzdG9yZWRGb3JtLnN1YmplY3Q7XG4gICAgICB1cGRhdGVkRm9ybS5zdGF0ZSA9IGZvcm1JbmZvPy5zdGF0ZSA/PyBzdG9yZWRGb3JtLnN0YXRlO1xuICAgICAgT2JqZWN0LmFzc2lnbih1cGRhdGVkRm9ybS5maWVsZHMsIGZvcm1JbmZvLmZpZWxkcyk7XG4gICAgICBPYmplY3QuYXNzaWduKHVwZGF0ZWRGb3JtLmV4dHJhLCBmb3JtSW5mby5leHRyYSk7XG4gICAgICB0aGlzLnBhZ2VTdGFja1tpbmRleF0gPSB1cGRhdGVkRm9ybTtcbiAgICAgIHRoaXMuc2F2ZVN0YWNrKCk7XG4gICAgfVxuICB9XG5cbiAgc3RhY2sob3JpZ2luLCB0YXJnZXQpIHtcbiAgICBjb25zdCB0b2tlbiA9IG5hbm9pZCg2KTtcbiAgICB0aGlzLnJlcGxhY2VJdGVtKHRhcmdldC5vcmlnaW5Ub2tlbiwgb3JpZ2luKTtcbiAgICB0aGlzLnBhZ2VTdGFjay5wdXNoKHsgdG9rZW4sIC4uLnRhcmdldCB9KTtcbiAgICB0aGlzLnNhdmVTdGFjaygpO1xuICAgIHJldHVybiB0b2tlbjtcbiAgfVxuXG4gIHVuc3RhY2sodG9rZW4gPSBudWxsKSB7XG4gICAgbGV0IGluZGV4ID0gKHRva2VuKSA/IHRoaXMuZmluZEZvcm1JblN0YWNrKHRva2VuKS5pbmRleCA6IHRoaXMucGFnZVN0YWNrLmxlbmd0aCAtIDI7XG4gICAgbGV0IGZvcm1JbmZvID0gbnVsbDtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgZm9ybUluZm8gPSB0aGlzLnBhZ2VTdGFja1tpbmRleF07XG4gICAgICB0aGlzLnBhZ2VTdGFjay5zcGxpY2UoaW5kZXggKyAxKTtcbiAgICAgIHRoaXMuc2F2ZVN0YWNrKCk7XG4gICAgfVxuICAgIHJldHVybiBmb3JtSW5mbztcbiAgfVxuXG4gIGdldEZvcm1JbmZvKHRva2VuOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IHRoaXMuZmluZEZvcm1JblN0YWNrKHRva2VuKTtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW46IGRhdGE/LnRva2VuLFxuICAgICAgc3ViamVjdDogZGF0YT8uc3ViamVjdCxcbiAgICAgIHN0YXRlOiBkYXRhPy5zdGF0ZSxcbiAgICAgIG9yaWdpblRva2VuOiBkYXRhPy5vcmlnaW5Ub2tlbixcbiAgICAgIGZpZWxkczogZGF0YT8uZmllbGRzID8/IHt9LFxuICAgICAgZXh0cmE6IGRhdGE/LmV4dHJhID8/IHt9XG4gICAgfTtcbiAgfVxuXG4gIG9wZW5Gb3JtKG9yaWdpbjogYW55LCB0YXJnZXQ6IGFueSkge1xuICAgICghb3JpZ2luKSAmJiB0aGlzLmNsZWFuU3RhY2soKTtcbiAgICB0YXJnZXQub3JpZ2luVG9rZW4gPSBvcmlnaW4/LnRva2VuID8/IG51bGw7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnN0YWNrKG9yaWdpbiwgdGFyZ2V0KTtcbiAgICB0aGlzLmdvVG9Gb3JtKHRhcmdldC5uYW1lLCB0b2tlbiwgdGFyZ2V0LnN1YmplY3QpO1xuICB9XG5cbiAgYmFja1RvKHRhcmdldFRva2VuID0gbnVsbCkge1xuICAgIGNvbnN0IGZvcm1JbmZvID0gdGhpcy51bnN0YWNrKHRhcmdldFRva2VuKTtcbiAgICBmb3JtSW5mbyAmJiBmb3JtSW5mby5uYW1lICYmIHRoaXMuZ29Ub0Zvcm0oZm9ybUluZm8ubmFtZSwgZm9ybUluZm8udG9rZW4sIGZvcm1JbmZvLnN1YmplY3QpO1xuICB9XG59XG4iXX0=
@@ -1476,11 +1476,14 @@ class FieldDescriptor extends FormElement {
1476
1476
  return fieldCurrentValue === '';
1477
1477
  }
1478
1478
  getValue() {
1479
- var _a;
1479
+ var _a, _b;
1480
1480
  switch (this.fieldType) {
1481
- case this._formConfig.fieldTypes.check:
1481
+ case this._formConfig.fieldTypes.boolean:
1482
1482
  return (_a = this._fieldValue) !== null && _a !== void 0 ? _a : false;
1483
1483
  break;
1484
+ case this._formConfig.fieldTypes.check:
1485
+ return (_b = this._fieldValue) !== null && _b !== void 0 ? _b : false;
1486
+ break;
1484
1487
  case this._formConfig.fieldTypes.currency:
1485
1488
  return this._fieldValue.replace(',', '');
1486
1489
  break;
@@ -1600,6 +1603,9 @@ class FieldDescriptor extends FormElement {
1600
1603
  case 'BOOLEAN':
1601
1604
  newFinalValue = !!newValue;
1602
1605
  break;
1606
+ case this._formConfig.fieldTypes.boolean:
1607
+ newFinalValue = !!newValue;
1608
+ break;
1603
1609
  case this._formConfig.fieldTypes.check:
1604
1610
  newFinalValue = !!newValue;
1605
1611
  break;
@@ -2210,71 +2216,77 @@ class LibFormManagerService {
2210
2216
  constructor() {
2211
2217
  this.cleanStack();
2212
2218
  }
2213
- /**
2214
- * Métodos virtuales de manejo de formularios
2215
- */
2219
+ // Métodos virtuales para las aplicaciones
2216
2220
  getFormDefinition(formCode) { }
2221
+ getFormRoute(formCode) { }
2222
+ getRouteForm(path) { }
2217
2223
  execServerAction(actionDetail) { }
2218
- goToRoute(navigationArray) { }
2219
- /**
2220
- * Manejo del stack de navegación con atributos estados y parámetros
2221
- */
2222
- resetPageStack() { this.cleanStack(); }
2223
- cleanStack() {
2224
- this.pageStack = [];
2225
- }
2224
+ goToForm(formCode, token, subject) { }
2226
2225
  loadStack() { }
2227
2226
  saveStack() { }
2228
- stack(data) {
2229
- const id = nanoid(6);
2230
- this.pageStack.push({ id, data });
2231
- this.saveStack();
2232
- return id;
2233
- }
2234
- unstack(id) {
2235
- const stackIdx = this.pageStack.findIndex(item => item.id === id);
2236
- if (stackIdx >= 0) {
2237
- const formData = this.pageStack[stackIdx].data;
2238
- // Se eliminan los formularios posteriores al solicitado
2239
- this.pageStack.splice(stackIdx + 1);
2227
+ cleanStack() { this.pageStack = []; }
2228
+ resetPageStack() { this.cleanStack(); }
2229
+ findFormInStack(token) {
2230
+ const index = this.pageStack.findIndex(item => (item === null || item === void 0 ? void 0 : item.token) === token);
2231
+ const data = (index >= 0) ? this.pageStack[index] : null;
2232
+ return { index, data };
2233
+ }
2234
+ replaceItem(token, formInfo) {
2235
+ var _a, _b;
2236
+ if (!token || !formInfo) {
2237
+ return;
2238
+ }
2239
+ const { index, data: storedForm } = this.findFormInStack(token);
2240
+ let updatedForm = null;
2241
+ if (index >= 0) {
2242
+ updatedForm = Object.assign({}, storedForm);
2243
+ updatedForm.subject = (_a = formInfo === null || formInfo === void 0 ? void 0 : formInfo.subject) !== null && _a !== void 0 ? _a : storedForm.subject;
2244
+ updatedForm.state = (_b = formInfo === null || formInfo === void 0 ? void 0 : formInfo.state) !== null && _b !== void 0 ? _b : storedForm.state;
2245
+ Object.assign(updatedForm.fields, formInfo.fields);
2246
+ Object.assign(updatedForm.extra, formInfo.extra);
2247
+ this.pageStack[index] = updatedForm;
2240
2248
  this.saveStack();
2241
- return formData;
2242
2249
  }
2243
2250
  }
2244
- getInputData(id) {
2245
- const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;
2246
- if (stackIdx >= 0) {
2247
- const { target: { predefinedFields } } = this.pageStack[stackIdx].data;
2248
- return predefinedFields;
2251
+ stack(origin, target) {
2252
+ const token = nanoid(6);
2253
+ this.replaceItem(target.originToken, origin);
2254
+ this.pageStack.push(Object.assign({ token }, target));
2255
+ this.saveStack();
2256
+ return token;
2257
+ }
2258
+ unstack(token = null) {
2259
+ let index = (token) ? this.findFormInStack(token).index : this.pageStack.length - 2;
2260
+ let formInfo = null;
2261
+ if (index >= 0) {
2262
+ formInfo = this.pageStack[index];
2263
+ this.pageStack.splice(index + 1);
2264
+ this.saveStack();
2249
2265
  }
2250
- return null;
2266
+ return formInfo;
2251
2267
  }
2252
- getOriginInfo(id) {
2253
- const stackIdx = (id) ? this.pageStack.findIndex(item => item.id === id) : -1;
2254
- if (stackIdx >= 0) {
2255
- const { origin } = this.pageStack[stackIdx].data;
2256
- return JSON.parse(JSON.stringify(origin));
2257
- }
2258
- return null;
2268
+ getFormInfo(token) {
2269
+ var _a, _b;
2270
+ const { data } = this.findFormInStack(token);
2271
+ return {
2272
+ token: data === null || data === void 0 ? void 0 : data.token,
2273
+ subject: data === null || data === void 0 ? void 0 : data.subject,
2274
+ state: data === null || data === void 0 ? void 0 : data.state,
2275
+ originToken: data === null || data === void 0 ? void 0 : data.originToken,
2276
+ fields: (_a = data === null || data === void 0 ? void 0 : data.fields) !== null && _a !== void 0 ? _a : {},
2277
+ extra: (_b = data === null || data === void 0 ? void 0 : data.extra) !== null && _b !== void 0 ? _b : {}
2278
+ };
2259
2279
  }
2260
- changeForm(origin, target) {
2261
- if (!origin) {
2262
- this.cleanStack();
2263
- }
2264
- const { url, params } = target;
2265
- const newToken = this.stack({ origin, target });
2266
- const navigationArray = [url, ...params, newToken];
2267
- this.goToRoute(navigationArray);
2280
+ openForm(origin, target) {
2281
+ var _a;
2282
+ (!origin) && this.cleanStack();
2283
+ target.originToken = (_a = origin === null || origin === void 0 ? void 0 : origin.token) !== null && _a !== void 0 ? _a : null;
2284
+ const token = this.stack(origin, target);
2285
+ this.goToForm(target.name, token, target.subject);
2268
2286
  }
2269
- changePreviousForm(transitionToken) {
2270
- const prevForm = this.unstack(transitionToken);
2271
- if (!prevForm) {
2272
- return;
2273
- }
2274
- const { origin: { url, params, token } } = prevForm;
2275
- const navigationArray = [url, ...params];
2276
- token && navigationArray.push(token);
2277
- this.goToRoute(navigationArray);
2287
+ backTo(targetToken = null) {
2288
+ const formInfo = this.unstack(targetToken);
2289
+ formInfo && formInfo.name && this.goToForm(formInfo.name, formInfo.token, formInfo.subject);
2278
2290
  }
2279
2291
  }
2280
2292
 
@@ -2305,11 +2317,8 @@ const PAYLOAD_VERSION = 'TUAINEXCHANGE_1.0';
2305
2317
  const INLINE_ACTION = 'INLINE';
2306
2318
  const GLOBAL_ACTION = 'GLOBAL';
2307
2319
  const GET_DATA_ACTION = 'GETDATA';
2308
- const FORM_CODE = 'form';
2309
- const FORM_SUBJECT = 'formSubject';
2310
- const ORIGIN_PARAM = 'origin';
2311
- const STATE_PARAM = 'mode';
2312
- const REQUIRED_FIELD_MESSAGE = 'Campo requerido';
2320
+ const SUBJECT = 'subject';
2321
+ const TOKEN = 'token';
2313
2322
  class BasicFormComponent {
2314
2323
  constructor(formManagerService, _eventManager, fileMgmtServices) {
2315
2324
  this.formManagerService = formManagerService;
@@ -2319,9 +2328,9 @@ class BasicFormComponent {
2319
2328
  this.errorMessage = '';
2320
2329
  this.errorDetail = '';
2321
2330
  this.formStructure = null;
2322
- this.transitionToken = null;
2323
- this.inputDataFields = [];
2324
- this.extraData = null;
2331
+ this.controlToken = null;
2332
+ this.inputDataFields = {};
2333
+ this.extraData = {};
2325
2334
  this.definitionObtained = false;
2326
2335
  this.formVisible = false;
2327
2336
  this.inServerProcess = false;
@@ -2352,8 +2361,8 @@ class BasicFormComponent {
2352
2361
  this.errorMessage = '';
2353
2362
  this.errorDetail = '';
2354
2363
  this.formStructure = null;
2355
- this.transitionToken = null;
2356
- this.inputDataFields = [];
2364
+ this.controlToken = null;
2365
+ this.inputDataFields = {};
2357
2366
  this.definitionObtained = false;
2358
2367
  // Se limpian los manejadores de eventos
2359
2368
  this.formVisible = false;
@@ -2502,35 +2511,61 @@ class BasicFormComponent {
2502
2511
  subscribeAppEvent(eventName, callback) {
2503
2512
  this._eventEmiter.subscribe(eventName, callback);
2504
2513
  }
2514
+ openForm(name, data, backData = null, cleanStack = false) {
2515
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2516
+ let origin = null;
2517
+ if (!cleanStack) {
2518
+ origin = Object.assign(Object.assign({}, backData), { name: this.name, url: this._formRoute, token: this.controlToken });
2519
+ origin.subject = (_a = origin === null || origin === void 0 ? void 0 : origin.subject) !== null && _a !== void 0 ? _a : this.formSubject;
2520
+ origin.state = (_b = origin === null || origin === void 0 ? void 0 : origin.state) !== null && _b !== void 0 ? _b : this.currentState;
2521
+ origin.fields = (_c = origin === null || origin === void 0 ? void 0 : origin.fields) !== null && _c !== void 0 ? _c : {};
2522
+ origin.extra = (_d = origin === null || origin === void 0 ? void 0 : origin.extra) !== null && _d !== void 0 ? _d : {};
2523
+ }
2524
+ const target = Object.assign(Object.assign({}, data), { name });
2525
+ target.subject = (_e = target === null || target === void 0 ? void 0 : target.subject) !== null && _e !== void 0 ? _e : null;
2526
+ target.state = (_f = target === null || target === void 0 ? void 0 : target.state) !== null && _f !== void 0 ? _f : null;
2527
+ target.fields = (_g = target === null || target === void 0 ? void 0 : target.fields) !== null && _g !== void 0 ? _g : {};
2528
+ target.extra = (_h = target === null || target === void 0 ? void 0 : target.extra) !== null && _h !== void 0 ? _h : {};
2529
+ this.formManagerService.openForm(origin, target);
2530
+ }
2531
+ /**
2532
+ * @deprecated Este método ya no debería ser utilizado. Use openForm con el nombre del formulario
2533
+ */
2505
2534
  goToPage(navigationArray, predefinedFields, options = null) {
2506
- var _a, _b;
2535
+ var _a;
2507
2536
  let origin = null;
2508
2537
  const cleanStack = (_a = options === null || options === void 0 ? void 0 : options.cleanStack) !== null && _a !== void 0 ? _a : false;
2509
- const params = [];
2510
- this.currentState && params.push(this.currentState);
2511
- this.formSubject && params.push(this.formSubject);
2512
2538
  if (!cleanStack) {
2513
2539
  origin = {
2514
- code: this.name,
2540
+ name: this.name,
2515
2541
  url: this._formRoute,
2516
- params,
2517
- token: this.transitionToken,
2518
- predefinedFields: this.inputDataFields
2542
+ token: this.controlToken,
2543
+ fields: this.inputDataFields,
2544
+ extra: this.extraData
2519
2545
  };
2520
2546
  }
2521
2547
  const target = {
2548
+ name: this.formManagerService.getRouteForm(navigationArray === null || navigationArray === void 0 ? void 0 : navigationArray[0]),
2522
2549
  url: navigationArray === null || navigationArray === void 0 ? void 0 : navigationArray[0],
2523
- params: (_b = navigationArray.splice(1)) !== null && _b !== void 0 ? _b : [],
2524
- predefinedFields,
2550
+ state: navigationArray === null || navigationArray === void 0 ? void 0 : navigationArray[1],
2551
+ subject: navigationArray === null || navigationArray === void 0 ? void 0 : navigationArray[2],
2552
+ fields: predefinedFields,
2553
+ extra: null,
2525
2554
  };
2526
- this.formManagerService.changeForm(origin, target);
2555
+ this.formManagerService.openForm(origin, target);
2527
2556
  }
2557
+ /**
2558
+ * @deprecated Este método ya no debería ser utilizado. Use openForm con el nombre del formulario
2559
+ */
2528
2560
  goToNewPage(nav, flds) { return this.goToPage(nav, flds, { cleanStack: true }); }
2561
+ /**
2562
+ * @deprecated Este método ya no debería ser utilizado. Use openForm con el nombre del formulario
2563
+ */
2529
2564
  goToSubPage(nav, flds) { return this.goToPage(nav, flds, { cleanStack: false }); }
2530
- canGoBack() { return this.transitionToken !== null; }
2531
- goBack() { return this.formManagerService.changePreviousForm(this.transitionToken); }
2565
+ canGoBack() { return this.originToken !== null; }
2566
+ goBack() { return this.formManagerService.backTo(); }
2532
2567
  goBackForm() { return this.goBack(); }
2533
- getOriginDetail() { return this.formManagerService.getOriginInfo(this.transitionToken); }
2568
+ getOriginDetail() { return this.formManagerService.getFormInfo(this.originToken); }
2534
2569
  setError(errorType, errorMessage, errorDetail) {
2535
2570
  this._errorType = errorType || '';
2536
2571
  this.errorMessage = errorMessage || '';
@@ -2550,33 +2585,23 @@ class BasicFormComponent {
2550
2585
  get formCode() { return this.name; }
2551
2586
  set formCode(name) { this.name = name; }
2552
2587
  getFormParameter(name) {
2553
- return (this.extraData && name && this.extraData[name]) ? this.extraData[name] : null;
2588
+ var _a, _b;
2589
+ return (name) ? ((_b = (_a = this.extraData) === null || _a === void 0 ? void 0 : _a[name]) !== null && _b !== void 0 ? _b : null) : null;
2554
2590
  }
2555
2591
  getSubject() { return this.formSubject; }
2556
2592
  getformSubject() { return this.getSubject(); }
2557
2593
  preocessInputParams(params) {
2558
- var _a, _b, _c, _d, _e, _f;
2559
- const allParams = Object.keys(params !== null && params !== void 0 ? params : {});
2560
- if (!allParams || !Array.isArray(allParams) || allParams.length === 0) {
2561
- return;
2562
- }
2563
- this.extraData = [];
2564
- for (const paramName of allParams) {
2565
- this.extraData[paramName] = params[paramName].toString();
2566
- }
2567
- const formName = (_b = (_a = this.extraData) === null || _a === void 0 ? void 0 : _a[FORM_CODE]) !== null && _b !== void 0 ? _b : this.name;
2568
- if (formName !== this.name) {
2569
- this.cleanStart();
2570
- this.name = formName;
2571
- }
2572
- this.formSubject = (_d = (_c = this.extraData) === null || _c === void 0 ? void 0 : _c[FORM_SUBJECT]) !== null && _d !== void 0 ? _d : null;
2573
- const initialState = this.extraData[STATE_PARAM];
2574
- this.transitionToken = (_e = this.extraData[ORIGIN_PARAM]) !== null && _e !== void 0 ? _e : null;
2575
- this.inputDataFields = (_f = this.formManagerService.getInputData(this.transitionToken)) !== null && _f !== void 0 ? _f : [];
2576
- if (!this.transitionToken) {
2577
- this.formManagerService.cleanStack();
2594
+ var _a, _b;
2595
+ this.controlToken = (_a = params === null || params === void 0 ? void 0 : params[TOKEN].toString()) !== null && _a !== void 0 ? _a : null;
2596
+ const { token, subject, state, fields, extra, originToken } = this.formManagerService.getFormInfo(this.controlToken);
2597
+ if (!this.controlToken || this.controlToken !== token) {
2598
+ console.log(`No se obtuvo un token válido para abrir el formulario ${this.controlToken}->${token}`);
2578
2599
  }
2579
- return initialState;
2600
+ this.formSubject = (_b = params === null || params === void 0 ? void 0 : params[SUBJECT].toString()) !== null && _b !== void 0 ? _b : subject;
2601
+ this.inputDataFields = fields;
2602
+ this.extraData = extra;
2603
+ this.originToken = originToken;
2604
+ return state;
2580
2605
  }
2581
2606
  subscribeSectionActivation() {
2582
2607
  const formSections = this.formStructure.getSections();
@@ -2624,7 +2649,6 @@ class BasicFormComponent {
2624
2649
  }
2625
2650
  }
2626
2651
  formInit(params) {
2627
- var _a;
2628
2652
  return __awaiter(this, void 0, void 0, function* () {
2629
2653
  let initialState = this.preocessInputParams(params);
2630
2654
  if (!this.name) {
@@ -2644,21 +2668,11 @@ class BasicFormComponent {
2644
2668
  initialState = this.formStructure.defaultState;
2645
2669
  }
2646
2670
  this.formStructure.changeState(initialState || this.formStructure.defaultState);
2647
- if (Array.isArray(this.inputDataFields)) {
2648
- for (const inputFieldData of this.inputDataFields) {
2649
- const { fieldCode, fieldValue } = inputFieldData;
2650
- if (fieldCode) {
2651
- this.setFieldValue(fieldCode, fieldValue);
2652
- }
2653
- }
2654
- }
2655
- else {
2656
- const fieldCodes = Object.keys((_a = this.inputDataFields) !== null && _a !== void 0 ? _a : {});
2657
- for (let index = 0; index < fieldCodes.length; index++) {
2658
- const fieldCode = fieldCodes[index];
2659
- const fieldValue = this.inputDataFields[fieldCode];
2660
- this.setFieldValue(fieldCode, fieldValue);
2661
- }
2671
+ const inputFieldNames = Object.keys(this.inputDataFields);
2672
+ for (let index = 0; index < inputFieldNames.length; index++) {
2673
+ const fieldCode = inputFieldNames[index];
2674
+ const fieldValue = this.inputDataFields[fieldCode];
2675
+ this.setFieldValue(fieldCode, fieldValue);
2662
2676
  }
2663
2677
  const recordResponse = yield this.requestFormAction(formActions.getData);
2664
2678
  this.checkErrorRecordReceived(recordResponse);
@@ -3475,7 +3489,7 @@ class BasicFormComponent {
3475
3489
  }
3476
3490
  checkSectionRequiredFields(sectionCode, reqFieldMessage) {
3477
3491
  this.cleanErrorFields(null, sectionCode);
3478
- const requiredFieldMessage = reqFieldMessage || REQUIRED_FIELD_MESSAGE;
3492
+ const requiredFieldMessage = reqFieldMessage !== null && reqFieldMessage !== void 0 ? reqFieldMessage : this.formConfig.formStandardErrors.requiredField;
3479
3493
  const numErrors = this.tagFieldsWithError(this.getRequiredEmptyFields(null, sectionCode), null, requiredFieldMessage);
3480
3494
  return (numErrors === 0);
3481
3495
  }