@beinformed/ui 1.57.2 → 1.57.4

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 +19 -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 +22 -21
  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 +11 -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 +21 -20
  277. package/lib/models/href/Href.js.flow +33 -25
  278. package/lib/models/href/Href.js.map +1 -1
  279. package/lib/models/href/__tests__/Href.spec.js.flow +16 -14
  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 +11 -11
  343. package/lib/redux/_modularui/ModularUIUtils.js.flow +17 -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 +33 -25
  404. package/src/models/href/__tests__/Href.spec.js +16 -14
  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 +17 -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
@@ -11,6 +11,8 @@ import UserProfileModel from "../models/user/UserProfileModel";
11
11
 
12
12
  import { useModularUIBasic } from "./useModularUIBasic";
13
13
 
14
+ import type Href from "../models/href/Href";
15
+
14
16
  type HookOptions = {
15
17
  origin?: string,
16
18
  contextPath?: string,
@@ -31,7 +33,10 @@ export const useApplication = (
31
33
  /**
32
34
  * Load a tab by href
33
35
  */
34
- export const useTab = (href: string, options?: HookOptions): TabModel | null =>
36
+ export const useTab = (
37
+ href: string | Href,
38
+ options?: HookOptions,
39
+ ): TabModel | null =>
35
40
  useModularUIBasic("tab", href, {
36
41
  expectedModels: ["Tab"],
37
42
  targetModel: TabModel,
@@ -42,7 +47,7 @@ export const useTab = (href: string, options?: HookOptions): TabModel | null =>
42
47
  * Load caseview by href
43
48
  */
44
49
  export const useCaseView = (
45
- href: string,
50
+ href: string | Href,
46
51
  options?: HookOptions,
47
52
  ): CaseViewModel | null =>
48
53
  useModularUIBasic("caseview", href, {
@@ -54,7 +59,7 @@ export const useCaseView = (
54
59
  /**
55
60
  */
56
61
  export const usePanel = (
57
- href: string,
62
+ href: string | Href,
58
63
  options?: HookOptions,
59
64
  ): ListModel | GroupingPanelModel | DetailModel | null =>
60
65
  useModularUIBasic("panel", href, {
@@ -65,7 +70,7 @@ export const usePanel = (
65
70
  /**
66
71
  */
67
72
  export const useList = (
68
- href: string,
73
+ href: string | Href,
69
74
  options?: HookOptions,
70
75
  ): ListModel | null =>
71
76
  useModularUIBasic("list", href, {
@@ -77,7 +82,7 @@ export const useList = (
77
82
  /**
78
83
  */
79
84
  export const useListOrDetail = (
80
- href: string,
85
+ href: string | Href,
81
86
  options?: HookOptions,
82
87
  ): ListModel | DetailModel | null =>
83
88
  useModularUIBasic("list", href, {
@@ -89,7 +94,7 @@ export const useListOrDetail = (
89
94
  /**
90
95
  */
91
96
  export const useListDetail = (
92
- href: string,
97
+ href: string | Href,
93
98
  options?: HookOptions,
94
99
  ): ListDetailModel | null =>
95
100
  useModularUIBasic("listdetail", href, {
@@ -102,7 +107,7 @@ export const useListDetail = (
102
107
  /**
103
108
  */
104
109
  export const useGroupingPanel = (
105
- href: string,
110
+ href: string | Href,
106
111
  options?: HookOptions,
107
112
  ): GroupingPanelModel | null =>
108
113
  useModularUIBasic("groupingpanel", href, {
@@ -114,7 +119,7 @@ export const useGroupingPanel = (
114
119
  /**
115
120
  */
116
121
  export const useDetailPanel = (
117
- href: string,
122
+ href: string | Href,
118
123
  options?: HookOptions,
119
124
  ): DetailModel | null =>
120
125
  useModularUIBasic("detailpanel", href, {
@@ -126,7 +131,7 @@ export const useDetailPanel = (
126
131
  /**
127
132
  */
128
133
  export const useQuicksearch = (
129
- href: string,
134
+ href: string | Href,
130
135
  options?: HookOptions,
131
136
  ): CaseSearchModel | null =>
132
137
  useModularUIBasic("quicksearch", href, {
@@ -138,7 +143,7 @@ export const useQuicksearch = (
138
143
  /**
139
144
  */
140
145
  export const useSearch = (
141
- href: string,
146
+ href: string | Href,
142
147
  options?: HookOptions,
143
148
  ): CaseSearchModel | null =>
144
149
  useModularUIBasic("search", href, {
@@ -150,7 +155,7 @@ export const useSearch = (
150
155
  /**
151
156
  */
152
157
  export const useUserProfile = (
153
- href: string,
158
+ href: string | Href,
154
159
  options?: HookOptions,
155
160
  ): UserProfileModel | null =>
156
161
  useModularUIBasic("userprofile", href, {
@@ -1,6 +1,7 @@
1
1
  // @flow
2
2
  import BaseCollection from "../base/BaseCollection";
3
3
  import ActionModel from "./ActionModel";
4
+ import type { ModelOptions } from "../types";
4
5
 
5
6
  /**
6
7
  * Collection of actions
@@ -9,8 +10,7 @@ export default class ActionCollection extends BaseCollection<ActionModel> {
9
10
  constructor(
10
11
  actions?: Object,
11
12
  actionsContributions?: Object,
12
- origin?: string,
13
- contextPath?: string,
13
+ modelOptions?: ModelOptions,
14
14
  ) {
15
15
  super();
16
16
 
@@ -28,12 +28,7 @@ export default class ActionCollection extends BaseCollection<ActionModel> {
28
28
 
29
29
  if (actionContribution) {
30
30
  actionModels.push(
31
- new ActionModel(
32
- actionData,
33
- actionContribution,
34
- origin,
35
- contextPath,
36
- ),
31
+ new ActionModel(actionData, actionContribution, modelOptions),
37
32
  );
38
33
  }
39
34
  }
@@ -7,14 +7,13 @@ import BaseModel from "../base/BaseModel";
7
7
  import Href from "../href/Href";
8
8
 
9
9
  import {
10
- getBasePath,
11
10
  HTTP_METHODS,
12
11
  CREATE_ACTION,
13
12
  UPDATE_ACTION,
14
13
  DELETE_ACTION,
15
14
  } from "../../constants";
16
15
 
17
- import type { AttributeType } from "../types";
16
+ import type { AttributeType, ModelOptions } from "../types";
18
17
 
19
18
  /**
20
19
  * Defines an Action. For instance an action on the tab 'books', which leads to a form
@@ -23,23 +22,19 @@ export default class ActionModel extends BaseModel {
23
22
  _fieldCollection: AttributeCollection;
24
23
  _href: Href;
25
24
  _icon: string;
26
- _origin: ?string;
27
- _contextPath: ?string;
28
25
 
29
26
  constructor(
30
27
  data: Object,
31
28
  contributions: Object,
32
- origin?: string,
33
- contextPath?: string,
29
+ modelOptions?: ModelOptions,
34
30
  ) {
35
- super(data, contributions);
31
+ super(data, contributions, modelOptions);
36
32
 
37
33
  this._fieldCollection = new AttributeCollection(
38
34
  this.data.fields,
39
35
  this.contributions.fields,
36
+ { ...modelOptions, isReadonly: false },
40
37
  );
41
- this._origin = origin;
42
- this._contextPath = contextPath;
43
38
  }
44
39
 
45
40
  /**
@@ -54,7 +49,7 @@ export default class ActionModel extends BaseModel {
54
49
  ): ActionModel {
55
50
  const data = { name, href };
56
51
  const contributions = { name, label: label ?? name, type };
57
- return new ActionModel(data, contributions, origin, contextPath);
52
+ return new ActionModel(data, contributions, { origin, contextPath });
58
53
  }
59
54
 
60
55
  /**
@@ -63,18 +58,6 @@ export default class ActionModel extends BaseModel {
63
58
  return this.data.href == null;
64
59
  }
65
60
 
66
- /**
67
- */
68
- get origin(): string {
69
- return this._origin ?? "";
70
- }
71
-
72
- /**
73
- */
74
- get contextPath(): string {
75
- return this._contextPath ?? getBasePath();
76
- }
77
-
78
61
  /**
79
62
  * retrieve href of action
80
63
  */
@@ -84,8 +67,7 @@ export default class ActionModel extends BaseModel {
84
67
  new Href(
85
68
  `${this.data.href}?${this.querystring}`,
86
69
  "Form",
87
- this.origin,
88
- this.contextPath,
70
+ this.modelOptions,
89
71
  )
90
72
  );
91
73
  }
@@ -204,6 +186,7 @@ export default class ActionModel extends BaseModel {
204
186
  return new ProcessStatusSettingsModel(
205
187
  this.getData("processStatus", {}),
206
188
  this.getContribution("processTask", {}),
189
+ this.modelOptions,
207
190
  );
208
191
  }
209
192
 
@@ -106,8 +106,7 @@ export default class ApplicationModel extends ResourceModel {
106
106
  "modelcatalog",
107
107
  "/modelcatalog",
108
108
  "Model catalog",
109
- this.origin,
110
- this.contextPath,
109
+ this.modelOptions,
111
110
  );
112
111
  }
113
112
 
@@ -11,7 +11,12 @@ import ContentConfiguration from "../contentconfiguration/ContentConfiguration";
11
11
 
12
12
  import { ConfigurationException } from "../../exceptions";
13
13
 
14
- import type { AttributeType, FormErrorAnchor } from "../types";
14
+ import type { AttributeType, FormErrorAnchor, ModelOptions } from "../types";
15
+
16
+ type AttributeCollectionOptions = {
17
+ ...ModelOptions,
18
+ isReadonly: boolean,
19
+ };
15
20
 
16
21
  /**
17
22
  * Collection of attributes
@@ -20,7 +25,7 @@ class AttributeCollection extends ResourceCollection<AttributeType> {
20
25
  constructor(
21
26
  data: Object | Array<Object> = {},
22
27
  contributions: Array<Object> = [],
23
- isReadonly: boolean = false,
28
+ modelOptions?: AttributeCollectionOptions,
24
29
  ) {
25
30
  super();
26
31
 
@@ -28,11 +33,14 @@ class AttributeCollection extends ResourceCollection<AttributeType> {
28
33
  contributions.forEach((contribution) => {
29
34
  const [key] = Object.keys(contribution);
30
35
 
31
- const attribute = createAttribute(key, data, contribution[key]);
36
+ const attribute = createAttribute(key, data, contribution[key], {
37
+ origin: modelOptions?.origin,
38
+ contextPath: modelOptions?.contextPath,
39
+ });
32
40
 
33
41
  if (attribute !== null) {
34
42
  // when readonly is not explicitly set in the contributions, follow argument
35
- if (isReadonly && !has(contribution[key], "readonly")) {
43
+ if (modelOptions?.isReadonly && !has(contribution[key], "readonly")) {
36
44
  attribute.readonly = true;
37
45
  }
38
46
 
@@ -30,6 +30,7 @@ import type {
30
30
  AttributeType,
31
31
  FormErrorAnchor,
32
32
  IModelWithChildModels,
33
+ ModelOptions,
33
34
  ModularUIModel,
34
35
  } from "../types";
35
36
  import type LinkModel from "../links/LinkModel";
@@ -74,8 +75,12 @@ export default class AttributeModel
74
75
 
75
76
  /**
76
77
  */
77
- constructor(attribute: Object, attributeContributions: Object) {
78
- super(attribute, attributeContributions);
78
+ constructor(
79
+ attribute: Object,
80
+ attributeContributions: Object,
81
+ modelOptions?: ModelOptions,
82
+ ) {
83
+ super(attribute, attributeContributions, modelOptions);
79
84
 
80
85
  if (this.hasContentFromData && this.content.label) {
81
86
  this._label = this.content.label;
@@ -108,6 +113,7 @@ export default class AttributeModel
108
113
  this._links = new LinkCollection(
109
114
  this.data._links,
110
115
  this.contributions._links,
116
+ modelOptions,
111
117
  );
112
118
  }
113
119
 
@@ -4,6 +4,8 @@ import { has } from "../../utils/helpers/objects";
4
4
  import BaseModel from "../base/BaseModel";
5
5
  import AttributeCollection from "./AttributeCollection";
6
6
 
7
+ import type { ModelOptions } from "../types";
8
+
7
9
  /**
8
10
  */
9
11
  export default class AttributeSetModel extends BaseModel {
@@ -12,8 +14,13 @@ export default class AttributeSetModel extends BaseModel {
12
14
 
13
15
  /**
14
16
  */
15
- constructor(key: string = "", data: Object = {}, contributions: Object = {}) {
16
- super(data, contributions);
17
+ constructor(
18
+ key: string = "",
19
+ data: Object = {},
20
+ contributions: Object = {},
21
+ modelOptions?: ModelOptions,
22
+ ) {
23
+ super(data, contributions, modelOptions);
17
24
 
18
25
  const attributeContributions = this.contributions.attributes
19
26
  ? this.contributions.attributes.filter((contribution) => {
@@ -25,7 +32,7 @@ export default class AttributeSetModel extends BaseModel {
25
32
  this._attributeCollection = new AttributeCollection(
26
33
  this.data,
27
34
  attributeContributions,
28
- true,
35
+ { ...modelOptions, isReadonly: true },
29
36
  );
30
37
 
31
38
  this._key = key;
@@ -77,6 +84,7 @@ export default class AttributeSetModel extends BaseModel {
77
84
  dynamicschema: this.data.dynamicschema,
78
85
  },
79
86
  this.contributions.objects[key],
87
+ this.modelOptions,
80
88
  );
81
89
  }
82
90
 
@@ -10,7 +10,7 @@ import ChoiceAttributeOptionModel from "./ChoiceAttributeOptionModel";
10
10
  import { RENDER_SECTION_LABEL } from "../../constants/LayoutHints";
11
11
  import { ATTRIBUTE_WIDTH } from "../../constants";
12
12
 
13
- import type { AttributeType } from "../types";
13
+ import type { AttributeType, ModelOptions } from "../types";
14
14
 
15
15
  /**
16
16
  * Model for a boolean attribute
@@ -22,14 +22,18 @@ export default class BooleanAttributeModel extends AttributeModel {
22
22
 
23
23
  /**
24
24
  */
25
- constructor(attribute: Object, attributeContributions: Object) {
26
- super(attribute, attributeContributions);
25
+ constructor(
26
+ attribute: Object,
27
+ attributeContributions: Object,
28
+ modelOptions?: ModelOptions,
29
+ ) {
30
+ super(attribute, attributeContributions, modelOptions);
27
31
 
28
32
  this._referenceDate = this.getData("referenceDate", DateUtil.now());
29
33
  this._options = ChoiceAttributeOptionCollection.create(
30
34
  attribute,
31
35
  attributeContributions,
32
- this.referenceDate,
36
+ { ...modelOptions, referenceDate: this.referenceDate },
33
37
  );
34
38
  }
35
39
 
@@ -16,7 +16,12 @@ import {
16
16
  } from "../../constants/LayoutHints";
17
17
  import { ATTRIBUTE_WIDTH } from "../../constants";
18
18
 
19
- import type { ModularUIModel, AttributeType, FormErrorAnchor } from "../types";
19
+ import type {
20
+ ModularUIModel,
21
+ AttributeType,
22
+ FormErrorAnchor,
23
+ ModelOptions,
24
+ } from "../types";
20
25
  import type LinkModel from "../links/LinkModel";
21
26
  import type ErrorResponse from "../error/ErrorResponse";
22
27
 
@@ -31,14 +36,18 @@ export default class ChoiceAttributeModel extends AttributeModel {
31
36
  /**
32
37
  * Constructs a choice attribute
33
38
  */
34
- constructor(attribute: Object, attributeContributions: Object) {
35
- super(attribute, attributeContributions);
39
+ constructor(
40
+ attribute: Object,
41
+ attributeContributions: Object,
42
+ modelOptions?: ModelOptions,
43
+ ) {
44
+ super(attribute, attributeContributions, modelOptions);
36
45
 
37
46
  this._referenceDate = this.getData("referenceDate", DateUtil.now());
38
47
  this._options = ChoiceAttributeOptionCollection.create(
39
48
  attribute,
40
49
  attributeContributions,
41
- this.referenceDate,
50
+ { ...modelOptions, referenceDate: this.referenceDate },
42
51
  );
43
52
 
44
53
  if (this.layouthint.has(SORT_OPTIONS)) {
@@ -3,14 +3,27 @@ import ResourceCollection from "../base/ResourceCollection";
3
3
  import ChoiceAttributeOptionModel from "./ChoiceAttributeOptionModel";
4
4
  import ListHeaderModel from "../list/ListHeaderModel";
5
5
 
6
- import { DateUtil } from "../../utils/datetime/DateTimeUtil";
6
+ import { getBasePathModularUI } from "../../constants";
7
7
 
8
+ import { DateUtil } from "../../utils";
9
+
10
+ import type { ChoiceAttributeOptionModelOptions } from "./ChoiceAttributeOptionModel";
8
11
  /**
9
12
  */
10
13
  class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttributeOptionModel> {
14
+ _modelOptions: ChoiceAttributeOptionModelOptions;
11
15
  _headers: Array<ListHeaderModel> = [];
12
16
  _sortOptions: boolean = false;
13
17
 
18
+ constructor(modelOptions?: ChoiceAttributeOptionModelOptions) {
19
+ super();
20
+ this._modelOptions = modelOptions || {
21
+ origin: "",
22
+ contextPath: getBasePathModularUI(),
23
+ referenceDate: DateUtil.now(),
24
+ };
25
+ }
26
+
14
27
  /**
15
28
  */
16
29
  set sortOptions(sortOptions: boolean) {
@@ -34,16 +47,16 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
34
47
  static create(
35
48
  data: Object = {},
36
49
  contributions: Object = {},
37
- referenceDate: ISO_DATE = DateUtil.now(),
50
+ modelOptions?: ChoiceAttributeOptionModelOptions,
38
51
  ): ChoiceAttributeOptionCollection {
39
- const collection = new ChoiceAttributeOptionCollection();
52
+ const collection = new ChoiceAttributeOptionCollection(modelOptions);
40
53
 
41
54
  if (contributions.type === "boolean") {
42
55
  collection.addBooleanOptions(data.value, contributions);
43
56
  } else if (data.dynamicschema != null) {
44
- collection.addDynamicSchema(data, contributions, referenceDate);
57
+ collection.addDynamicSchema(data, contributions);
45
58
  } else if (contributions.options != null) {
46
- collection.addOptions(data, contributions, referenceDate);
59
+ collection.addOptions(data, contributions);
47
60
  }
48
61
 
49
62
  if (contributions.children != null) {
@@ -102,22 +115,17 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
102
115
  addOptions(
103
116
  data: Object,
104
117
  contributions: Object,
105
- referenceDate: ISO_DATE = DateUtil.now(),
106
118
  ): ChoiceAttributeOptionCollection {
107
119
  const selectedValues = this.getSelectedOptions(data);
108
120
 
109
121
  contributions.options.forEach((optionContributions) => {
110
122
  const optionCode = optionContributions.code || optionContributions.key;
111
123
 
112
- this.addOption(
113
- selectedValues,
114
- {
115
- ...optionContributions,
116
- count: this.getOptionCount(optionCode, data.options),
117
- optionType: contributions.optionType ?? "generic",
118
- },
119
- referenceDate,
120
- );
124
+ this.addOption(selectedValues, {
125
+ ...optionContributions,
126
+ count: this.getOptionCount(optionCode, data.options),
127
+ optionType: contributions.optionType ?? "generic",
128
+ });
121
129
  });
122
130
 
123
131
  return this;
@@ -129,20 +137,15 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
129
137
  addDynamicSchema(
130
138
  data: Object,
131
139
  contributions: Object,
132
- referenceDate: ISO_DATE = DateUtil.now(),
133
140
  ): ChoiceAttributeOptionCollection {
134
141
  const selectedValues = this.getSelectedOptions(data);
135
142
  data.dynamicschema.forEach((optionDynamicschema) => {
136
- this.addOption(
137
- selectedValues,
138
- {
139
- ...optionDynamicschema,
140
- count: this.getOptionCount(optionDynamicschema.code, data.options),
141
- optionType: contributions.optionType ?? "generic",
142
- elementsContributions: contributions.children,
143
- },
144
- referenceDate,
145
- );
143
+ this.addOption(selectedValues, {
144
+ ...optionDynamicschema,
145
+ count: this.getOptionCount(optionDynamicschema.code, data.options),
146
+ optionType: contributions.optionType ?? "generic",
147
+ elementsContributions: contributions.children,
148
+ });
146
149
  });
147
150
 
148
151
  return this;
@@ -189,12 +192,11 @@ class ChoiceAttributeOptionCollection extends ResourceCollection<ChoiceAttribute
189
192
  addOption(
190
193
  data: string | Array<string>,
191
194
  contributions: Object,
192
- referenceDate: ISO_DATE = DateUtil.now(),
193
195
  ): ChoiceAttributeOptionCollection {
194
196
  const optionModel = new ChoiceAttributeOptionModel(
195
197
  Array.isArray(data) ? data : [data],
196
198
  contributions,
197
- referenceDate,
199
+ this._modelOptions,
198
200
  );
199
201
 
200
202
  this.add(optionModel);
@@ -13,11 +13,20 @@ import AttributeCollection from "./AttributeCollection";
13
13
  import ConceptDetailModel from "../concepts/ConceptDetailModel";
14
14
  import AttributeContent from "./AttributeContent";
15
15
 
16
- import type { IModelWithChildModels, ModularUIModel } from "../types";
16
+ import type {
17
+ IModelWithChildModels,
18
+ ModelOptions,
19
+ ModularUIModel,
20
+ } from "../types";
17
21
  import type ListItemModel from "../list/ListItemModel";
18
22
  import type LinkModel from "../links/LinkModel";
19
23
  import type ErrorResponse from "../error/ErrorResponse";
20
24
 
25
+ export type ChoiceAttributeOptionModelOptions = {
26
+ ...ModelOptions,
27
+ referenceDate: ISO_DATE,
28
+ };
29
+
21
30
  /**
22
31
  */
23
32
  class ChoiceAttributeOptionModel
@@ -40,7 +49,7 @@ class ChoiceAttributeOptionModel
40
49
  constructor(
41
50
  selectedValues: Array<string> = [],
42
51
  option: Object = {},
43
- referenceDate: ISO_DATE = DateUtil.now(),
52
+ modelOptions?: ChoiceAttributeOptionModelOptions,
44
53
  ) {
45
54
  super({}, option);
46
55
 
@@ -48,14 +57,18 @@ class ChoiceAttributeOptionModel
48
57
 
49
58
  this._isSelected = selectedValues.includes(this.code);
50
59
 
51
- this._referenceDate = referenceDate;
60
+ this._referenceDate = modelOptions?.referenceDate || DateUtil.now();
52
61
 
53
62
  this._level = 0;
54
63
 
55
- this._attributeCollection = this.createAttributeCollection();
56
- this._children = this.addChildren(selectedValues, option, referenceDate);
64
+ this._attributeCollection = this.createAttributeCollection(modelOptions);
65
+ this._children = this.addChildren(selectedValues, option, modelOptions);
57
66
 
58
- this._links = new LinkCollection(this.contributions._links);
67
+ this._links = new LinkCollection(
68
+ this.contributions._links,
69
+ {},
70
+ { origin: modelOptions?.origin, contextPath: modelOptions?.contextPath },
71
+ );
59
72
 
60
73
  this._content = new AttributeContent(option.content);
61
74
 
@@ -150,12 +163,18 @@ class ChoiceAttributeOptionModel
150
163
 
151
164
  /**
152
165
  */
153
- createAttributeCollection(): AttributeCollection {
166
+ createAttributeCollection(
167
+ modelOptions?: ChoiceAttributeOptionModelOptions,
168
+ ): AttributeCollection {
154
169
  const contributions = this.getContribution("elementsContributions", []);
155
170
 
156
171
  if (has(this.contributions, "elements")) {
157
172
  const data = this.getContribution("elements", {});
158
- return new AttributeCollection(data, contributions, true);
173
+ return new AttributeCollection(data, contributions, {
174
+ origin: modelOptions?.origin,
175
+ contextPath: modelOptions?.contextPath,
176
+ isReadonly: true,
177
+ });
159
178
  }
160
179
 
161
180
  return new AttributeCollection();
@@ -250,11 +269,11 @@ class ChoiceAttributeOptionModel
250
269
  addChildren(
251
270
  selectedValues: Array<string> = [],
252
271
  option: Object = {},
253
- referenceDate: ISO_DATE = DateUtil.now(),
272
+ modelOptions?: ChoiceAttributeOptionModelOptions,
254
273
  ): ChoiceAttributeOptionCollection {
255
274
  // When contributions contain elements this is a list not nested options
256
275
  if (has(option, "elements")) {
257
- return new ChoiceAttributeOptionCollection();
276
+ return new ChoiceAttributeOptionCollection(modelOptions);
258
277
  }
259
278
 
260
279
  return ChoiceAttributeOptionCollection.create(
@@ -262,7 +281,7 @@ class ChoiceAttributeOptionModel
262
281
  value: selectedValues,
263
282
  },
264
283
  { options: option?.children ?? [] },
265
- referenceDate,
284
+ modelOptions,
266
285
  );
267
286
  }
268
287