@beinformed/ui 1.57.1 → 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 (436) hide show
  1. package/CHANGELOG.md +20 -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/useModularUI.js +9 -8
  8. package/esm/hooks/useModularUI.js.map +1 -1
  9. package/esm/hooks/useModularUIBasic.js +2 -4
  10. package/esm/hooks/useModularUIBasic.js.map +1 -1
  11. package/esm/hooks/useModularUIModel.js.map +1 -1
  12. package/esm/models/actions/ActionCollection.js +2 -3
  13. package/esm/models/actions/ActionCollection.js.map +1 -1
  14. package/esm/models/actions/ActionModel.js +13 -23
  15. package/esm/models/actions/ActionModel.js.map +1 -1
  16. package/esm/models/application/ApplicationModel.js +1 -1
  17. package/esm/models/application/ApplicationModel.js.map +1 -1
  18. package/esm/models/attributes/AttributeCollection.js +6 -3
  19. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  20. package/esm/models/attributes/AttributeModel.js +3 -3
  21. package/esm/models/attributes/AttributeModel.js.map +1 -1
  22. package/esm/models/attributes/AttributeSetModel.js +7 -4
  23. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  24. package/esm/models/attributes/BooleanAttributeModel.js +6 -3
  25. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  26. package/esm/models/attributes/ChoiceAttributeModel.js +6 -3
  27. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  28. package/esm/models/attributes/ChoiceAttributeOptionCollection.js +18 -14
  29. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  30. package/esm/models/attributes/ChoiceAttributeOptionModel.js +17 -10
  31. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  32. package/esm/models/attributes/CompositeAttributeChildCollection.js +7 -7
  33. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  34. package/esm/models/attributes/CompositeAttributeModel.js +3 -3
  35. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  36. package/esm/models/attributes/DatetimeAttributeModel.js +2 -2
  37. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  38. package/esm/models/attributes/StringAttributeModel.js +2 -2
  39. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  40. package/esm/models/attributes/_createAttribute.js +2 -2
  41. package/esm/models/attributes/_createAttribute.js.map +1 -1
  42. package/esm/models/base/BaseModel.js +27 -1
  43. package/esm/models/base/BaseModel.js.map +1 -1
  44. package/esm/models/base/ResourceModel.js +3 -23
  45. package/esm/models/base/ResourceModel.js.map +1 -1
  46. package/esm/models/caseview/CaseViewModel.js +1 -1
  47. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  48. package/esm/models/concepts/ConceptDetailModel.js +2 -2
  49. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  50. package/esm/models/concepts/ConceptIndexModel.js +2 -2
  51. package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
  52. package/esm/models/concepts/ConceptLinkModel.js +4 -10
  53. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  54. package/esm/models/concepts/ConceptRelationCollection.js +11 -4
  55. package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
  56. package/esm/models/concepts/ConceptRelationModel.js +8 -1
  57. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  58. package/esm/models/concepts/SourceReferenceCollection.js +2 -4
  59. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  60. package/esm/models/concepts/SourceReferenceModel.js +9 -10
  61. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  62. package/esm/models/content/ContentIndexModel.js +2 -2
  63. package/esm/models/content/ContentIndexModel.js.map +1 -1
  64. package/esm/models/content/ContentLinkModel.js +4 -11
  65. package/esm/models/content/ContentLinkModel.js.map +1 -1
  66. package/esm/models/content/ContentModel.js +2 -2
  67. package/esm/models/content/ContentModel.js.map +1 -1
  68. package/esm/models/content/ContentTOCModel.js +7 -7
  69. package/esm/models/content/ContentTOCModel.js.map +1 -1
  70. package/esm/models/content/SectionModel.js +6 -12
  71. package/esm/models/content/SectionModel.js.map +1 -1
  72. package/esm/models/detail/DetailModel.js +9 -3
  73. package/esm/models/detail/DetailModel.js.map +1 -1
  74. package/esm/models/error/ErrorResponse.js +8 -10
  75. package/esm/models/error/ErrorResponse.js.map +1 -1
  76. package/esm/models/filters/AssignmentFilterModel.js +2 -2
  77. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  78. package/esm/models/filters/BaseFilterModel.js +3 -3
  79. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  80. package/esm/models/filters/ConceptIndexFilterModel.js +2 -3
  81. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  82. package/esm/models/filters/FilterCollection.js +8 -7
  83. package/esm/models/filters/FilterCollection.js.map +1 -1
  84. package/esm/models/filters/StringFilterModel.js +2 -2
  85. package/esm/models/filters/StringFilterModel.js.map +1 -1
  86. package/esm/models/form/FormModel.js +4 -4
  87. package/esm/models/form/FormModel.js.map +1 -1
  88. package/esm/models/form/FormObjectModel.js +7 -4
  89. package/esm/models/form/FormObjectModel.js.map +1 -1
  90. package/esm/models/grouping/GroupingModel.js +10 -7
  91. package/esm/models/grouping/GroupingModel.js.map +1 -1
  92. package/esm/models/href/Href.js +9 -8
  93. package/esm/models/href/Href.js.map +1 -1
  94. package/esm/models/links/LinkCollection.js +2 -3
  95. package/esm/models/links/LinkCollection.js.map +1 -1
  96. package/esm/models/links/LinkModel.js +7 -7
  97. package/esm/models/links/LinkModel.js.map +1 -1
  98. package/esm/models/list/ListDetailModel.js +1 -1
  99. package/esm/models/list/ListDetailModel.js.map +1 -1
  100. package/esm/models/list/ListItemCollection.js +1 -1
  101. package/esm/models/list/ListItemCollection.js.map +1 -1
  102. package/esm/models/list/ListItemModel.js +3 -3
  103. package/esm/models/list/ListItemModel.js.map +1 -1
  104. package/esm/models/list/ListModel.js +3 -3
  105. package/esm/models/list/ListModel.js.map +1 -1
  106. package/esm/models/lookup/LookupOptionCollection.js +5 -2
  107. package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
  108. package/esm/models/lookup/LookupOptionsModel.js +2 -2
  109. package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
  110. package/esm/models/panels/GroupingPanelModel.js +1 -1
  111. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  112. package/esm/models/tab/TabModel.js +2 -2
  113. package/esm/models/tab/TabModel.js.map +1 -1
  114. package/esm/models/taskgroup/TaskGroupModel.js +4 -5
  115. package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
  116. package/esm/models/types.js.map +1 -1
  117. package/esm/models/user/UserProfileModel.js +4 -1
  118. package/esm/models/user/UserProfileModel.js.map +1 -1
  119. package/esm/modularui/CaptchaRequest.js +3 -3
  120. package/esm/modularui/CaptchaRequest.js.map +1 -1
  121. package/esm/modularui/ModularUIRequest.js +8 -5
  122. package/esm/modularui/ModularUIRequest.js.map +1 -1
  123. package/esm/modularui/ModularUIResponse.js +12 -3
  124. package/esm/modularui/ModularUIResponse.js.map +1 -1
  125. package/esm/modularui/UploadRequest.js +3 -3
  126. package/esm/modularui/UploadRequest.js.map +1 -1
  127. package/esm/react-client/client.js +3 -3
  128. package/esm/react-client/client.js.map +1 -1
  129. package/esm/react-server/renderSSRComplete.js +2 -2
  130. package/esm/react-server/renderSSRComplete.js.map +1 -1
  131. package/esm/react-server/renderSSRMinimal.js +2 -2
  132. package/esm/react-server/renderSSRMinimal.js.map +1 -1
  133. package/esm/redux/_modularui/ModularUIActions.js +8 -2
  134. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  135. package/esm/redux/_modularui/ModularUIUtils.js +8 -11
  136. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  137. package/esm/utils/browser/Cookies.js +3 -3
  138. package/esm/utils/browser/Cookies.js.map +1 -1
  139. package/esm/utils/helpers/createHref.js +23 -3
  140. package/esm/utils/helpers/createHref.js.map +1 -1
  141. package/esm/utils/helpers/repositoryResource.js +2 -2
  142. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  143. package/lib/constants/Settings.js +18 -8
  144. package/lib/constants/Settings.js.flow +16 -6
  145. package/lib/constants/Settings.js.map +1 -1
  146. package/lib/hooks/useAuthentication.js +2 -2
  147. package/lib/hooks/useAuthentication.js.flow +3 -3
  148. package/lib/hooks/useAuthentication.js.map +1 -1
  149. package/lib/hooks/useModelCatalog.js.flow +7 -6
  150. package/lib/hooks/useModelCatalog.js.map +1 -1
  151. package/lib/hooks/useModularUI.js +9 -8
  152. package/lib/hooks/useModularUI.js.flow +12 -9
  153. package/lib/hooks/useModularUI.js.map +1 -1
  154. package/lib/hooks/useModularUIBasic.js +2 -4
  155. package/lib/hooks/useModularUIBasic.js.flow +3 -4
  156. package/lib/hooks/useModularUIBasic.js.map +1 -1
  157. package/lib/hooks/useModularUIModel.js.flow +16 -11
  158. package/lib/hooks/useModularUIModel.js.map +1 -1
  159. package/lib/models/actions/ActionCollection.js +2 -2
  160. package/lib/models/actions/ActionCollection.js.flow +3 -8
  161. package/lib/models/actions/ActionCollection.js.map +1 -1
  162. package/lib/models/actions/ActionModel.js +12 -22
  163. package/lib/models/actions/ActionModel.js.flow +7 -24
  164. package/lib/models/actions/ActionModel.js.map +1 -1
  165. package/lib/models/application/ApplicationModel.js +1 -1
  166. package/lib/models/application/ApplicationModel.js.flow +1 -2
  167. package/lib/models/application/ApplicationModel.js.map +1 -1
  168. package/lib/models/attributes/AttributeCollection.js +6 -3
  169. package/lib/models/attributes/AttributeCollection.js.flow +12 -4
  170. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  171. package/lib/models/attributes/AttributeModel.js +3 -3
  172. package/lib/models/attributes/AttributeModel.js.flow +8 -2
  173. package/lib/models/attributes/AttributeModel.js.map +1 -1
  174. package/lib/models/attributes/AttributeSetModel.js +7 -3
  175. package/lib/models/attributes/AttributeSetModel.js.flow +11 -3
  176. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  177. package/lib/models/attributes/BooleanAttributeModel.js +6 -3
  178. package/lib/models/attributes/BooleanAttributeModel.js.flow +8 -4
  179. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  180. package/lib/models/attributes/ChoiceAttributeModel.js +6 -3
  181. package/lib/models/attributes/ChoiceAttributeModel.js.flow +13 -4
  182. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  183. package/lib/models/attributes/ChoiceAttributeOptionCollection.js +18 -13
  184. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +30 -28
  185. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  186. package/lib/models/attributes/ChoiceAttributeOptionModel.js +17 -10
  187. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +30 -11
  188. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  189. package/lib/models/attributes/CompositeAttributeChildCollection.js +7 -7
  190. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +8 -1
  191. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  192. package/lib/models/attributes/CompositeAttributeModel.js +3 -3
  193. package/lib/models/attributes/CompositeAttributeModel.js.flow +8 -3
  194. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  195. package/lib/models/attributes/DatetimeAttributeModel.js +2 -2
  196. package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -2
  197. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  198. package/lib/models/attributes/StringAttributeModel.js +2 -2
  199. package/lib/models/attributes/StringAttributeModel.js.flow +7 -3
  200. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  201. package/lib/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js.flow +1 -1
  202. package/lib/models/attributes/_createAttribute.js +2 -2
  203. package/lib/models/attributes/_createAttribute.js.flow +3 -2
  204. package/lib/models/attributes/_createAttribute.js.map +1 -1
  205. package/lib/models/base/BaseModel.js +27 -1
  206. package/lib/models/base/BaseModel.js.flow +31 -1
  207. package/lib/models/base/BaseModel.js.map +1 -1
  208. package/lib/models/base/ResourceModel.js +3 -22
  209. package/lib/models/base/ResourceModel.js.flow +6 -23
  210. package/lib/models/base/ResourceModel.js.map +1 -1
  211. package/lib/models/base/__tests__/BaseModel.spec.js.flow +4 -0
  212. package/lib/models/caseview/CaseViewModel.js +1 -1
  213. package/lib/models/caseview/CaseViewModel.js.flow +1 -2
  214. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  215. package/lib/models/concepts/ConceptDetailModel.js +2 -2
  216. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  217. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  218. package/lib/models/concepts/ConceptIndexModel.js +2 -2
  219. package/lib/models/concepts/ConceptIndexModel.js.flow +9 -6
  220. package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
  221. package/lib/models/concepts/ConceptLinkModel.js +4 -10
  222. package/lib/models/concepts/ConceptLinkModel.js.flow +15 -12
  223. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  224. package/lib/models/concepts/ConceptRelationCollection.js +11 -4
  225. package/lib/models/concepts/ConceptRelationCollection.js.flow +17 -3
  226. package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
  227. package/lib/models/concepts/ConceptRelationModel.js +8 -1
  228. package/lib/models/concepts/ConceptRelationModel.js.flow +18 -2
  229. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  230. package/lib/models/concepts/SourceReferenceCollection.js +2 -3
  231. package/lib/models/concepts/SourceReferenceCollection.js.flow +3 -8
  232. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  233. package/lib/models/concepts/SourceReferenceModel.js +8 -8
  234. package/lib/models/concepts/SourceReferenceModel.js.flow +10 -11
  235. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  236. package/lib/models/content/ContentIndexModel.js +2 -2
  237. package/lib/models/content/ContentIndexModel.js.flow +10 -5
  238. package/lib/models/content/ContentIndexModel.js.map +1 -1
  239. package/lib/models/content/ContentLinkModel.js +4 -10
  240. package/lib/models/content/ContentLinkModel.js.flow +10 -13
  241. package/lib/models/content/ContentLinkModel.js.map +1 -1
  242. package/lib/models/content/ContentModel.js +2 -2
  243. package/lib/models/content/ContentModel.js.flow +6 -1
  244. package/lib/models/content/ContentModel.js.map +1 -1
  245. package/lib/models/content/ContentTOCModel.js +7 -7
  246. package/lib/models/content/ContentTOCModel.js.flow +19 -11
  247. package/lib/models/content/ContentTOCModel.js.map +1 -1
  248. package/lib/models/content/SectionModel.js +6 -11
  249. package/lib/models/content/SectionModel.js.flow +9 -21
  250. package/lib/models/content/SectionModel.js.map +1 -1
  251. package/lib/models/detail/DetailModel.js +9 -3
  252. package/lib/models/detail/DetailModel.js.flow +3 -4
  253. package/lib/models/detail/DetailModel.js.map +1 -1
  254. package/lib/models/error/ErrorResponse.js +7 -9
  255. package/lib/models/error/ErrorResponse.js.flow +9 -20
  256. package/lib/models/error/ErrorResponse.js.map +1 -1
  257. package/lib/models/filters/AssignmentFilterModel.js +2 -2
  258. package/lib/models/filters/AssignmentFilterModel.js.flow +7 -3
  259. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  260. package/lib/models/filters/BaseFilterModel.js +3 -3
  261. package/lib/models/filters/BaseFilterModel.js.flow +16 -7
  262. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  263. package/lib/models/filters/ConceptIndexFilterModel.js +2 -2
  264. package/lib/models/filters/ConceptIndexFilterModel.js.flow +8 -2
  265. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  266. package/lib/models/filters/FilterCollection.js +8 -7
  267. package/lib/models/filters/FilterCollection.js.flow +13 -7
  268. package/lib/models/filters/FilterCollection.js.map +1 -1
  269. package/lib/models/filters/StringFilterModel.js +2 -2
  270. package/lib/models/filters/StringFilterModel.js.flow +7 -3
  271. package/lib/models/filters/StringFilterModel.js.map +1 -1
  272. package/lib/models/form/FormModel.js +4 -4
  273. package/lib/models/form/FormModel.js.flow +8 -2
  274. package/lib/models/form/FormModel.js.map +1 -1
  275. package/lib/models/form/FormObjectModel.js +7 -4
  276. package/lib/models/form/FormObjectModel.js.flow +17 -4
  277. package/lib/models/form/FormObjectModel.js.map +1 -1
  278. package/lib/models/grouping/GroupingModel.js +10 -7
  279. package/lib/models/grouping/GroupingModel.js.flow +21 -5
  280. package/lib/models/grouping/GroupingModel.js.map +1 -1
  281. package/lib/models/href/Href.js +8 -7
  282. package/lib/models/href/Href.js.flow +17 -10
  283. package/lib/models/href/Href.js.map +1 -1
  284. package/lib/models/href/__tests__/Href.spec.js.flow +5 -8
  285. package/lib/models/links/LinkCollection.js +2 -3
  286. package/lib/models/links/LinkCollection.js.flow +3 -3
  287. package/lib/models/links/LinkCollection.js.map +1 -1
  288. package/lib/models/links/LinkModel.js +7 -7
  289. package/lib/models/links/LinkModel.js.flow +8 -15
  290. package/lib/models/links/LinkModel.js.map +1 -1
  291. package/lib/models/list/ListDetailModel.js +1 -1
  292. package/lib/models/list/ListDetailModel.js.flow +6 -1
  293. package/lib/models/list/ListDetailModel.js.map +1 -1
  294. package/lib/models/list/ListItemCollection.js +1 -1
  295. package/lib/models/list/ListItemCollection.js.flow +1 -2
  296. package/lib/models/list/ListItemCollection.js.map +1 -1
  297. package/lib/models/list/ListItemModel.js +3 -3
  298. package/lib/models/list/ListItemModel.js.flow +4 -4
  299. package/lib/models/list/ListItemModel.js.map +1 -1
  300. package/lib/models/list/ListModel.js +3 -3
  301. package/lib/models/list/ListModel.js.flow +12 -8
  302. package/lib/models/list/ListModel.js.map +1 -1
  303. package/lib/models/lookup/LookupOptionCollection.js +5 -1
  304. package/lib/models/lookup/LookupOptionCollection.js.flow +17 -6
  305. package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
  306. package/lib/models/lookup/LookupOptionsModel.js +2 -2
  307. package/lib/models/lookup/LookupOptionsModel.js.flow +2 -0
  308. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  309. package/lib/models/panels/GroupingPanelModel.js +1 -1
  310. package/lib/models/panels/GroupingPanelModel.js.flow +1 -2
  311. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  312. package/lib/models/tab/TabModel.js +2 -2
  313. package/lib/models/tab/TabModel.js.flow +2 -4
  314. package/lib/models/tab/TabModel.js.map +1 -1
  315. package/lib/models/taskgroup/TaskGroupModel.js +4 -4
  316. package/lib/models/taskgroup/TaskGroupModel.js.flow +5 -6
  317. package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
  318. package/lib/models/types.js.flow +5 -0
  319. package/lib/models/types.js.map +1 -1
  320. package/lib/models/user/UserProfileModel.js +4 -1
  321. package/lib/models/user/UserProfileModel.js.flow +1 -0
  322. package/lib/models/user/UserProfileModel.js.map +1 -1
  323. package/lib/modularui/CaptchaRequest.js +2 -2
  324. package/lib/modularui/CaptchaRequest.js.flow +7 -3
  325. package/lib/modularui/CaptchaRequest.js.map +1 -1
  326. package/lib/modularui/ModularUIRequest.js +7 -4
  327. package/lib/modularui/ModularUIRequest.js.flow +8 -5
  328. package/lib/modularui/ModularUIRequest.js.map +1 -1
  329. package/lib/modularui/ModularUIResponse.js +11 -2
  330. package/lib/modularui/ModularUIResponse.js.flow +13 -3
  331. package/lib/modularui/ModularUIResponse.js.map +1 -1
  332. package/lib/modularui/UploadRequest.js +2 -2
  333. package/lib/modularui/UploadRequest.js.flow +7 -3
  334. package/lib/modularui/UploadRequest.js.map +1 -1
  335. package/lib/react-client/client.js +2 -2
  336. package/lib/react-client/client.js.flow +7 -3
  337. package/lib/react-client/client.js.map +1 -1
  338. package/lib/react-server/renderSSRComplete.js +1 -1
  339. package/lib/react-server/renderSSRComplete.js.flow +2 -2
  340. package/lib/react-server/renderSSRComplete.js.map +1 -1
  341. package/lib/react-server/renderSSRMinimal.js +1 -1
  342. package/lib/react-server/renderSSRMinimal.js.flow +2 -2
  343. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  344. package/lib/redux/_modularui/ModularUIActions.js +8 -2
  345. package/lib/redux/_modularui/ModularUIActions.js.flow +8 -7
  346. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  347. package/lib/redux/_modularui/ModularUIUtils.js +8 -11
  348. package/lib/redux/_modularui/ModularUIUtils.js.flow +13 -14
  349. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  350. package/lib/utils/browser/Cookies.js +2 -2
  351. package/lib/utils/browser/Cookies.js.flow +3 -3
  352. package/lib/utils/browser/Cookies.js.map +1 -1
  353. package/lib/utils/helpers/__tests__/createHref.spec.js.flow +13 -8
  354. package/lib/utils/helpers/createHref.js +23 -3
  355. package/lib/utils/helpers/createHref.js.flow +37 -8
  356. package/lib/utils/helpers/createHref.js.map +1 -1
  357. package/lib/utils/helpers/repositoryResource.js +1 -1
  358. package/lib/utils/helpers/repositoryResource.js.flow +2 -2
  359. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  360. package/package.json +4 -4
  361. package/src/constants/Settings.js +16 -6
  362. package/src/hooks/useAuthentication.js +3 -3
  363. package/src/hooks/useModelCatalog.js +7 -6
  364. package/src/hooks/useModularUI.js +12 -9
  365. package/src/hooks/useModularUIBasic.js +3 -4
  366. package/src/hooks/useModularUIModel.js +16 -11
  367. package/src/models/actions/ActionCollection.js +3 -8
  368. package/src/models/actions/ActionModel.js +7 -24
  369. package/src/models/application/ApplicationModel.js +1 -2
  370. package/src/models/attributes/AttributeCollection.js +12 -4
  371. package/src/models/attributes/AttributeModel.js +8 -2
  372. package/src/models/attributes/AttributeSetModel.js +11 -3
  373. package/src/models/attributes/BooleanAttributeModel.js +8 -4
  374. package/src/models/attributes/ChoiceAttributeModel.js +13 -4
  375. package/src/models/attributes/ChoiceAttributeOptionCollection.js +30 -28
  376. package/src/models/attributes/ChoiceAttributeOptionModel.js +30 -11
  377. package/src/models/attributes/CompositeAttributeChildCollection.js +8 -1
  378. package/src/models/attributes/CompositeAttributeModel.js +8 -3
  379. package/src/models/attributes/DatetimeAttributeModel.js +7 -2
  380. package/src/models/attributes/StringAttributeModel.js +7 -3
  381. package/src/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js +1 -1
  382. package/src/models/attributes/_createAttribute.js +3 -2
  383. package/src/models/base/BaseModel.js +31 -1
  384. package/src/models/base/ResourceModel.js +6 -23
  385. package/src/models/base/__tests__/BaseModel.spec.js +4 -0
  386. package/src/models/caseview/CaseViewModel.js +1 -2
  387. package/src/models/concepts/ConceptDetailModel.js +2 -2
  388. package/src/models/concepts/ConceptIndexModel.js +9 -6
  389. package/src/models/concepts/ConceptLinkModel.js +15 -12
  390. package/src/models/concepts/ConceptRelationCollection.js +17 -3
  391. package/src/models/concepts/ConceptRelationModel.js +18 -2
  392. package/src/models/concepts/SourceReferenceCollection.js +3 -8
  393. package/src/models/concepts/SourceReferenceModel.js +10 -11
  394. package/src/models/content/ContentIndexModel.js +10 -5
  395. package/src/models/content/ContentLinkModel.js +10 -13
  396. package/src/models/content/ContentModel.js +6 -1
  397. package/src/models/content/ContentTOCModel.js +19 -11
  398. package/src/models/content/SectionModel.js +9 -21
  399. package/src/models/detail/DetailModel.js +3 -4
  400. package/src/models/error/ErrorResponse.js +9 -20
  401. package/src/models/filters/AssignmentFilterModel.js +7 -3
  402. package/src/models/filters/BaseFilterModel.js +16 -7
  403. package/src/models/filters/ConceptIndexFilterModel.js +8 -2
  404. package/src/models/filters/FilterCollection.js +13 -7
  405. package/src/models/filters/StringFilterModel.js +7 -3
  406. package/src/models/form/FormModel.js +8 -2
  407. package/src/models/form/FormObjectModel.js +17 -4
  408. package/src/models/grouping/GroupingModel.js +21 -5
  409. package/src/models/href/Href.js +17 -10
  410. package/src/models/href/__tests__/Href.spec.js +5 -8
  411. package/src/models/links/LinkCollection.js +3 -3
  412. package/src/models/links/LinkModel.js +8 -15
  413. package/src/models/list/ListDetailModel.js +6 -1
  414. package/src/models/list/ListItemCollection.js +1 -2
  415. package/src/models/list/ListItemModel.js +4 -4
  416. package/src/models/list/ListModel.js +12 -8
  417. package/src/models/lookup/LookupOptionCollection.js +17 -6
  418. package/src/models/lookup/LookupOptionsModel.js +2 -0
  419. package/src/models/panels/GroupingPanelModel.js +1 -2
  420. package/src/models/tab/TabModel.js +2 -4
  421. package/src/models/taskgroup/TaskGroupModel.js +5 -6
  422. package/src/models/types.js +5 -0
  423. package/src/models/user/UserProfileModel.js +1 -0
  424. package/src/modularui/CaptchaRequest.js +7 -3
  425. package/src/modularui/ModularUIRequest.js +8 -5
  426. package/src/modularui/ModularUIResponse.js +13 -3
  427. package/src/modularui/UploadRequest.js +7 -3
  428. package/src/react-client/client.js +7 -3
  429. package/src/react-server/renderSSRComplete.js +2 -2
  430. package/src/react-server/renderSSRMinimal.js +2 -2
  431. package/src/redux/_modularui/ModularUIActions.js +8 -7
  432. package/src/redux/_modularui/ModularUIUtils.js +13 -14
  433. package/src/utils/browser/Cookies.js +3 -3
  434. package/src/utils/helpers/__tests__/createHref.spec.js +13 -8
  435. package/src/utils/helpers/createHref.js +37 -8
  436. package/src/utils/helpers/repositoryResource.js +2 -2
@@ -20,13 +20,13 @@ var _Constants = require("../../constants/Constants");
20
20
  /**
21
21
  * Get content items recursively
22
22
  */
23
- const getItems = (items, entryDate) => (0, _map.default)(items).call(items, item => {
23
+ const getItems = (items, entryDate, modelOptions) => (0, _map.default)(items).call(items, item => {
24
24
  const link = new _ContentLinkModel.default({
25
25
  ...item,
26
26
  section: item._id
27
- }, entryDate);
27
+ }, entryDate, modelOptions);
28
28
  if (item.items) {
29
- link.items = getItems(item.items, entryDate);
29
+ link.items = getItems(item.items, entryDate, modelOptions);
30
30
  }
31
31
  return link;
32
32
  });
@@ -101,14 +101,14 @@ class ContentTOCModel extends _ResourceModel.default {
101
101
  /**
102
102
  */
103
103
  get selfContentLink() {
104
- return new _ContentLinkModel.default(this.data, this.entryDate);
104
+ return new _ContentLinkModel.default(this.data, this.entryDate, this.modelOptions);
105
105
  }
106
106
 
107
107
  /**
108
108
  * Get sub items of toc
109
109
  */
110
110
  get items() {
111
- return this.data.items ? getItems(this.data.items, this.entryDate) : [];
111
+ return this.data.items ? getItems(this.data.items, this.entryDate, this.modelOptions) : [];
112
112
  }
113
113
 
114
114
  /**
@@ -117,7 +117,7 @@ class ContentTOCModel extends _ResourceModel.default {
117
117
  get categories() {
118
118
  if (this.data.categories) {
119
119
  var _context;
120
- return (0, _map.default)(_context = this.data.categories).call(_context, category => new _ContentLinkModel.default(category));
120
+ return (0, _map.default)(_context = this.data.categories).call(_context, category => new _ContentLinkModel.default(category, null, this.modelOptions));
121
121
  }
122
122
  return [];
123
123
  }
@@ -146,7 +146,7 @@ class ContentTOCModel extends _ResourceModel.default {
146
146
  const [key] = (0, _keys.default)(filter);
147
147
  return (0, _objects.has)(this.data?.filter, key);
148
148
  })
149
- });
149
+ }, this.modelOptions);
150
150
  }
151
151
  return this._filterCollection;
152
152
  }
@@ -9,7 +9,7 @@ import Href from "../href/Href";
9
9
 
10
10
  import { TIMEVERSION_FILTER_NAME } from "../../constants/Constants";
11
11
 
12
- import type { ModularUIModel } from "../types";
12
+ import type { ModelOptions, ModularUIModel } from "../types";
13
13
  import type { ModularUIResponse } from "../../modularui";
14
14
  import type LinkModel from "../links/LinkModel";
15
15
 
@@ -19,6 +19,7 @@ import type LinkModel from "../links/LinkModel";
19
19
  const getItems = (
20
20
  items: Array<Object>,
21
21
  entryDate: ISO_DATE | null,
22
+ modelOptions?: ModelOptions,
22
23
  ): Array<ContentLinkModel> =>
23
24
  items.map((item) => {
24
25
  const link = new ContentLinkModel(
@@ -27,10 +28,11 @@ const getItems = (
27
28
  section: item._id,
28
29
  },
29
30
  entryDate,
31
+ modelOptions,
30
32
  );
31
33
 
32
34
  if (item.items) {
33
- link.items = getItems(item.items, entryDate);
35
+ link.items = getItems(item.items, entryDate, modelOptions);
34
36
  }
35
37
 
36
38
  return link;
@@ -111,14 +113,16 @@ export default class ContentTOCModel extends ResourceModel {
111
113
  /**
112
114
  */
113
115
  get selfContentLink(): ContentLinkModel {
114
- return new ContentLinkModel(this.data, this.entryDate);
116
+ return new ContentLinkModel(this.data, this.entryDate, this.modelOptions);
115
117
  }
116
118
 
117
119
  /**
118
120
  * Get sub items of toc
119
121
  */
120
122
  get items(): Array<ContentLinkModel> {
121
- return this.data.items ? getItems(this.data.items, this.entryDate) : [];
123
+ return this.data.items
124
+ ? getItems(this.data.items, this.entryDate, this.modelOptions)
125
+ : [];
122
126
  }
123
127
 
124
128
  /**
@@ -127,7 +131,7 @@ export default class ContentTOCModel extends ResourceModel {
127
131
  get categories(): Array<ContentLinkModel> {
128
132
  if (this.data.categories) {
129
133
  return this.data.categories.map(
130
- (category) => new ContentLinkModel(category),
134
+ (category) => new ContentLinkModel(category, null, this.modelOptions),
131
135
  );
132
136
  }
133
137
 
@@ -153,12 +157,16 @@ export default class ContentTOCModel extends ResourceModel {
153
157
  */
154
158
  get filterCollection(): FilterCollection {
155
159
  if (!this._filterCollection) {
156
- this._filterCollection = new FilterCollection(this.data.filter, {
157
- filter: this.contributions.filter.filter((filter) => {
158
- const [key] = Object.keys(filter);
159
- return has(this.data?.filter, key);
160
- }),
161
- });
160
+ this._filterCollection = new FilterCollection(
161
+ this.data.filter,
162
+ {
163
+ filter: this.contributions.filter.filter((filter) => {
164
+ const [key] = Object.keys(filter);
165
+ return has(this.data?.filter, key);
166
+ }),
167
+ },
168
+ this.modelOptions,
169
+ );
162
170
  }
163
171
 
164
172
  return this._filterCollection;
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTOCModel.js","names":["_objects","require","_ResourceModel","_interopRequireDefault","_FilterCollection","_ContentLinkModel","_ContentTypeModel","_Href","_Constants","getItems","items","entryDate","_map","default","call","item","link","ContentLinkModel","section","_id","ContentTOCModel","ResourceModel","constructor","arguments","_defineProperty2","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","_find","model","label","getData","selfhref","href","Href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","categories","_context","category","_contentType","ContentTypeModel","_filterCollection","_context2","FilterCollection","_filter","key","_keys","has","timeversionFilter","getFilterByAttributeKey","TIMEVERSION_FILTER_NAME","attribute","exports"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (\n items: Array<Object>,\n entryDate: ISO_DATE | null,\n): Array<ContentLinkModel> =>\n items.map((item) => {\n const link = new ContentLinkModel(\n {\n ...item,\n section: item._id,\n },\n entryDate,\n );\n\n if (item.items) {\n link.items = getItems(item.items, entryDate);\n }\n\n return link;\n });\n\n/**\n * Content detail model\n */\nexport default class ContentTOCModel extends ResourceModel {\n _contentType: ContentTypeModel | null = null;\n _filterCollection: FilterCollection;\n\n /**\n */\n get type(): string {\n return \"ContentTOC\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ContentTOCModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ContentTOC\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const contentTypeLink = this.links.getLinkByKey(\"contenttype\");\n\n if (contentTypeLink) {\n return [contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.contentType = models.find((model) => model.type === \"ContentType\");\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const href = new Href(this.selflink.href);\n\n this.filterCollection.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value) {\n href.setParameter(param.name, param.value);\n } else {\n href.removeParameter(param.name);\n }\n });\n });\n\n return href;\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(this.data, this.entryDate);\n }\n\n /**\n * Get sub items of toc\n */\n get items(): Array<ContentLinkModel> {\n return this.data.items ? getItems(this.data.items, this.entryDate) : [];\n }\n\n /**\n * get categories of content\n */\n get categories(): Array<ContentLinkModel> {\n if (this.data.categories) {\n return this.data.categories.map(\n (category) => new ContentLinkModel(category),\n );\n }\n\n return [];\n }\n\n /**\n * Retrieve content type model\n */\n get contentType(): ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n * Retrieve available filters on concept toc\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = new FilterCollection(this.data.filter, {\n filter: this.contributions.filter.filter((filter) => {\n const [key] = Object.keys(filter);\n return has(this.data?.filter, key);\n }),\n });\n }\n\n return this._filterCollection;\n }\n\n /**\n * Retrieve entrydate of content toc\n */\n get entryDate(): ISO_DATE | null {\n const timeversionFilter = this.filterCollection.getFilterByAttributeKey(\n TIMEVERSION_FILTER_NAME,\n );\n\n return timeversionFilter?.attribute?.value ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ContentTOCModel.js","names":["_objects","require","_ResourceModel","_interopRequireDefault","_FilterCollection","_ContentLinkModel","_ContentTypeModel","_Href","_Constants","getItems","items","entryDate","modelOptions","_map","default","call","item","link","ContentLinkModel","section","_id","ContentTOCModel","ResourceModel","constructor","arguments","_defineProperty2","type","modelName","isApplicableModel","data","contributions","resourcetype","getInitialChildModelLinks","contentTypeLink","links","getLinkByKey","setChildModels","models","contentType","_find","model","label","getData","selfhref","href","Href","selflink","filterCollection","forEach","filter","params","param","value","setParameter","name","removeParameter","selfContentLink","categories","_context","category","_contentType","ContentTypeModel","_filterCollection","_context2","FilterCollection","_filter","key","_keys","has","timeversionFilter","getFilterByAttributeKey","TIMEVERSION_FILTER_NAME","attribute","exports"],"sources":["../../../src/models/content/ContentTOCModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ResourceModel from \"../base/ResourceModel\";\nimport FilterCollection from \"../filters/FilterCollection\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport ContentTypeModel from \"./ContentTypeModel\";\nimport Href from \"../href/Href\";\n\nimport { TIMEVERSION_FILTER_NAME } from \"../../constants/Constants\";\n\nimport type { ModelOptions, ModularUIModel } from \"../types\";\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type LinkModel from \"../links/LinkModel\";\n\n/**\n * Get content items recursively\n */\nconst getItems = (\n items: Array<Object>,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n): Array<ContentLinkModel> =>\n items.map((item) => {\n const link = new ContentLinkModel(\n {\n ...item,\n section: item._id,\n },\n entryDate,\n modelOptions,\n );\n\n if (item.items) {\n link.items = getItems(item.items, entryDate, modelOptions);\n }\n\n return link;\n });\n\n/**\n * Content detail model\n */\nexport default class ContentTOCModel extends ResourceModel {\n _contentType: ContentTypeModel | null = null;\n _filterCollection: FilterCollection;\n\n /**\n */\n get type(): string {\n return \"ContentTOC\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"ContentTOCModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n return (\n data.contributions.resourcetype &&\n data.contributions.resourcetype === \"ContentTOC\"\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n const contentTypeLink = this.links.getLinkByKey(\"contenttype\");\n\n if (contentTypeLink) {\n return [contentTypeLink];\n }\n\n return [];\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>) {\n this.contentType = models.find((model) => model.type === \"ContentType\");\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Getting the self link of this list\n */\n get selfhref(): Href {\n const href = new Href(this.selflink.href);\n\n this.filterCollection.forEach((filter) => {\n filter.params.forEach((param) => {\n if (param.value) {\n href.setParameter(param.name, param.value);\n } else {\n href.removeParameter(param.name);\n }\n });\n });\n\n return href;\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(this.data, this.entryDate, this.modelOptions);\n }\n\n /**\n * Get sub items of toc\n */\n get items(): Array<ContentLinkModel> {\n return this.data.items\n ? getItems(this.data.items, this.entryDate, this.modelOptions)\n : [];\n }\n\n /**\n * get categories of content\n */\n get categories(): Array<ContentLinkModel> {\n if (this.data.categories) {\n return this.data.categories.map(\n (category) => new ContentLinkModel(category, null, this.modelOptions),\n );\n }\n\n return [];\n }\n\n /**\n * Retrieve content type model\n */\n get contentType(): ContentTypeModel | null {\n return this._contentType;\n }\n\n /**\n */\n set contentType(contentType: ?ModularUIModel) {\n this._contentType =\n contentType instanceof ContentTypeModel ? contentType : null;\n }\n\n /**\n * Retrieve available filters on concept toc\n */\n get filterCollection(): FilterCollection {\n if (!this._filterCollection) {\n this._filterCollection = new FilterCollection(\n this.data.filter,\n {\n filter: this.contributions.filter.filter((filter) => {\n const [key] = Object.keys(filter);\n return has(this.data?.filter, key);\n }),\n },\n this.modelOptions,\n );\n }\n\n return this._filterCollection;\n }\n\n /**\n * Retrieve entrydate of content toc\n */\n get entryDate(): ISO_DATE | null {\n const timeversionFilter = this.filterCollection.getFilterByAttributeKey(\n TIMEVERSION_FILTER_NAME,\n );\n\n return timeversionFilter?.attribute?.value ?? null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,20 +14,15 @@ var _SubSectionModel = _interopRequireDefault(require("./SubSectionModel"));
14
14
  var _createHash = require("../../utils/helpers/createHash");
15
15
  var _LinkModel = _interopRequireDefault(require("../links/LinkModel"));
16
16
  var _utils = require("../../utils");
17
- var _constants = require("../../constants");
18
17
  /**
19
18
  */
20
19
  class SectionModel extends _BaseModel.default {
21
- constructor(data, entryDate, origin, contextPath) {
22
- super(data, {});
20
+ constructor(data, entryDate, modelOptions) {
21
+ super(data, {}, modelOptions);
23
22
  (0, _defineProperty2.default)(this, "_entryDate", void 0);
24
23
  (0, _defineProperty2.default)(this, "_selflink", void 0);
25
24
  (0, _defineProperty2.default)(this, "_childSections", void 0);
26
- (0, _defineProperty2.default)(this, "_origin", "");
27
- (0, _defineProperty2.default)(this, "_contextPath", (0, _constants.getBasePath)());
28
25
  this._entryDate = entryDate;
29
- this._origin = origin || "";
30
- this._contextPath = contextPath || (0, _constants.getBasePath)();
31
26
  }
32
27
 
33
28
  /**
@@ -40,7 +35,7 @@ class SectionModel extends _BaseModel.default {
40
35
  */
41
36
  get selflink() {
42
37
  if (!this._selflink) {
43
- this._selflink = new _LinkModel.default(this.data._links?.self, null, this._origin, this._contextPath);
38
+ this._selflink = new _LinkModel.default(this.data._links?.self, null, this.modelOptions);
44
39
  }
45
40
  return this._selflink;
46
41
  }
@@ -113,7 +108,7 @@ class SectionModel extends _BaseModel.default {
113
108
  label: childSection.label,
114
109
  sourceLabel: childSection.sourceLabel,
115
110
  _links: childSection._links
116
- }, this.entryDate, this._origin, this._contextPath)) : [];
111
+ }, this.entryDate, this.modelOptions)) : [];
117
112
  }
118
113
 
119
114
  /**
@@ -125,7 +120,7 @@ class SectionModel extends _BaseModel.default {
125
120
  label: this.data.label,
126
121
  sourceLabel: this.data.sourceLabel,
127
122
  _links: this.data._links
128
- }, this.entryDate, this._origin, this._contextPath);
123
+ }, this.entryDate, this.modelOptions);
129
124
  }
130
125
 
131
126
  /**
@@ -134,7 +129,7 @@ class SectionModel extends _BaseModel.default {
134
129
  get childSections() {
135
130
  if (!this._childSections && this.data.childSections) {
136
131
  var _context2, _context3;
137
- this._childSections = (0, _map.default)(_context2 = (0, _filter.default)(_context3 = this.data.childSections).call(_context3, childSection => "body" in childSection)).call(_context2, childSection => new SectionModel(childSection, this.entryDate, this._origin, this._contextPath));
132
+ this._childSections = (0, _map.default)(_context2 = (0, _filter.default)(_context3 = this.data.childSections).call(_context3, childSection => "body" in childSection)).call(_context2, childSection => new SectionModel(childSection, this.entryDate, this.modelOptions));
138
133
  }
139
134
  return this._childSections || [];
140
135
  }
@@ -6,9 +6,10 @@ import SubSectionModel from "./SubSectionModel";
6
6
  import { createHashFromHref } from "../../utils/helpers/createHash";
7
7
  import LinkModel from "../links/LinkModel";
8
8
 
9
- import type Href from "../href/Href";
10
9
  import { retrieveText } from "../../utils";
11
- import { getBasePath } from "../../constants";
10
+
11
+ import type Href from "../href/Href";
12
+ import type { ModelOptions } from "../types";
12
13
 
13
14
  /**
14
15
  */
@@ -16,20 +17,15 @@ class SectionModel extends BaseModel {
16
17
  _entryDate: ISO_DATE | null;
17
18
  _selflink: ?LinkModel;
18
19
  _childSections: Array<SectionModel>;
19
- _origin: string = "";
20
- _contextPath: string = getBasePath();
21
20
 
22
21
  constructor(
23
22
  data: Object,
24
23
  entryDate: ISO_DATE | null,
25
- origin?: string,
26
- contextPath?: string,
24
+ modelOptions?: ModelOptions,
27
25
  ) {
28
- super(data, {});
26
+ super(data, {}, modelOptions);
29
27
 
30
28
  this._entryDate = entryDate;
31
- this._origin = origin || "";
32
- this._contextPath = contextPath || getBasePath();
33
29
  }
34
30
 
35
31
  /**
@@ -45,8 +41,7 @@ class SectionModel extends BaseModel {
45
41
  this._selflink = new LinkModel(
46
42
  this.data._links?.self,
47
43
  null,
48
- this._origin,
49
- this._contextPath,
44
+ this.modelOptions,
50
45
  );
51
46
  }
52
47
  return this._selflink;
@@ -125,8 +120,7 @@ class SectionModel extends BaseModel {
125
120
  _links: childSection._links,
126
121
  },
127
122
  this.entryDate,
128
- this._origin,
129
- this._contextPath,
123
+ this.modelOptions,
130
124
  ),
131
125
  )
132
126
  : [];
@@ -144,8 +138,7 @@ class SectionModel extends BaseModel {
144
138
  _links: this.data._links,
145
139
  },
146
140
  this.entryDate,
147
- this._origin,
148
- this._contextPath,
141
+ this.modelOptions,
149
142
  );
150
143
  }
151
144
 
@@ -158,12 +151,7 @@ class SectionModel extends BaseModel {
158
151
  .filter((childSection) => "body" in childSection)
159
152
  .map(
160
153
  (childSection) =>
161
- new SectionModel(
162
- childSection,
163
- this.entryDate,
164
- this._origin,
165
- this._contextPath,
166
- ),
154
+ new SectionModel(childSection, this.entryDate, this.modelOptions),
167
155
  );
168
156
  }
169
157
  return this._childSections || [];
@@ -1 +1 @@
1
- {"version":3,"file":"SectionModel.js","names":["_BaseModel","_interopRequireDefault","require","_ContentLinkModel","_SubSectionModel","_createHash","_LinkModel","_utils","_constants","SectionModel","BaseModel","constructor","data","entryDate","origin","contextPath","_defineProperty2","default","getBasePath","_entryDate","_origin","_contextPath","referred","selflink","_selflink","LinkModel","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","retrieveText","childSectionLinks","_context","childSections","_map","call","childSection","ContentLinkModel","section","selfContentLink","_childSections","_context2","_context3","_filter","sections","subSections","_context4","subSection","SubSectionModel","referenceHash","createHashFromHref","getReferredSections","push","referredChilds","_default","exports"],"sources":["../../../src/models/content/SectionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport type Href from \"../href/Href\";\nimport { retrieveText } from \"../../utils\";\nimport { getBasePath } from \"../../constants\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n _origin: string = \"\";\n _contextPath: string = getBasePath();\n\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n origin?: string,\n contextPath?: string,\n ) {\n super(data, {});\n\n this._entryDate = entryDate;\n this._origin = origin || \"\";\n this._contextPath = contextPath || getBasePath();\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(\n this.data._links?.self,\n null,\n this._origin,\n this._contextPath,\n );\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate,\n this._origin,\n this._contextPath,\n ),\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate,\n this._origin,\n this._contextPath,\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map(\n (childSection) =>\n new SectionModel(\n childSection,\n this.entryDate,\n this._origin,\n this._contextPath,\n ),\n );\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) => new SubSectionModel(subSection),\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SectionModel.js","names":["_BaseModel","_interopRequireDefault","require","_ContentLinkModel","_SubSectionModel","_createHash","_LinkModel","_utils","SectionModel","BaseModel","constructor","data","entryDate","modelOptions","_defineProperty2","default","_entryDate","referred","selflink","_selflink","LinkModel","_links","self","selfhref","href","type","sourceLabel","id","_id","key","label","getData","number","body","retrieveText","childSectionLinks","_context","childSections","_map","call","childSection","ContentLinkModel","section","selfContentLink","_childSections","_context2","_context3","_filter","sections","subSections","_context4","subSection","SubSectionModel","referenceHash","createHashFromHref","getReferredSections","push","referredChilds","_default","exports"],"sources":["../../../src/models/content/SectionModel.js"],"sourcesContent":["// @flow\nimport BaseModel from \"../base/BaseModel\";\nimport ContentLinkModel from \"./ContentLinkModel\";\nimport SubSectionModel from \"./SubSectionModel\";\n\nimport { createHashFromHref } from \"../../utils/helpers/createHash\";\nimport LinkModel from \"../links/LinkModel\";\n\nimport { retrieveText } from \"../../utils\";\n\nimport type Href from \"../href/Href\";\nimport type { ModelOptions } from \"../types\";\n\n/**\n */\nclass SectionModel extends BaseModel {\n _entryDate: ISO_DATE | null;\n _selflink: ?LinkModel;\n _childSections: Array<SectionModel>;\n\n constructor(\n data: Object,\n entryDate: ISO_DATE | null,\n modelOptions?: ModelOptions,\n ) {\n super(data, {}, modelOptions);\n\n this._entryDate = entryDate;\n }\n\n /**\n */\n get referred(): boolean {\n return this.data.referred;\n }\n\n /**\n */\n get selflink(): LinkModel {\n if (!this._selflink) {\n this._selflink = new LinkModel(\n this.data._links?.self,\n null,\n this.modelOptions,\n );\n }\n return this._selflink;\n }\n\n /**\n */\n get selfhref(): Href {\n return this.selflink.href;\n }\n\n /**\n */\n get entryDate(): ISO_DATE | null {\n return this._entryDate;\n }\n\n /**\n */\n get type(): string {\n return this.data.type;\n }\n\n /**\n */\n get sourceLabel(): string {\n return this.data.sourceLabel;\n }\n\n /**\n */\n get id(): string {\n return this.data.id || this.data._id;\n }\n\n /**\n */\n get key(): string {\n return this.id;\n }\n\n /**\n * Get content label\n */\n get label(): string {\n return this.getData(\"label\", \"\");\n }\n\n /**\n * Retrieve number of section\n */\n get number(): string | null {\n return this.data.number ?? null;\n }\n\n /**\n * Get content body\n */\n get body(): ?string {\n return retrieveText(this.data.body);\n }\n\n /**\n * Retrieve child section links\n */\n get childSectionLinks(): Array<ContentLinkModel> {\n return this.data.childSections\n ? this.data.childSections.map(\n (childSection) =>\n new ContentLinkModel(\n {\n section: childSection.id || childSection._id,\n _id: childSection.id || childSection._id,\n label: childSection.label,\n sourceLabel: childSection.sourceLabel,\n _links: childSection._links,\n },\n this.entryDate,\n this.modelOptions,\n ),\n )\n : [];\n }\n\n /**\n */\n get selfContentLink(): ContentLinkModel {\n return new ContentLinkModel(\n {\n section: this.id,\n _id: this.id,\n label: this.data.label,\n sourceLabel: this.data.sourceLabel,\n _links: this.data._links,\n },\n this.entryDate,\n this.modelOptions,\n );\n }\n\n /**\n * Get tree of child sections\n */\n get childSections(): Array<SectionModel> {\n if (!this._childSections && this.data.childSections) {\n this._childSections = this.data.childSections\n .filter((childSection) => \"body\" in childSection)\n .map(\n (childSection) =>\n new SectionModel(childSection, this.entryDate, this.modelOptions),\n );\n }\n return this._childSections || [];\n }\n\n /**\n * set resolved child sections\n */\n set childSections(sections: Array<SectionModel>) {\n this._childSections = sections || [];\n }\n\n /**\n * Get sub sections\n */\n get subSections(): Array<SubSectionModel> {\n return this.data.subSections\n ? this.data.subSections.map(\n (subSection) => new SubSectionModel(subSection),\n )\n : [];\n }\n\n /**\n */\n get referenceHash(): number {\n return createHashFromHref(this.selfhref);\n }\n\n /**\n */\n getReferredSections(): Array<SubSectionModel | SectionModel> {\n const sections = [];\n\n for (const subSection of this.subSections) {\n if (subSection.referred) {\n sections.push(subSection);\n }\n\n const referredChilds = subSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n for (const childSection of this.childSections) {\n if (childSection.referred) {\n sections.push(childSection);\n }\n\n const referredChilds = childSection.getReferredSections();\n sections.push(...referredChilds);\n }\n\n return sections;\n }\n}\n\nexport default SectionModel;\n"],"mappings":"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","ignoreList":[]}
@@ -89,7 +89,10 @@ class DetailModel extends _ResourceModel.default {
89
89
  const [key] = (0, _keys.default)(contribution);
90
90
  return (0, _objects.has)(this.data, key);
91
91
  }) : [];
92
- this.attributeCollection = new _AttributeCollection.default(this.data, attributeContributions, true);
92
+ this.attributeCollection = new _AttributeCollection.default(this.data, attributeContributions, {
93
+ ...this.modelOptions,
94
+ isReadonly: true
95
+ });
93
96
  }
94
97
 
95
98
  /**
@@ -132,7 +135,10 @@ class DetailModel extends _ResourceModel.default {
132
135
  const metadataContributions = this.contributions.metadata ? (0, _map.default)(_context4 = (0, _keys.default)(this.contributions.metadata)).call(_context4, metadataKey => ({
133
136
  [metadataKey]: this.contributions.metadata[metadataKey]
134
137
  })) : [];
135
- this.metadataCollection = new _AttributeCollection.default(this.data, metadataContributions, true);
138
+ this.metadataCollection = new _AttributeCollection.default(this.data, metadataContributions, {
139
+ ...this.modelOptions,
140
+ isReadonly: true
141
+ });
136
142
  }
137
143
 
138
144
  /**
@@ -151,7 +157,7 @@ class DetailModel extends _ResourceModel.default {
151
157
  * Action collection
152
158
  */
153
159
  createActionCollection() {
154
- this._actionCollection = new _ActionCollection.default(this.data.actions, this.contributions.actions, this.origin, this.contextPath);
160
+ this._actionCollection = new _ActionCollection.default(this.data.actions, this.contributions.actions, this.modelOptions);
155
161
  }
156
162
 
157
163
  /**
@@ -96,7 +96,7 @@ export default class DetailModel extends ResourceModel {
96
96
  this.attributeCollection = new AttributeCollection(
97
97
  this.data,
98
98
  attributeContributions,
99
- true,
99
+ { ...this.modelOptions, isReadonly: true },
100
100
  );
101
101
  }
102
102
 
@@ -148,7 +148,7 @@ export default class DetailModel extends ResourceModel {
148
148
  this.metadataCollection = new AttributeCollection(
149
149
  this.data,
150
150
  metadataContributions,
151
- true,
151
+ { ...this.modelOptions, isReadonly: true },
152
152
  );
153
153
  }
154
154
 
@@ -171,8 +171,7 @@ export default class DetailModel extends ResourceModel {
171
171
  this._actionCollection = new ActionCollection(
172
172
  this.data.actions,
173
173
  this.contributions.actions,
174
- this.origin,
175
- this.contextPath,
174
+ this.modelOptions,
176
175
  );
177
176
  }
178
177
 
@@ -1 +1 @@
1
- {"version":3,"file":"DetailModel.js","names":["_objects","require","_ActionCollection","_interopRequireDefault","_AttributeCollection","_ResourceModel","_LayoutHints","DetailModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","createAttributeCollection","createMetadataCollection","createActionCollection","type","modelName","isApplicableModel","data","_context","resourceType","contributions","resourcetype","_endsWith","call","_includes","getInitialChildModelLinks","_attributeCollection","setChildModels","models","errors","id","getData","key","label","getContribution","_context2","attributeContributions","attributes","_filter","contribution","_keys","has","attributeCollection","AttributeCollection","collection","_context3","all","attribute","hasTitle","layouthint","hasExact","TITLE","hasAvatar","AVATAR","hasAvatarForTitle","AVATAR_IN_TITLE","isHidden","getAttributeByKey","_context4","metadataContributions","metadata","_map","metadataKey","metadataCollection","_metadataCollection","_actionCollection","ActionCollection","actions","origin","contextPath","actionCollection","isCase","avatarForTitleAttribute","_context5","_find","titleAttribute","_context6","update","model","clonedModel","clone","equals","toString","exports"],"sources":["../../../src/models/detail/DetailModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ActionCollection from \"../actions/ActionCollection\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport ResourceModel from \"../base/ResourceModel\";\n\nimport { AVATAR, AVATAR_IN_TITLE, TITLE } from \"../../constants/LayoutHints\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base class for details<br/>\n * For instance the details of case 1<br/>\n * For instance the details of record 12<br/>\n */\nexport default class DetailModel extends ResourceModel {\n _attributeCollection: AttributeCollection;\n _metadataCollection: AttributeCollection;\n _actionCollection: ActionCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this.createAttributeCollection();\n this.createMetadataCollection();\n this.createActionCollection();\n }\n\n /**\n */\n get type(): string {\n return \"Detail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"DetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const resourceType = data.contributions?.resourcetype;\n return (\n resourceType &&\n (resourceType.endsWith(\"DetailPanel\") ||\n [\"Detail\", \"CasePropertiesPanel\", \"CasePropertiesPanelDetail\"].includes(\n resourceType,\n ))\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n }\n\n /**\n * Getting the unique identifier of the details\n */\n get id(): string {\n return this.getData(\"_id\", this.key);\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Attribute collection\n */\n createAttributeCollection() {\n const attributeContributions = this.contributions.attributes\n ? this.contributions.attributes.filter((contribution) => {\n const [key] = Object.keys(contribution);\n return has(this.data, key);\n })\n : [];\n\n this.attributeCollection = new AttributeCollection(\n this.data,\n attributeContributions,\n true,\n );\n }\n\n /**\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(collection: AttributeCollection) {\n this._attributeCollection = collection;\n }\n\n /**\n * Retrieve list of visible attributes\n */\n get attributes(): Array<AttributeType> {\n return this.attributeCollection.all.filter((attribute) => {\n const hasTitle = attribute.layouthint.hasExact(TITLE);\n const hasAvatar = attribute.layouthint.hasExact(AVATAR);\n const hasAvatarForTitle = attribute.layouthint.hasExact(AVATAR_IN_TITLE);\n return (\n !attribute.isHidden &&\n (!hasTitle || (hasTitle && hasAvatar)) &&\n (!hasAvatarForTitle || (hasAvatarForTitle && !hasAvatar))\n );\n });\n }\n\n /**\n * Retrieve an attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this._attributeCollection.getAttributeByKey(key);\n }\n\n /**\n * Metadata collection\n */\n createMetadataCollection() {\n const metadataContributions = this.contributions.metadata\n ? Object.keys(this.contributions.metadata).map((metadataKey) => ({\n [metadataKey]: this.contributions.metadata[metadataKey],\n }))\n : [];\n\n this.metadataCollection = new AttributeCollection(\n this.data,\n metadataContributions,\n true,\n );\n }\n\n /**\n */\n get metadataCollection(): AttributeCollection {\n return this._metadataCollection;\n }\n\n /**\n */\n set metadataCollection(collection: AttributeCollection) {\n this._metadataCollection = collection;\n }\n\n /**\n * Action collection\n */\n createActionCollection() {\n this._actionCollection = new ActionCollection(\n this.data.actions,\n this.contributions.actions,\n this.origin,\n this.contextPath,\n );\n }\n\n /**\n */\n get actionCollection(): ActionCollection {\n return this._actionCollection;\n }\n\n /**\n */\n set actionCollection(actionCollection: ActionCollection) {\n this._actionCollection = actionCollection;\n }\n\n /**\n * Determines if this is a case\n */\n get isCase(): boolean {\n return this.contributions.resourcetype === \"CaseView\";\n }\n\n /**\n * Getting the attribute that has as layout hint 'avatar-for-title'\n */\n get avatarForTitleAttribute(): ?AttributeType {\n return this._attributeCollection.find(\n (attribute) =>\n attribute.layouthint.hasExact(AVATAR_IN_TITLE) &&\n attribute.layouthint.hasExact(AVATAR),\n );\n }\n\n /**\n * Getting the attribute that has as layout hint 'title'\n */\n get titleAttribute(): ?AttributeType {\n return this._attributeCollection.find(\n (attribute) =>\n attribute.layouthint.has(TITLE) &&\n !attribute.layouthint.hasExact(AVATAR),\n );\n }\n\n /**\n * Update current detail with a new detail model and return a cloned version of the model\n */\n update(model: ModularUIModel): DetailModel {\n if (model instanceof DetailModel) {\n const clonedModel = this.clone();\n\n clonedModel.attributeCollection = model._attributeCollection;\n clonedModel.metadataCollection = model._metadataCollection;\n clonedModel.actionCollection = model._actionCollection;\n\n return clonedModel;\n }\n\n return this;\n }\n\n /**\n */\n equals(model: DetailModel): boolean {\n return this.id.toString() === model.id.toString();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DetailModel.js","names":["_objects","require","_ActionCollection","_interopRequireDefault","_AttributeCollection","_ResourceModel","_LayoutHints","DetailModel","ResourceModel","constructor","modularuiResponse","_defineProperty2","default","createAttributeCollection","createMetadataCollection","createActionCollection","type","modelName","isApplicableModel","data","_context","resourceType","contributions","resourcetype","_endsWith","call","_includes","getInitialChildModelLinks","_attributeCollection","setChildModels","models","errors","id","getData","key","label","getContribution","_context2","attributeContributions","attributes","_filter","contribution","_keys","has","attributeCollection","AttributeCollection","modelOptions","isReadonly","collection","_context3","all","attribute","hasTitle","layouthint","hasExact","TITLE","hasAvatar","AVATAR","hasAvatarForTitle","AVATAR_IN_TITLE","isHidden","getAttributeByKey","_context4","metadataContributions","metadata","_map","metadataKey","metadataCollection","_metadataCollection","_actionCollection","ActionCollection","actions","actionCollection","isCase","avatarForTitleAttribute","_context5","_find","titleAttribute","_context6","update","model","clonedModel","clone","equals","toString","exports"],"sources":["../../../src/models/detail/DetailModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport ActionCollection from \"../actions/ActionCollection\";\nimport AttributeCollection from \"../attributes/AttributeCollection\";\nimport ResourceModel from \"../base/ResourceModel\";\n\nimport { AVATAR, AVATAR_IN_TITLE, TITLE } from \"../../constants/LayoutHints\";\n\nimport type { ModularUIResponse } from \"../../modularui\";\nimport type { ModularUIModel, AttributeType } from \"../types\";\nimport type LinkModel from \"../links/LinkModel\";\nimport type ErrorResponse from \"../error/ErrorResponse\";\n\n/**\n * Base class for details<br/>\n * For instance the details of case 1<br/>\n * For instance the details of record 12<br/>\n */\nexport default class DetailModel extends ResourceModel {\n _attributeCollection: AttributeCollection;\n _metadataCollection: AttributeCollection;\n _actionCollection: ActionCollection;\n\n /**\n */\n constructor(modularuiResponse: ModularUIResponse) {\n super(modularuiResponse);\n\n this.createAttributeCollection();\n this.createMetadataCollection();\n this.createActionCollection();\n }\n\n /**\n */\n get type(): string {\n return \"Detail\";\n }\n\n /**\n */\n static get modelName(): string {\n return \"DetailModel\";\n }\n\n /**\n */\n static isApplicableModel(data: ModularUIResponse): boolean {\n const resourceType = data.contributions?.resourcetype;\n return (\n resourceType &&\n (resourceType.endsWith(\"DetailPanel\") ||\n [\"Detail\", \"CasePropertiesPanel\", \"CasePropertiesPanelDetail\"].includes(\n resourceType,\n ))\n );\n }\n\n /**\n */\n getInitialChildModelLinks(): Array<LinkModel> {\n return this._attributeCollection.getInitialChildModelLinks();\n }\n\n /**\n */\n setChildModels(models: Array<ModularUIModel>, errors: Array<ErrorResponse>) {\n this._attributeCollection.setChildModels(models, errors);\n }\n\n /**\n * Getting the unique identifier of the details\n */\n get id(): string {\n return this.getData(\"_id\", this.key);\n }\n\n /**\n */\n get label(): string {\n return this.getContribution(\"label\", \"\");\n }\n\n /**\n * Attribute collection\n */\n createAttributeCollection() {\n const attributeContributions = this.contributions.attributes\n ? this.contributions.attributes.filter((contribution) => {\n const [key] = Object.keys(contribution);\n return has(this.data, key);\n })\n : [];\n\n this.attributeCollection = new AttributeCollection(\n this.data,\n attributeContributions,\n { ...this.modelOptions, isReadonly: true },\n );\n }\n\n /**\n */\n get attributeCollection(): AttributeCollection {\n return this._attributeCollection;\n }\n\n /**\n */\n set attributeCollection(collection: AttributeCollection) {\n this._attributeCollection = collection;\n }\n\n /**\n * Retrieve list of visible attributes\n */\n get attributes(): Array<AttributeType> {\n return this.attributeCollection.all.filter((attribute) => {\n const hasTitle = attribute.layouthint.hasExact(TITLE);\n const hasAvatar = attribute.layouthint.hasExact(AVATAR);\n const hasAvatarForTitle = attribute.layouthint.hasExact(AVATAR_IN_TITLE);\n return (\n !attribute.isHidden &&\n (!hasTitle || (hasTitle && hasAvatar)) &&\n (!hasAvatarForTitle || (hasAvatarForTitle && !hasAvatar))\n );\n });\n }\n\n /**\n * Retrieve an attribute by it's key\n */\n getAttributeByKey(key: string): AttributeType | null {\n return this._attributeCollection.getAttributeByKey(key);\n }\n\n /**\n * Metadata collection\n */\n createMetadataCollection() {\n const metadataContributions = this.contributions.metadata\n ? Object.keys(this.contributions.metadata).map((metadataKey) => ({\n [metadataKey]: this.contributions.metadata[metadataKey],\n }))\n : [];\n\n this.metadataCollection = new AttributeCollection(\n this.data,\n metadataContributions,\n { ...this.modelOptions, isReadonly: true },\n );\n }\n\n /**\n */\n get metadataCollection(): AttributeCollection {\n return this._metadataCollection;\n }\n\n /**\n */\n set metadataCollection(collection: AttributeCollection) {\n this._metadataCollection = collection;\n }\n\n /**\n * Action collection\n */\n createActionCollection() {\n this._actionCollection = new ActionCollection(\n this.data.actions,\n this.contributions.actions,\n this.modelOptions,\n );\n }\n\n /**\n */\n get actionCollection(): ActionCollection {\n return this._actionCollection;\n }\n\n /**\n */\n set actionCollection(actionCollection: ActionCollection) {\n this._actionCollection = actionCollection;\n }\n\n /**\n * Determines if this is a case\n */\n get isCase(): boolean {\n return this.contributions.resourcetype === \"CaseView\";\n }\n\n /**\n * Getting the attribute that has as layout hint 'avatar-for-title'\n */\n get avatarForTitleAttribute(): ?AttributeType {\n return this._attributeCollection.find(\n (attribute) =>\n attribute.layouthint.hasExact(AVATAR_IN_TITLE) &&\n attribute.layouthint.hasExact(AVATAR),\n );\n }\n\n /**\n * Getting the attribute that has as layout hint 'title'\n */\n get titleAttribute(): ?AttributeType {\n return this._attributeCollection.find(\n (attribute) =>\n attribute.layouthint.has(TITLE) &&\n !attribute.layouthint.hasExact(AVATAR),\n );\n }\n\n /**\n * Update current detail with a new detail model and return a cloned version of the model\n */\n update(model: ModularUIModel): DetailModel {\n if (model instanceof DetailModel) {\n const clonedModel = this.clone();\n\n clonedModel.attributeCollection = model._attributeCollection;\n clonedModel.metadataCollection = model._metadataCollection;\n clonedModel.actionCollection = model._actionCollection;\n\n return clonedModel;\n }\n\n return this;\n }\n\n /**\n */\n equals(model: DetailModel): boolean {\n return this.id.toString() === model.id.toString();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -22,15 +22,13 @@ class ErrorResponse {
22
22
  /**
23
23
  * Construct ErrorResponse
24
24
  */
25
- constructor(data, connectKey, origin, contextPath) {
25
+ constructor(data, connectKey, modelOptions) {
26
26
  (0, _defineProperty2.default)(this, "_error", void 0);
27
27
  (0, _defineProperty2.default)(this, "_connectKey", void 0);
28
- (0, _defineProperty2.default)(this, "_origin", "");
29
- (0, _defineProperty2.default)(this, "_contextPath", (0, _constants.getBasePath)());
28
+ (0, _defineProperty2.default)(this, "_modelOptions", void 0);
30
29
  this._error = data;
31
30
  this._connectKey = connectKey;
32
- this._origin = origin || "";
33
- this._contextPath = contextPath || (0, _constants.getBasePath)();
31
+ this._modelOptions = modelOptions;
34
32
  }
35
33
 
36
34
  /**
@@ -48,13 +46,13 @@ class ErrorResponse {
48
46
  /**
49
47
  */
50
48
  get origin() {
51
- return this._origin;
49
+ return this._modelOptions?.origin || "";
52
50
  }
53
51
 
54
52
  /**
55
53
  */
56
54
  get contextPath() {
57
- return this._contextPath;
55
+ return this._modelOptions?.contextPath || (0, _constants.getBasePathModularUI)();
58
56
  }
59
57
 
60
58
  /**
@@ -163,7 +161,7 @@ class ErrorResponse {
163
161
  */
164
162
  get redirectHref() {
165
163
  if (this.response.redirect?.href) {
166
- return new _Href.default(this.response.redirect?.href, "", this.origin, this.contextPath);
164
+ return new _Href.default(this.response.redirect?.href, "", this._modelOptions);
167
165
  }
168
166
  return new _Href.default();
169
167
  }
@@ -278,7 +276,7 @@ class ErrorResponse {
278
276
  * Get response url
279
277
  */
280
278
  get changePasswordHref() {
281
- return this.properties.redirect ? new _Href.default(this.properties.redirect, "", this.origin, this.contextPath) : null;
279
+ return this.properties.redirect ? new _Href.default(this.properties.redirect, "", this._modelOptions) : null;
282
280
  }
283
281
 
284
282
  /**
@@ -3,7 +3,8 @@ import Href from "../href/Href";
3
3
 
4
4
  import type { MessageParameters } from "../../i18n/types";
5
5
  import LayoutHintCollection from "../layouthint/LayoutHintCollection";
6
- import { getBasePath } from "../../constants";
6
+ import { getBasePathModularUI } from "../../constants";
7
+ import type { ModelOptions } from "../types";
7
8
 
8
9
  /**
9
10
  */
@@ -34,23 +35,16 @@ export default class ErrorResponse {
34
35
  _error: Object;
35
36
  _connectKey: ?string;
36
37
 
37
- _origin: string = "";
38
- _contextPath: string = getBasePath();
38
+ _modelOptions: ?ModelOptions;
39
39
 
40
40
  /**
41
41
  * Construct ErrorResponse
42
42
  */
43
- constructor(
44
- data: Object,
45
- connectKey?: string,
46
- origin?: string,
47
- contextPath?: string,
48
- ) {
43
+ constructor(data: Object, connectKey?: string, modelOptions?: ModelOptions) {
49
44
  this._error = data;
50
45
  this._connectKey = connectKey;
51
46
 
52
- this._origin = origin || "";
53
- this._contextPath = contextPath || getBasePath();
47
+ this._modelOptions = modelOptions;
54
48
  }
55
49
 
56
50
  /**
@@ -68,13 +62,13 @@ export default class ErrorResponse {
68
62
  /**
69
63
  */
70
64
  get origin(): string {
71
- return this._origin;
65
+ return this._modelOptions?.origin || "";
72
66
  }
73
67
 
74
68
  /**
75
69
  */
76
70
  get contextPath(): string {
77
- return this._contextPath;
71
+ return this._modelOptions?.contextPath || getBasePathModularUI();
78
72
  }
79
73
 
80
74
  /**
@@ -186,12 +180,7 @@ export default class ErrorResponse {
186
180
  */
187
181
  get redirectHref(): Href {
188
182
  if (this.response.redirect?.href) {
189
- return new Href(
190
- this.response.redirect?.href,
191
- "",
192
- this.origin,
193
- this.contextPath,
194
- );
183
+ return new Href(this.response.redirect?.href, "", this._modelOptions);
195
184
  }
196
185
  return new Href();
197
186
  }
@@ -320,7 +309,7 @@ export default class ErrorResponse {
320
309
  */
321
310
  get changePasswordHref(): ?Href {
322
311
  return this.properties.redirect
323
- ? new Href(this.properties.redirect, "", this.origin, this.contextPath)
312
+ ? new Href(this.properties.redirect, "", this._modelOptions)
324
313
  : null;
325
314
  }
326
315