tuain-ng-forms-lib 0.12.32 → 12.0.4
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 +590 -622
- package/bundles/tuain-ng-forms-lib.umd.js.map +1 -1
- package/esm2015/lib/classes/forms/field.js +15 -8
- package/esm2015/lib/classes/forms/form.constants.js +3 -1
- package/esm2015/lib/classes/forms/form.js +2 -3
- package/esm2015/lib/components/elements/field.component.js +12 -40
- package/esm2015/lib/components/forms/basic-form.js +71 -71
- package/esm2015/lib/services/form-manager.service.js +60 -54
- package/fesm2015/tuain-ng-forms-lib.js +158 -173
- package/fesm2015/tuain-ng-forms-lib.js.map +1 -1
- package/lib/classes/forms/field.d.ts +1 -0
- package/lib/classes/forms/form.constants.d.ts +2 -0
- package/lib/components/elements/field.component.d.ts +0 -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=
|