@beinformed/ui 1.9.0-beta.1 → 1.9.0-beta.13
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 +65 -0
- package/esm/constants/Settings.js +10 -8
- package/esm/constants/Settings.js.map +1 -1
- package/esm/hooks/useForm.js.map +1 -1
- package/esm/hooks/useModelCatalog.js +12 -5
- package/esm/hooks/useModelCatalog.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 +132 -30
- package/esm/models/attributes/AttributeContent.js.map +1 -1
- package/esm/models/attributes/AttributeDataHelper.js +43 -53
- package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
- package/esm/models/attributes/AttributeModel.js +6 -4
- package/esm/models/attributes/AttributeModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeOptionModel.js +5 -5
- package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/esm/models/attributes/HelptextAttributeModel.js +17 -1
- package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/esm/models/caseview/CaseViewModel.js +16 -12
- package/esm/models/caseview/CaseViewModel.js.map +1 -1
- package/esm/models/content/SectionModel.js +2 -1
- package/esm/models/content/SectionModel.js.map +1 -1
- package/esm/models/content/SubSectionModel.js +3 -1
- package/esm/models/content/SubSectionModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +7 -1
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/list/ListDetailModel.js +32 -3
- 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/utils/helpers/text.js +19 -0
- package/esm/utils/helpers/text.js.map +1 -0
- package/esm/utils/index.js +2 -1
- package/esm/utils/index.js.map +1 -1
- package/lib/constants/Settings.js +12 -1
- package/lib/constants/Settings.js.flow +9 -5
- package/lib/constants/Settings.js.map +1 -1
- package/lib/hooks/__tests__/useModelCatalog.spec.js.flow +3 -3
- package/lib/hooks/useForm.js.flow +10 -5
- package/lib/hooks/useForm.js.map +1 -1
- package/lib/hooks/useModelCatalog.js +13 -5
- package/lib/hooks/useModelCatalog.js.flow +12 -4
- package/lib/hooks/useModelCatalog.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 +142 -31
- package/lib/models/attributes/AttributeContent.js.flow +104 -21
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js +45 -52
- package/lib/models/attributes/AttributeDataHelper.js.flow +31 -32
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/AttributeModel.js +4 -2
- package/lib/models/attributes/AttributeModel.js.flow +3 -4
- package/lib/models/attributes/AttributeModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js +4 -4
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -8
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/HelptextAttributeModel.js +17 -1
- package/lib/models/attributes/HelptextAttributeModel.js.flow +11 -1
- package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
- package/lib/models/attributes/__tests__/AttributeContent.spec.js.flow +137 -93
- package/lib/models/attributes/__tests__/AttributeDataHelper.spec.js.flow +177 -88
- package/lib/models/attributes/__tests__/HelptextAttributeModel.spec.js.flow +39 -1
- package/lib/models/caseview/CaseViewModel.js +17 -13
- package/lib/models/caseview/CaseViewModel.js.flow +9 -7
- package/lib/models/caseview/CaseViewModel.js.map +1 -1
- package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +68 -184
- package/lib/models/content/SectionModel.js +3 -1
- package/lib/models/content/SectionModel.js.flow +2 -1
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/content/SubSectionModel.js +4 -1
- package/lib/models/content/SubSectionModel.js.flow +3 -1
- package/lib/models/content/SubSectionModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +7 -1
- package/lib/models/form/FormObjectModel.js.flow +4 -0
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/form/__tests__/FormWithContent.spec.js.flow +10 -2
- package/lib/models/list/ListDetailModel.js +32 -3
- package/lib/models/list/ListDetailModel.js.flow +21 -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 +75 -0
- 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/utils/helpers/text.js +28 -0
- package/lib/utils/helpers/text.js.flow +23 -0
- package/lib/utils/helpers/text.js.map +1 -0
- package/lib/utils/index.js +14 -0
- package/lib/utils/index.js.flow +1 -0
- package/lib/utils/index.js.map +1 -1
- package/package.json +19 -18
- package/src/constants/Settings.js +9 -5
- package/src/hooks/__tests__/useModelCatalog.spec.js +3 -3
- package/src/hooks/useForm.js +10 -5
- package/src/hooks/useModelCatalog.js +12 -4
- package/src/hooks/useNotification.js +5 -2
- package/src/hooks/useRouter.js +12 -5
- package/src/models/attributes/AttributeContent.js +104 -21
- package/src/models/attributes/AttributeDataHelper.js +31 -32
- package/src/models/attributes/AttributeModel.js +3 -4
- package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -8
- package/src/models/attributes/HelptextAttributeModel.js +11 -1
- package/src/models/attributes/__tests__/AttributeContent.spec.js +137 -93
- package/src/models/attributes/__tests__/AttributeDataHelper.spec.js +177 -88
- package/src/models/attributes/__tests__/HelptextAttributeModel.spec.js +39 -1
- package/src/models/caseview/CaseViewModel.js +9 -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/content/SectionModel.js +2 -1
- package/src/models/content/SubSectionModel.js +3 -1
- package/src/models/form/FormObjectModel.js +4 -0
- package/src/models/form/__tests__/FormWithContent.spec.js +10 -2
- package/src/models/form/__tests__/FormWithContentData.json +177 -80
- package/src/models/list/ListDetailModel.js +21 -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 +75 -0
- package/src/modularui/ModularUIRequest.js +1 -0
- package/src/utils/helpers/text.js +23 -0
- package/src/utils/index.js +1 -0
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// @flow
|
|
2
|
-
import {
|
|
2
|
+
import { retrieveText } from "../../utils/helpers/text";
|
|
3
|
+
import { hasAllContentInData } from "../../constants/Settings";
|
|
3
4
|
import SectionModel from "../content/SectionModel";
|
|
4
5
|
|
|
6
|
+
import type {
|
|
7
|
+
ContentData,
|
|
8
|
+
PropertyData,
|
|
9
|
+
TextFragmentData,
|
|
10
|
+
ContentAll,
|
|
11
|
+
} from "../types";
|
|
5
12
|
import type SubSectionModel from "../content/SubSectionModel";
|
|
6
|
-
|
|
7
|
-
type TextFragmentData = { type: string, label: string, text: string };
|
|
8
|
-
type SectionData = { type: string, label?: string, body: string };
|
|
9
|
-
type ContentData = {
|
|
10
|
-
label: string | null,
|
|
11
|
-
properties: Array<PropertyData> | null,
|
|
12
|
-
textfragments: Array<TextFragmentData> | null,
|
|
13
|
-
sections: Array<SectionData> | null,
|
|
14
|
-
};
|
|
13
|
+
import LayoutHintCollection from "../layouthint/LayoutHintCollection";
|
|
15
14
|
|
|
16
15
|
class AttributeContent {
|
|
17
16
|
_content: ?ContentData;
|
|
@@ -23,32 +22,121 @@ class AttributeContent {
|
|
|
23
22
|
/**
|
|
24
23
|
*/
|
|
25
24
|
get fromData(): boolean {
|
|
26
|
-
return
|
|
25
|
+
return hasAllContentInData();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
*/
|
|
30
|
+
get header(): {
|
|
31
|
+
label: ?string,
|
|
32
|
+
description: ?string,
|
|
33
|
+
} {
|
|
34
|
+
const label = this._content?.header?.label;
|
|
35
|
+
const description = this._content?.header?.description?.message;
|
|
36
|
+
|
|
37
|
+
return { label, description };
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
*/
|
|
42
|
+
get elements(): ContentAll {
|
|
43
|
+
if (this._content?.elements) {
|
|
44
|
+
return this._content.elements?.map((element) => {
|
|
45
|
+
if ("propertyElement" in element) {
|
|
46
|
+
// $FlowIssue
|
|
47
|
+
const { label, layouthint, properties } = element.propertyElement;
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
propertyElement: {
|
|
51
|
+
label,
|
|
52
|
+
layouthint: new LayoutHintCollection(layouthint),
|
|
53
|
+
properties,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if ("textFragmentElement" in element) {
|
|
59
|
+
const { label, layouthint, textfragments } =
|
|
60
|
+
// $FlowIssue
|
|
61
|
+
element.textFragmentElement;
|
|
62
|
+
return {
|
|
63
|
+
textFragmentElement: {
|
|
64
|
+
label,
|
|
65
|
+
layouthint: new LayoutHintCollection(layouthint),
|
|
66
|
+
textfragments: textfragments.map((textfragment) => ({
|
|
67
|
+
...textfragment,
|
|
68
|
+
text: retrieveText(textfragment.text),
|
|
69
|
+
})),
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if ("contentElement" in element) {
|
|
75
|
+
// $FlowIssue
|
|
76
|
+
const { label, layouthint, sections } = element.contentElement;
|
|
77
|
+
return {
|
|
78
|
+
contentElement: {
|
|
79
|
+
label,
|
|
80
|
+
layouthint: new LayoutHintCollection(layouthint),
|
|
81
|
+
sections: sections.map(
|
|
82
|
+
(section) => new SectionModel(section, null)
|
|
83
|
+
),
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// $FlowIssue
|
|
89
|
+
return element;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return [];
|
|
27
94
|
}
|
|
28
95
|
|
|
29
96
|
/**
|
|
30
97
|
*/
|
|
31
98
|
get label(): ?string {
|
|
32
|
-
return this.
|
|
99
|
+
return this.header.label;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
*/
|
|
104
|
+
get description(): ?string {
|
|
105
|
+
return this.header.description;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
*/
|
|
110
|
+
getContentElements<T>(elementName: string, collectionName: string): Array<T> {
|
|
111
|
+
return this.elements
|
|
112
|
+
.filter((element) => elementName in element)
|
|
113
|
+
.map((element) => element[elementName][collectionName])
|
|
114
|
+
.flat();
|
|
33
115
|
}
|
|
34
116
|
|
|
35
117
|
/**
|
|
36
118
|
*/
|
|
37
119
|
get properties(): Array<PropertyData> {
|
|
38
|
-
return this.
|
|
120
|
+
return this.getContentElements<PropertyData>(
|
|
121
|
+
"propertyElement",
|
|
122
|
+
"properties"
|
|
123
|
+
);
|
|
39
124
|
}
|
|
40
125
|
|
|
41
126
|
/**
|
|
42
127
|
* Get concept properties by id
|
|
43
128
|
*/
|
|
44
129
|
getConceptPropertiesByIds(ids: Array<string>): Array<PropertyData> {
|
|
45
|
-
return this.properties.filter((property) => ids.includes(property.
|
|
130
|
+
return this.properties.filter((property) => ids.includes(property.type));
|
|
46
131
|
}
|
|
47
132
|
|
|
48
133
|
/**
|
|
49
134
|
*/
|
|
50
135
|
get textfragments(): Array<TextFragmentData> {
|
|
51
|
-
return this.
|
|
136
|
+
return this.getContentElements<TextFragmentData>(
|
|
137
|
+
"textFragmentElement",
|
|
138
|
+
"textfragments"
|
|
139
|
+
);
|
|
52
140
|
}
|
|
53
141
|
|
|
54
142
|
/**
|
|
@@ -63,12 +151,7 @@ class AttributeContent {
|
|
|
63
151
|
/**
|
|
64
152
|
*/
|
|
65
153
|
get sections(): Array<SectionModel> {
|
|
66
|
-
|
|
67
|
-
return this._content.sections.map(
|
|
68
|
-
(section) => new SectionModel(section, null)
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
return [];
|
|
154
|
+
return this.getContentElements<SectionModel>("contentElement", "sections");
|
|
72
155
|
}
|
|
73
156
|
|
|
74
157
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["AttributeContent","content","_content","
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/AttributeContent.js"],"names":["AttributeContent","content","_content","label","header","description","message","elements","element","propertyElement","layouthint","properties","LayoutHintCollection","textFragmentElement","textfragments","textfragment","text","contentElement","sections","section","SectionModel","elementName","collectionName","getContentElements","ids","property","type","keys","types","referredSections","push","getReferredSections"],"mappings":"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","sourcesContent":["// @flow\nimport { retrieveText } from \"../../utils/helpers/text\";\nimport { hasAllContentInData } from \"../../constants/Settings\";\nimport SectionModel from \"../content/SectionModel\";\n\nimport type {\n ContentData,\n PropertyData,\n TextFragmentData,\n ContentAll,\n} from \"../types\";\nimport type SubSectionModel from \"../content/SubSectionModel\";\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\nclass AttributeContent {\n _content: ?ContentData;\n\n constructor(content: ?ContentData) {\n this._content = content;\n }\n\n /**\n */\n get fromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get header(): {\n label: ?string,\n description: ?string,\n } {\n const label = this._content?.header?.label;\n const description = this._content?.header?.description?.message;\n\n return { label, description };\n }\n\n /**\n */\n get elements(): ContentAll {\n if (this._content?.elements) {\n return this._content.elements?.map((element) => {\n if (\"propertyElement\" in element) {\n // $FlowIssue\n const { label, layouthint, properties } = element.propertyElement;\n\n return {\n propertyElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n properties,\n },\n };\n }\n\n if (\"textFragmentElement\" in element) {\n const { label, layouthint, textfragments } =\n // $FlowIssue\n element.textFragmentElement;\n return {\n textFragmentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n textfragments: textfragments.map((textfragment) => ({\n ...textfragment,\n text: retrieveText(textfragment.text),\n })),\n },\n };\n }\n\n if (\"contentElement\" in element) {\n // $FlowIssue\n const { label, layouthint, sections } = element.contentElement;\n return {\n contentElement: {\n label,\n layouthint: new LayoutHintCollection(layouthint),\n sections: sections.map(\n (section) => new SectionModel(section, null)\n ),\n },\n };\n }\n\n // $FlowIssue\n return element;\n });\n }\n\n return [];\n }\n\n /**\n */\n get label(): ?string {\n return this.header.label;\n }\n\n /**\n */\n get description(): ?string {\n return this.header.description;\n }\n\n /**\n */\n getContentElements<T>(elementName: string, collectionName: string): Array<T> {\n return this.elements\n .filter((element) => elementName in element)\n .map((element) => element[elementName][collectionName])\n .flat();\n }\n\n /**\n */\n get properties(): Array<PropertyData> {\n return this.getContentElements<PropertyData>(\n \"propertyElement\",\n \"properties\"\n );\n }\n\n /**\n * Get concept properties by id\n */\n getConceptPropertiesByIds(ids: Array<string>): Array<PropertyData> {\n return this.properties.filter((property) => ids.includes(property.type));\n }\n\n /**\n */\n get textfragments(): Array<TextFragmentData> {\n return this.getContentElements<TextFragmentData>(\n \"textFragmentElement\",\n \"textfragments\"\n );\n }\n\n /**\n * Get concept text fragments by type\n */\n getTextFragmentByKeys(keys: Array<string>): Array<TextFragmentData> {\n return this.textfragments.filter((textfragment) =>\n keys.includes(textfragment.type)\n );\n }\n\n /**\n */\n get sections(): Array<SectionModel> {\n return this.getContentElements<SectionModel>(\"contentElement\", \"sections\");\n }\n\n /**\n */\n getSectionsByType(types: Array<string>): Array<SectionModel> {\n return this.sections.filter((section) => types.includes(section.type));\n }\n\n /**\n */\n getReferredSections(): Array<SectionModel | SubSectionModel> {\n const referredSections = [];\n\n for (const section of this.sections) {\n referredSections.push(...section.getReferredSections());\n }\n\n return referredSections;\n }\n}\n\nexport default AttributeContent;\n"],"file":"AttributeContent.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _Object$
|
|
3
|
+
var _Object$keys2 = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
|
4
4
|
|
|
5
5
|
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
|
6
6
|
|
|
@@ -19,12 +19,16 @@ exports.default = void 0;
|
|
|
19
19
|
|
|
20
20
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
21
21
|
|
|
22
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
23
|
+
|
|
22
24
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
23
25
|
|
|
24
26
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
|
|
25
27
|
|
|
26
28
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
27
29
|
|
|
30
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
31
|
+
|
|
28
32
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
|
|
29
33
|
|
|
30
34
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
|
|
@@ -37,7 +41,7 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
|
37
41
|
|
|
38
42
|
var _objects = require("../../utils/helpers/objects");
|
|
39
43
|
|
|
40
|
-
function ownKeys(object, enumerableOnly) { var keys = _Object$
|
|
44
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) { symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
41
45
|
|
|
42
46
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { Object.defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
43
47
|
|
|
@@ -88,7 +92,17 @@ var AttributeDataHelper = /*#__PURE__*/function () {
|
|
|
88
92
|
});
|
|
89
93
|
}
|
|
90
94
|
} else if ((0, _objects.has)(data, parentKey) && (0, _objects.isPlainObject)(data[parentKey])) {
|
|
91
|
-
|
|
95
|
+
var _data$content;
|
|
96
|
+
|
|
97
|
+
var parentData = data[parentKey];
|
|
98
|
+
|
|
99
|
+
if ((0, _objects.isPlainObject)(parentData) && (_data$content = data.content) !== null && _data$content !== void 0 && _data$content[childKey]) {
|
|
100
|
+
return _objectSpread(_objectSpread({}, parentData), {}, {
|
|
101
|
+
content: data.content[childKey].content
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return parentData;
|
|
92
106
|
} else if ((0, _objects.has)(data, childKey) && (0, _objects.isPlainObject)(data[childKey])) {
|
|
93
107
|
return data[childKey];
|
|
94
108
|
}
|
|
@@ -106,9 +120,19 @@ var AttributeDataHelper = /*#__PURE__*/function () {
|
|
|
106
120
|
key: "createChild",
|
|
107
121
|
value: function createChild(data, childData, keyObject) {
|
|
108
122
|
var dynamicschema = (0, _objects.isPlainObject)(data) && !Array.isArray(data) ? data.dynamicschema : undefined;
|
|
123
|
+
var dynamicschemaId = null;
|
|
124
|
+
|
|
125
|
+
if (keyObject.dynamicschemaId) {
|
|
126
|
+
dynamicschemaId = keyObject.dynamicschemaId;
|
|
127
|
+
} else if ((0, _objects.isPlainObject)(data) && typeof data.key === "string" && keyObject.key) {
|
|
128
|
+
var _context2;
|
|
129
|
+
|
|
130
|
+
dynamicschemaId = (0, _concat.default)(_context2 = "".concat(data.key, ".")).call(_context2, keyObject.key);
|
|
131
|
+
}
|
|
132
|
+
|
|
109
133
|
return new AttributeDataHelper(_objectSpread(_objectSpread({}, childData), {}, {
|
|
110
134
|
dynamicschema: dynamicschema,
|
|
111
|
-
dynamicschemaId:
|
|
135
|
+
dynamicschemaId: dynamicschemaId
|
|
112
136
|
}), keyObject.key, keyObject.children);
|
|
113
137
|
}
|
|
114
138
|
/**
|
|
@@ -123,9 +147,9 @@ var AttributeDataHelper = /*#__PURE__*/function () {
|
|
|
123
147
|
var childrenIsArray = Array.isArray(this.value);
|
|
124
148
|
|
|
125
149
|
if (childrenIsArray) {
|
|
126
|
-
var
|
|
150
|
+
var _context3;
|
|
127
151
|
|
|
128
|
-
return (0, _map.default)(
|
|
152
|
+
return (0, _map.default)(_context3 = this.value).call(_context3, function (value) {
|
|
129
153
|
return (0, _map.default)(childrenKeys).call(childrenKeys, function (keyObject) {
|
|
130
154
|
var childData = _this.childData(value, _this.key, keyObject.key);
|
|
131
155
|
|
|
@@ -163,11 +187,11 @@ var AttributeDataHelper = /*#__PURE__*/function () {
|
|
|
163
187
|
}
|
|
164
188
|
|
|
165
189
|
if (Array.isArray(attribute.options)) {
|
|
166
|
-
var
|
|
190
|
+
var _context4, _context5;
|
|
167
191
|
|
|
168
|
-
return (0, _map.default)(
|
|
192
|
+
return (0, _map.default)(_context4 = (0, _filter.default)(_context5 = attribute.options).call(_context5, function (option) {
|
|
169
193
|
return option.selected;
|
|
170
|
-
})).call(
|
|
194
|
+
})).call(_context4, function (option) {
|
|
171
195
|
return option.code || option.key;
|
|
172
196
|
});
|
|
173
197
|
}
|
|
@@ -291,45 +315,20 @@ var AttributeDataHelper = /*#__PURE__*/function () {
|
|
|
291
315
|
return this._children || [];
|
|
292
316
|
}
|
|
293
317
|
/**
|
|
294
|
-
*
|
|
295
318
|
*/
|
|
296
319
|
|
|
297
320
|
}, {
|
|
298
|
-
key: "
|
|
321
|
+
key: "content",
|
|
299
322
|
get: function get() {
|
|
300
|
-
|
|
323
|
+
if (this._attribute.content) {
|
|
324
|
+
var pickedContent = (0, _pick.default)(this._attribute.content, ["header", "elements", "layouthint"]);
|
|
301
325
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
}, {
|
|
308
|
-
key: "properties",
|
|
309
|
-
get: function get() {
|
|
310
|
-
var _this$_attribute$prop;
|
|
311
|
-
|
|
312
|
-
return (_this$_attribute$prop = this._attribute.properties) !== null && _this$_attribute$prop !== void 0 ? _this$_attribute$prop : null;
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
*/
|
|
316
|
-
|
|
317
|
-
}, {
|
|
318
|
-
key: "textfragments",
|
|
319
|
-
get: function get() {
|
|
320
|
-
var _this$_attribute$text;
|
|
321
|
-
|
|
322
|
-
return (_this$_attribute$text = this._attribute.textfragments) !== null && _this$_attribute$text !== void 0 ? _this$_attribute$text : null;
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
*/
|
|
326
|
-
|
|
327
|
-
}, {
|
|
328
|
-
key: "sections",
|
|
329
|
-
get: function get() {
|
|
330
|
-
var _this$_attribute$sect;
|
|
326
|
+
if ((0, _keys.default)(pickedContent).length > 0) {
|
|
327
|
+
return pickedContent;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
331
330
|
|
|
332
|
-
return
|
|
331
|
+
return null;
|
|
333
332
|
}
|
|
334
333
|
/**
|
|
335
334
|
*/
|
|
@@ -337,9 +336,9 @@ var AttributeDataHelper = /*#__PURE__*/function () {
|
|
|
337
336
|
}, {
|
|
338
337
|
key: "getData",
|
|
339
338
|
value: function getData() {
|
|
340
|
-
var
|
|
339
|
+
var _context6;
|
|
341
340
|
|
|
342
|
-
|
|
341
|
+
return {
|
|
343
342
|
key: this.key,
|
|
344
343
|
value: this.value,
|
|
345
344
|
static: this.static,
|
|
@@ -350,19 +349,13 @@ var AttributeDataHelper = /*#__PURE__*/function () {
|
|
|
350
349
|
message: this.message,
|
|
351
350
|
isResult: this.isResult,
|
|
352
351
|
referenceDate: this.referenceDate,
|
|
353
|
-
children: (0, _map.default)(
|
|
352
|
+
children: (0, _map.default)(_context6 = this.children).call(_context6, function (child) {
|
|
354
353
|
return Array.isArray(child) ? (0, _map.default)(child).call(child, function (subChild) {
|
|
355
354
|
return subChild.getData();
|
|
356
355
|
}) : child.getData();
|
|
357
356
|
}),
|
|
358
|
-
content:
|
|
359
|
-
label: this.label,
|
|
360
|
-
properties: this.properties,
|
|
361
|
-
textfragments: this.textfragments,
|
|
362
|
-
sections: this.sections
|
|
363
|
-
}
|
|
357
|
+
content: this.content
|
|
364
358
|
};
|
|
365
|
-
return data;
|
|
366
359
|
}
|
|
367
360
|
}]);
|
|
368
361
|
return AttributeDataHelper;
|
|
@@ -63,7 +63,11 @@ class AttributeDataHelper {
|
|
|
63
63
|
);
|
|
64
64
|
}
|
|
65
65
|
} else if (has(data, parentKey) && isPlainObject(data[parentKey])) {
|
|
66
|
-
|
|
66
|
+
const parentData = data[parentKey];
|
|
67
|
+
if (isPlainObject(parentData) && data.content?.[childKey]) {
|
|
68
|
+
return { ...parentData, content: data.content[childKey].content };
|
|
69
|
+
}
|
|
70
|
+
return parentData;
|
|
67
71
|
} else if (has(data, childKey) && isPlainObject(data[childKey])) {
|
|
68
72
|
return data[childKey];
|
|
69
73
|
}
|
|
@@ -87,13 +91,22 @@ class AttributeDataHelper {
|
|
|
87
91
|
? data.dynamicschema
|
|
88
92
|
: undefined;
|
|
89
93
|
|
|
94
|
+
let dynamicschemaId = null;
|
|
95
|
+
if (keyObject.dynamicschemaId) {
|
|
96
|
+
dynamicschemaId = keyObject.dynamicschemaId;
|
|
97
|
+
} else if (
|
|
98
|
+
isPlainObject(data) &&
|
|
99
|
+
typeof data.key === "string" &&
|
|
100
|
+
keyObject.key
|
|
101
|
+
) {
|
|
102
|
+
dynamicschemaId = `${data.key}.${keyObject.key}`;
|
|
103
|
+
}
|
|
104
|
+
|
|
90
105
|
return new AttributeDataHelper(
|
|
91
106
|
{
|
|
92
107
|
...childData,
|
|
93
108
|
dynamicschema,
|
|
94
|
-
dynamicschemaId
|
|
95
|
-
? keyObject.dynamicschemaId
|
|
96
|
-
: void 0,
|
|
109
|
+
dynamicschemaId,
|
|
97
110
|
},
|
|
98
111
|
keyObject.key,
|
|
99
112
|
keyObject.children
|
|
@@ -247,35 +260,28 @@ class AttributeDataHelper {
|
|
|
247
260
|
return this._children || [];
|
|
248
261
|
}
|
|
249
262
|
|
|
250
|
-
/**
|
|
251
|
-
*
|
|
252
|
-
*/
|
|
253
|
-
get label(): string {
|
|
254
|
-
return this._attribute.label ?? null;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
263
|
/**
|
|
258
264
|
*/
|
|
259
|
-
get
|
|
260
|
-
|
|
261
|
-
|
|
265
|
+
get content(): Object {
|
|
266
|
+
if (this._attribute.content) {
|
|
267
|
+
const pickedContent = pick(this._attribute.content, [
|
|
268
|
+
"header",
|
|
269
|
+
"elements",
|
|
270
|
+
"layouthint",
|
|
271
|
+
]);
|
|
262
272
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
}
|
|
273
|
+
if (Object.keys(pickedContent).length > 0) {
|
|
274
|
+
return pickedContent;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
268
277
|
|
|
269
|
-
|
|
270
|
-
*/
|
|
271
|
-
get sections(): Array<Object> | null {
|
|
272
|
-
return this._attribute.sections ?? null;
|
|
278
|
+
return null;
|
|
273
279
|
}
|
|
274
280
|
|
|
275
281
|
/**
|
|
276
282
|
*/
|
|
277
283
|
getData(): Object {
|
|
278
|
-
|
|
284
|
+
return {
|
|
279
285
|
key: this.key,
|
|
280
286
|
value: this.value,
|
|
281
287
|
static: this.static,
|
|
@@ -291,15 +297,8 @@ class AttributeDataHelper {
|
|
|
291
297
|
? child.map((subChild) => subChild.getData())
|
|
292
298
|
: child.getData()
|
|
293
299
|
),
|
|
294
|
-
content:
|
|
295
|
-
label: this.label,
|
|
296
|
-
properties: this.properties,
|
|
297
|
-
textfragments: this.textfragments,
|
|
298
|
-
sections: this.sections,
|
|
299
|
-
},
|
|
300
|
+
content: this.content,
|
|
300
301
|
};
|
|
301
|
-
|
|
302
|
-
return data;
|
|
303
302
|
}
|
|
304
303
|
}
|
|
305
304
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"names":["AttributeDataHelper","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","_links","undefined","_children","createChildren","parentKey","childKey","elements","element","childData","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","createChild","attribute","suggestions","suggestion","options","option","selected","code","static","attrDS","message","isResult","referenceDate","label","properties","textfragments","sections","links","child","subChild","getData","content"],"mappings":"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","sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = cloneDeep(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n this._value = data[key] === undefined ? this.getValue(data) : data[key];\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n return data[parentKey];\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId: keyObject.dynamicschemaId\n ? keyObject.dynamicschemaId\n : void 0,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n *\n */\n get label(): string {\n return this._attribute.label ?? null;\n }\n\n /**\n */\n get properties(): Array<Object> | null {\n return this._attribute.properties ?? null;\n }\n\n /**\n */\n get textfragments(): Array<Object> | null {\n return this._attribute.textfragments ?? null;\n }\n\n /**\n */\n get sections(): Array<Object> | null {\n return this._attribute.sections ?? null;\n }\n\n /**\n */\n getData(): Object {\n const data = {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: {\n label: this.label,\n properties: this.properties,\n textfragments: this.textfragments,\n sections: this.sections,\n },\n };\n\n return data;\n }\n}\n\nexport default AttributeDataHelper;\n"],"file":"AttributeDataHelper.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/models/attributes/AttributeDataHelper.js"],"names":["AttributeDataHelper","data","key","childrenKeys","_key","Array","isArray","_attribute","attr","elementid","name","param","_value","getValue","attributeData","_links","undefined","_children","createChildren","parentKey","childKey","elements","element","parentData","content","childData","keyObject","dynamicschema","dynamicschemaId","children","childrenIsArray","value","createChild","attribute","suggestions","suggestion","options","option","selected","code","static","attrDS","message","isResult","referenceDate","pickedContent","length","links","child","subChild","getData"],"mappings":"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","sourcesContent":["// @flow\nimport cloneDeep from \"lodash/cloneDeep\";\nimport pick from \"lodash/pick\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\n/**\n * This util helps to normalize various attribute data formats available in the modular ui.\n * It fixes differences in choice attributes with dynamic schema's, links on download attributes, composites with various children, etc\n *\n * @private\n */\nclass AttributeDataHelper {\n _key: string;\n _attribute: Object;\n _value: any;\n _children: Array<AttributeDataHelper>;\n\n /**\n */\n constructor(\n data: Object | Array<Object>,\n key: string,\n childrenKeys: Array<Object>\n ) {\n this._key = key;\n\n if (Array.isArray(data)) {\n this._attribute =\n data.find(\n (attr) =>\n attr.elementid === key || attr.name === key || attr.param === key\n ) || {};\n this._value = this.getValue(this._attribute);\n } else {\n const attributeData = cloneDeep(data);\n attributeData._links = pick(data._links, [\n \"concept\",\n \"download\",\n \"lookupOptions\",\n \"lookupList\",\n ]);\n\n this._attribute = attributeData;\n\n this._value = data[key] === undefined ? this.getValue(data) : data[key];\n }\n\n this._children = this.createChildren(data, childrenKeys);\n }\n\n /**\n */\n childData(\n data: Object | Array<Object>,\n parentKey: string,\n childKey: string\n ): Object {\n if (Array.isArray(data)) {\n if (Array.isArray(this._attribute.elements)) {\n return this._attribute.elements.find(\n (element) => element.elementid === childKey\n );\n }\n } else if (has(data, parentKey) && isPlainObject(data[parentKey])) {\n const parentData = data[parentKey];\n if (isPlainObject(parentData) && data.content?.[childKey]) {\n return { ...parentData, content: data.content[childKey].content };\n }\n return parentData;\n } else if (has(data, childKey) && isPlainObject(data[childKey])) {\n return data[childKey];\n }\n\n if (isPlainObject(data)) {\n return data;\n }\n\n return {};\n }\n\n /**\n */\n createChild(\n data: Object | Array<Object>,\n childData: Object,\n keyObject: Object\n ): AttributeDataHelper {\n const dynamicschema =\n isPlainObject(data) && !Array.isArray(data)\n ? data.dynamicschema\n : undefined;\n\n let dynamicschemaId = null;\n if (keyObject.dynamicschemaId) {\n dynamicschemaId = keyObject.dynamicschemaId;\n } else if (\n isPlainObject(data) &&\n typeof data.key === \"string\" &&\n keyObject.key\n ) {\n dynamicschemaId = `${data.key}.${keyObject.key}`;\n }\n\n return new AttributeDataHelper(\n {\n ...childData,\n dynamicschema,\n dynamicschemaId,\n },\n keyObject.key,\n keyObject.children\n );\n }\n\n /**\n */\n createChildren(\n data: Object | Array<Object>,\n childrenKeys: Array<Object> = []\n ): Array<AttributeDataHelper> {\n const childrenIsArray = Array.isArray(this.value);\n\n if (childrenIsArray) {\n return this.value.map((value) =>\n childrenKeys.map((keyObject) => {\n const childData = this.childData(value, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n })\n );\n }\n\n return childrenKeys.map((keyObject) => {\n const childData = this.childData(data, this.key, keyObject.key);\n\n return this.createChild(data, childData, keyObject);\n });\n }\n\n /**\n */\n getValue(attribute: Object): any {\n if (\"values\" in attribute) {\n return attribute.values;\n }\n\n if (\"value\" in attribute) {\n return attribute.value;\n }\n\n if (\"suggestions\" in attribute) {\n return attribute.suggestions;\n }\n\n if (\"suggestion\" in attribute) {\n return attribute.suggestion;\n }\n\n if (Array.isArray(attribute.options)) {\n return attribute.options\n .filter((option) => option.selected)\n .map((option) => option.code || option.key);\n }\n\n return null;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n get value(): any {\n return this._value;\n }\n\n /**\n */\n get static(): boolean {\n return this._attribute.static || false;\n }\n\n /**\n */\n get links(): any {\n return this._attribute._links || void 0;\n }\n\n /**\n */\n get dynamicschemaId(): string {\n return this._attribute.dynamicschemaId || this.key;\n }\n\n /*\n retrieve the dynamischema by the dynamischemaId\n mentioned in the contributions of the attribute\n */\n /**\n */\n get dynamicschema(): any {\n const { dynamicschema } = this._attribute;\n if (!dynamicschema) {\n return void 0;\n }\n\n if (Array.isArray(dynamicschema)) {\n return dynamicschema;\n } else if (dynamicschema[this.dynamicschemaId]) {\n const attrDS = dynamicschema[this.dynamicschemaId];\n return attrDS.map((attr) => {\n if (attr.elements) {\n return {\n ...attr,\n elements: {\n ...attr.elements,\n dynamicschema,\n },\n };\n }\n\n return attr;\n });\n }\n\n return void 0;\n }\n\n /**\n */\n get options(): any {\n return this._attribute.options || void 0;\n }\n\n /**\n */\n get message(): any {\n return this._attribute.message || void 0;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._attribute.isResult || false;\n }\n\n /**\n */\n get referenceDate(): any {\n return this._attribute.referenceDate || void 0;\n }\n\n /**\n */\n get children(): Array<AttributeDataHelper> {\n return this._children || [];\n }\n\n /**\n */\n get content(): Object {\n if (this._attribute.content) {\n const pickedContent = pick(this._attribute.content, [\n \"header\",\n \"elements\",\n \"layouthint\",\n ]);\n\n if (Object.keys(pickedContent).length > 0) {\n return pickedContent;\n }\n }\n\n return null;\n }\n\n /**\n */\n getData(): Object {\n return {\n key: this.key,\n value: this.value,\n static: this.static,\n _links: this.links,\n dynamicschema: this.dynamicschema,\n dynamicschemaId: this.dynamicschemaId,\n options: this.options,\n message: this.message,\n isResult: this.isResult,\n referenceDate: this.referenceDate,\n children: this.children.map((child) =>\n Array.isArray(child)\n ? child.map((subChild) => subChild.getData())\n : child.getData()\n ),\n content: this.content,\n };\n }\n}\n\nexport default AttributeDataHelper;\n"],"file":"AttributeDataHelper.js"}
|
|
@@ -263,7 +263,9 @@ var AttributeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
263
263
|
key: "getContentConfiguredLabel",
|
|
264
264
|
value: function getContentConfiguredLabel(contentConfiguration) {
|
|
265
265
|
if (this.hasContentFromData) {
|
|
266
|
-
|
|
266
|
+
var _this$content$label;
|
|
267
|
+
|
|
268
|
+
return (_this$content$label = this.content.label) !== null && _this$content$label !== void 0 ? _this$content$label : this.label;
|
|
267
269
|
}
|
|
268
270
|
|
|
269
271
|
var configuredLabelProperties = contentConfiguration && contentConfiguration.labelConfig.length > 0 ? contentConfiguration.labelConfig[0].types : [];
|
|
@@ -1051,7 +1053,7 @@ var AttributeModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
1051
1053
|
}, {
|
|
1052
1054
|
key: "hasContentFromData",
|
|
1053
1055
|
get: function get() {
|
|
1054
|
-
return (0, _Settings.
|
|
1056
|
+
return (0, _Settings.hasAllContentInData)();
|
|
1055
1057
|
}
|
|
1056
1058
|
/**
|
|
1057
1059
|
*/
|
|
@@ -14,12 +14,11 @@ import ConceptDetailModel from "../concepts/ConceptDetailModel";
|
|
|
14
14
|
|
|
15
15
|
import { MANDATORY, DISABLED } from "../../constants/LayoutHints";
|
|
16
16
|
import {
|
|
17
|
-
ALL_CONTENT_IN_DATA_SETTING,
|
|
18
17
|
ATTRIBUTE_WIDTH,
|
|
19
18
|
TIMEVERSION_FILTER_NAME,
|
|
20
19
|
} from "../../constants/Constants";
|
|
21
20
|
|
|
22
|
-
import { getSetting } from "../../constants/Settings";
|
|
21
|
+
import { getSetting, hasAllContentInData } from "../../constants/Settings";
|
|
23
22
|
|
|
24
23
|
import {
|
|
25
24
|
IllegalArgumentException,
|
|
@@ -228,7 +227,7 @@ export default class AttributeModel extends BaseModel {
|
|
|
228
227
|
contentConfiguration: ?ContentConfigurationElements
|
|
229
228
|
): string {
|
|
230
229
|
if (this.hasContentFromData) {
|
|
231
|
-
return this.label
|
|
230
|
+
return this.content.label ?? this.label;
|
|
232
231
|
}
|
|
233
232
|
|
|
234
233
|
const configuredLabelProperties =
|
|
@@ -952,7 +951,7 @@ export default class AttributeModel extends BaseModel {
|
|
|
952
951
|
* Indicates if content comes from the data service
|
|
953
952
|
*/
|
|
954
953
|
get hasContentFromData(): boolean {
|
|
955
|
-
return
|
|
954
|
+
return hasAllContentInData();
|
|
956
955
|
}
|
|
957
956
|
|
|
958
957
|
/**
|