@beinformed/ui 1.9.0-beta.9 → 1.9.3
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 +48 -0
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useNotification.js.map +1 -1
- package/esm/hooks/useRouter.js.map +1 -1
- package/esm/models/attributes/AttributeContent.js +49 -20
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js +1 -1
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/HelptextAttributeModel.js +3 -1
- package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js +26 -12
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/contentconfiguration/ContentConfigurationResults.js +2 -2
- package/esm/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +8 -2
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/layouthint/LayoutHintCollection.js +3 -2
- package/esm/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/esm/models/list/ListDetailModel.js +25 -0
- package/esm/models/list/ListDetailModel.js.map +1 -1
- package/esm/models/list/ListModel.js +22 -16
- package/esm/models/list/ListModel.js.map +1 -1
- package/esm/models/panels/GroupingPanelModel.js +19 -17
- package/esm/models/panels/GroupingPanelModel.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +2 -1
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/redux/actions/FormAutosave.js +2 -1
- package/esm/redux/actions/FormAutosave.js.map +1 -1
- package/esm/redux/actions/FormValidations.js +2 -1
- package/esm/redux/actions/FormValidations.js.map +1 -1
- package/lib/hooks/useForm.js.flow +10 -5
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useNotification.js.flow +5 -2
- package/lib/hooks/useNotification.js.map +1 -1
- package/lib/hooks/useRouter.js.flow +12 -5
- package/lib/hooks/useRouter.js.map +1 -1
- package/lib/models/attributes/AttributeContent.js +51 -20
- package/lib/models/attributes/AttributeContent.js.flow +38 -13
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js +1 -1
- package/lib/models/attributes/AttributeDataHelper.js.flow +2 -1
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/HelptextAttributeModel.js +3 -1
- package/lib/models/attributes/HelptextAttributeModel.js.flow +1 -1
- package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/lib/models/attributes/__tests__/AttributeContent.spec.js.flow +4 -2
- package/lib/models/attributes/__tests__/AttributeDataHelper.spec.js.flow +9 -3
- package/lib/models/attributes/__tests__/HelptextAttributeModel.spec.js.flow +1 -1
- package/lib/models/caseview/CaseViewModel.js +27 -13
- package/lib/models/caseview/CaseViewModel.js.flow +17 -7
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +68 -184
- package/lib/models/concepts/__mock__/business_scenario.js.flow +14 -1
- package/lib/models/concepts/__mock__/conceptdetail.js.flow +15 -6
- package/lib/models/concepts/__tests__/BusinessScenarioModel.spec.js.flow +5 -6
- package/lib/models/concepts/__tests__/ConceptDetailModel.spec.js.flow +58 -3
- package/lib/models/contentconfiguration/ContentConfigurationResults.js +2 -2
- package/lib/models/contentconfiguration/ContentConfigurationResults.js.flow +2 -2
- package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
- package/lib/models/contentconfiguration/__tests__/ContentConfigurationResults.spec.js.flow +6 -6
- package/lib/models/form/FormObjectModel.js +8 -2
- package/lib/models/form/FormObjectModel.js.flow +5 -1
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/form/__tests__/FormObjectModel.spec.js.flow +2 -2
- package/lib/models/layouthint/LayoutHintCollection.js +4 -2
- package/lib/models/layouthint/LayoutHintCollection.js.flow +8 -7
- package/lib/models/layouthint/LayoutHintCollection.js.map +1 -1
- package/lib/models/list/ListDetailModel.js +25 -0
- package/lib/models/list/ListDetailModel.js.flow +19 -0
- package/lib/models/list/ListDetailModel.js.map +1 -1
- package/lib/models/list/ListModel.js +23 -16
- package/lib/models/list/ListModel.js.flow +9 -5
- package/lib/models/list/ListModel.js.map +1 -1
- package/lib/models/list/__tests__/ListDetailModel.spec.js.flow +64 -0
- package/lib/models/list/__tests__/ListModel.spec.js.flow +64 -2
- package/lib/models/panels/GroupingPanelModel.js +21 -18
- package/lib/models/panels/GroupingPanelModel.js.flow +10 -9
- package/lib/models/panels/GroupingPanelModel.js.map +1 -1
- package/lib/models/panels/__tests__/GroupingPanelModel.spec.js.flow +90 -0
- package/lib/models/types.js.flow +24 -6
- package/lib/modularui/ModularUIRequest.js +2 -1
- package/lib/modularui/ModularUIRequest.js.flow +1 -0
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/redux/actions/FormAutosave.js +2 -1
- package/lib/redux/actions/FormAutosave.js.flow +1 -0
- package/lib/redux/actions/FormAutosave.js.map +1 -1
- package/lib/redux/actions/FormValidations.js +2 -1
- package/lib/redux/actions/FormValidations.js.flow +1 -0
- package/lib/redux/actions/FormValidations.js.map +1 -1
- package/package.json +15 -15
- package/src/hooks/useForm.js +10 -5
- package/src/hooks/useNotification.js +5 -2
- package/src/hooks/useRouter.js +12 -5
- package/src/models/attributes/AttributeContent.js +38 -13
- package/src/models/attributes/AttributeDataHelper.js +2 -1
- package/src/models/attributes/HelptextAttributeModel.js +1 -1
- package/src/models/attributes/__tests__/AttributeContent.spec.js +4 -2
- package/src/models/attributes/__tests__/AttributeDataHelper.spec.js +9 -3
- package/src/models/attributes/__tests__/HelptextAttributeModel.spec.js +1 -1
- package/src/models/caseview/CaseViewModel.js +17 -7
- package/src/models/caseview/__tests__/CaseViewModel.spec.js +68 -184
- package/src/models/caseview/__tests__/caseview.json +38 -0
- package/src/models/caseview/__tests__/caseviewContributions.json +147 -0
- package/src/models/concepts/__mock__/business_scenario.js +14 -1
- package/src/models/concepts/__mock__/business_scenario_step.json +64 -0
- package/src/models/concepts/__mock__/conceptdetail.js +15 -6
- package/src/models/concepts/__mock__/conceptdetail_data.json +117 -17
- package/src/models/concepts/__mock__/concepttype_Calculation.json +75 -0
- package/src/models/concepts/__tests__/BusinessScenarioModel.spec.js +5 -6
- package/src/models/concepts/__tests__/ConceptDetailModel.spec.js +58 -3
- package/src/models/contentconfiguration/ContentConfigurationResults.js +2 -2
- package/src/models/contentconfiguration/__tests__/ContentConfigurationResults.spec.js +6 -6
- package/src/models/form/FormObjectModel.js +5 -1
- package/src/models/form/__tests__/FormObjectModel.spec.js +2 -2
- package/src/models/form/__tests__/FormWithContentData.json +2 -1
- package/src/models/layouthint/LayoutHintCollection.js +8 -7
- package/src/models/list/ListDetailModel.js +19 -0
- package/src/models/list/ListModel.js +9 -5
- package/src/models/list/__tests__/ListDetailModel.spec.js +64 -0
- package/src/models/list/__tests__/ListModel.spec.js +64 -2
- package/src/models/list/__tests__/caselist-34.contributions.json +1 -1
- package/src/models/list/__tests__/listContributions.json +1 -1
- package/src/models/panels/GroupingPanelModel.js +10 -9
- package/src/models/panels/__tests__/GroupingPanelModel.spec.js +90 -0
- package/src/models/panels/__tests__/groupingPanel.json +30 -0
- package/src/models/panels/__tests__/groupingPanelContributions.json +46 -0
- package/src/models/types.js +24 -6
- package/src/modularui/ModularUIRequest.js +1 -0
- package/src/redux/actions/FormAutosave.js +1 -0
- package/src/redux/actions/FormValidations.js +1 -0
|
@@ -54,8 +54,70 @@ describe("listModel spec", () => {
|
|
|
54
54
|
|
|
55
55
|
expect(list.headers).toHaveLength(6);
|
|
56
56
|
|
|
57
|
-
expect(list.introtext).toStrictEqual(
|
|
58
|
-
|
|
57
|
+
expect(list.introtext).toStrictEqual("<p>This is introtext</p>");
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("should be able to handle different kind of introtext", () => {
|
|
61
|
+
const listOldStructure = new ListModel({
|
|
62
|
+
key: "Books",
|
|
63
|
+
data: mockList.Books,
|
|
64
|
+
contributions: mockListContributions.Books,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
expect(listOldStructure.introtext).toBe("<p>This is introtext</p>");
|
|
68
|
+
|
|
69
|
+
const listFromDataPlain = new ListModel({
|
|
70
|
+
key: "Books",
|
|
71
|
+
data: {
|
|
72
|
+
text: "<p>This is introtext</p>",
|
|
73
|
+
...mockList.Books,
|
|
74
|
+
},
|
|
75
|
+
contributions: mockListContributions.Books,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
expect(listFromDataPlain.introtext).toBe("<p>This is introtext</p>");
|
|
79
|
+
|
|
80
|
+
const listFromDataApplicationMessage = new ListModel({
|
|
81
|
+
key: "Books",
|
|
82
|
+
data: {
|
|
83
|
+
...mockList.Books,
|
|
84
|
+
text: {
|
|
85
|
+
message: "<p>This is introtext</p>",
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
contributions: mockListContributions.Books,
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
expect(listFromDataApplicationMessage.introtext).toBe(
|
|
92
|
+
"<p>This is introtext</p>"
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
const listFromNewContributionsRawTextMessage = new ListModel({
|
|
96
|
+
key: "Books",
|
|
97
|
+
data: mockList.Books,
|
|
98
|
+
contributions: {
|
|
99
|
+
...mockListContributions.Books,
|
|
100
|
+
text: {
|
|
101
|
+
message: "<p>This is introtext</p>",
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
expect(listFromNewContributionsRawTextMessage.introtext).toBe(
|
|
107
|
+
"<p>This is introtext</p>"
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
const listFromNewContributionsSimpleMessage = new ListModel({
|
|
111
|
+
key: "Books",
|
|
112
|
+
data: mockList.Books,
|
|
113
|
+
contributions: {
|
|
114
|
+
...mockListContributions.Books,
|
|
115
|
+
text: "<p>This is introtext</p>",
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
expect(listFromNewContributionsSimpleMessage.introtext).toBe(
|
|
120
|
+
"<p>This is introtext</p>"
|
|
59
121
|
);
|
|
60
122
|
});
|
|
61
123
|
});
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"texts": [
|
|
6
6
|
{
|
|
7
7
|
"type": "master",
|
|
8
|
-
"text": "<p>This
|
|
8
|
+
"text": "<p>This is introtext</p>"
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"_links": {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"texts": [
|
|
7
7
|
{
|
|
8
8
|
"type": "master",
|
|
9
|
-
"text": "<p>This is
|
|
9
|
+
"text": "<p>This is introtext</p>"
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
12
|
"actions": [
|
|
@@ -78,22 +78,23 @@ export default class GroupingPanelModel extends ResourceModel {
|
|
|
78
78
|
* Check if an introtext exists for this caseview
|
|
79
79
|
*/
|
|
80
80
|
hasIntroText(): boolean {
|
|
81
|
-
return
|
|
82
|
-
this.contributions.texts &&
|
|
83
|
-
this.contributions.texts.find((item) => item.type === "master")
|
|
84
|
-
);
|
|
81
|
+
return this.introtext !== "";
|
|
85
82
|
}
|
|
86
83
|
|
|
87
84
|
/**
|
|
88
85
|
* Getting the introduction text configured on the grouping panel
|
|
89
86
|
*/
|
|
90
87
|
get introtext(): string {
|
|
91
|
-
if (this.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
88
|
+
if (this.data._text) {
|
|
89
|
+
return this.data._text.message ?? this.data._text;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (this.contributions.text) {
|
|
93
|
+
return this.contributions.text.message ?? this.contributions.text;
|
|
94
|
+
}
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
if (Array.isArray(this.contributions.texts)) {
|
|
97
|
+
return this.contributions.texts[0].text;
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
return "";
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import GroupingPanelModel from "../GroupingPanelModel";
|
|
2
2
|
|
|
3
|
+
import panelJson from "./groupingPanel.json";
|
|
4
|
+
import panelContributionsJson from "./groupingPanelContributions.json";
|
|
5
|
+
import CaseViewModel from "../../caseview/CaseViewModel";
|
|
6
|
+
|
|
3
7
|
describe("groupingPanelModel", () => {
|
|
4
8
|
it("should be able to create an empty GroupingPanelModel object", () => {
|
|
5
9
|
const groupingPanel = new GroupingPanelModel();
|
|
@@ -30,4 +34,90 @@ describe("groupingPanelModel", () => {
|
|
|
30
34
|
})
|
|
31
35
|
).toBe(true);
|
|
32
36
|
});
|
|
37
|
+
|
|
38
|
+
it("should be able to create a grouping panel from a typical modular UI json structure", () => {
|
|
39
|
+
const groupingPanel = new GroupingPanelModel({
|
|
40
|
+
key: "AskingQuestions",
|
|
41
|
+
data: panelJson,
|
|
42
|
+
contributions: panelContributionsJson,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
expect(groupingPanel).toBeInstanceOf(GroupingPanelModel);
|
|
46
|
+
|
|
47
|
+
expect(groupingPanel.key).toBe("AskingQuestions");
|
|
48
|
+
expect(groupingPanel.label).toBe("Asking questions");
|
|
49
|
+
|
|
50
|
+
expect(groupingPanel.links).toHaveLength(8);
|
|
51
|
+
expect(groupingPanel.panelLinks).toHaveLength(1);
|
|
52
|
+
|
|
53
|
+
expect(groupingPanel.hasIntroText()).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it("should be able to handle different kind of introtext", () => {
|
|
57
|
+
const groupingPanelOldStructure = new CaseViewModel({
|
|
58
|
+
key: "Book",
|
|
59
|
+
data: panelJson,
|
|
60
|
+
contributions: panelContributionsJson,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
expect(groupingPanelOldStructure.introtext).toBe(
|
|
64
|
+
"<p>This is introtext</p>"
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
const groupingPanelFromDataPlain = new CaseViewModel({
|
|
68
|
+
key: "Book",
|
|
69
|
+
data: {
|
|
70
|
+
_text: "<p>This is introtext</p>",
|
|
71
|
+
...panelJson,
|
|
72
|
+
},
|
|
73
|
+
contributions: panelContributionsJson,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
expect(groupingPanelFromDataPlain.introtext).toBe(
|
|
77
|
+
"<p>This is introtext</p>"
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const groupingPanelFromDataApplicationMessage = new CaseViewModel({
|
|
81
|
+
key: "Book",
|
|
82
|
+
data: {
|
|
83
|
+
...panelJson,
|
|
84
|
+
_text: {
|
|
85
|
+
message: "<p>This is introtext</p>",
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
contributions: panelContributionsJson,
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
expect(groupingPanelFromDataApplicationMessage.introtext).toBe(
|
|
92
|
+
"<p>This is introtext</p>"
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
const groupingPanelFromNewContributionsRawTextMessage = new CaseViewModel({
|
|
96
|
+
key: "Book",
|
|
97
|
+
data: panelJson,
|
|
98
|
+
contributions: {
|
|
99
|
+
...panelContributionsJson,
|
|
100
|
+
text: {
|
|
101
|
+
message: "<p>This is introtext</p>",
|
|
102
|
+
},
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
expect(groupingPanelFromNewContributionsRawTextMessage.introtext).toBe(
|
|
107
|
+
"<p>This is introtext</p>"
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
const groupingPanelFromNewContributionsSimpleMessage = new CaseViewModel({
|
|
111
|
+
key: "Book",
|
|
112
|
+
data: panelJson,
|
|
113
|
+
contributions: {
|
|
114
|
+
...panelContributionsJson,
|
|
115
|
+
text: "<p>This is introtext</p>",
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
expect(groupingPanelFromNewContributionsSimpleMessage.introtext).toBe(
|
|
120
|
+
"<p>This is introtext</p>"
|
|
121
|
+
);
|
|
122
|
+
});
|
|
33
123
|
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_links": {
|
|
3
|
+
"self": { "href": "/iq-content/case/1/asking-questions" },
|
|
4
|
+
"api_doc": {
|
|
5
|
+
"href": "/api-docs/v3/iq-content/case/(case-id)/asking-questions"
|
|
6
|
+
},
|
|
7
|
+
"contributions": {
|
|
8
|
+
"href": "/contributions/iq-content/case/(case-id)/asking-questions"
|
|
9
|
+
},
|
|
10
|
+
"Decisions": { "href": "/iq-content/case/1/asking-questions/decisions" },
|
|
11
|
+
"taskgroup": [
|
|
12
|
+
{
|
|
13
|
+
"href": "/iq-content/case/1/asking-questions/labels",
|
|
14
|
+
"name": "Labels"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"href": "/iq-content/case/1/asking-questions/properties",
|
|
18
|
+
"name": "Properties"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"href": "/iq-content/case/1/asking-questions/sources",
|
|
22
|
+
"name": "Sources"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"href": "/iq-content/case/1/asking-questions/text-fragments",
|
|
26
|
+
"name": "TextFragments"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"label": "Asking questions",
|
|
3
|
+
"resourcetype": "GroupingPanel",
|
|
4
|
+
"layouthint": ["hint"],
|
|
5
|
+
"texts": [
|
|
6
|
+
{
|
|
7
|
+
"type": "master",
|
|
8
|
+
"text": "<p>This is introtext</p>"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"_links": {
|
|
12
|
+
"panel": [
|
|
13
|
+
{
|
|
14
|
+
"name": "Decisions",
|
|
15
|
+
"label": "Decisions",
|
|
16
|
+
"resourcetype": "InstrumentResultListPanel"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"taskgroup": [
|
|
20
|
+
{
|
|
21
|
+
"name": "Labels",
|
|
22
|
+
"label": "Labels",
|
|
23
|
+
"layouthint": ["not-in-dropdown"],
|
|
24
|
+
"resourcetype": "TaskGroup"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "Properties",
|
|
28
|
+
"label": "Properties",
|
|
29
|
+
"layouthint": ["not-in-dropdown"],
|
|
30
|
+
"resourcetype": "TaskGroup"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "Sources",
|
|
34
|
+
"label": "Sources",
|
|
35
|
+
"layouthint": ["not-in-dropdown"],
|
|
36
|
+
"resourcetype": "TaskGroup"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "TextFragments",
|
|
40
|
+
"label": "Text fragments",
|
|
41
|
+
"layouthint": ["not-in-dropdown"],
|
|
42
|
+
"resourcetype": "TaskGroup"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
package/src/models/types.js
CHANGED
|
@@ -44,6 +44,7 @@ import type LookupOptionsModel from "./lookup/LookupOptionsModel";
|
|
|
44
44
|
import type BaseFilterModel from "./filters/BaseFilterModel";
|
|
45
45
|
import type AttributeCollection from "./attributes/AttributeCollection";
|
|
46
46
|
import type AttributeModel from "./attributes/AttributeModel";
|
|
47
|
+
import type LayoutHintCollection from "./layouthint/LayoutHintCollection";
|
|
47
48
|
|
|
48
49
|
export type ModularUIModel =
|
|
49
50
|
| ApplicationModel
|
|
@@ -192,36 +193,52 @@ export type SectionData = {
|
|
|
192
193
|
subSections: Array<SectionData>,
|
|
193
194
|
};
|
|
194
195
|
|
|
195
|
-
export type
|
|
196
|
-
|
|
196
|
+
export type PropertyElement = {
|
|
197
|
+
propertyElement: {
|
|
197
198
|
label: string,
|
|
198
|
-
|
|
199
|
+
layouthint: Array<string>,
|
|
199
200
|
properties: Array<PropertyData>,
|
|
200
201
|
},
|
|
201
202
|
};
|
|
202
203
|
export type TextFragmentElement = {
|
|
203
204
|
textFragmentElement: {
|
|
204
205
|
label: string,
|
|
205
|
-
|
|
206
|
+
layouthint: Array<string>,
|
|
206
207
|
textfragments: Array<TextFragmentData>,
|
|
207
208
|
},
|
|
208
209
|
};
|
|
209
210
|
export type ContentElement = {
|
|
210
211
|
contentElement: {
|
|
211
212
|
label: string,
|
|
213
|
+
layouthint: Array<string>,
|
|
212
214
|
sections: Array<SectionData>,
|
|
213
215
|
},
|
|
214
216
|
};
|
|
215
217
|
|
|
218
|
+
type PropertyElementMapped = {
|
|
219
|
+
propertyElement: {
|
|
220
|
+
label: string,
|
|
221
|
+
layouthint: LayoutHintCollection,
|
|
222
|
+
properties: Array<PropertyData>,
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
type TextFragmentElementMapped = {
|
|
226
|
+
textFragmentElement: {
|
|
227
|
+
label: string,
|
|
228
|
+
layouthint: LayoutHintCollection,
|
|
229
|
+
textfragments: Array<TextFragmentData>,
|
|
230
|
+
},
|
|
231
|
+
};
|
|
216
232
|
type ContentElementMapped = {
|
|
217
233
|
contentElement: {
|
|
218
234
|
label: string,
|
|
235
|
+
layouthint: LayoutHintCollection,
|
|
219
236
|
sections: Array<SectionModel>,
|
|
220
237
|
},
|
|
221
238
|
};
|
|
222
239
|
|
|
223
240
|
export type ContentAll = Array<
|
|
224
|
-
|
|
241
|
+
PropertyElementMapped | TextFragmentElementMapped | ContentElementMapped
|
|
225
242
|
>;
|
|
226
243
|
|
|
227
244
|
export type ContentData = {
|
|
@@ -229,5 +246,6 @@ export type ContentData = {
|
|
|
229
246
|
label?: string,
|
|
230
247
|
description?: { id?: string, message: string, properties?: Object },
|
|
231
248
|
},
|
|
232
|
-
|
|
249
|
+
label?: string,
|
|
250
|
+
elements: Array<PropertyElement | TextFragmentElement | ContentElement>,
|
|
233
251
|
};
|