@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.
Files changed (143) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/esm/constants/Settings.js +10 -8
  3. package/esm/constants/Settings.js.map +1 -1
  4. package/esm/hooks/useForm.js.map +1 -1
  5. package/esm/hooks/useModelCatalog.js +12 -5
  6. package/esm/hooks/useModelCatalog.js.map +1 -1
  7. package/esm/hooks/useNotification.js.map +1 -1
  8. package/esm/hooks/useRouter.js.map +1 -1
  9. package/esm/models/attributes/AttributeContent.js +132 -30
  10. package/esm/models/attributes/AttributeContent.js.map +1 -1
  11. package/esm/models/attributes/AttributeDataHelper.js +43 -53
  12. package/esm/models/attributes/AttributeDataHelper.js.map +1 -1
  13. package/esm/models/attributes/AttributeModel.js +6 -4
  14. package/esm/models/attributes/AttributeModel.js.map +1 -1
  15. package/esm/models/attributes/ChoiceAttributeOptionModel.js +5 -5
  16. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  17. package/esm/models/attributes/HelptextAttributeModel.js +17 -1
  18. package/esm/models/attributes/HelptextAttributeModel.js.map +1 -1
  19. package/esm/models/caseview/CaseViewModel.js +16 -12
  20. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  21. package/esm/models/content/SectionModel.js +2 -1
  22. package/esm/models/content/SectionModel.js.map +1 -1
  23. package/esm/models/content/SubSectionModel.js +3 -1
  24. package/esm/models/content/SubSectionModel.js.map +1 -1
  25. package/esm/models/form/FormObjectModel.js +7 -1
  26. package/esm/models/form/FormObjectModel.js.map +1 -1
  27. package/esm/models/list/ListDetailModel.js +32 -3
  28. package/esm/models/list/ListDetailModel.js.map +1 -1
  29. package/esm/models/list/ListModel.js +22 -16
  30. package/esm/models/list/ListModel.js.map +1 -1
  31. package/esm/models/panels/GroupingPanelModel.js +19 -17
  32. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  33. package/esm/modularui/ModularUIRequest.js +2 -1
  34. package/esm/modularui/ModularUIRequest.js.map +1 -1
  35. package/esm/utils/helpers/text.js +19 -0
  36. package/esm/utils/helpers/text.js.map +1 -0
  37. package/esm/utils/index.js +2 -1
  38. package/esm/utils/index.js.map +1 -1
  39. package/lib/constants/Settings.js +12 -1
  40. package/lib/constants/Settings.js.flow +9 -5
  41. package/lib/constants/Settings.js.map +1 -1
  42. package/lib/hooks/__tests__/useModelCatalog.spec.js.flow +3 -3
  43. package/lib/hooks/useForm.js.flow +10 -5
  44. package/lib/hooks/useForm.js.map +1 -1
  45. package/lib/hooks/useModelCatalog.js +13 -5
  46. package/lib/hooks/useModelCatalog.js.flow +12 -4
  47. package/lib/hooks/useModelCatalog.js.map +1 -1
  48. package/lib/hooks/useNotification.js.flow +5 -2
  49. package/lib/hooks/useNotification.js.map +1 -1
  50. package/lib/hooks/useRouter.js.flow +12 -5
  51. package/lib/hooks/useRouter.js.map +1 -1
  52. package/lib/models/attributes/AttributeContent.js +142 -31
  53. package/lib/models/attributes/AttributeContent.js.flow +104 -21
  54. package/lib/models/attributes/AttributeContent.js.map +1 -1
  55. package/lib/models/attributes/AttributeDataHelper.js +45 -52
  56. package/lib/models/attributes/AttributeDataHelper.js.flow +31 -32
  57. package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
  58. package/lib/models/attributes/AttributeModel.js +4 -2
  59. package/lib/models/attributes/AttributeModel.js.flow +3 -4
  60. package/lib/models/attributes/AttributeModel.js.map +1 -1
  61. package/lib/models/attributes/ChoiceAttributeOptionModel.js +4 -4
  62. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +5 -8
  63. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  64. package/lib/models/attributes/HelptextAttributeModel.js +17 -1
  65. package/lib/models/attributes/HelptextAttributeModel.js.flow +11 -1
  66. package/lib/models/attributes/HelptextAttributeModel.js.map +1 -1
  67. package/lib/models/attributes/__tests__/AttributeContent.spec.js.flow +137 -93
  68. package/lib/models/attributes/__tests__/AttributeDataHelper.spec.js.flow +177 -88
  69. package/lib/models/attributes/__tests__/HelptextAttributeModel.spec.js.flow +39 -1
  70. package/lib/models/caseview/CaseViewModel.js +17 -13
  71. package/lib/models/caseview/CaseViewModel.js.flow +9 -7
  72. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  73. package/lib/models/caseview/__tests__/CaseViewModel.spec.js.flow +68 -184
  74. package/lib/models/content/SectionModel.js +3 -1
  75. package/lib/models/content/SectionModel.js.flow +2 -1
  76. package/lib/models/content/SectionModel.js.map +1 -1
  77. package/lib/models/content/SubSectionModel.js +4 -1
  78. package/lib/models/content/SubSectionModel.js.flow +3 -1
  79. package/lib/models/content/SubSectionModel.js.map +1 -1
  80. package/lib/models/form/FormObjectModel.js +7 -1
  81. package/lib/models/form/FormObjectModel.js.flow +4 -0
  82. package/lib/models/form/FormObjectModel.js.map +1 -1
  83. package/lib/models/form/__tests__/FormWithContent.spec.js.flow +10 -2
  84. package/lib/models/list/ListDetailModel.js +32 -3
  85. package/lib/models/list/ListDetailModel.js.flow +21 -0
  86. package/lib/models/list/ListDetailModel.js.map +1 -1
  87. package/lib/models/list/ListModel.js +23 -16
  88. package/lib/models/list/ListModel.js.flow +9 -5
  89. package/lib/models/list/ListModel.js.map +1 -1
  90. package/lib/models/list/__tests__/ListDetailModel.spec.js.flow +64 -0
  91. package/lib/models/list/__tests__/ListModel.spec.js.flow +64 -2
  92. package/lib/models/panels/GroupingPanelModel.js +21 -18
  93. package/lib/models/panels/GroupingPanelModel.js.flow +10 -9
  94. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  95. package/lib/models/panels/__tests__/GroupingPanelModel.spec.js.flow +90 -0
  96. package/lib/models/types.js.flow +75 -0
  97. package/lib/modularui/ModularUIRequest.js +2 -1
  98. package/lib/modularui/ModularUIRequest.js.flow +1 -0
  99. package/lib/modularui/ModularUIRequest.js.map +1 -1
  100. package/lib/utils/helpers/text.js +28 -0
  101. package/lib/utils/helpers/text.js.flow +23 -0
  102. package/lib/utils/helpers/text.js.map +1 -0
  103. package/lib/utils/index.js +14 -0
  104. package/lib/utils/index.js.flow +1 -0
  105. package/lib/utils/index.js.map +1 -1
  106. package/package.json +19 -18
  107. package/src/constants/Settings.js +9 -5
  108. package/src/hooks/__tests__/useModelCatalog.spec.js +3 -3
  109. package/src/hooks/useForm.js +10 -5
  110. package/src/hooks/useModelCatalog.js +12 -4
  111. package/src/hooks/useNotification.js +5 -2
  112. package/src/hooks/useRouter.js +12 -5
  113. package/src/models/attributes/AttributeContent.js +104 -21
  114. package/src/models/attributes/AttributeDataHelper.js +31 -32
  115. package/src/models/attributes/AttributeModel.js +3 -4
  116. package/src/models/attributes/ChoiceAttributeOptionModel.js +5 -8
  117. package/src/models/attributes/HelptextAttributeModel.js +11 -1
  118. package/src/models/attributes/__tests__/AttributeContent.spec.js +137 -93
  119. package/src/models/attributes/__tests__/AttributeDataHelper.spec.js +177 -88
  120. package/src/models/attributes/__tests__/HelptextAttributeModel.spec.js +39 -1
  121. package/src/models/caseview/CaseViewModel.js +9 -7
  122. package/src/models/caseview/__tests__/CaseViewModel.spec.js +68 -184
  123. package/src/models/caseview/__tests__/caseview.json +38 -0
  124. package/src/models/caseview/__tests__/caseviewContributions.json +147 -0
  125. package/src/models/content/SectionModel.js +2 -1
  126. package/src/models/content/SubSectionModel.js +3 -1
  127. package/src/models/form/FormObjectModel.js +4 -0
  128. package/src/models/form/__tests__/FormWithContent.spec.js +10 -2
  129. package/src/models/form/__tests__/FormWithContentData.json +177 -80
  130. package/src/models/list/ListDetailModel.js +21 -0
  131. package/src/models/list/ListModel.js +9 -5
  132. package/src/models/list/__tests__/ListDetailModel.spec.js +64 -0
  133. package/src/models/list/__tests__/ListModel.spec.js +64 -2
  134. package/src/models/list/__tests__/caselist-34.contributions.json +1 -1
  135. package/src/models/list/__tests__/listContributions.json +1 -1
  136. package/src/models/panels/GroupingPanelModel.js +10 -9
  137. package/src/models/panels/__tests__/GroupingPanelModel.spec.js +90 -0
  138. package/src/models/panels/__tests__/groupingPanel.json +30 -0
  139. package/src/models/panels/__tests__/groupingPanelContributions.json +46 -0
  140. package/src/models/types.js +75 -0
  141. package/src/modularui/ModularUIRequest.js +1 -0
  142. package/src/utils/helpers/text.js +23 -0
  143. package/src/utils/index.js +1 -0
@@ -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
+ }
@@ -21,6 +21,7 @@ import type ConceptIndexModel from "./concepts/ConceptIndexModel";
21
21
  import type ConceptTypeDetailModel from "./concepts/ConceptTypeDetailModel";
22
22
  import type ContentIndexModel from "./content/ContentIndexModel";
23
23
  import type ContentModel from "./content/ContentModel";
24
+ import type SectionModel from "./content/SectionModel";
24
25
  import type ContentTOCModel from "./content/ContentTOCModel";
25
26
  import type ContentTypeModel from "./content/ContentTypeModel";
26
27
  import type DetailModel from "./detail/DetailModel";
@@ -43,6 +44,7 @@ import type LookupOptionsModel from "./lookup/LookupOptionsModel";
43
44
  import type BaseFilterModel from "./filters/BaseFilterModel";
44
45
  import type AttributeCollection from "./attributes/AttributeCollection";
45
46
  import type AttributeModel from "./attributes/AttributeModel";
47
+ import type LayoutHintCollection from "./layouthint/LayoutHintCollection";
46
48
 
47
49
  export type ModularUIModel =
48
50
  | ApplicationModel
@@ -173,3 +175,76 @@ export type FilesizeConstraintsType = {
173
175
  maxTotalFileSize: ?number,
174
176
  isMaxTotal: boolean,
175
177
  };
178
+
179
+ export type PropertyData = { type: string, label: string, value: string };
180
+ export type TextFragmentData = {
181
+ type: string,
182
+ label: string,
183
+ text: string | { id?: string, message: string, properties?: Object },
184
+ };
185
+ export type SectionData = {
186
+ id: string,
187
+ type: string,
188
+ label?: string,
189
+ number?: string,
190
+ body: string | { id?: string, message: string, properties?: Object },
191
+ _links: { self: { href: string } },
192
+ childSections: Array<SectionData>,
193
+ subSections: Array<SectionData>,
194
+ };
195
+
196
+ export type PropertyElement = {
197
+ propertyElement: {
198
+ label: string,
199
+ layouthint: Array<string>,
200
+ properties: Array<PropertyData>,
201
+ },
202
+ };
203
+ export type TextFragmentElement = {
204
+ textFragmentElement: {
205
+ label: string,
206
+ layouthint: Array<string>,
207
+ textfragments: Array<TextFragmentData>,
208
+ },
209
+ };
210
+ export type ContentElement = {
211
+ contentElement: {
212
+ label: string,
213
+ layouthint: Array<string>,
214
+ sections: Array<SectionData>,
215
+ },
216
+ };
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
+ };
232
+ type ContentElementMapped = {
233
+ contentElement: {
234
+ label: string,
235
+ layouthint: LayoutHintCollection,
236
+ sections: Array<SectionModel>,
237
+ },
238
+ };
239
+
240
+ export type ContentAll = Array<
241
+ PropertyElementMapped | TextFragmentElementMapped | ContentElementMapped
242
+ >;
243
+
244
+ export type ContentData = {
245
+ header: {
246
+ label?: string,
247
+ description?: { id?: string, message: string, properties?: Object },
248
+ },
249
+ elements: Array<PropertyElement | TextFragmentElement | ContentElement>,
250
+ };
@@ -475,6 +475,7 @@ class ModularUIRequest {
475
475
 
476
476
  if (model instanceof FormModel) {
477
477
  const newData = JSON.parse(model.validationData);
478
+ // $FlowFixMe incompatible-call
478
479
  return JSON.stringify(deepmerge(prevData || {}, newData));
479
480
  }
480
481
 
@@ -0,0 +1,23 @@
1
+ // @flow
2
+ import { isPlainObject } from "./objects";
3
+
4
+ /**
5
+ * Handles text that is in the ApplicationMessage form ({ id: string, message: string, properties: object })
6
+ * @param text
7
+ * @returns {string}
8
+ */
9
+ export const retrieveText = (
10
+ text:
11
+ | string
12
+ | { id?: string, message: string, properties?: { [key: string]: any } }
13
+ ): string => {
14
+ if (typeof text === "string") {
15
+ return text;
16
+ }
17
+
18
+ if (isPlainObject(text) && "message" in text) {
19
+ return text.message;
20
+ }
21
+
22
+ return "";
23
+ };
@@ -18,6 +18,7 @@ export * from "./helpers/createHash";
18
18
  export { default as createUUID } from "./helpers/createUUID";
19
19
  export * from "./helpers/sanitizeHtml";
20
20
  export * from "./helpers/objects";
21
+ export * from "./helpers/text";
21
22
 
22
23
  // number
23
24
  export { default as DecimalFormat } from "./number/DecimalFormat";