@beinformed/ui 1.30.0 → 1.30.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/CHANGELOG.md +7 -0
- package/esm/models/attributes/BooleanAttributeModel.js +1 -1
- package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js +5 -6
- package/esm/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js +2 -0
- package/esm/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/esm/models/error/ErrorResponse.js +6 -0
- package/esm/models/error/ErrorResponse.js.map +1 -1
- package/esm/models/form/FormModel.js +30 -3
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/utils/number/DecimalFormat.js +4 -8
- package/esm/utils/number/DecimalFormat.js.map +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js.flow +1 -1
- package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
- package/lib/models/attributes/__tests__/BooleanAttributeModel.spec.js.flow +14 -0
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js +5 -6
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js +2 -0
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/error/ErrorResponse.js +6 -0
- package/lib/models/error/ErrorResponse.js.map +1 -1
- package/lib/models/form/FormModel.js +30 -3
- package/lib/models/form/FormModel.js.flow +32 -4
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/__tests__/FormModel.spec.js.flow +4 -0
- package/lib/utils/number/DecimalFormat.js +4 -8
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/package.json +12 -12
- package/src/models/attributes/BooleanAttributeModel.js +1 -1
- package/src/models/attributes/__tests__/BooleanAttributeModel.spec.js +14 -0
- package/src/models/form/FormModel.js +32 -4
- package/src/models/form/__tests__/FormModel.spec.js +4 -0
- package/types/models/form/FormModel.d.ts +23 -0
- package/types/models/index.d.ts +2 -1
|
@@ -51,6 +51,7 @@ class FormModel extends ResourceModel {
|
|
|
51
51
|
_commit: boolean;
|
|
52
52
|
_isFinished: boolean;
|
|
53
53
|
_isComplete: boolean;
|
|
54
|
+
_success: { redirect: string, data: Object } | null;
|
|
54
55
|
|
|
55
56
|
_parameters: Array<Parameter>;
|
|
56
57
|
_tokens: Array<string>;
|
|
@@ -72,6 +73,8 @@ class FormModel extends ResourceModel {
|
|
|
72
73
|
if (this.data.errors) {
|
|
73
74
|
this.handleRootErrors(this.data.errors);
|
|
74
75
|
}
|
|
76
|
+
|
|
77
|
+
this.createSuccess();
|
|
75
78
|
}
|
|
76
79
|
|
|
77
80
|
/**
|
|
@@ -574,7 +577,7 @@ class FormModel extends ResourceModel {
|
|
|
574
577
|
* Inidicates if form is finished: Form is completely entered and committed
|
|
575
578
|
*/
|
|
576
579
|
get isFinished(): boolean {
|
|
577
|
-
return this._isFinished ||
|
|
580
|
+
return this._isFinished || this.success != undefined;
|
|
578
581
|
}
|
|
579
582
|
|
|
580
583
|
/**
|
|
@@ -600,8 +603,8 @@ class FormModel extends ResourceModel {
|
|
|
600
603
|
* Handle success redirects
|
|
601
604
|
*/
|
|
602
605
|
get successRedirect(): Href | null {
|
|
603
|
-
return this.isFinished && this.
|
|
604
|
-
? new Href(this.
|
|
606
|
+
return this.isFinished && this.success
|
|
607
|
+
? new Href(this.success.redirect)
|
|
605
608
|
: null;
|
|
606
609
|
}
|
|
607
610
|
|
|
@@ -615,7 +618,7 @@ class FormModel extends ResourceModel {
|
|
|
615
618
|
* Get the result data as plain json object
|
|
616
619
|
*/
|
|
617
620
|
getSuccessData(): ?Object {
|
|
618
|
-
return this.
|
|
621
|
+
return this.success?.data;
|
|
619
622
|
}
|
|
620
623
|
|
|
621
624
|
/**
|
|
@@ -888,6 +891,8 @@ class FormModel extends ResourceModel {
|
|
|
888
891
|
*/
|
|
889
892
|
setPreviousObject() {
|
|
890
893
|
this.isComplete = false;
|
|
894
|
+
this.isFinished = false;
|
|
895
|
+
this.success = null;
|
|
891
896
|
|
|
892
897
|
const oldCurrentFormObject = this.currentFormObject;
|
|
893
898
|
|
|
@@ -985,6 +990,7 @@ class FormModel extends ResourceModel {
|
|
|
985
990
|
|
|
986
991
|
this.isComplete = receivedForm.isComplete;
|
|
987
992
|
this.isFinished = receivedForm.isFinished;
|
|
993
|
+
this.success = receivedForm.success;
|
|
988
994
|
|
|
989
995
|
const receivedFormData = receivedForm.data ?? {};
|
|
990
996
|
const hasMissing = has(receivedFormData, "missing");
|
|
@@ -1016,6 +1022,28 @@ class FormModel extends ResourceModel {
|
|
|
1016
1022
|
return this;
|
|
1017
1023
|
}
|
|
1018
1024
|
|
|
1025
|
+
/**
|
|
1026
|
+
* Retrieve success information from response
|
|
1027
|
+
* @returns {{redirect: string, data: object}}
|
|
1028
|
+
*/
|
|
1029
|
+
get success(): { redirect: string, data: Object } | null {
|
|
1030
|
+
return this._success;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
/**
|
|
1034
|
+
* Set success information, contains redirect and event data
|
|
1035
|
+
* @param success
|
|
1036
|
+
*/
|
|
1037
|
+
set success(success: { redirect: string, data: Object } | null) {
|
|
1038
|
+
this._success = success;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
/**
|
|
1042
|
+
*/
|
|
1043
|
+
createSuccess() {
|
|
1044
|
+
this._success = this.data.success;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1019
1047
|
/**
|
|
1020
1048
|
* Process finished form
|
|
1021
1049
|
*/
|
|
@@ -458,11 +458,15 @@ describe("formModel", () => {
|
|
|
458
458
|
expect(form.completedFormObjects).toHaveLength(2);
|
|
459
459
|
expect(form.allObjects).toHaveLength(2);
|
|
460
460
|
expect(form.currentFormObject).toBeNull();
|
|
461
|
+
expect(form.success).toStrictEqual({ redirect: "/endredirect" });
|
|
462
|
+
expect(form.isFinished).toBe(true);
|
|
461
463
|
|
|
462
464
|
form.setPreviousObject();
|
|
463
465
|
expect(form.completedFormObjects).toHaveLength(1);
|
|
464
466
|
expect(form.currentFormObject).toBeInstanceOf(FormObjectModel);
|
|
465
467
|
expect(form.hasNextStep).toBeFalsy();
|
|
468
|
+
expect(form.success).toBeNull();
|
|
469
|
+
expect(form.isFinished).toBe(false);
|
|
466
470
|
});
|
|
467
471
|
|
|
468
472
|
it("is able to get formdata for request", () => {
|
|
@@ -15,6 +15,10 @@ declare class FormModel extends ResourceModel {
|
|
|
15
15
|
_commit: boolean;
|
|
16
16
|
_isFinished: boolean;
|
|
17
17
|
_isComplete: boolean;
|
|
18
|
+
_success: {
|
|
19
|
+
redirect: string;
|
|
20
|
+
data: Object;
|
|
21
|
+
} | null;
|
|
18
22
|
_parameters: Array<Parameter>;
|
|
19
23
|
_tokens: Array<string>;
|
|
20
24
|
/**
|
|
@@ -252,6 +256,22 @@ declare class FormModel extends ResourceModel {
|
|
|
252
256
|
* a different key than the current form object
|
|
253
257
|
*/
|
|
254
258
|
setPreviousObject(): void;
|
|
259
|
+
/**
|
|
260
|
+
* Set success information, contains redirect and event data
|
|
261
|
+
* @param success
|
|
262
|
+
*/
|
|
263
|
+
set success(arg: {
|
|
264
|
+
redirect: string;
|
|
265
|
+
data: Object;
|
|
266
|
+
});
|
|
267
|
+
/**
|
|
268
|
+
* Retrieve success information from response
|
|
269
|
+
* @returns {{redirect: string, data: object}}
|
|
270
|
+
*/
|
|
271
|
+
get success(): {
|
|
272
|
+
redirect: string;
|
|
273
|
+
data: Object;
|
|
274
|
+
};
|
|
255
275
|
/**
|
|
256
276
|
* Form navigation: has next step or is last
|
|
257
277
|
*/
|
|
@@ -264,6 +284,9 @@ declare class FormModel extends ResourceModel {
|
|
|
264
284
|
/**
|
|
265
285
|
*/
|
|
266
286
|
updateValidations(data: any): FormModel;
|
|
287
|
+
/**
|
|
288
|
+
*/
|
|
289
|
+
createSuccess(): void;
|
|
267
290
|
/**
|
|
268
291
|
* Process finished form
|
|
269
292
|
*/
|
package/types/models/index.d.ts
CHANGED
|
@@ -89,6 +89,7 @@ import { default as AssignmentFilterModel } from "./filters/AssignmentFilterMode
|
|
|
89
89
|
import { default as FilterModel } from "./filters/FilterModel";
|
|
90
90
|
import { default as RangeFilterModel } from "./filters/RangeFilterModel";
|
|
91
91
|
import { default as ConceptIndexFilterModel } from "./filters/ConceptIndexFilterModel";
|
|
92
|
-
|
|
92
|
+
import { default as LayoutHintCollection } from "./layouthint/LayoutHintCollection";
|
|
93
|
+
export { ApplicationModel, CaseSearchModel, CaseViewModel, ListDetailModel, DetailModel, FormModel, GroupingPanelModel, ListModel, TabModel, TaskGroupModel, UserModel, UserProfileModel, UserServicesModel, ModelCatalogModel, ConceptIndexModel, ConceptDetailModel, BusinessScenarioModel, ConceptTypeDetailModel, ContentIndexModel, ContentTOCModel, ContentModel, ContentTypeModel, BooleanAttributeModel, CaptchaAttributeModel, ChoiceAttributeModel, DatetimeAttributeModel, HelptextAttributeModel, LabelAttributeModel, MemoAttributeModel, MoneyAttributeModel, NumberAttributeModel, PasswordAttributeModel, CompositeAttributeModel, StringAttributeModel, UploadAttributeModel, XMLAttributeModel, AssignmentFilterModel, FilterModel, RangeFilterModel, ConceptIndexFilterModel, LayoutHintCollection };
|
|
93
94
|
export { default as LayoutHintRuleCollection, addLayoutHintRule, updateLayoutHintRules } from "./attributes/layouthint-rules/LayoutHintRuleCollection";
|
|
94
95
|
export { default as GroupingModel, GroupModel } from "./grouping/GroupingModel";
|