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.
- package/bundles/tuain-ng-forms-lib.umd.js +342 -346
- package/bundles/tuain-ng-forms-lib.umd.js.map +1 -1
- package/esm2015/lib/classes/forms/field.js +9 -3
- package/esm2015/lib/components/forms/basic-form.js +66 -64
- package/esm2015/lib/services/form-manager.service.js +60 -54
- package/fesm2015/tuain-ng-forms-lib.js +133 -119
- package/fesm2015/tuain-ng-forms-lib.js.map +1 -1
- package/lib/components/forms/basic-form.d.ts +21 -3
- package/lib/services/form-manager.service.d.ts +22 -15
- package/package.json +1 -1
- package/tuain-ng-forms-lib.metadata.json +1 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
|
53
|
+
return formInfo;
|
|
52
54
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this.
|
|
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,
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
this.
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
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
|
-
|
|
2245
|
-
const
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
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
|
|
2266
|
+
return formInfo;
|
|
2251
2267
|
}
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
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
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
const
|
|
2265
|
-
|
|
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
|
-
|
|
2270
|
-
const
|
|
2271
|
-
|
|
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
|
|
2309
|
-
const
|
|
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.
|
|
2323
|
-
this.inputDataFields =
|
|
2324
|
-
this.extraData =
|
|
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.
|
|
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
|
|
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
|
-
|
|
2540
|
+
name: this.name,
|
|
2515
2541
|
url: this._formRoute,
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
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
|
-
|
|
2524
|
-
|
|
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.
|
|
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.
|
|
2531
|
-
goBack() { return this.formManagerService.
|
|
2565
|
+
canGoBack() { return this.originToken !== null; }
|
|
2566
|
+
goBack() { return this.formManagerService.backTo(); }
|
|
2532
2567
|
goBackForm() { return this.goBack(); }
|
|
2533
|
-
getOriginDetail() { return this.formManagerService.
|
|
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
|
-
|
|
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
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
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
|
|
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
|
}
|