@beinformed/ui 1.57.2 → 1.57.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.
Files changed (430) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/esm/constants/Settings.js +14 -6
  3. package/esm/constants/Settings.js.map +1 -1
  4. package/esm/hooks/useAuthentication.js +3 -3
  5. package/esm/hooks/useAuthentication.js.map +1 -1
  6. package/esm/hooks/useModelCatalog.js.map +1 -1
  7. package/esm/hooks/useModularUIBasic.js +1 -1
  8. package/esm/hooks/useModularUIBasic.js.map +1 -1
  9. package/esm/hooks/useModularUIModel.js.map +1 -1
  10. package/esm/models/actions/ActionCollection.js +2 -3
  11. package/esm/models/actions/ActionCollection.js.map +1 -1
  12. package/esm/models/actions/ActionModel.js +13 -23
  13. package/esm/models/actions/ActionModel.js.map +1 -1
  14. package/esm/models/application/ApplicationModel.js +1 -1
  15. package/esm/models/application/ApplicationModel.js.map +1 -1
  16. package/esm/models/attributes/AttributeCollection.js +6 -3
  17. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  18. package/esm/models/attributes/AttributeModel.js +3 -3
  19. package/esm/models/attributes/AttributeModel.js.map +1 -1
  20. package/esm/models/attributes/AttributeSetModel.js +7 -4
  21. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  22. package/esm/models/attributes/BooleanAttributeModel.js +6 -3
  23. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  24. package/esm/models/attributes/ChoiceAttributeModel.js +6 -3
  25. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  26. package/esm/models/attributes/ChoiceAttributeOptionCollection.js +18 -14
  27. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  28. package/esm/models/attributes/ChoiceAttributeOptionModel.js +17 -10
  29. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  30. package/esm/models/attributes/CompositeAttributeChildCollection.js +7 -7
  31. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  32. package/esm/models/attributes/CompositeAttributeModel.js +3 -3
  33. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  34. package/esm/models/attributes/DatetimeAttributeModel.js +2 -2
  35. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  36. package/esm/models/attributes/StringAttributeModel.js +2 -2
  37. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  38. package/esm/models/attributes/_createAttribute.js +2 -2
  39. package/esm/models/attributes/_createAttribute.js.map +1 -1
  40. package/esm/models/base/BaseModel.js +27 -1
  41. package/esm/models/base/BaseModel.js.map +1 -1
  42. package/esm/models/base/ResourceModel.js +3 -23
  43. package/esm/models/base/ResourceModel.js.map +1 -1
  44. package/esm/models/caseview/CaseViewModel.js +1 -1
  45. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  46. package/esm/models/concepts/ConceptDetailModel.js +2 -2
  47. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  48. package/esm/models/concepts/ConceptIndexModel.js +2 -2
  49. package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
  50. package/esm/models/concepts/ConceptLinkModel.js +4 -10
  51. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  52. package/esm/models/concepts/ConceptRelationCollection.js +11 -4
  53. package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
  54. package/esm/models/concepts/ConceptRelationModel.js +8 -1
  55. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  56. package/esm/models/concepts/SourceReferenceCollection.js +2 -4
  57. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  58. package/esm/models/concepts/SourceReferenceModel.js +9 -10
  59. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  60. package/esm/models/content/ContentIndexModel.js +2 -2
  61. package/esm/models/content/ContentIndexModel.js.map +1 -1
  62. package/esm/models/content/ContentLinkModel.js +4 -11
  63. package/esm/models/content/ContentLinkModel.js.map +1 -1
  64. package/esm/models/content/ContentModel.js +2 -2
  65. package/esm/models/content/ContentModel.js.map +1 -1
  66. package/esm/models/content/ContentTOCModel.js +7 -7
  67. package/esm/models/content/ContentTOCModel.js.map +1 -1
  68. package/esm/models/content/SectionModel.js +6 -12
  69. package/esm/models/content/SectionModel.js.map +1 -1
  70. package/esm/models/detail/DetailModel.js +9 -3
  71. package/esm/models/detail/DetailModel.js.map +1 -1
  72. package/esm/models/error/ErrorResponse.js +8 -10
  73. package/esm/models/error/ErrorResponse.js.map +1 -1
  74. package/esm/models/filters/AssignmentFilterModel.js +2 -2
  75. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  76. package/esm/models/filters/BaseFilterModel.js +3 -3
  77. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  78. package/esm/models/filters/ConceptIndexFilterModel.js +2 -3
  79. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  80. package/esm/models/filters/FilterCollection.js +8 -7
  81. package/esm/models/filters/FilterCollection.js.map +1 -1
  82. package/esm/models/filters/StringFilterModel.js +2 -2
  83. package/esm/models/filters/StringFilterModel.js.map +1 -1
  84. package/esm/models/form/FormModel.js +4 -4
  85. package/esm/models/form/FormModel.js.map +1 -1
  86. package/esm/models/form/FormObjectModel.js +7 -4
  87. package/esm/models/form/FormObjectModel.js.map +1 -1
  88. package/esm/models/grouping/GroupingModel.js +10 -7
  89. package/esm/models/grouping/GroupingModel.js.map +1 -1
  90. package/esm/models/href/Href.js +9 -8
  91. package/esm/models/href/Href.js.map +1 -1
  92. package/esm/models/links/LinkCollection.js +2 -3
  93. package/esm/models/links/LinkCollection.js.map +1 -1
  94. package/esm/models/links/LinkModel.js +7 -7
  95. package/esm/models/links/LinkModel.js.map +1 -1
  96. package/esm/models/list/ListDetailModel.js +1 -1
  97. package/esm/models/list/ListDetailModel.js.map +1 -1
  98. package/esm/models/list/ListItemCollection.js +1 -1
  99. package/esm/models/list/ListItemCollection.js.map +1 -1
  100. package/esm/models/list/ListItemModel.js +3 -3
  101. package/esm/models/list/ListItemModel.js.map +1 -1
  102. package/esm/models/list/ListModel.js +3 -3
  103. package/esm/models/list/ListModel.js.map +1 -1
  104. package/esm/models/lookup/LookupOptionCollection.js +5 -2
  105. package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
  106. package/esm/models/lookup/LookupOptionsModel.js +2 -2
  107. package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
  108. package/esm/models/panels/GroupingPanelModel.js +1 -1
  109. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  110. package/esm/models/tab/TabModel.js +2 -2
  111. package/esm/models/tab/TabModel.js.map +1 -1
  112. package/esm/models/taskgroup/TaskGroupModel.js +4 -5
  113. package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
  114. package/esm/models/types.js.map +1 -1
  115. package/esm/models/user/UserProfileModel.js +4 -1
  116. package/esm/models/user/UserProfileModel.js.map +1 -1
  117. package/esm/modularui/CaptchaRequest.js +3 -3
  118. package/esm/modularui/CaptchaRequest.js.map +1 -1
  119. package/esm/modularui/ModularUIRequest.js +8 -5
  120. package/esm/modularui/ModularUIRequest.js.map +1 -1
  121. package/esm/modularui/ModularUIResponse.js +12 -3
  122. package/esm/modularui/ModularUIResponse.js.map +1 -1
  123. package/esm/modularui/UploadRequest.js +3 -3
  124. package/esm/modularui/UploadRequest.js.map +1 -1
  125. package/esm/react-client/client.js +3 -3
  126. package/esm/react-client/client.js.map +1 -1
  127. package/esm/react-server/renderSSRComplete.js +2 -2
  128. package/esm/react-server/renderSSRComplete.js.map +1 -1
  129. package/esm/react-server/renderSSRMinimal.js +2 -2
  130. package/esm/react-server/renderSSRMinimal.js.map +1 -1
  131. package/esm/redux/_modularui/ModularUIActions.js +8 -2
  132. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  133. package/esm/redux/_modularui/ModularUIUtils.js +8 -11
  134. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  135. package/esm/utils/browser/Cookies.js +3 -3
  136. package/esm/utils/browser/Cookies.js.map +1 -1
  137. package/esm/utils/helpers/createHref.js +23 -3
  138. package/esm/utils/helpers/createHref.js.map +1 -1
  139. package/esm/utils/helpers/repositoryResource.js +2 -2
  140. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  141. package/lib/constants/Settings.js +18 -8
  142. package/lib/constants/Settings.js.flow +16 -6
  143. package/lib/constants/Settings.js.map +1 -1
  144. package/lib/hooks/useAuthentication.js +2 -2
  145. package/lib/hooks/useAuthentication.js.flow +3 -3
  146. package/lib/hooks/useAuthentication.js.map +1 -1
  147. package/lib/hooks/useModelCatalog.js.flow +7 -6
  148. package/lib/hooks/useModelCatalog.js.map +1 -1
  149. package/lib/hooks/useModularUIBasic.js +1 -1
  150. package/lib/hooks/useModularUIBasic.js.flow +1 -1
  151. package/lib/hooks/useModularUIBasic.js.map +1 -1
  152. package/lib/hooks/useModularUIModel.js.flow +16 -11
  153. package/lib/hooks/useModularUIModel.js.map +1 -1
  154. package/lib/models/actions/ActionCollection.js +2 -2
  155. package/lib/models/actions/ActionCollection.js.flow +3 -8
  156. package/lib/models/actions/ActionCollection.js.map +1 -1
  157. package/lib/models/actions/ActionModel.js +12 -22
  158. package/lib/models/actions/ActionModel.js.flow +7 -24
  159. package/lib/models/actions/ActionModel.js.map +1 -1
  160. package/lib/models/application/ApplicationModel.js +1 -1
  161. package/lib/models/application/ApplicationModel.js.flow +1 -2
  162. package/lib/models/application/ApplicationModel.js.map +1 -1
  163. package/lib/models/attributes/AttributeCollection.js +6 -3
  164. package/lib/models/attributes/AttributeCollection.js.flow +12 -4
  165. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  166. package/lib/models/attributes/AttributeModel.js +3 -3
  167. package/lib/models/attributes/AttributeModel.js.flow +8 -2
  168. package/lib/models/attributes/AttributeModel.js.map +1 -1
  169. package/lib/models/attributes/AttributeSetModel.js +7 -3
  170. package/lib/models/attributes/AttributeSetModel.js.flow +11 -3
  171. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  172. package/lib/models/attributes/BooleanAttributeModel.js +6 -3
  173. package/lib/models/attributes/BooleanAttributeModel.js.flow +8 -4
  174. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  175. package/lib/models/attributes/ChoiceAttributeModel.js +6 -3
  176. package/lib/models/attributes/ChoiceAttributeModel.js.flow +13 -4
  177. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  178. package/lib/models/attributes/ChoiceAttributeOptionCollection.js +18 -13
  179. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +30 -28
  180. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  181. package/lib/models/attributes/ChoiceAttributeOptionModel.js +17 -10
  182. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +30 -11
  183. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  184. package/lib/models/attributes/CompositeAttributeChildCollection.js +7 -7
  185. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +8 -1
  186. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  187. package/lib/models/attributes/CompositeAttributeModel.js +3 -3
  188. package/lib/models/attributes/CompositeAttributeModel.js.flow +8 -3
  189. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  190. package/lib/models/attributes/DatetimeAttributeModel.js +2 -2
  191. package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -2
  192. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  193. package/lib/models/attributes/StringAttributeModel.js +2 -2
  194. package/lib/models/attributes/StringAttributeModel.js.flow +7 -3
  195. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  196. package/lib/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js.flow +1 -1
  197. package/lib/models/attributes/_createAttribute.js +2 -2
  198. package/lib/models/attributes/_createAttribute.js.flow +3 -2
  199. package/lib/models/attributes/_createAttribute.js.map +1 -1
  200. package/lib/models/base/BaseModel.js +27 -1
  201. package/lib/models/base/BaseModel.js.flow +31 -1
  202. package/lib/models/base/BaseModel.js.map +1 -1
  203. package/lib/models/base/ResourceModel.js +3 -22
  204. package/lib/models/base/ResourceModel.js.flow +6 -23
  205. package/lib/models/base/ResourceModel.js.map +1 -1
  206. package/lib/models/base/__tests__/BaseModel.spec.js.flow +4 -0
  207. package/lib/models/caseview/CaseViewModel.js +1 -1
  208. package/lib/models/caseview/CaseViewModel.js.flow +1 -2
  209. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  210. package/lib/models/concepts/ConceptDetailModel.js +2 -2
  211. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  212. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  213. package/lib/models/concepts/ConceptIndexModel.js +2 -2
  214. package/lib/models/concepts/ConceptIndexModel.js.flow +9 -6
  215. package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
  216. package/lib/models/concepts/ConceptLinkModel.js +4 -10
  217. package/lib/models/concepts/ConceptLinkModel.js.flow +15 -12
  218. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  219. package/lib/models/concepts/ConceptRelationCollection.js +11 -4
  220. package/lib/models/concepts/ConceptRelationCollection.js.flow +17 -3
  221. package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
  222. package/lib/models/concepts/ConceptRelationModel.js +8 -1
  223. package/lib/models/concepts/ConceptRelationModel.js.flow +18 -2
  224. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  225. package/lib/models/concepts/SourceReferenceCollection.js +2 -3
  226. package/lib/models/concepts/SourceReferenceCollection.js.flow +3 -8
  227. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  228. package/lib/models/concepts/SourceReferenceModel.js +8 -8
  229. package/lib/models/concepts/SourceReferenceModel.js.flow +10 -11
  230. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  231. package/lib/models/content/ContentIndexModel.js +2 -2
  232. package/lib/models/content/ContentIndexModel.js.flow +10 -5
  233. package/lib/models/content/ContentIndexModel.js.map +1 -1
  234. package/lib/models/content/ContentLinkModel.js +4 -10
  235. package/lib/models/content/ContentLinkModel.js.flow +10 -13
  236. package/lib/models/content/ContentLinkModel.js.map +1 -1
  237. package/lib/models/content/ContentModel.js +2 -2
  238. package/lib/models/content/ContentModel.js.flow +6 -1
  239. package/lib/models/content/ContentModel.js.map +1 -1
  240. package/lib/models/content/ContentTOCModel.js +7 -7
  241. package/lib/models/content/ContentTOCModel.js.flow +19 -11
  242. package/lib/models/content/ContentTOCModel.js.map +1 -1
  243. package/lib/models/content/SectionModel.js +6 -11
  244. package/lib/models/content/SectionModel.js.flow +9 -21
  245. package/lib/models/content/SectionModel.js.map +1 -1
  246. package/lib/models/detail/DetailModel.js +9 -3
  247. package/lib/models/detail/DetailModel.js.flow +3 -4
  248. package/lib/models/detail/DetailModel.js.map +1 -1
  249. package/lib/models/error/ErrorResponse.js +7 -9
  250. package/lib/models/error/ErrorResponse.js.flow +9 -20
  251. package/lib/models/error/ErrorResponse.js.map +1 -1
  252. package/lib/models/filters/AssignmentFilterModel.js +2 -2
  253. package/lib/models/filters/AssignmentFilterModel.js.flow +7 -3
  254. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  255. package/lib/models/filters/BaseFilterModel.js +3 -3
  256. package/lib/models/filters/BaseFilterModel.js.flow +16 -7
  257. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  258. package/lib/models/filters/ConceptIndexFilterModel.js +2 -2
  259. package/lib/models/filters/ConceptIndexFilterModel.js.flow +8 -2
  260. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  261. package/lib/models/filters/FilterCollection.js +8 -7
  262. package/lib/models/filters/FilterCollection.js.flow +13 -7
  263. package/lib/models/filters/FilterCollection.js.map +1 -1
  264. package/lib/models/filters/StringFilterModel.js +2 -2
  265. package/lib/models/filters/StringFilterModel.js.flow +7 -3
  266. package/lib/models/filters/StringFilterModel.js.map +1 -1
  267. package/lib/models/form/FormModel.js +4 -4
  268. package/lib/models/form/FormModel.js.flow +8 -2
  269. package/lib/models/form/FormModel.js.map +1 -1
  270. package/lib/models/form/FormObjectModel.js +7 -4
  271. package/lib/models/form/FormObjectModel.js.flow +17 -4
  272. package/lib/models/form/FormObjectModel.js.map +1 -1
  273. package/lib/models/grouping/GroupingModel.js +10 -7
  274. package/lib/models/grouping/GroupingModel.js.flow +21 -5
  275. package/lib/models/grouping/GroupingModel.js.map +1 -1
  276. package/lib/models/href/Href.js +8 -7
  277. package/lib/models/href/Href.js.flow +17 -10
  278. package/lib/models/href/Href.js.map +1 -1
  279. package/lib/models/href/__tests__/Href.spec.js.flow +5 -8
  280. package/lib/models/links/LinkCollection.js +2 -3
  281. package/lib/models/links/LinkCollection.js.flow +3 -3
  282. package/lib/models/links/LinkCollection.js.map +1 -1
  283. package/lib/models/links/LinkModel.js +7 -7
  284. package/lib/models/links/LinkModel.js.flow +8 -15
  285. package/lib/models/links/LinkModel.js.map +1 -1
  286. package/lib/models/list/ListDetailModel.js +1 -1
  287. package/lib/models/list/ListDetailModel.js.flow +6 -1
  288. package/lib/models/list/ListDetailModel.js.map +1 -1
  289. package/lib/models/list/ListItemCollection.js +1 -1
  290. package/lib/models/list/ListItemCollection.js.flow +1 -2
  291. package/lib/models/list/ListItemCollection.js.map +1 -1
  292. package/lib/models/list/ListItemModel.js +3 -3
  293. package/lib/models/list/ListItemModel.js.flow +4 -4
  294. package/lib/models/list/ListItemModel.js.map +1 -1
  295. package/lib/models/list/ListModel.js +3 -3
  296. package/lib/models/list/ListModel.js.flow +12 -8
  297. package/lib/models/list/ListModel.js.map +1 -1
  298. package/lib/models/lookup/LookupOptionCollection.js +5 -1
  299. package/lib/models/lookup/LookupOptionCollection.js.flow +17 -6
  300. package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
  301. package/lib/models/lookup/LookupOptionsModel.js +2 -2
  302. package/lib/models/lookup/LookupOptionsModel.js.flow +2 -0
  303. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  304. package/lib/models/panels/GroupingPanelModel.js +1 -1
  305. package/lib/models/panels/GroupingPanelModel.js.flow +1 -2
  306. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  307. package/lib/models/tab/TabModel.js +2 -2
  308. package/lib/models/tab/TabModel.js.flow +2 -4
  309. package/lib/models/tab/TabModel.js.map +1 -1
  310. package/lib/models/taskgroup/TaskGroupModel.js +4 -4
  311. package/lib/models/taskgroup/TaskGroupModel.js.flow +5 -6
  312. package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
  313. package/lib/models/types.js.flow +5 -0
  314. package/lib/models/types.js.map +1 -1
  315. package/lib/models/user/UserProfileModel.js +4 -1
  316. package/lib/models/user/UserProfileModel.js.flow +1 -0
  317. package/lib/models/user/UserProfileModel.js.map +1 -1
  318. package/lib/modularui/CaptchaRequest.js +2 -2
  319. package/lib/modularui/CaptchaRequest.js.flow +7 -3
  320. package/lib/modularui/CaptchaRequest.js.map +1 -1
  321. package/lib/modularui/ModularUIRequest.js +7 -4
  322. package/lib/modularui/ModularUIRequest.js.flow +8 -5
  323. package/lib/modularui/ModularUIRequest.js.map +1 -1
  324. package/lib/modularui/ModularUIResponse.js +11 -2
  325. package/lib/modularui/ModularUIResponse.js.flow +13 -3
  326. package/lib/modularui/ModularUIResponse.js.map +1 -1
  327. package/lib/modularui/UploadRequest.js +2 -2
  328. package/lib/modularui/UploadRequest.js.flow +7 -3
  329. package/lib/modularui/UploadRequest.js.map +1 -1
  330. package/lib/react-client/client.js +2 -2
  331. package/lib/react-client/client.js.flow +7 -3
  332. package/lib/react-client/client.js.map +1 -1
  333. package/lib/react-server/renderSSRComplete.js +1 -1
  334. package/lib/react-server/renderSSRComplete.js.flow +2 -2
  335. package/lib/react-server/renderSSRComplete.js.map +1 -1
  336. package/lib/react-server/renderSSRMinimal.js +1 -1
  337. package/lib/react-server/renderSSRMinimal.js.flow +2 -2
  338. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  339. package/lib/redux/_modularui/ModularUIActions.js +8 -2
  340. package/lib/redux/_modularui/ModularUIActions.js.flow +8 -7
  341. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  342. package/lib/redux/_modularui/ModularUIUtils.js +8 -11
  343. package/lib/redux/_modularui/ModularUIUtils.js.flow +13 -14
  344. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  345. package/lib/utils/browser/Cookies.js +2 -2
  346. package/lib/utils/browser/Cookies.js.flow +3 -3
  347. package/lib/utils/browser/Cookies.js.map +1 -1
  348. package/lib/utils/helpers/__tests__/createHref.spec.js.flow +13 -8
  349. package/lib/utils/helpers/createHref.js +23 -3
  350. package/lib/utils/helpers/createHref.js.flow +37 -8
  351. package/lib/utils/helpers/createHref.js.map +1 -1
  352. package/lib/utils/helpers/repositoryResource.js +1 -1
  353. package/lib/utils/helpers/repositoryResource.js.flow +2 -2
  354. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  355. package/package.json +4 -4
  356. package/src/constants/Settings.js +16 -6
  357. package/src/hooks/useAuthentication.js +3 -3
  358. package/src/hooks/useModelCatalog.js +7 -6
  359. package/src/hooks/useModularUIBasic.js +1 -1
  360. package/src/hooks/useModularUIModel.js +16 -11
  361. package/src/models/actions/ActionCollection.js +3 -8
  362. package/src/models/actions/ActionModel.js +7 -24
  363. package/src/models/application/ApplicationModel.js +1 -2
  364. package/src/models/attributes/AttributeCollection.js +12 -4
  365. package/src/models/attributes/AttributeModel.js +8 -2
  366. package/src/models/attributes/AttributeSetModel.js +11 -3
  367. package/src/models/attributes/BooleanAttributeModel.js +8 -4
  368. package/src/models/attributes/ChoiceAttributeModel.js +13 -4
  369. package/src/models/attributes/ChoiceAttributeOptionCollection.js +30 -28
  370. package/src/models/attributes/ChoiceAttributeOptionModel.js +30 -11
  371. package/src/models/attributes/CompositeAttributeChildCollection.js +8 -1
  372. package/src/models/attributes/CompositeAttributeModel.js +8 -3
  373. package/src/models/attributes/DatetimeAttributeModel.js +7 -2
  374. package/src/models/attributes/StringAttributeModel.js +7 -3
  375. package/src/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js +1 -1
  376. package/src/models/attributes/_createAttribute.js +3 -2
  377. package/src/models/base/BaseModel.js +31 -1
  378. package/src/models/base/ResourceModel.js +6 -23
  379. package/src/models/base/__tests__/BaseModel.spec.js +4 -0
  380. package/src/models/caseview/CaseViewModel.js +1 -2
  381. package/src/models/concepts/ConceptDetailModel.js +2 -2
  382. package/src/models/concepts/ConceptIndexModel.js +9 -6
  383. package/src/models/concepts/ConceptLinkModel.js +15 -12
  384. package/src/models/concepts/ConceptRelationCollection.js +17 -3
  385. package/src/models/concepts/ConceptRelationModel.js +18 -2
  386. package/src/models/concepts/SourceReferenceCollection.js +3 -8
  387. package/src/models/concepts/SourceReferenceModel.js +10 -11
  388. package/src/models/content/ContentIndexModel.js +10 -5
  389. package/src/models/content/ContentLinkModel.js +10 -13
  390. package/src/models/content/ContentModel.js +6 -1
  391. package/src/models/content/ContentTOCModel.js +19 -11
  392. package/src/models/content/SectionModel.js +9 -21
  393. package/src/models/detail/DetailModel.js +3 -4
  394. package/src/models/error/ErrorResponse.js +9 -20
  395. package/src/models/filters/AssignmentFilterModel.js +7 -3
  396. package/src/models/filters/BaseFilterModel.js +16 -7
  397. package/src/models/filters/ConceptIndexFilterModel.js +8 -2
  398. package/src/models/filters/FilterCollection.js +13 -7
  399. package/src/models/filters/StringFilterModel.js +7 -3
  400. package/src/models/form/FormModel.js +8 -2
  401. package/src/models/form/FormObjectModel.js +17 -4
  402. package/src/models/grouping/GroupingModel.js +21 -5
  403. package/src/models/href/Href.js +17 -10
  404. package/src/models/href/__tests__/Href.spec.js +5 -8
  405. package/src/models/links/LinkCollection.js +3 -3
  406. package/src/models/links/LinkModel.js +8 -15
  407. package/src/models/list/ListDetailModel.js +6 -1
  408. package/src/models/list/ListItemCollection.js +1 -2
  409. package/src/models/list/ListItemModel.js +4 -4
  410. package/src/models/list/ListModel.js +12 -8
  411. package/src/models/lookup/LookupOptionCollection.js +17 -6
  412. package/src/models/lookup/LookupOptionsModel.js +2 -0
  413. package/src/models/panels/GroupingPanelModel.js +1 -2
  414. package/src/models/tab/TabModel.js +2 -4
  415. package/src/models/taskgroup/TaskGroupModel.js +5 -6
  416. package/src/models/types.js +5 -0
  417. package/src/models/user/UserProfileModel.js +1 -0
  418. package/src/modularui/CaptchaRequest.js +7 -3
  419. package/src/modularui/ModularUIRequest.js +8 -5
  420. package/src/modularui/ModularUIResponse.js +13 -3
  421. package/src/modularui/UploadRequest.js +7 -3
  422. package/src/react-client/client.js +7 -3
  423. package/src/react-server/renderSSRComplete.js +2 -2
  424. package/src/react-server/renderSSRMinimal.js +2 -2
  425. package/src/redux/_modularui/ModularUIActions.js +8 -7
  426. package/src/redux/_modularui/ModularUIUtils.js +13 -14
  427. package/src/utils/browser/Cookies.js +3 -3
  428. package/src/utils/helpers/__tests__/createHref.spec.js +13 -8
  429. package/src/utils/helpers/createHref.js +37 -8
  430. package/src/utils/helpers/repositoryResource.js +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeCollection.js","names":["has","ResourceCollection","createAttribute","ChoiceAttributeModel","CompositeAttributeModel","ContentConfiguration","ConfigurationException","AttributeCollection","constructor","data","arguments","length","undefined","contributions","isReadonly","forEach","contribution","key","_Object$keys","attribute","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filterInstanceProperty","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_findInstanceProperty","attr","equals","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWithInstanceProperty","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_mapInstanceProperty","isVisible","getEmptyFormData","attributeFormData"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor } from \"../types\";\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n isReadonly: boolean = false,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key]);\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AttributeCollection.js","names":["has","ResourceCollection","createAttribute","ChoiceAttributeModel","CompositeAttributeModel","ContentConfiguration","ConfigurationException","AttributeCollection","constructor","data","arguments","length","undefined","contributions","modelOptions","forEach","contribution","key","_Object$keys","attribute","origin","contextPath","isReadonly","readonly","collection","push","processLayoutHintRules","attributes","all","visible","_context","_filterInstanceProperty","call","isHidden","questions","_context2","isResult","results","_context3","getAttributeByAttribute","_context4","_findInstanceProperty","attr","equals","getChildByAttribute","getAttributeByKey","_context5","getChildByKey","hasAttributeByKey","getAttributeByLayoutHint","_context6","_len","hints","Array","_key","layouthint","getChoiceAttributeByLayoutHint","layoutHint","getAttributesByLayoutHint","_context7","_len2","_key2","replace","oldAttribute","newAttribute","replaceByKey","index","setReferenceDate","date","clone","referenceDate","hasServerErrors","some","addServerError","error","elementid","anchor","hasErrors","updateValidations","errors","_context8","hasDynamicValidationData","attributeErrors","compositeChildErrors","elementId","_startsWithInstanceProperty","children","indicateContentConfiguration","contentConfiguration","formdata","getFormData","_context9","_context10","validationData","attributesFormData","_mapInstanceProperty","isVisible","getEmptyFormData","attributeFormData"],"sources":["../../../src/models/attributes/AttributeCollection.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceCollection from \"../base/ResourceCollection\";\n\nimport createAttribute from \"./_createAttribute\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\n\nimport ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\n\nimport { ConfigurationException } from \"../../exceptions\";\n\nimport type { AttributeType, FormErrorAnchor, ModelOptions } from \"../types\";\n\ntype AttributeCollectionOptions = {\n ...ModelOptions,\n isReadonly: boolean,\n};\n\n/**\n * Collection of attributes\n */\nclass AttributeCollection extends ResourceCollection<AttributeType> {\n constructor(\n data: Object | Array<Object> = {},\n contributions: Array<Object> = [],\n modelOptions?: AttributeCollectionOptions,\n ) {\n super();\n\n if (contributions) {\n contributions.forEach((contribution) => {\n const [key] = Object.keys(contribution);\n\n const attribute = createAttribute(key, data, contribution[key], {\n origin: modelOptions?.origin,\n contextPath: modelOptions?.contextPath,\n });\n\n if (attribute !== null) {\n // when readonly is not explicitly set in the contributions, follow argument\n if (modelOptions?.isReadonly && !has(contribution[key], \"readonly\")) {\n attribute.readonly = true;\n }\n\n this.collection.push(attribute);\n }\n });\n\n this.processLayoutHintRules();\n }\n }\n\n /**\n * Retrieve all attributes in this collection<br>\n * This getter processes layout hints, this is different from the standard {@link BaseCollection#all} property\n * @returns {Array<AttributeType>}\n */\n get attributes(): Array<AttributeType> {\n this.processLayoutHintRules();\n return this.all;\n }\n\n /**\n * Replace attributes with a new array of attributes\n */\n set attributes(attributes: Array<AttributeType>) {\n this.collection = attributes;\n }\n\n /**\n */\n processLayoutHintRules(): void {\n this.all.forEach((attribute) => {\n attribute.processLayoutHintRules(this);\n });\n }\n\n /**\n * Retrieve only visible attributes from the collection\n */\n get visible(): Array<AttributeType> {\n // Let flow know that this is a AttributeCollection\n if (this instanceof AttributeCollection) {\n return this.attributes.filter((attribute) => !attribute.isHidden);\n }\n\n return [];\n }\n\n /**\n */\n get questions(): Array<AttributeType> {\n return this.visible.filter((attribute) => !attribute.isResult);\n }\n\n /**\n */\n get results(): Array<AttributeType> {\n return this.visible.filter((attribute) => attribute.isResult);\n }\n\n /**\n */\n getAttributeByAttribute(attribute: AttributeType): AttributeType | null {\n return this.find((attr) => {\n if (attr.equals(attribute)) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByAttribute(attribute);\n }\n\n return false;\n });\n }\n\n /**\n * Get a single attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this.find((attribute) => {\n if (attribute.key === key) {\n return true;\n } else if (attribute instanceof CompositeAttributeModel) {\n return attribute.getChildByKey(key);\n }\n\n return false;\n });\n }\n\n /**\n * Indicates if attribute with key exists in collection\n */\n hasAttributeByKey(key: string): boolean {\n return this.getAttributeByKey(key) !== null;\n }\n\n /**\n * Getting the first attribute having the supplied layout hint\n */\n getAttributeByLayoutHint(...hints: Array<string>): AttributeType | null {\n return this.find((attribute) => attribute.layouthint.has(...hints)) || null;\n }\n\n /**\n * Getting a choice attribute by layouthint, returns null when not found or not a choice attribute\n */\n getChoiceAttributeByLayoutHint(\n layoutHint: string,\n ): ChoiceAttributeModel | null {\n const attribute = this.getAttributeByLayoutHint(layoutHint);\n\n return attribute instanceof ChoiceAttributeModel ? attribute : null;\n }\n\n /**\n * Getting all attributes having the supplied layout hint\n */\n getAttributesByLayoutHint(...hints: Array<string>): Array<AttributeType> {\n return this.filter((attribute) => attribute.layouthint.has(...hints));\n }\n\n /**\n * Replace an attribute instance in the collection with a new attribute instance\n */\n replace(oldAttribute: AttributeType, newAttribute: AttributeType): void {\n this.replaceByKey(oldAttribute.key, newAttribute);\n }\n\n /**\n * Replace an attribute by the key of the attribute\n */\n replaceByKey(key: string, newAttribute: AttributeType): void {\n this.forEach((attribute, index) => {\n if (attribute.key === key) {\n this.collection[index] = newAttribute;\n }\n });\n }\n\n /**\n * Set reference date by replacing an old attribute with a new attribute with a reference Date\n * Date is a string in ISO format yyyy-MM-dd\n */\n setReferenceDate(date: string): void {\n this.forEach((attribute) => {\n const newAttribute = attribute.clone();\n\n newAttribute.referenceDate = date;\n\n this.replace(attribute, newAttribute);\n });\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.collection.some((attribute) => attribute.hasServerErrors());\n }\n\n /**\n */\n addServerError(error: FormErrorAnchor): void {\n const elementid = error?.anchor?.elementid;\n\n if (elementid) {\n const attribute = this.getAttributeByKey(elementid);\n if (attribute) {\n attribute.addServerError(error);\n } else {\n throw new ConfigurationException(\n `Could not add error to missing attribute with id ${elementid}`,\n );\n }\n }\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.visible.some((attribute) => attribute.hasErrors());\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): AttributeCollection {\n this.all\n .filter((attribute) => attribute.hasDynamicValidationData)\n .forEach((attribute) => {\n const attributeErrors = errors.filter(\n (error) => error.anchor?.elementid === attribute.key,\n );\n attribute.updateValidations(attributeErrors);\n\n if (attribute instanceof CompositeAttributeModel) {\n const compositeChildErrors = errors.filter((error) => {\n const elementId = error.anchor?.elementid;\n return elementId && elementId.startsWith(`${attribute.key}.`);\n });\n\n attribute.children.updateValidations(\n `${attribute.key}.`,\n compositeChildErrors,\n );\n }\n });\n\n return this;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n this.all.forEach((attribute) => {\n attribute.indicateContentConfiguration(contentConfiguration);\n });\n }\n }\n\n /**\n * Generate formdata object for current collection based on formdata of attributes\n * Skip attributes that are readonly, the confirmation password or null\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData(false);\n }\n\n /**\n */\n getFormData(validationData: boolean = false): { [string]: any } | null {\n const attributesFormData = this.attributes\n .filter(\n (attribute) =>\n attribute.formdata !== null &&\n !attribute.readonly &&\n (!validationData || attribute.hasDynamicValidationData),\n )\n .map((attribute) => {\n // make attribute empty when it is not (or no longer) visible\n if (attribute.isVisible) {\n return attribute.formdata;\n }\n\n return attribute.getEmptyFormData();\n });\n\n let data = {};\n attributesFormData.forEach((attributeFormData) => {\n // $FlowIgnore[cannot-spread-indexer]\n // $FlowIgnore[exponential-spread]\n data = {\n ...data,\n ...attributeFormData,\n };\n });\n\n return data;\n }\n}\n\nexport default AttributeCollection;\n"],"mappings":"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","ignoreList":[]}
@@ -24,8 +24,8 @@ import AttributeContent from "./AttributeContent";
24
24
  export default class AttributeModel extends BaseModel {
25
25
  /**
26
26
  */
27
- constructor(attribute, attributeContributions) {
28
- super(attribute, attributeContributions);
27
+ constructor(attribute, attributeContributions, modelOptions) {
28
+ super(attribute, attributeContributions, modelOptions);
29
29
  _defineProperty(this, "_label", void 0);
30
30
  _defineProperty(this, "_lastModification", 0);
31
31
  _defineProperty(this, "_initvalue", void 0);
@@ -64,7 +64,7 @@ export default class AttributeModel extends BaseModel {
64
64
  this._referenceDate = this.getData("referenceDate", DateUtil.now());
65
65
  this._isResult = this.getData("isResult", false);
66
66
  this._mandatory = this.layouthint.has(MANDATORY) || this.contributions.mandatory;
67
- this._links = new LinkCollection(this.data._links, this.contributions._links);
67
+ this._links = new LinkCollection(this.data._links, this.contributions._links, modelOptions);
68
68
  }
69
69
 
70
70
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeModel.js","names":["DateUtil","isPlainObject","BaseModel","ConstraintCollection","ErrorCollection","LinkCollection","StringLengthConstraint","MandatoryConstraint","ConceptDetailModel","DISABLED","MANDATORY","ATTRIBUTE_WIDTH","TIMEVERSION_FILTER_NAME","getSetting","hasAllContentInData","IllegalArgumentException","UnsupportedOperationException","AttributeContent","AttributeModel","constructor","attribute","attributeContributions","_defineProperty","hasContentFromData","content","label","_label","contributions","_initvalue","data","value","_inputvalue","getInitialInputValue","_value","_disabled","layouthint","has","_errorCollection","message","addServerError","id","parameters","_referenceDate","getData","now","_isResult","_mandatory","mandatory","_links","isApplicableModel","getInitialChildModelLinks","hasContentConfiguration","conceptLink","setChildModels","models","errors","conceptHref","href","concept","_findInstanceProperty","call","model","selfhref","equalsWithParameters","key","parentKey","_parentKey","name","type","_hasContentConfiguration","indicateContentConfiguration","contentConfiguration","hasQuestionConfig","questions","hasConfig","hasEndResultConfig","isConfiguredEndResultAttribute","hasIntermediateResultConfig","isConfiguredIntermediateResultAttribute","getContentConfiguredLabel","configuredLabelProperties","labelConfig","length","types","_context","configuredLabels","_filterInstanceProperty","getLabelElementByIds","configuredLabel","_context2","firstConfiguredLabel","_mapInstanceProperty","configuredLabelProperty","some","_id","defaultAlignment","alignment","alignmentHints","getByLayoutHint","substring","links","downloadLink","getLinksByGroup","first","getLinkByKey","addParameter","referenceDate","isCacheable","_concept","date","initvalue","getInputValue","inputvalue","toString","validateValue","validate","hasValue","getValue","getFormData","inError","formdata","getEmptyFormData","updateLastModification","formatValue","readonlyvalue","configuredMandatory","_validatedValue","readonly","_readonly","static","isResult","disabled","format","getContribution","formatLabel","minLength","maxLength","operator","assistantMessage","isValid","constraintCollection","constraints","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","useClientsideValidation","isOptionalAndEmpty","_isValid","undefined","errorCollection","collection","invalidConstraints","isChangedSince","resetErrors","error","properties","removeServerError","hasServerErrors","serverErrors","hasErrors","hasItems","addMissingError","receivedAttribute","removeMissingError","addServerConstraint","defaultMessage","addConstraint","formatParameters","params","_Object$keys","forEach","paramKey","paramValue","_endsWithInstanceProperty","hasDynamicValidationData","updateValidations","_lastModification","Date","timestamp","reset","mergeAttribute","oldAttribute","update","changedAttribute","updateByAttribute","otherAttribute","console","isEditable","_isEditable","isVisible","_isHidden","isHidden","show","hide","equals","readonlyWidth","MEDIUM","layoutHintRules","_layoutHintRules","rules","processLayoutHintRules","attributes","process"],"sources":["../../../src/models/attributes/AttributeModel.js"],"sourcesContent":["// @flow\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { isPlainObject } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport StringLengthConstraint from \"./input-constraints/StringLengthConstraint\";\nimport MandatoryConstraint from \"./input-constraints/MandatoryConstraint\";\n\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\n\nimport { DISABLED, MANDATORY } from \"../../constants/LayoutHints\";\nimport {\n ATTRIBUTE_WIDTH,\n TIMEVERSION_FILTER_NAME,\n} from \"../../constants/Constants\";\n\nimport { getSetting, hasAllContentInData } from \"../../constants/Settings\";\n\nimport {\n IllegalArgumentException,\n UnsupportedOperationException,\n} from \"../../exceptions\";\n\nimport type { MessageParameters } from \"../../i18n/types\";\nimport type {\n AttributeType,\n FormErrorAnchor,\n IModelWithChildModels,\n ModularUIModel,\n} from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\nimport type LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\nimport type AttributeCollection from \"./AttributeCollection\";\nimport AttributeContent from \"./AttributeContent\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Attribute model, base model for all kind of attributes\n */\nexport default class AttributeModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _label: string;\n _lastModification: number = 0;\n\n _initvalue: any;\n _inputvalue: string;\n _value: any;\n\n _errorCollection: ErrorCollection;\n _serverConstraints: ConstraintCollection = new ConstraintCollection();\n _useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\");\n _isValid: boolean = true;\n _validatedValue: string | null;\n _isEditable: boolean = false;\n _concept: ConceptDetailModel | null = null;\n _referenceDate: ISO_DATE;\n _isResult: boolean;\n _isHidden: boolean = false;\n _readonly: boolean;\n _disabled: boolean = false;\n _mandatory: boolean;\n _links: LinkCollection;\n _parentKey: ?string;\n _hasContentConfiguration: boolean;\n _layoutHintRules: LayoutHintRuleCollection;\n\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n if (this.hasContentFromData && this.content.label) {\n this._label = this.content.label;\n } else {\n this._label = this.contributions.label;\n }\n\n this._initvalue = this.data.value;\n this._inputvalue = this.getInitialInputValue(this.data.value);\n this._value = this.data.value;\n this._disabled = this.layouthint.has(DISABLED);\n\n this._errorCollection = new ErrorCollection(\"attribute\");\n if (attribute && attribute.message) {\n this._errorCollection.addServerError(\n attribute.message.id,\n attribute.message.message,\n attribute.message.parameters,\n attribute.message.layouthint,\n );\n }\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n\n this._isResult = this.getData(\"isResult\", false);\n\n this._mandatory =\n this.layouthint.has(MANDATORY) || this.contributions.mandatory;\n\n this._links = new LinkCollection(\n this.data._links,\n this.contributions._links,\n );\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n if (!isPlainObject(contributions)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a contributions object\",\n );\n }\n\n return false;\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): any {\n return value;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (\n !this.hasContentFromData &&\n this.hasContentConfiguration &&\n this.conceptLink\n ) {\n return [this.conceptLink];\n }\n return [];\n }\n\n /**\n */\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>, // eslint-disable-line no-unused-vars\n ): void {\n const conceptHref = this.conceptLink?.href;\n if (conceptHref) {\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref),\n );\n }\n }\n\n /**\n * Getting the attribute key\n */\n get key(): string {\n return this.data.key;\n }\n\n /**\n */\n get parentKey(): string {\n return this._parentKey || \"\";\n }\n\n /**\n */\n set parentKey(parentKey: string) {\n this._parentKey = parentKey;\n }\n\n /**\n * Getting the attribute name\n */\n get name(): string {\n return this.key;\n }\n\n /**\n * Getting the type of the attribute\n */\n get type(): string {\n return this.contributions.type;\n }\n\n /**\n * Getting the label of the attribute\n */\n get label(): string {\n return this._label || \"\";\n }\n\n /**\n * Set the label of this attribute\n */\n set label(label: string) {\n this._label = label;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration = hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration || false;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n const hasQuestionConfig = contentConfiguration.questions?.hasConfig();\n\n const hasEndResultConfig =\n contentConfiguration.isConfiguredEndResultAttribute(this.key);\n const hasIntermediateResultConfig =\n contentConfiguration.isConfiguredIntermediateResultAttribute(this.key);\n\n this.hasContentConfiguration =\n hasQuestionConfig || hasEndResultConfig || hasIntermediateResultConfig;\n }\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(\n contentConfiguration: ?ContentConfigurationElements,\n ): string {\n if (this.hasContentFromData) {\n return this.content.label ?? this.label;\n }\n\n const configuredLabelProperties =\n contentConfiguration && contentConfiguration.labelConfig.length > 0\n ? contentConfiguration.labelConfig[0].types\n : [];\n\n if (this.concept && configuredLabelProperties.length > 0) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\",\n );\n\n if (configuredLabels.length > 0) {\n const [firstConfiguredLabel] = configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n );\n\n if (firstConfiguredLabel) {\n return firstConfiguredLabel.value;\n }\n }\n }\n\n return this.label;\n }\n\n /**\n */\n get defaultAlignment(): \"left\" | \"center\" | \"right\" {\n return \"left\";\n }\n\n /**\n * Handles layout hint align-left, align-center and align-right\n */\n get alignment(): \"left\" | \"center\" | \"right\" {\n const alignmentHints = this.layouthint.getByLayoutHint(\"align-\");\n\n // return alignment based on layouthint or the default alignment for the attribute\n const alignment = alignmentHints\n ? alignmentHints.substring(\"align-\".length)\n : this.defaultAlignment;\n\n if (\n alignment === \"left\" ||\n alignment === \"center\" ||\n alignment === \"right\"\n ) {\n return alignment;\n }\n\n return this.defaultAlignment;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n this.data._links,\n this.contributions._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Retrieve link of attribute when available\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n\n if (downloadLink && downloadLink.key === this.key) {\n return downloadLink;\n }\n\n return null;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): ?LinkModel {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate,\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept ?? null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n * to get information in correct time version\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Initial value received from the modular ui service\n */\n get initvalue(): any {\n return this._initvalue;\n }\n\n /**\n * Retrieve input value\n */\n getInputValue(): string {\n const inputvalue = this._inputvalue;\n\n return inputvalue ? inputvalue.toString() : \"\";\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Value that is used when retrieving an error collection of this attribute\n * Mostly this is the input value, but sometimes a different value is needed,\n * for example iban and postcode need to validate length without spaces\n */\n get validateValue(): string {\n return this.inputvalue;\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.value = value;\n\n this.validate(value);\n }\n\n /**\n */\n hasValue(): boolean {\n return this._value != null && this._value !== \"\";\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): any {\n return this.hasValue() ? this._value : null;\n }\n\n /**\n * Getting data ready to be send to the modular ui\n * Returns null when the attribute should not be send to the server\n */\n getFormData(): { [string]: any } | null {\n if (this.inError()) {\n return null;\n }\n\n return {\n [this.name]: this.value,\n };\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData();\n }\n\n /**\n */\n getEmptyFormData(): { [string]: null } {\n return { [this.name]: null };\n }\n\n /**\n * Getting the value of the attribute\n */\n get value(): any {\n return this.getValue();\n }\n\n /**\n * Setting a value in the element\n */\n set value(value: ?string) {\n this.updateLastModification();\n\n this._value = value;\n }\n\n /**\n */\n formatValue(value: string): string {\n return value;\n }\n\n /**\n * Getting the readonly value, iso value converted for human reading\n */\n get readonlyvalue(): string {\n return this.value ? this.value.toString() : \"\";\n }\n\n /**\n * Getting mandatory status of attribute\n */\n get mandatory(): boolean {\n return this._mandatory || false;\n }\n\n /**\n */\n get configuredMandatory(): ?boolean {\n return this.layouthint.has(MANDATORY) || this.contributions.mandatory;\n }\n\n /**\n * Set mandatory status of attribute\n */\n set mandatory(mandatory: boolean) {\n if (mandatory !== this._mandatory) {\n this._validatedValue = null;\n }\n this._mandatory = mandatory;\n }\n\n /**\n */\n get readonly(): boolean {\n return (\n this._readonly ||\n this.contributions.readonly === true ||\n this.data.static === true ||\n this.isResult === true\n );\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n this._readonly = readonly;\n }\n\n /**\n */\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n */\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n }\n\n /**\n * Getting the display and input format of a attribute\n */\n get format(): string | null {\n return this.getContribution(\"format\");\n }\n\n /**\n */\n get formatLabel(): string {\n return this.format || \"\";\n }\n\n /**\n * Get minimum string length\n */\n get minLength(): number | null {\n return this.getContribution(\"minLength\");\n }\n\n /**\n * Get maximum string length\n */\n get maxLength(): number | null {\n return this.getContribution(\"maxLength\");\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n\n /**\n * Get valid status\n */\n get isValid(): boolean {\n return this.validate(this.validateValue);\n }\n\n /**\n * Retrieve applicable constraint for this attribute\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n\n // Mandatory constraint\n if (this.mandatory) {\n constraints.add(new MandatoryConstraint());\n }\n\n if (this.minLength || this.maxLength) {\n constraints.add(\n new StringLengthConstraint(this.minLength, this.maxLength),\n );\n }\n\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Template method for class extending this model to add extra constraints\n * @abstract\n */\n addConstraints(): ConstraintCollection {\n return new ConstraintCollection();\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean): void {\n this._useClientsideValidation = enabled;\n }\n\n /**\n * Indicates if client side validation is enabled\n * @returns {boolean}\n */\n useClientsideValidation(): boolean {\n return this._useClientsideValidation ?? true;\n }\n\n /**\n * Validate input on client side constraint\n */\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n if (this.isOptionalAndEmpty(value)) {\n this._isValid = true;\n } else if (this._validatedValue !== value) {\n this._isValid = this.constraintCollection.validate(value);\n }\n this._validatedValue = value;\n\n return this._isValid;\n }\n\n /**\n * Indicates if attribute is optional and empty\n */\n isOptionalAndEmpty(value: string): boolean {\n if (value === undefined) {\n throw new IllegalArgumentException(\n \"isOptionalAndEmpty method needs value argument\",\n );\n }\n\n return !this.mandatory && value === \"\";\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n const collection = new ErrorCollection(\"attribute\", this._errorCollection);\n\n collection.addConstraints(\n this.constraintCollection.invalidConstraints(this.validateValue),\n );\n\n return collection;\n }\n\n /**\n * Check if attribute is in error\n */\n inError(): boolean {\n return !this._isValid && this.isChangedSince(0);\n }\n\n /**\n * Reset static error messages on attribute\n */\n resetErrors(): void {\n this._errorCollection = new ErrorCollection(\"attribute\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor): void {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n\n /**\n */\n removeServerError(id: string): void {\n this._errorCollection.removeServerError(id);\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.errorCollection.serverErrors.length > 0;\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.errorCollection.hasItems;\n }\n\n /**\n * Registers a missing error that was received from the server\n */\n // eslint-disable-next-line no-unused-vars\n addMissingError(receivedAttribute?: AttributeType): void {\n this._errorCollection.addServerError(\"Constraint.Missing\");\n }\n\n /**\n */\n removeMissingError(): void {\n this.removeServerError(\"Constraint.Missing\");\n }\n\n /**\n */\n addServerConstraint(\n id: string,\n defaultMessage?: string,\n parameters?: MessageParameters,\n ) {\n this._serverConstraints.addConstraint(\n id,\n null,\n defaultMessage,\n parameters,\n this.useClientsideValidation(),\n );\n }\n\n /**\n */\n formatParameters(parameters: Object): { [string]: string | number } {\n if (parameters == null) {\n return {};\n }\n\n const params: { [name: string]: string | number } = {};\n\n Object.keys(parameters).forEach((paramKey: string) => {\n const paramValue = parameters[paramKey];\n if (paramKey.endsWith(\"-number\") || paramKey.endsWith(\"-date\")) {\n params[paramKey] = this.formatValue(paramValue);\n } else {\n params[paramKey] = paramValue;\n }\n });\n\n return params;\n }\n\n /**\n */\n get hasDynamicValidationData(): boolean {\n return true;\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): void {\n if (\n errors.some((error) => error.id === \"Constraint.Mandatory\") ||\n this.layouthint.has(MANDATORY)\n ) {\n this.mandatory = true;\n } else if (!this.hasValue()) {\n this.mandatory = false;\n }\n\n this._serverConstraints = new ConstraintCollection();\n this.resetErrors();\n\n errors\n .filter(\n (error) => error.id !== \"Constraint.Mandatory\" || !this.hasValue(),\n )\n .forEach((error) => {\n if (this.hasValue()) {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n this.formatParameters(error.properties),\n error.layouthint,\n );\n } else {\n this.addServerConstraint(\n error.id,\n error.message,\n this.formatParameters(error.properties),\n );\n }\n });\n }\n\n /**\n * Set last modification to current timestamp\n */\n updateLastModification(): void {\n this._lastModification = Date.now();\n }\n\n /**\n * Inidicates if attribute is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return this._lastModification > timestamp;\n }\n\n /**\n * Abstract reset method which should be implemented on each attribute that has this attribute as a base class.\n *\n * @abstract\n */\n reset(): void {\n throw new UnsupportedOperationException(\n `Reset method not implemented for ${this.type}`,\n );\n }\n\n /**\n * Merge old attribute with the attribute from the server.\n * Readonly attributes always need to show the value from the server\n */\n mergeAttribute(oldAttribute: AttributeType): void {\n this.concept = oldAttribute.concept;\n\n if (\n !oldAttribute.readonly &&\n oldAttribute.isValid &&\n oldAttribute.inputvalue !== null\n ) {\n this.update(oldAttribute.inputvalue);\n }\n }\n\n /**\n * Abstract update method which should be implemented on each attribute that has this attribute as a base class.\n * @abstract\n */\n // eslint-disable-next-line no-unused-vars\n update(value: string, changedAttribute?: AttributeType): AttributeType {\n throw new UnsupportedOperationException(\n `Update method not implemented for ${this.type}`,\n );\n }\n\n /**\n * Abstract updateByAttribute method which should be implemented on each attribute that has this attribute as a base class.\n * @abstract\n */\n // eslint-disable-next-line no-unused-vars\n updateByAttribute(otherAttribute: AttributeType): void {\n console.error(\n \"update of \" +\n this.type +\n \" with \" +\n otherAttribute.type +\n \" not supported\",\n );\n }\n\n /**\n * Indicate if attribute is editable\n */\n set isEditable(isEditable: boolean) {\n this._isEditable = isEditable;\n }\n\n /**\n * Retrieve if attribute is editable\n */\n get isEditable(): boolean {\n return this._isEditable;\n }\n\n /**\n * Indicates if the attribute is visible\n */\n get isVisible(): boolean {\n return !this._isHidden;\n }\n\n /**\n */\n get isHidden(): boolean {\n return this._isHidden;\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n this._isHidden = isHidden;\n }\n\n /**\n * Explicitly toggle visibility of this attribute\n */\n show(): void {\n this.isHidden = false;\n }\n\n /**\n */\n hide(): void {\n this.isHidden = true;\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey\n );\n }\n\n /**\n * Readonly attribute width indicates the proposed width of this attribute\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n\n /**\n */\n get layoutHintRules(): LayoutHintRuleCollection {\n return this._layoutHintRules;\n }\n\n /**\n */\n set layoutHintRules(rules: LayoutHintRuleCollection) {\n this._layoutHintRules = rules;\n }\n\n /**\n */\n processLayoutHintRules(attributes: AttributeCollection): void {\n if (this._layoutHintRules) {\n this.layoutHintRules.process(this, attributes);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return new AttributeContent(this.data.content);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AttributeModel.js","names":["DateUtil","isPlainObject","BaseModel","ConstraintCollection","ErrorCollection","LinkCollection","StringLengthConstraint","MandatoryConstraint","ConceptDetailModel","DISABLED","MANDATORY","ATTRIBUTE_WIDTH","TIMEVERSION_FILTER_NAME","getSetting","hasAllContentInData","IllegalArgumentException","UnsupportedOperationException","AttributeContent","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty","hasContentFromData","content","label","_label","contributions","_initvalue","data","value","_inputvalue","getInitialInputValue","_value","_disabled","layouthint","has","_errorCollection","message","addServerError","id","parameters","_referenceDate","getData","now","_isResult","_mandatory","mandatory","_links","isApplicableModel","getInitialChildModelLinks","hasContentConfiguration","conceptLink","setChildModels","models","errors","conceptHref","href","concept","_findInstanceProperty","call","model","selfhref","equalsWithParameters","key","parentKey","_parentKey","name","type","_hasContentConfiguration","indicateContentConfiguration","contentConfiguration","hasQuestionConfig","questions","hasConfig","hasEndResultConfig","isConfiguredEndResultAttribute","hasIntermediateResultConfig","isConfiguredIntermediateResultAttribute","getContentConfiguredLabel","configuredLabelProperties","labelConfig","length","types","_context","configuredLabels","_filterInstanceProperty","getLabelElementByIds","configuredLabel","_context2","firstConfiguredLabel","_mapInstanceProperty","configuredLabelProperty","some","_id","defaultAlignment","alignment","alignmentHints","getByLayoutHint","substring","links","downloadLink","getLinksByGroup","first","getLinkByKey","addParameter","referenceDate","isCacheable","_concept","date","initvalue","getInputValue","inputvalue","toString","validateValue","validate","hasValue","getValue","getFormData","inError","formdata","getEmptyFormData","updateLastModification","formatValue","readonlyvalue","configuredMandatory","_validatedValue","readonly","_readonly","static","isResult","disabled","format","getContribution","formatLabel","minLength","maxLength","operator","assistantMessage","isValid","constraintCollection","constraints","add","_serverConstraints","addConstraints","setUseClientsideValidation","enabled","_useClientsideValidation","useClientsideValidation","isOptionalAndEmpty","_isValid","undefined","errorCollection","collection","invalidConstraints","isChangedSince","resetErrors","error","properties","removeServerError","hasServerErrors","serverErrors","hasErrors","hasItems","addMissingError","receivedAttribute","removeMissingError","addServerConstraint","defaultMessage","addConstraint","formatParameters","params","_Object$keys","forEach","paramKey","paramValue","_endsWithInstanceProperty","hasDynamicValidationData","updateValidations","_lastModification","Date","timestamp","reset","mergeAttribute","oldAttribute","update","changedAttribute","updateByAttribute","otherAttribute","console","isEditable","_isEditable","isVisible","_isHidden","isHidden","show","hide","equals","readonlyWidth","MEDIUM","layoutHintRules","_layoutHintRules","rules","processLayoutHintRules","attributes","process"],"sources":["../../../src/models/attributes/AttributeModel.js"],"sourcesContent":["// @flow\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\nimport { isPlainObject } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport ErrorCollection from \"../error/ErrorCollection\";\nimport LinkCollection from \"../links/LinkCollection\";\n\nimport StringLengthConstraint from \"./input-constraints/StringLengthConstraint\";\nimport MandatoryConstraint from \"./input-constraints/MandatoryConstraint\";\n\nimport ConceptDetailModel from \"../concepts/ConceptDetailModel\";\n\nimport { DISABLED, MANDATORY } from \"../../constants/LayoutHints\";\nimport {\n ATTRIBUTE_WIDTH,\n TIMEVERSION_FILTER_NAME,\n} from \"../../constants/Constants\";\n\nimport { getSetting, hasAllContentInData } from \"../../constants/Settings\";\n\nimport {\n IllegalArgumentException,\n UnsupportedOperationException,\n} from \"../../exceptions\";\n\nimport type { MessageParameters } from \"../../i18n/types\";\nimport type {\n AttributeType,\n FormErrorAnchor,\n IModelWithChildModels,\n ModelOptions,\n ModularUIModel,\n} from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ContentConfiguration from \"../contentconfiguration/ContentConfiguration\";\nimport type ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\nimport type LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\nimport type AttributeCollection from \"./AttributeCollection\";\nimport AttributeContent from \"./AttributeContent\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Attribute model, base model for all kind of attributes\n */\nexport default class AttributeModel\n extends BaseModel\n implements IModelWithChildModels\n{\n _label: string;\n _lastModification: number = 0;\n\n _initvalue: any;\n _inputvalue: string;\n _value: any;\n\n _errorCollection: ErrorCollection;\n _serverConstraints: ConstraintCollection = new ConstraintCollection();\n _useClientsideValidation: boolean = getSetting(\"USE_CLIENTSIDE_VALIDATION\");\n _isValid: boolean = true;\n _validatedValue: string | null;\n _isEditable: boolean = false;\n _concept: ConceptDetailModel | null = null;\n _referenceDate: ISO_DATE;\n _isResult: boolean;\n _isHidden: boolean = false;\n _readonly: boolean;\n _disabled: boolean = false;\n _mandatory: boolean;\n _links: LinkCollection;\n _parentKey: ?string;\n _hasContentConfiguration: boolean;\n _layoutHintRules: LayoutHintRuleCollection;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n if (this.hasContentFromData && this.content.label) {\n this._label = this.content.label;\n } else {\n this._label = this.contributions.label;\n }\n\n this._initvalue = this.data.value;\n this._inputvalue = this.getInitialInputValue(this.data.value);\n this._value = this.data.value;\n this._disabled = this.layouthint.has(DISABLED);\n\n this._errorCollection = new ErrorCollection(\"attribute\");\n if (attribute && attribute.message) {\n this._errorCollection.addServerError(\n attribute.message.id,\n attribute.message.message,\n attribute.message.parameters,\n attribute.message.layouthint,\n );\n }\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n\n this._isResult = this.getData(\"isResult\", false);\n\n this._mandatory =\n this.layouthint.has(MANDATORY) || this.contributions.mandatory;\n\n this._links = new LinkCollection(\n this.data._links,\n this.contributions._links,\n modelOptions,\n );\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n if (!isPlainObject(contributions)) {\n throw new IllegalArgumentException(\n \"Given argument for isApplicableModel is not a contributions object\",\n );\n }\n\n return false;\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): any {\n return value;\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n if (\n !this.hasContentFromData &&\n this.hasContentConfiguration &&\n this.conceptLink\n ) {\n return [this.conceptLink];\n }\n return [];\n }\n\n /**\n */\n setChildModels(\n models: Array<ModularUIModel>,\n errors: Array<ErrorResponse>, // eslint-disable-line no-unused-vars\n ): void {\n const conceptHref = this.conceptLink?.href;\n if (conceptHref) {\n this.concept = models.find((model) =>\n model.selfhref.equalsWithParameters(conceptHref),\n );\n }\n }\n\n /**\n * Getting the attribute key\n */\n get key(): string {\n return this.data.key;\n }\n\n /**\n */\n get parentKey(): string {\n return this._parentKey || \"\";\n }\n\n /**\n */\n set parentKey(parentKey: string) {\n this._parentKey = parentKey;\n }\n\n /**\n * Getting the attribute name\n */\n get name(): string {\n return this.key;\n }\n\n /**\n * Getting the type of the attribute\n */\n get type(): string {\n return this.contributions.type;\n }\n\n /**\n * Getting the label of the attribute\n */\n get label(): string {\n return this._label || \"\";\n }\n\n /**\n * Set the label of this attribute\n */\n set label(label: string) {\n this._label = label;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration = hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration || false;\n }\n\n /**\n */\n indicateContentConfiguration(\n contentConfiguration: ContentConfiguration,\n ): void {\n if (contentConfiguration) {\n const hasQuestionConfig = contentConfiguration.questions?.hasConfig();\n\n const hasEndResultConfig =\n contentConfiguration.isConfiguredEndResultAttribute(this.key);\n const hasIntermediateResultConfig =\n contentConfiguration.isConfiguredIntermediateResultAttribute(this.key);\n\n this.hasContentConfiguration =\n hasQuestionConfig || hasEndResultConfig || hasIntermediateResultConfig;\n }\n }\n\n /**\n * Retrieve the first permitted label to render when a concept and contentConfiguration is available\n * Be aware that permission could be in place for labels from a concept.\n */\n getContentConfiguredLabel(\n contentConfiguration: ?ContentConfigurationElements,\n ): string {\n if (this.hasContentFromData) {\n return this.content.label ?? this.label;\n }\n\n const configuredLabelProperties =\n contentConfiguration && contentConfiguration.labelConfig.length > 0\n ? contentConfiguration.labelConfig[0].types\n : [];\n\n if (this.concept && configuredLabelProperties.length > 0) {\n const configuredLabels = this.concept\n .getLabelElementByIds(configuredLabelProperties)\n .filter(\n (configuredLabel) =>\n configuredLabel.value && configuredLabel.value !== \"\",\n );\n\n if (configuredLabels.length > 0) {\n const [firstConfiguredLabel] = configuredLabelProperties\n .filter((configuredLabelProperty) =>\n configuredLabels.some(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n )\n .map((configuredLabelProperty) =>\n configuredLabels.find(\n (configuredLabel) =>\n configuredLabel._id === configuredLabelProperty,\n ),\n );\n\n if (firstConfiguredLabel) {\n return firstConfiguredLabel.value;\n }\n }\n }\n\n return this.label;\n }\n\n /**\n */\n get defaultAlignment(): \"left\" | \"center\" | \"right\" {\n return \"left\";\n }\n\n /**\n * Handles layout hint align-left, align-center and align-right\n */\n get alignment(): \"left\" | \"center\" | \"right\" {\n const alignmentHints = this.layouthint.getByLayoutHint(\"align-\");\n\n // return alignment based on layouthint or the default alignment for the attribute\n const alignment = alignmentHints\n ? alignmentHints.substring(\"align-\".length)\n : this.defaultAlignment;\n\n if (\n alignment === \"left\" ||\n alignment === \"center\" ||\n alignment === \"right\"\n ) {\n return alignment;\n }\n\n return this.defaultAlignment;\n }\n\n /**\n * Retrieve links of attribute\n */\n get links(): LinkCollection {\n if (!this._links) {\n this._links = new LinkCollection(\n this.data._links,\n this.contributions._links,\n );\n }\n\n return this._links;\n }\n\n /**\n * Retrieve link of attribute when available\n */\n get downloadLink(): ?LinkModel {\n const downloadLink = this.links.getLinksByGroup(\"download\").first;\n\n if (downloadLink && downloadLink.key === this.key) {\n return downloadLink;\n }\n\n return null;\n }\n\n /**\n * Retrieve concept link of attribute when available\n */\n get conceptLink(): ?LinkModel {\n const conceptLink = this.links.getLinkByKey(\"concept\");\n\n if (conceptLink !== null) {\n conceptLink.href = conceptLink.href.addParameter(\n TIMEVERSION_FILTER_NAME,\n this.referenceDate,\n );\n\n conceptLink.isCacheable = true;\n }\n\n return conceptLink;\n }\n\n /**\n * Get concept information\n */\n get concept(): ConceptDetailModel | null {\n return this._concept ?? null;\n }\n\n /**\n * Set the concept\n */\n set concept(concept: ?ModularUIModel) {\n this._concept = concept instanceof ConceptDetailModel ? concept : null;\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n * to get information in correct time version\n */\n get referenceDate(): ISO_DATE {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: ISO_DATE) {\n this._referenceDate = date;\n }\n\n /**\n * Initial value received from the modular ui service\n */\n get initvalue(): any {\n return this._initvalue;\n }\n\n /**\n * Retrieve input value\n */\n getInputValue(): string {\n const inputvalue = this._inputvalue;\n\n return inputvalue ? inputvalue.toString() : \"\";\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Value that is used when retrieving an error collection of this attribute\n * Mostly this is the input value, but sometimes a different value is needed,\n * for example iban and postcode need to validate length without spaces\n */\n get validateValue(): string {\n return this.inputvalue;\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n this.value = value;\n\n this.validate(value);\n }\n\n /**\n */\n hasValue(): boolean {\n return this._value != null && this._value !== \"\";\n }\n\n /**\n * Getting the value of the attribute\n */\n getValue(): any {\n return this.hasValue() ? this._value : null;\n }\n\n /**\n * Getting data ready to be send to the modular ui\n * Returns null when the attribute should not be send to the server\n */\n getFormData(): { [string]: any } | null {\n if (this.inError()) {\n return null;\n }\n\n return {\n [this.name]: this.value,\n };\n }\n\n /**\n */\n get formdata(): { [string]: any } | null {\n return this.getFormData();\n }\n\n /**\n */\n getEmptyFormData(): { [string]: null } {\n return { [this.name]: null };\n }\n\n /**\n * Getting the value of the attribute\n */\n get value(): any {\n return this.getValue();\n }\n\n /**\n * Setting a value in the element\n */\n set value(value: ?string) {\n this.updateLastModification();\n\n this._value = value;\n }\n\n /**\n */\n formatValue(value: string): string {\n return value;\n }\n\n /**\n * Getting the readonly value, iso value converted for human reading\n */\n get readonlyvalue(): string {\n return this.value ? this.value.toString() : \"\";\n }\n\n /**\n * Getting mandatory status of attribute\n */\n get mandatory(): boolean {\n return this._mandatory || false;\n }\n\n /**\n */\n get configuredMandatory(): ?boolean {\n return this.layouthint.has(MANDATORY) || this.contributions.mandatory;\n }\n\n /**\n * Set mandatory status of attribute\n */\n set mandatory(mandatory: boolean) {\n if (mandatory !== this._mandatory) {\n this._validatedValue = null;\n }\n this._mandatory = mandatory;\n }\n\n /**\n */\n get readonly(): boolean {\n return (\n this._readonly ||\n this.contributions.readonly === true ||\n this.data.static === true ||\n this.isResult === true\n );\n }\n\n /**\n */\n set readonly(readonly: boolean) {\n this._readonly = readonly;\n }\n\n /**\n */\n get disabled(): boolean {\n return this._disabled;\n }\n\n /**\n */\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n /**\n */\n get isResult(): boolean {\n return this._isResult;\n }\n\n /**\n */\n set isResult(isResult: boolean) {\n this._isResult = isResult;\n }\n\n /**\n * Getting the display and input format of a attribute\n */\n get format(): string | null {\n return this.getContribution(\"format\");\n }\n\n /**\n */\n get formatLabel(): string {\n return this.format || \"\";\n }\n\n /**\n * Get minimum string length\n */\n get minLength(): number | null {\n return this.getContribution(\"minLength\");\n }\n\n /**\n * Get maximum string length\n */\n get maxLength(): number | null {\n return this.getContribution(\"maxLength\");\n }\n\n /**\n */\n get operator(): string {\n return this.getContribution(\"operator\", \"\");\n }\n\n /**\n * Get assistant message\n */\n get assistantMessage(): string | null {\n return this.getContribution(\"assistant\");\n }\n\n /**\n * Get valid status\n */\n get isValid(): boolean {\n return this.validate(this.validateValue);\n }\n\n /**\n * Retrieve applicable constraint for this attribute\n */\n get constraintCollection(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this._serverConstraints);\n\n // Mandatory constraint\n if (this.mandatory) {\n constraints.add(new MandatoryConstraint());\n }\n\n if (this.minLength || this.maxLength) {\n constraints.add(\n new StringLengthConstraint(this.minLength, this.maxLength),\n );\n }\n\n constraints.add(this.addConstraints());\n\n return constraints;\n }\n\n /**\n * Template method for class extending this model to add extra constraints\n * @abstract\n */\n addConstraints(): ConstraintCollection {\n return new ConstraintCollection();\n }\n\n /**\n * Used to programmatically overwrite the setting USE_CLIENTSIDE_VALIDATION\n */\n setUseClientsideValidation(enabled: boolean): void {\n this._useClientsideValidation = enabled;\n }\n\n /**\n * Indicates if client side validation is enabled\n * @returns {boolean}\n */\n useClientsideValidation(): boolean {\n return this._useClientsideValidation ?? true;\n }\n\n /**\n * Validate input on client side constraint\n */\n validate(value: string): boolean {\n // when client side validation is disabled, this attribute is always valid\n if (!this.useClientsideValidation()) {\n return true;\n }\n\n if (this.isOptionalAndEmpty(value)) {\n this._isValid = true;\n } else if (this._validatedValue !== value) {\n this._isValid = this.constraintCollection.validate(value);\n }\n this._validatedValue = value;\n\n return this._isValid;\n }\n\n /**\n * Indicates if attribute is optional and empty\n */\n isOptionalAndEmpty(value: string): boolean {\n if (value === undefined) {\n throw new IllegalArgumentException(\n \"isOptionalAndEmpty method needs value argument\",\n );\n }\n\n return !this.mandatory && value === \"\";\n }\n\n /**\n * Retrieve error messages of this attribute\n */\n get errorCollection(): ErrorCollection {\n const collection = new ErrorCollection(\"attribute\", this._errorCollection);\n\n collection.addConstraints(\n this.constraintCollection.invalidConstraints(this.validateValue),\n );\n\n return collection;\n }\n\n /**\n * Check if attribute is in error\n */\n inError(): boolean {\n return !this._isValid && this.isChangedSince(0);\n }\n\n /**\n * Reset static error messages on attribute\n */\n resetErrors(): void {\n this._errorCollection = new ErrorCollection(\"attribute\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor): void {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n error.properties,\n error.layouthint,\n );\n }\n\n /**\n */\n removeServerError(id: string): void {\n this._errorCollection.removeServerError(id);\n }\n\n /**\n */\n hasServerErrors(): boolean {\n return this.errorCollection.serverErrors.length > 0;\n }\n\n /**\n */\n hasErrors(): boolean {\n return this.errorCollection.hasItems;\n }\n\n /**\n * Registers a missing error that was received from the server\n */\n // eslint-disable-next-line no-unused-vars\n addMissingError(receivedAttribute?: AttributeType): void {\n this._errorCollection.addServerError(\"Constraint.Missing\");\n }\n\n /**\n */\n removeMissingError(): void {\n this.removeServerError(\"Constraint.Missing\");\n }\n\n /**\n */\n addServerConstraint(\n id: string,\n defaultMessage?: string,\n parameters?: MessageParameters,\n ) {\n this._serverConstraints.addConstraint(\n id,\n null,\n defaultMessage,\n parameters,\n this.useClientsideValidation(),\n );\n }\n\n /**\n */\n formatParameters(parameters: Object): { [string]: string | number } {\n if (parameters == null) {\n return {};\n }\n\n const params: { [name: string]: string | number } = {};\n\n Object.keys(parameters).forEach((paramKey: string) => {\n const paramValue = parameters[paramKey];\n if (paramKey.endsWith(\"-number\") || paramKey.endsWith(\"-date\")) {\n params[paramKey] = this.formatValue(paramValue);\n } else {\n params[paramKey] = paramValue;\n }\n });\n\n return params;\n }\n\n /**\n */\n get hasDynamicValidationData(): boolean {\n return true;\n }\n\n /**\n */\n updateValidations(errors: Array<Object>): void {\n if (\n errors.some((error) => error.id === \"Constraint.Mandatory\") ||\n this.layouthint.has(MANDATORY)\n ) {\n this.mandatory = true;\n } else if (!this.hasValue()) {\n this.mandatory = false;\n }\n\n this._serverConstraints = new ConstraintCollection();\n this.resetErrors();\n\n errors\n .filter(\n (error) => error.id !== \"Constraint.Mandatory\" || !this.hasValue(),\n )\n .forEach((error) => {\n if (this.hasValue()) {\n this._errorCollection.addServerError(\n error.id,\n error.message,\n this.formatParameters(error.properties),\n error.layouthint,\n );\n } else {\n this.addServerConstraint(\n error.id,\n error.message,\n this.formatParameters(error.properties),\n );\n }\n });\n }\n\n /**\n * Set last modification to current timestamp\n */\n updateLastModification(): void {\n this._lastModification = Date.now();\n }\n\n /**\n * Inidicates if attribute is changed since a given timestamp (Date.now)\n */\n isChangedSince(timestamp: number): boolean {\n return this._lastModification > timestamp;\n }\n\n /**\n * Abstract reset method which should be implemented on each attribute that has this attribute as a base class.\n *\n * @abstract\n */\n reset(): void {\n throw new UnsupportedOperationException(\n `Reset method not implemented for ${this.type}`,\n );\n }\n\n /**\n * Merge old attribute with the attribute from the server.\n * Readonly attributes always need to show the value from the server\n */\n mergeAttribute(oldAttribute: AttributeType): void {\n this.concept = oldAttribute.concept;\n\n if (\n !oldAttribute.readonly &&\n oldAttribute.isValid &&\n oldAttribute.inputvalue !== null\n ) {\n this.update(oldAttribute.inputvalue);\n }\n }\n\n /**\n * Abstract update method which should be implemented on each attribute that has this attribute as a base class.\n * @abstract\n */\n // eslint-disable-next-line no-unused-vars\n update(value: string, changedAttribute?: AttributeType): AttributeType {\n throw new UnsupportedOperationException(\n `Update method not implemented for ${this.type}`,\n );\n }\n\n /**\n * Abstract updateByAttribute method which should be implemented on each attribute that has this attribute as a base class.\n * @abstract\n */\n // eslint-disable-next-line no-unused-vars\n updateByAttribute(otherAttribute: AttributeType): void {\n console.error(\n \"update of \" +\n this.type +\n \" with \" +\n otherAttribute.type +\n \" not supported\",\n );\n }\n\n /**\n * Indicate if attribute is editable\n */\n set isEditable(isEditable: boolean) {\n this._isEditable = isEditable;\n }\n\n /**\n * Retrieve if attribute is editable\n */\n get isEditable(): boolean {\n return this._isEditable;\n }\n\n /**\n * Indicates if the attribute is visible\n */\n get isVisible(): boolean {\n return !this._isHidden;\n }\n\n /**\n */\n get isHidden(): boolean {\n return this._isHidden;\n }\n\n /**\n */\n set isHidden(isHidden: boolean) {\n this._isHidden = isHidden;\n }\n\n /**\n * Explicitly toggle visibility of this attribute\n */\n show(): void {\n this.isHidden = false;\n }\n\n /**\n */\n hide(): void {\n this.isHidden = true;\n }\n\n /**\n */\n equals(otherAttribute: AttributeType): boolean {\n return (\n this.key === otherAttribute.key &&\n this.parentKey === otherAttribute.parentKey\n );\n }\n\n /**\n * Readonly attribute width indicates the proposed width of this attribute\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n\n /**\n */\n get layoutHintRules(): LayoutHintRuleCollection {\n return this._layoutHintRules;\n }\n\n /**\n */\n set layoutHintRules(rules: LayoutHintRuleCollection) {\n this._layoutHintRules = rules;\n }\n\n /**\n */\n processLayoutHintRules(attributes: AttributeCollection): void {\n if (this._layoutHintRules) {\n this.layoutHintRules.process(this, attributes);\n }\n }\n\n /**\n * Indicates if content comes from the data service\n */\n get hasContentFromData(): boolean {\n return hasAllContentInData();\n }\n\n /**\n */\n get content(): AttributeContent {\n return new AttributeContent(this.data.content);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,6 @@ import _entriesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/inst
5
5
  import { has } from "../../utils/helpers/objects";
6
6
  import BaseModel from "../base/BaseModel";
7
7
  import AttributeCollection from "./AttributeCollection";
8
-
9
8
  /**
10
9
  */
11
10
  export default class AttributeSetModel extends BaseModel {
@@ -16,14 +15,18 @@ export default class AttributeSetModel extends BaseModel {
16
15
  let key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
17
16
  let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18
17
  let contributions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
19
- super(data, contributions);
18
+ let modelOptions = arguments.length > 3 ? arguments[3] : undefined;
19
+ super(data, contributions, modelOptions);
20
20
  _defineProperty(this, "_key", void 0);
21
21
  _defineProperty(this, "_attributeCollection", void 0);
22
22
  const attributeContributions = this.contributions.attributes ? _filterInstanceProperty(_context = this.contributions.attributes).call(_context, contribution => {
23
23
  const [contributionKey] = _Object$keys(contribution);
24
24
  return has(this.data, contributionKey);
25
25
  }) : [];
26
- this._attributeCollection = new AttributeCollection(this.data, attributeContributions, true);
26
+ this._attributeCollection = new AttributeCollection(this.data, attributeContributions, {
27
+ ...modelOptions,
28
+ isReadonly: true
29
+ });
27
30
  this._key = key;
28
31
  }
29
32
 
@@ -65,7 +68,7 @@ export default class AttributeSetModel extends BaseModel {
65
68
  return new AttributeSetModel(index ? `${key}-${index + 1}` : key, {
66
69
  ...dataObject,
67
70
  dynamicschema: this.data.dynamicschema
68
- }, this.contributions.objects[key]);
71
+ }, this.contributions.objects[key], this.modelOptions);
69
72
  }
70
73
 
71
74
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeSetModel.js","names":["has","BaseModel","AttributeCollection","AttributeSetModel","constructor","_context","key","arguments","length","undefined","data","contributions","_defineProperty","attributeContributions","attributes","_filterInstanceProperty","call","contribution","contributionKey","_Object$keys","_attributeCollection","_key","label","attributeCollection","collection","createChildAttributeSetModel","dataObject","index","dynamicschema","objects","getChildAttributeSets","childAttributeSets","Array","isArray","i","_entriesInstanceProperty","_context2","push"],"sources":["../../../src/models/attributes/AttributeSetModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"./AttributeCollection\";\n\n/**\n */\nexport default class AttributeSetModel extends BaseModel {\n _key: string;\n _attributeCollection: AttributeCollection;\n\n /**\n */\n constructor(key: string = \"\", data: Object = {}, contributions: Object = {}) {\n super(data, contributions);\n\n const attributeContributions = this.contributions.attributes\n ? this.contributions.attributes.filter((contribution) => {\n const [contributionKey] = Object.keys(contribution);\n return has(this.data, contributionKey);\n })\n : [];\n\n this._attributeCollection = new AttributeCollection(\n this.data,\n attributeContributions,\n true,\n );\n\n this._key = key;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n set key(key: string) {\n this._key = key;\n }\n\n /**\n */\n get label(): ?string {\n return this.contributions.label;\n }\n\n /**\n * Retrieve attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n * Set the attributes with a new AttributeCollection\n */\n set attributeCollection(collection: AttributeCollection) {\n this._attributeCollection = collection;\n }\n\n /**\n */\n createChildAttributeSetModel(\n key: string,\n dataObject: Object,\n index?: number,\n ): AttributeSetModel {\n return new AttributeSetModel(\n index ? `${key}-${index + 1}` : key,\n {\n ...dataObject,\n dynamicschema: this.data.dynamicschema,\n },\n this.contributions.objects[key],\n );\n }\n\n /**\n * Retrieve child {@code AttributeSetModel}s\n */\n getChildAttributeSets(): Array<AttributeSetModel> {\n if (!this.contributions.objects) {\n return [];\n }\n\n const childAttributeSets = [];\n for (const key of Object.keys(this.contributions.objects)) {\n if (key in this.data) {\n if (Array.isArray(this.data[key])) {\n for (const [i, dataObject] of this.data[key].entries()) {\n childAttributeSets.push(\n this.createChildAttributeSetModel(key, dataObject, i),\n );\n }\n } else {\n childAttributeSets.push(\n this.createChildAttributeSetModel(key, this.data[key]),\n );\n }\n }\n }\n return childAttributeSets;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AttributeSetModel.js","names":["has","BaseModel","AttributeCollection","AttributeSetModel","constructor","_context","key","arguments","length","undefined","data","contributions","modelOptions","_defineProperty","attributeContributions","attributes","_filterInstanceProperty","call","contribution","contributionKey","_Object$keys","_attributeCollection","isReadonly","_key","label","attributeCollection","collection","createChildAttributeSetModel","dataObject","index","dynamicschema","objects","getChildAttributeSets","childAttributeSets","Array","isArray","i","_entriesInstanceProperty","_context2","push"],"sources":["../../../src/models/attributes/AttributeSetModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport BaseModel from \"../base/BaseModel\";\nimport AttributeCollection from \"./AttributeCollection\";\n\nimport type { ModelOptions } from \"../types\";\n\n/**\n */\nexport default class AttributeSetModel extends BaseModel {\n _key: string;\n _attributeCollection: AttributeCollection;\n\n /**\n */\n constructor(\n key: string = \"\",\n data: Object = {},\n contributions: Object = {},\n modelOptions?: ModelOptions,\n ) {\n super(data, contributions, modelOptions);\n\n const attributeContributions = this.contributions.attributes\n ? this.contributions.attributes.filter((contribution) => {\n const [contributionKey] = Object.keys(contribution);\n return has(this.data, contributionKey);\n })\n : [];\n\n this._attributeCollection = new AttributeCollection(\n this.data,\n attributeContributions,\n { ...modelOptions, isReadonly: true },\n );\n\n this._key = key;\n }\n\n /**\n */\n get key(): string {\n return this._key;\n }\n\n /**\n */\n set key(key: string) {\n this._key = key;\n }\n\n /**\n */\n get label(): ?string {\n return this.contributions.label;\n }\n\n /**\n * Retrieve attribute collection\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n * Set the attributes with a new AttributeCollection\n */\n set attributeCollection(collection: AttributeCollection) {\n this._attributeCollection = collection;\n }\n\n /**\n */\n createChildAttributeSetModel(\n key: string,\n dataObject: Object,\n index?: number,\n ): AttributeSetModel {\n return new AttributeSetModel(\n index ? `${key}-${index + 1}` : key,\n {\n ...dataObject,\n dynamicschema: this.data.dynamicschema,\n },\n this.contributions.objects[key],\n this.modelOptions,\n );\n }\n\n /**\n * Retrieve child {@code AttributeSetModel}s\n */\n getChildAttributeSets(): Array<AttributeSetModel> {\n if (!this.contributions.objects) {\n return [];\n }\n\n const childAttributeSets = [];\n for (const key of Object.keys(this.contributions.objects)) {\n if (key in this.data) {\n if (Array.isArray(this.data[key])) {\n for (const [i, dataObject] of this.data[key].entries()) {\n childAttributeSets.push(\n this.createChildAttributeSetModel(key, dataObject, i),\n );\n }\n } else {\n childAttributeSets.push(\n this.createChildAttributeSetModel(key, this.data[key]),\n );\n }\n }\n }\n return childAttributeSets;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -15,13 +15,16 @@ import { ATTRIBUTE_WIDTH } from "../../constants";
15
15
  export default class BooleanAttributeModel extends AttributeModel {
16
16
  /**
17
17
  */
18
- constructor(attribute, attributeContributions) {
19
- super(attribute, attributeContributions);
18
+ constructor(attribute, attributeContributions, modelOptions) {
19
+ super(attribute, attributeContributions, modelOptions);
20
20
  _defineProperty(this, "_referenceDate", void 0);
21
21
  _defineProperty(this, "_options", void 0);
22
22
  _defineProperty(this, "_hasContentConfiguration", false);
23
23
  this._referenceDate = this.getData("referenceDate", DateUtil.now());
24
- this._options = ChoiceAttributeOptionCollection.create(attribute, attributeContributions, this.referenceDate);
24
+ this._options = ChoiceAttributeOptionCollection.create(attribute, attributeContributions, {
25
+ ...modelOptions,
26
+ referenceDate: this.referenceDate
27
+ });
25
28
  }
26
29
 
27
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanAttributeModel.js","names":["AttributeModel","DateUtil","ChoiceAttributeOptionCollection","ContentConfigurationElements","ChoiceAttributeOptionModel","RENDER_SECTION_LABEL","ATTRIBUTE_WIDTH","BooleanAttributeModel","constructor","attribute","attributeContributions","_defineProperty","_referenceDate","getData","now","_options","create","referenceDate","isApplicableModel","contributions","type","date","options","choicetype","_context","_findInstanceProperty","call","hint","layouthint","has","isMultiple","isTree","hasContentConfiguration","_hasContentConfiguration","contentConfiguration","_context2","content","optionElements","optionElementConfig","_mapInstanceProperty","optionElement","contentElement","selected","_context3","option","code","readonlyvalue","_context4","label","join","initvalue","Array","isArray","_initvalue","length","getValue","_context5","hasValue","getInputValue","toggleOption","_context6","_includesInstanceProperty","disableOption","enableOption","deselectAll","select","inputvalue","deselect","reset","mergeAttribute","oldAttribute","readonly","concept","isValid","update","value","updateLastModification","values","split","toString","forEach","val","some","updateByAttribute","otherAttribute","console","error","getFormData","inError","name","readonlyWidth","hasAlternativeLabel","SMALL","EXTRA_SMALL"],"sources":["../../../src/models/attributes/BooleanAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\n\nimport { RENDER_SECTION_LABEL } from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * Model for a boolean attribute\n */\nexport default class BooleanAttributeModel extends AttributeModel {\n _referenceDate: string;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean = false;\n\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n this.referenceDate,\n );\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"boolean\";\n }\n\n /**\n */\n get type(): string {\n return \"boolean\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): string {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype(): \"checkbox\" | \"radiobutton\" | \"combobox\" | \"toggle\" {\n return (\n [\"checkbox\", \"radiobutton\", \"combobox\", \"toggle\"].find((hint) =>\n this.layouthint.has(hint),\n ) || \"radiobutton\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return false;\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return false;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n this.options.deselectAll();\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Reset boolean attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof BooleanAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): BooleanAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values = [];\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else if (value != null) {\n values = [value.toString()];\n }\n\n values.forEach((val) => {\n if (val instanceof ChoiceAttributeOptionModel) {\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof BooleanAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of boolean attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n getFormData(): { [string]: boolean | null } | null {\n if (this.inError()) {\n return null;\n }\n\n if (!this.hasValue()) {\n // no value for checkbox and toggle is same as a false value\n if (this.choicetype === \"checkbox\" || this.choicetype === \"toggle\") {\n return { [this.name]: false };\n }\n\n return { [this.name]: null };\n }\n\n return { [this.name]: this.value === \"true\" };\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.options.some((option) => option.hasAlternativeLabel)) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.EXTRA_SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BooleanAttributeModel.js","names":["AttributeModel","DateUtil","ChoiceAttributeOptionCollection","ContentConfigurationElements","ChoiceAttributeOptionModel","RENDER_SECTION_LABEL","ATTRIBUTE_WIDTH","BooleanAttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty","_referenceDate","getData","now","_options","create","referenceDate","isApplicableModel","contributions","type","date","options","choicetype","_context","_findInstanceProperty","call","hint","layouthint","has","isMultiple","isTree","hasContentConfiguration","_hasContentConfiguration","contentConfiguration","_context2","content","optionElements","optionElementConfig","_mapInstanceProperty","optionElement","contentElement","selected","_context3","option","code","readonlyvalue","_context4","label","join","initvalue","Array","isArray","_initvalue","length","getValue","_context5","hasValue","getInputValue","toggleOption","_context6","_includesInstanceProperty","disableOption","enableOption","deselectAll","select","inputvalue","deselect","reset","mergeAttribute","oldAttribute","readonly","concept","isValid","update","value","updateLastModification","values","split","toString","forEach","val","some","updateByAttribute","otherAttribute","console","error","getFormData","inError","name","readonlyWidth","hasAlternativeLabel","SMALL","EXTRA_SMALL"],"sources":["../../../src/models/attributes/BooleanAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\n\nimport { DateUtil } from \"../../utils/datetime/DateTimeUtil\";\n\nimport ChoiceAttributeOptionCollection from \"./ChoiceAttributeOptionCollection\";\nimport ContentConfigurationElements from \"../contentconfiguration/ContentConfigurationElements\";\nimport ChoiceAttributeOptionModel from \"./ChoiceAttributeOptionModel\";\n\nimport { RENDER_SECTION_LABEL } from \"../../constants/LayoutHints\";\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * Model for a boolean attribute\n */\nexport default class BooleanAttributeModel extends AttributeModel {\n _referenceDate: string;\n _options: ChoiceAttributeOptionCollection;\n _hasContentConfiguration: boolean = false;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._referenceDate = this.getData(\"referenceDate\", DateUtil.now());\n this._options = ChoiceAttributeOptionCollection.create(\n attribute,\n attributeContributions,\n { ...modelOptions, referenceDate: this.referenceDate },\n );\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return contributions.type === \"boolean\";\n }\n\n /**\n */\n get type(): string {\n return \"boolean\";\n }\n\n /**\n * Retrieve reference date of attribute which can be used as entryDate for content\n */\n get referenceDate(): string {\n return this._referenceDate;\n }\n\n /**\n * Set reference date for concepts and content\n */\n set referenceDate(date: string) {\n this._referenceDate = date;\n\n this.options.referenceDate = date;\n }\n\n /**\n * Getting the type of choice filter. For instance checkbox, radiobutton, combobox.\n */\n get choicetype(): \"checkbox\" | \"radiobutton\" | \"combobox\" | \"toggle\" {\n return (\n [\"checkbox\", \"radiobutton\", \"combobox\", \"toggle\"].find((hint) =>\n this.layouthint.has(hint),\n ) || \"radiobutton\"\n );\n }\n\n /**\n * Can multiple options be selected\n */\n get isMultiple(): boolean {\n return false;\n }\n\n /**\n * Check if options need to be rendered as tree\n */\n get isTree(): boolean {\n return false;\n }\n\n /**\n */\n set hasContentConfiguration(hasContentConfiguration: boolean) {\n this._hasContentConfiguration =\n this.contentConfiguration !== null || hasContentConfiguration;\n }\n\n /**\n */\n get hasContentConfiguration(): boolean {\n return this._hasContentConfiguration;\n }\n\n /**\n * Get content configuration configured on the attribute.\n * Only applicable for taxonomy element and knowledge codemaps,\n * content configuration for instrument questions is available on the form object\n */\n get contentConfiguration(): ContentConfigurationElements | null {\n if (\n !this.contributions.content ||\n !this.contributions.content.optionElements\n ) {\n return null;\n }\n\n // Add RENDER_SECTION_LABEL to all content configuration to make sure the label of a section is always rendered on taxonomy and knowlege codemaps\n const optionElementConfig = this.contributions.content.optionElements.map(\n (optionElement) => {\n if (\"contentElement\" in optionElement) {\n return {\n contentElement: {\n ...optionElement.contentElement,\n layouthint: [RENDER_SECTION_LABEL],\n },\n };\n }\n\n return optionElement;\n },\n );\n\n return new ContentConfigurationElements(optionElementConfig);\n }\n\n /**\n * Retrieve available choice options\n */\n get options(): ChoiceAttributeOptionCollection {\n return this._options;\n }\n\n /**\n * Getting all enabled options\n */\n get selected(): Array<string> {\n // $FlowFixMe[incompatible-call]\n return this.options.selected.map<string, ChoiceAttributeOptionModel>(\n (option: ChoiceAttributeOptionModel) => option.code,\n );\n }\n\n /**\n * Flatten options and filter out the options that are not selected\n */\n get readonlyvalue(): string {\n return this.options.selected.map((option) => option.label).join(\", \");\n }\n\n /**\n */\n get initvalue(): any {\n if (Array.isArray(this._initvalue) && this._initvalue.length === 0) {\n return null;\n }\n\n return this._initvalue;\n }\n\n /**\n * Retrieve list of selected options, joined with comma\n */\n getValue(): string | null {\n return this.options.selected.length > 0\n ? this.options.selected.map((option) => option.code).join(\",\")\n : null;\n }\n\n /**\n */\n hasValue(): boolean {\n return this.options.selected.length > 0;\n }\n\n /**\n * Get input value of attribute\n */\n getInputValue(): string {\n return this.selected.join(\",\");\n }\n\n /**\n * Setting an option selected or unselected based on the current state\n */\n toggleOption(code: string) {\n if (this.selected.includes(code)) {\n this.disableOption(code);\n } else {\n this.enableOption(code);\n }\n }\n\n /**\n * Enable a option\n */\n enableOption(code: string) {\n this.options.deselectAll();\n this.options.select(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Disable a option\n */\n disableOption(code: string) {\n this.options.deselect(code);\n this.inputvalue = this.getInputValue();\n }\n\n /**\n * Reset boolean attribute to unselected list\n */\n reset() {\n this.options.deselectAll();\n }\n\n /**\n */\n mergeAttribute(oldAttribute: AttributeType) {\n // when attribute is readonly, don't merge the options no modifications necessary\n if (!this.readonly && oldAttribute instanceof BooleanAttributeModel) {\n this.concept = oldAttribute.concept;\n this.options.deselectAll();\n\n if (oldAttribute.isValid && oldAttribute.inputvalue !== null) {\n this.update(oldAttribute.inputvalue);\n }\n }\n }\n\n /**\n * Update attribute by name and value\n */\n update(value: any): BooleanAttributeModel {\n if (this.readonly) {\n return this;\n }\n\n this.updateLastModification();\n\n let values = [];\n\n if (Array.isArray(value)) {\n values = value;\n } else if (typeof value === \"string\" && this.isMultiple) {\n values = value.split(\",\");\n } else if (value != null) {\n values = [value.toString()];\n }\n\n values.forEach((val) => {\n if (val instanceof ChoiceAttributeOptionModel) {\n this.toggleOption(val.code);\n } else if (\n typeof val === \"string\" &&\n this.options.some((option) => option.code.toString() === val)\n ) {\n this.toggleOption(val);\n }\n });\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof BooleanAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of boolean attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n getFormData(): { [string]: boolean | null } | null {\n if (this.inError()) {\n return null;\n }\n\n if (!this.hasValue()) {\n // no value for checkbox and toggle is same as a false value\n if (this.choicetype === \"checkbox\" || this.choicetype === \"toggle\") {\n return { [this.name]: false };\n }\n\n return { [this.name]: null };\n }\n\n return { [this.name]: this.value === \"true\" };\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.options.some((option) => option.hasAlternativeLabel)) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.EXTRA_SMALL;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,13 +19,16 @@ export default class ChoiceAttributeModel extends AttributeModel {
19
19
  /**
20
20
  * Constructs a choice attribute
21
21
  */
22
- constructor(attribute, attributeContributions) {
23
- super(attribute, attributeContributions);
22
+ constructor(attribute, attributeContributions, modelOptions) {
23
+ super(attribute, attributeContributions, modelOptions);
24
24
  _defineProperty(this, "_referenceDate", void 0);
25
25
  _defineProperty(this, "_options", void 0);
26
26
  _defineProperty(this, "_hasContentConfiguration", void 0);
27
27
  this._referenceDate = this.getData("referenceDate", DateUtil.now());
28
- this._options = ChoiceAttributeOptionCollection.create(attribute, attributeContributions, this.referenceDate);
28
+ this._options = ChoiceAttributeOptionCollection.create(attribute, attributeContributions, {
29
+ ...modelOptions,
30
+ referenceDate: this.referenceDate
31
+ });
29
32
  if (this.layouthint.has(SORT_OPTIONS)) {
30
33
  this._options.sortOptions = true;
31
34
  }