@beinformed/ui 1.57.2 → 1.57.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/esm/constants/Settings.js +14 -6
  3. package/esm/constants/Settings.js.map +1 -1
  4. package/esm/hooks/useAuthentication.js +3 -3
  5. package/esm/hooks/useAuthentication.js.map +1 -1
  6. package/esm/hooks/useModelCatalog.js.map +1 -1
  7. package/esm/hooks/useModularUIBasic.js +1 -1
  8. package/esm/hooks/useModularUIBasic.js.map +1 -1
  9. package/esm/hooks/useModularUIModel.js.map +1 -1
  10. package/esm/models/actions/ActionCollection.js +2 -3
  11. package/esm/models/actions/ActionCollection.js.map +1 -1
  12. package/esm/models/actions/ActionModel.js +13 -23
  13. package/esm/models/actions/ActionModel.js.map +1 -1
  14. package/esm/models/application/ApplicationModel.js +1 -1
  15. package/esm/models/application/ApplicationModel.js.map +1 -1
  16. package/esm/models/attributes/AttributeCollection.js +6 -3
  17. package/esm/models/attributes/AttributeCollection.js.map +1 -1
  18. package/esm/models/attributes/AttributeModel.js +3 -3
  19. package/esm/models/attributes/AttributeModel.js.map +1 -1
  20. package/esm/models/attributes/AttributeSetModel.js +7 -4
  21. package/esm/models/attributes/AttributeSetModel.js.map +1 -1
  22. package/esm/models/attributes/BooleanAttributeModel.js +6 -3
  23. package/esm/models/attributes/BooleanAttributeModel.js.map +1 -1
  24. package/esm/models/attributes/ChoiceAttributeModel.js +6 -3
  25. package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
  26. package/esm/models/attributes/ChoiceAttributeOptionCollection.js +18 -14
  27. package/esm/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  28. package/esm/models/attributes/ChoiceAttributeOptionModel.js +17 -10
  29. package/esm/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  30. package/esm/models/attributes/CompositeAttributeChildCollection.js +7 -7
  31. package/esm/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  32. package/esm/models/attributes/CompositeAttributeModel.js +3 -3
  33. package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
  34. package/esm/models/attributes/DatetimeAttributeModel.js +2 -2
  35. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  36. package/esm/models/attributes/StringAttributeModel.js +2 -2
  37. package/esm/models/attributes/StringAttributeModel.js.map +1 -1
  38. package/esm/models/attributes/_createAttribute.js +2 -2
  39. package/esm/models/attributes/_createAttribute.js.map +1 -1
  40. package/esm/models/base/BaseModel.js +27 -1
  41. package/esm/models/base/BaseModel.js.map +1 -1
  42. package/esm/models/base/ResourceModel.js +3 -23
  43. package/esm/models/base/ResourceModel.js.map +1 -1
  44. package/esm/models/caseview/CaseViewModel.js +1 -1
  45. package/esm/models/caseview/CaseViewModel.js.map +1 -1
  46. package/esm/models/concepts/ConceptDetailModel.js +2 -2
  47. package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
  48. package/esm/models/concepts/ConceptIndexModel.js +2 -2
  49. package/esm/models/concepts/ConceptIndexModel.js.map +1 -1
  50. package/esm/models/concepts/ConceptLinkModel.js +4 -10
  51. package/esm/models/concepts/ConceptLinkModel.js.map +1 -1
  52. package/esm/models/concepts/ConceptRelationCollection.js +11 -4
  53. package/esm/models/concepts/ConceptRelationCollection.js.map +1 -1
  54. package/esm/models/concepts/ConceptRelationModel.js +8 -1
  55. package/esm/models/concepts/ConceptRelationModel.js.map +1 -1
  56. package/esm/models/concepts/SourceReferenceCollection.js +2 -4
  57. package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
  58. package/esm/models/concepts/SourceReferenceModel.js +9 -10
  59. package/esm/models/concepts/SourceReferenceModel.js.map +1 -1
  60. package/esm/models/content/ContentIndexModel.js +2 -2
  61. package/esm/models/content/ContentIndexModel.js.map +1 -1
  62. package/esm/models/content/ContentLinkModel.js +4 -11
  63. package/esm/models/content/ContentLinkModel.js.map +1 -1
  64. package/esm/models/content/ContentModel.js +2 -2
  65. package/esm/models/content/ContentModel.js.map +1 -1
  66. package/esm/models/content/ContentTOCModel.js +7 -7
  67. package/esm/models/content/ContentTOCModel.js.map +1 -1
  68. package/esm/models/content/SectionModel.js +6 -12
  69. package/esm/models/content/SectionModel.js.map +1 -1
  70. package/esm/models/detail/DetailModel.js +9 -3
  71. package/esm/models/detail/DetailModel.js.map +1 -1
  72. package/esm/models/error/ErrorResponse.js +8 -10
  73. package/esm/models/error/ErrorResponse.js.map +1 -1
  74. package/esm/models/filters/AssignmentFilterModel.js +2 -2
  75. package/esm/models/filters/AssignmentFilterModel.js.map +1 -1
  76. package/esm/models/filters/BaseFilterModel.js +3 -3
  77. package/esm/models/filters/BaseFilterModel.js.map +1 -1
  78. package/esm/models/filters/ConceptIndexFilterModel.js +2 -3
  79. package/esm/models/filters/ConceptIndexFilterModel.js.map +1 -1
  80. package/esm/models/filters/FilterCollection.js +8 -7
  81. package/esm/models/filters/FilterCollection.js.map +1 -1
  82. package/esm/models/filters/StringFilterModel.js +2 -2
  83. package/esm/models/filters/StringFilterModel.js.map +1 -1
  84. package/esm/models/form/FormModel.js +4 -4
  85. package/esm/models/form/FormModel.js.map +1 -1
  86. package/esm/models/form/FormObjectModel.js +7 -4
  87. package/esm/models/form/FormObjectModel.js.map +1 -1
  88. package/esm/models/grouping/GroupingModel.js +10 -7
  89. package/esm/models/grouping/GroupingModel.js.map +1 -1
  90. package/esm/models/href/Href.js +9 -8
  91. package/esm/models/href/Href.js.map +1 -1
  92. package/esm/models/links/LinkCollection.js +2 -3
  93. package/esm/models/links/LinkCollection.js.map +1 -1
  94. package/esm/models/links/LinkModel.js +7 -7
  95. package/esm/models/links/LinkModel.js.map +1 -1
  96. package/esm/models/list/ListDetailModel.js +1 -1
  97. package/esm/models/list/ListDetailModel.js.map +1 -1
  98. package/esm/models/list/ListItemCollection.js +1 -1
  99. package/esm/models/list/ListItemCollection.js.map +1 -1
  100. package/esm/models/list/ListItemModel.js +3 -3
  101. package/esm/models/list/ListItemModel.js.map +1 -1
  102. package/esm/models/list/ListModel.js +3 -3
  103. package/esm/models/list/ListModel.js.map +1 -1
  104. package/esm/models/lookup/LookupOptionCollection.js +5 -2
  105. package/esm/models/lookup/LookupOptionCollection.js.map +1 -1
  106. package/esm/models/lookup/LookupOptionsModel.js +2 -2
  107. package/esm/models/lookup/LookupOptionsModel.js.map +1 -1
  108. package/esm/models/panels/GroupingPanelModel.js +1 -1
  109. package/esm/models/panels/GroupingPanelModel.js.map +1 -1
  110. package/esm/models/tab/TabModel.js +2 -2
  111. package/esm/models/tab/TabModel.js.map +1 -1
  112. package/esm/models/taskgroup/TaskGroupModel.js +4 -5
  113. package/esm/models/taskgroup/TaskGroupModel.js.map +1 -1
  114. package/esm/models/types.js.map +1 -1
  115. package/esm/models/user/UserProfileModel.js +4 -1
  116. package/esm/models/user/UserProfileModel.js.map +1 -1
  117. package/esm/modularui/CaptchaRequest.js +3 -3
  118. package/esm/modularui/CaptchaRequest.js.map +1 -1
  119. package/esm/modularui/ModularUIRequest.js +8 -5
  120. package/esm/modularui/ModularUIRequest.js.map +1 -1
  121. package/esm/modularui/ModularUIResponse.js +12 -3
  122. package/esm/modularui/ModularUIResponse.js.map +1 -1
  123. package/esm/modularui/UploadRequest.js +3 -3
  124. package/esm/modularui/UploadRequest.js.map +1 -1
  125. package/esm/react-client/client.js +3 -3
  126. package/esm/react-client/client.js.map +1 -1
  127. package/esm/react-server/renderSSRComplete.js +2 -2
  128. package/esm/react-server/renderSSRComplete.js.map +1 -1
  129. package/esm/react-server/renderSSRMinimal.js +2 -2
  130. package/esm/react-server/renderSSRMinimal.js.map +1 -1
  131. package/esm/redux/_modularui/ModularUIActions.js +8 -2
  132. package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
  133. package/esm/redux/_modularui/ModularUIUtils.js +8 -11
  134. package/esm/redux/_modularui/ModularUIUtils.js.map +1 -1
  135. package/esm/utils/browser/Cookies.js +3 -3
  136. package/esm/utils/browser/Cookies.js.map +1 -1
  137. package/esm/utils/helpers/createHref.js +23 -3
  138. package/esm/utils/helpers/createHref.js.map +1 -1
  139. package/esm/utils/helpers/repositoryResource.js +2 -2
  140. package/esm/utils/helpers/repositoryResource.js.map +1 -1
  141. package/lib/constants/Settings.js +18 -8
  142. package/lib/constants/Settings.js.flow +16 -6
  143. package/lib/constants/Settings.js.map +1 -1
  144. package/lib/hooks/useAuthentication.js +2 -2
  145. package/lib/hooks/useAuthentication.js.flow +3 -3
  146. package/lib/hooks/useAuthentication.js.map +1 -1
  147. package/lib/hooks/useModelCatalog.js.flow +7 -6
  148. package/lib/hooks/useModelCatalog.js.map +1 -1
  149. package/lib/hooks/useModularUIBasic.js +1 -1
  150. package/lib/hooks/useModularUIBasic.js.flow +1 -1
  151. package/lib/hooks/useModularUIBasic.js.map +1 -1
  152. package/lib/hooks/useModularUIModel.js.flow +16 -11
  153. package/lib/hooks/useModularUIModel.js.map +1 -1
  154. package/lib/models/actions/ActionCollection.js +2 -2
  155. package/lib/models/actions/ActionCollection.js.flow +3 -8
  156. package/lib/models/actions/ActionCollection.js.map +1 -1
  157. package/lib/models/actions/ActionModel.js +12 -22
  158. package/lib/models/actions/ActionModel.js.flow +7 -24
  159. package/lib/models/actions/ActionModel.js.map +1 -1
  160. package/lib/models/application/ApplicationModel.js +1 -1
  161. package/lib/models/application/ApplicationModel.js.flow +1 -2
  162. package/lib/models/application/ApplicationModel.js.map +1 -1
  163. package/lib/models/attributes/AttributeCollection.js +6 -3
  164. package/lib/models/attributes/AttributeCollection.js.flow +12 -4
  165. package/lib/models/attributes/AttributeCollection.js.map +1 -1
  166. package/lib/models/attributes/AttributeModel.js +3 -3
  167. package/lib/models/attributes/AttributeModel.js.flow +8 -2
  168. package/lib/models/attributes/AttributeModel.js.map +1 -1
  169. package/lib/models/attributes/AttributeSetModel.js +7 -3
  170. package/lib/models/attributes/AttributeSetModel.js.flow +11 -3
  171. package/lib/models/attributes/AttributeSetModel.js.map +1 -1
  172. package/lib/models/attributes/BooleanAttributeModel.js +6 -3
  173. package/lib/models/attributes/BooleanAttributeModel.js.flow +8 -4
  174. package/lib/models/attributes/BooleanAttributeModel.js.map +1 -1
  175. package/lib/models/attributes/ChoiceAttributeModel.js +6 -3
  176. package/lib/models/attributes/ChoiceAttributeModel.js.flow +13 -4
  177. package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
  178. package/lib/models/attributes/ChoiceAttributeOptionCollection.js +18 -13
  179. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.flow +30 -28
  180. package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
  181. package/lib/models/attributes/ChoiceAttributeOptionModel.js +17 -10
  182. package/lib/models/attributes/ChoiceAttributeOptionModel.js.flow +30 -11
  183. package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
  184. package/lib/models/attributes/CompositeAttributeChildCollection.js +7 -7
  185. package/lib/models/attributes/CompositeAttributeChildCollection.js.flow +8 -1
  186. package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
  187. package/lib/models/attributes/CompositeAttributeModel.js +3 -3
  188. package/lib/models/attributes/CompositeAttributeModel.js.flow +8 -3
  189. package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
  190. package/lib/models/attributes/DatetimeAttributeModel.js +2 -2
  191. package/lib/models/attributes/DatetimeAttributeModel.js.flow +7 -2
  192. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  193. package/lib/models/attributes/StringAttributeModel.js +2 -2
  194. package/lib/models/attributes/StringAttributeModel.js.flow +7 -3
  195. package/lib/models/attributes/StringAttributeModel.js.map +1 -1
  196. package/lib/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js.flow +1 -1
  197. package/lib/models/attributes/_createAttribute.js +2 -2
  198. package/lib/models/attributes/_createAttribute.js.flow +3 -2
  199. package/lib/models/attributes/_createAttribute.js.map +1 -1
  200. package/lib/models/base/BaseModel.js +27 -1
  201. package/lib/models/base/BaseModel.js.flow +31 -1
  202. package/lib/models/base/BaseModel.js.map +1 -1
  203. package/lib/models/base/ResourceModel.js +3 -22
  204. package/lib/models/base/ResourceModel.js.flow +6 -23
  205. package/lib/models/base/ResourceModel.js.map +1 -1
  206. package/lib/models/base/__tests__/BaseModel.spec.js.flow +4 -0
  207. package/lib/models/caseview/CaseViewModel.js +1 -1
  208. package/lib/models/caseview/CaseViewModel.js.flow +1 -2
  209. package/lib/models/caseview/CaseViewModel.js.map +1 -1
  210. package/lib/models/concepts/ConceptDetailModel.js +2 -2
  211. package/lib/models/concepts/ConceptDetailModel.js.flow +2 -2
  212. package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
  213. package/lib/models/concepts/ConceptIndexModel.js +2 -2
  214. package/lib/models/concepts/ConceptIndexModel.js.flow +9 -6
  215. package/lib/models/concepts/ConceptIndexModel.js.map +1 -1
  216. package/lib/models/concepts/ConceptLinkModel.js +4 -10
  217. package/lib/models/concepts/ConceptLinkModel.js.flow +15 -12
  218. package/lib/models/concepts/ConceptLinkModel.js.map +1 -1
  219. package/lib/models/concepts/ConceptRelationCollection.js +11 -4
  220. package/lib/models/concepts/ConceptRelationCollection.js.flow +17 -3
  221. package/lib/models/concepts/ConceptRelationCollection.js.map +1 -1
  222. package/lib/models/concepts/ConceptRelationModel.js +8 -1
  223. package/lib/models/concepts/ConceptRelationModel.js.flow +18 -2
  224. package/lib/models/concepts/ConceptRelationModel.js.map +1 -1
  225. package/lib/models/concepts/SourceReferenceCollection.js +2 -3
  226. package/lib/models/concepts/SourceReferenceCollection.js.flow +3 -8
  227. package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
  228. package/lib/models/concepts/SourceReferenceModel.js +8 -8
  229. package/lib/models/concepts/SourceReferenceModel.js.flow +10 -11
  230. package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
  231. package/lib/models/content/ContentIndexModel.js +2 -2
  232. package/lib/models/content/ContentIndexModel.js.flow +10 -5
  233. package/lib/models/content/ContentIndexModel.js.map +1 -1
  234. package/lib/models/content/ContentLinkModel.js +4 -10
  235. package/lib/models/content/ContentLinkModel.js.flow +10 -13
  236. package/lib/models/content/ContentLinkModel.js.map +1 -1
  237. package/lib/models/content/ContentModel.js +2 -2
  238. package/lib/models/content/ContentModel.js.flow +6 -1
  239. package/lib/models/content/ContentModel.js.map +1 -1
  240. package/lib/models/content/ContentTOCModel.js +7 -7
  241. package/lib/models/content/ContentTOCModel.js.flow +19 -11
  242. package/lib/models/content/ContentTOCModel.js.map +1 -1
  243. package/lib/models/content/SectionModel.js +6 -11
  244. package/lib/models/content/SectionModel.js.flow +9 -21
  245. package/lib/models/content/SectionModel.js.map +1 -1
  246. package/lib/models/detail/DetailModel.js +9 -3
  247. package/lib/models/detail/DetailModel.js.flow +3 -4
  248. package/lib/models/detail/DetailModel.js.map +1 -1
  249. package/lib/models/error/ErrorResponse.js +7 -9
  250. package/lib/models/error/ErrorResponse.js.flow +9 -20
  251. package/lib/models/error/ErrorResponse.js.map +1 -1
  252. package/lib/models/filters/AssignmentFilterModel.js +2 -2
  253. package/lib/models/filters/AssignmentFilterModel.js.flow +7 -3
  254. package/lib/models/filters/AssignmentFilterModel.js.map +1 -1
  255. package/lib/models/filters/BaseFilterModel.js +3 -3
  256. package/lib/models/filters/BaseFilterModel.js.flow +16 -7
  257. package/lib/models/filters/BaseFilterModel.js.map +1 -1
  258. package/lib/models/filters/ConceptIndexFilterModel.js +2 -2
  259. package/lib/models/filters/ConceptIndexFilterModel.js.flow +8 -2
  260. package/lib/models/filters/ConceptIndexFilterModel.js.map +1 -1
  261. package/lib/models/filters/FilterCollection.js +8 -7
  262. package/lib/models/filters/FilterCollection.js.flow +13 -7
  263. package/lib/models/filters/FilterCollection.js.map +1 -1
  264. package/lib/models/filters/StringFilterModel.js +2 -2
  265. package/lib/models/filters/StringFilterModel.js.flow +7 -3
  266. package/lib/models/filters/StringFilterModel.js.map +1 -1
  267. package/lib/models/form/FormModel.js +4 -4
  268. package/lib/models/form/FormModel.js.flow +8 -2
  269. package/lib/models/form/FormModel.js.map +1 -1
  270. package/lib/models/form/FormObjectModel.js +7 -4
  271. package/lib/models/form/FormObjectModel.js.flow +17 -4
  272. package/lib/models/form/FormObjectModel.js.map +1 -1
  273. package/lib/models/grouping/GroupingModel.js +10 -7
  274. package/lib/models/grouping/GroupingModel.js.flow +21 -5
  275. package/lib/models/grouping/GroupingModel.js.map +1 -1
  276. package/lib/models/href/Href.js +8 -7
  277. package/lib/models/href/Href.js.flow +17 -10
  278. package/lib/models/href/Href.js.map +1 -1
  279. package/lib/models/href/__tests__/Href.spec.js.flow +5 -8
  280. package/lib/models/links/LinkCollection.js +2 -3
  281. package/lib/models/links/LinkCollection.js.flow +3 -3
  282. package/lib/models/links/LinkCollection.js.map +1 -1
  283. package/lib/models/links/LinkModel.js +7 -7
  284. package/lib/models/links/LinkModel.js.flow +8 -15
  285. package/lib/models/links/LinkModel.js.map +1 -1
  286. package/lib/models/list/ListDetailModel.js +1 -1
  287. package/lib/models/list/ListDetailModel.js.flow +6 -1
  288. package/lib/models/list/ListDetailModel.js.map +1 -1
  289. package/lib/models/list/ListItemCollection.js +1 -1
  290. package/lib/models/list/ListItemCollection.js.flow +1 -2
  291. package/lib/models/list/ListItemCollection.js.map +1 -1
  292. package/lib/models/list/ListItemModel.js +3 -3
  293. package/lib/models/list/ListItemModel.js.flow +4 -4
  294. package/lib/models/list/ListItemModel.js.map +1 -1
  295. package/lib/models/list/ListModel.js +3 -3
  296. package/lib/models/list/ListModel.js.flow +12 -8
  297. package/lib/models/list/ListModel.js.map +1 -1
  298. package/lib/models/lookup/LookupOptionCollection.js +5 -1
  299. package/lib/models/lookup/LookupOptionCollection.js.flow +17 -6
  300. package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
  301. package/lib/models/lookup/LookupOptionsModel.js +2 -2
  302. package/lib/models/lookup/LookupOptionsModel.js.flow +2 -0
  303. package/lib/models/lookup/LookupOptionsModel.js.map +1 -1
  304. package/lib/models/panels/GroupingPanelModel.js +1 -1
  305. package/lib/models/panels/GroupingPanelModel.js.flow +1 -2
  306. package/lib/models/panels/GroupingPanelModel.js.map +1 -1
  307. package/lib/models/tab/TabModel.js +2 -2
  308. package/lib/models/tab/TabModel.js.flow +2 -4
  309. package/lib/models/tab/TabModel.js.map +1 -1
  310. package/lib/models/taskgroup/TaskGroupModel.js +4 -4
  311. package/lib/models/taskgroup/TaskGroupModel.js.flow +5 -6
  312. package/lib/models/taskgroup/TaskGroupModel.js.map +1 -1
  313. package/lib/models/types.js.flow +5 -0
  314. package/lib/models/types.js.map +1 -1
  315. package/lib/models/user/UserProfileModel.js +4 -1
  316. package/lib/models/user/UserProfileModel.js.flow +1 -0
  317. package/lib/models/user/UserProfileModel.js.map +1 -1
  318. package/lib/modularui/CaptchaRequest.js +2 -2
  319. package/lib/modularui/CaptchaRequest.js.flow +7 -3
  320. package/lib/modularui/CaptchaRequest.js.map +1 -1
  321. package/lib/modularui/ModularUIRequest.js +7 -4
  322. package/lib/modularui/ModularUIRequest.js.flow +8 -5
  323. package/lib/modularui/ModularUIRequest.js.map +1 -1
  324. package/lib/modularui/ModularUIResponse.js +11 -2
  325. package/lib/modularui/ModularUIResponse.js.flow +13 -3
  326. package/lib/modularui/ModularUIResponse.js.map +1 -1
  327. package/lib/modularui/UploadRequest.js +2 -2
  328. package/lib/modularui/UploadRequest.js.flow +7 -3
  329. package/lib/modularui/UploadRequest.js.map +1 -1
  330. package/lib/react-client/client.js +2 -2
  331. package/lib/react-client/client.js.flow +7 -3
  332. package/lib/react-client/client.js.map +1 -1
  333. package/lib/react-server/renderSSRComplete.js +1 -1
  334. package/lib/react-server/renderSSRComplete.js.flow +2 -2
  335. package/lib/react-server/renderSSRComplete.js.map +1 -1
  336. package/lib/react-server/renderSSRMinimal.js +1 -1
  337. package/lib/react-server/renderSSRMinimal.js.flow +2 -2
  338. package/lib/react-server/renderSSRMinimal.js.map +1 -1
  339. package/lib/redux/_modularui/ModularUIActions.js +8 -2
  340. package/lib/redux/_modularui/ModularUIActions.js.flow +8 -7
  341. package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
  342. package/lib/redux/_modularui/ModularUIUtils.js +8 -11
  343. package/lib/redux/_modularui/ModularUIUtils.js.flow +13 -14
  344. package/lib/redux/_modularui/ModularUIUtils.js.map +1 -1
  345. package/lib/utils/browser/Cookies.js +2 -2
  346. package/lib/utils/browser/Cookies.js.flow +3 -3
  347. package/lib/utils/browser/Cookies.js.map +1 -1
  348. package/lib/utils/helpers/__tests__/createHref.spec.js.flow +13 -8
  349. package/lib/utils/helpers/createHref.js +23 -3
  350. package/lib/utils/helpers/createHref.js.flow +37 -8
  351. package/lib/utils/helpers/createHref.js.map +1 -1
  352. package/lib/utils/helpers/repositoryResource.js +1 -1
  353. package/lib/utils/helpers/repositoryResource.js.flow +2 -2
  354. package/lib/utils/helpers/repositoryResource.js.map +1 -1
  355. package/package.json +4 -4
  356. package/src/constants/Settings.js +16 -6
  357. package/src/hooks/useAuthentication.js +3 -3
  358. package/src/hooks/useModelCatalog.js +7 -6
  359. package/src/hooks/useModularUIBasic.js +1 -1
  360. package/src/hooks/useModularUIModel.js +16 -11
  361. package/src/models/actions/ActionCollection.js +3 -8
  362. package/src/models/actions/ActionModel.js +7 -24
  363. package/src/models/application/ApplicationModel.js +1 -2
  364. package/src/models/attributes/AttributeCollection.js +12 -4
  365. package/src/models/attributes/AttributeModel.js +8 -2
  366. package/src/models/attributes/AttributeSetModel.js +11 -3
  367. package/src/models/attributes/BooleanAttributeModel.js +8 -4
  368. package/src/models/attributes/ChoiceAttributeModel.js +13 -4
  369. package/src/models/attributes/ChoiceAttributeOptionCollection.js +30 -28
  370. package/src/models/attributes/ChoiceAttributeOptionModel.js +30 -11
  371. package/src/models/attributes/CompositeAttributeChildCollection.js +8 -1
  372. package/src/models/attributes/CompositeAttributeModel.js +8 -3
  373. package/src/models/attributes/DatetimeAttributeModel.js +7 -2
  374. package/src/models/attributes/StringAttributeModel.js +7 -3
  375. package/src/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js +1 -1
  376. package/src/models/attributes/_createAttribute.js +3 -2
  377. package/src/models/base/BaseModel.js +31 -1
  378. package/src/models/base/ResourceModel.js +6 -23
  379. package/src/models/base/__tests__/BaseModel.spec.js +4 -0
  380. package/src/models/caseview/CaseViewModel.js +1 -2
  381. package/src/models/concepts/ConceptDetailModel.js +2 -2
  382. package/src/models/concepts/ConceptIndexModel.js +9 -6
  383. package/src/models/concepts/ConceptLinkModel.js +15 -12
  384. package/src/models/concepts/ConceptRelationCollection.js +17 -3
  385. package/src/models/concepts/ConceptRelationModel.js +18 -2
  386. package/src/models/concepts/SourceReferenceCollection.js +3 -8
  387. package/src/models/concepts/SourceReferenceModel.js +10 -11
  388. package/src/models/content/ContentIndexModel.js +10 -5
  389. package/src/models/content/ContentLinkModel.js +10 -13
  390. package/src/models/content/ContentModel.js +6 -1
  391. package/src/models/content/ContentTOCModel.js +19 -11
  392. package/src/models/content/SectionModel.js +9 -21
  393. package/src/models/detail/DetailModel.js +3 -4
  394. package/src/models/error/ErrorResponse.js +9 -20
  395. package/src/models/filters/AssignmentFilterModel.js +7 -3
  396. package/src/models/filters/BaseFilterModel.js +16 -7
  397. package/src/models/filters/ConceptIndexFilterModel.js +8 -2
  398. package/src/models/filters/FilterCollection.js +13 -7
  399. package/src/models/filters/StringFilterModel.js +7 -3
  400. package/src/models/form/FormModel.js +8 -2
  401. package/src/models/form/FormObjectModel.js +17 -4
  402. package/src/models/grouping/GroupingModel.js +21 -5
  403. package/src/models/href/Href.js +17 -10
  404. package/src/models/href/__tests__/Href.spec.js +5 -8
  405. package/src/models/links/LinkCollection.js +3 -3
  406. package/src/models/links/LinkModel.js +8 -15
  407. package/src/models/list/ListDetailModel.js +6 -1
  408. package/src/models/list/ListItemCollection.js +1 -2
  409. package/src/models/list/ListItemModel.js +4 -4
  410. package/src/models/list/ListModel.js +12 -8
  411. package/src/models/lookup/LookupOptionCollection.js +17 -6
  412. package/src/models/lookup/LookupOptionsModel.js +2 -0
  413. package/src/models/panels/GroupingPanelModel.js +1 -2
  414. package/src/models/tab/TabModel.js +2 -4
  415. package/src/models/taskgroup/TaskGroupModel.js +5 -6
  416. package/src/models/types.js +5 -0
  417. package/src/models/user/UserProfileModel.js +1 -0
  418. package/src/modularui/CaptchaRequest.js +7 -3
  419. package/src/modularui/ModularUIRequest.js +8 -5
  420. package/src/modularui/ModularUIResponse.js +13 -3
  421. package/src/modularui/UploadRequest.js +7 -3
  422. package/src/react-client/client.js +7 -3
  423. package/src/react-server/renderSSRComplete.js +2 -2
  424. package/src/react-server/renderSSRMinimal.js +2 -2
  425. package/src/redux/_modularui/ModularUIActions.js +8 -7
  426. package/src/redux/_modularui/ModularUIUtils.js +13 -14
  427. package/src/utils/browser/Cookies.js +3 -3
  428. package/src/utils/helpers/__tests__/createHref.spec.js +13 -8
  429. package/src/utils/helpers/createHref.js +37 -8
  430. package/src/utils/helpers/repositoryResource.js +2 -2
@@ -22,6 +22,7 @@ import type {
22
22
  FormErrorAnchor,
23
23
  IConstraintModel,
24
24
  AttributeType,
25
+ ModelOptions,
25
26
  } from "../types";
26
27
 
27
28
  /**
@@ -29,8 +30,12 @@ import type {
29
30
  class DatetimeAttributeModel extends StringAttributeModel {
30
31
  /**
31
32
  */
32
- constructor(attribute: Object, attributeContributions: Object) {
33
- super(attribute, attributeContributions);
33
+ constructor(
34
+ attribute: Object,
35
+ attributeContributions: Object,
36
+ modelOptions?: ModelOptions,
37
+ ) {
38
+ super(attribute, attributeContributions, modelOptions);
34
39
 
35
40
  this.updateInitValue();
36
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatetimeAttributeModel.js","names":["_objects","require","_DateTimeUtil","_StringAttributeModel","_interopRequireDefault","_ConstraintCollection","_DateTimeDateFormatConstraint","_DateTimeTimeFormatConstraint","_DatetimeFormatConstraint","_DateBoundaryConstraint","_constants","DatetimeAttributeModel","StringAttributeModel","constructor","attribute","attributeContributions","updateInitValue","isApplicableModel","contributions","_context","_includes","default","call","type","formatUtil","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","getInitValue","value","data","length","split","hasTime","getTimeValue","_context2","_context3","_context4","_context5","timeValue","timeInputFormat","toLowerCase","setHour","setMinute","setSecond","setMilliseconds","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","toFormat","inputFormat","getContribution","getInputValue","toString","inputvalue","validate","toISO","format","convertFormat","hasDate","formatLabel","dateInputFormat","_context6","_trim","_context7","replace","dateReadonlyFormat","_context8","placeholder","_placeholder","timeFormatParts","push","timeFormat","join","timeReadonlyFormat","dateInputValue","timeInputValue","formatValue","hasFormat","ISO_DATE_FORMAT","dateTimeReadonlyFormat","readonlyvalue","mindate","maxdate","addServerError","error","id","message","properties","layouthint","has","_errorCollection","getFormatConstraint","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","addConstraints","constraints","ConstraintCollection","add","DateBoundaryConstraint","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","updateByAttribute","otherAttribute","reset","otherValue","inputValue","update","console","_default","exports"],"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from \"../../constants\";\n\nimport type {\n FormErrorAnchor,\n IConstraintModel,\n AttributeType,\n} from \"../types\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type,\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = value.split(\".\")[0];\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormat(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n * return attribute placeholder or return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n // format value in readonly rendering\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n if (this.hasDate && this.hasTime) {\n const dateTimeReadonlyFormat = `${this.dateReadonlyFormat} ${this.timeReadonlyFormat}`;\n return this.formatUtil.toFormat(value, dateTimeReadonlyFormat);\n }\n\n if (this.type === \"date\") {\n return this.formatUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel,\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel,\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel,\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat,\n ),\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof DatetimeAttributeModel) {\n const otherValue = otherAttribute.value;\n if (otherValue != null) {\n const inputValue = this.formatUtil.toFormat(\n otherValue,\n this.inputFormat,\n );\n this.update(inputValue);\n }\n } else {\n console.error(\n `update of datetime attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatetimeAttributeModel.js","names":["_objects","require","_DateTimeUtil","_StringAttributeModel","_interopRequireDefault","_ConstraintCollection","_DateTimeDateFormatConstraint","_DateTimeTimeFormatConstraint","_DatetimeFormatConstraint","_DateBoundaryConstraint","_constants","DatetimeAttributeModel","StringAttributeModel","constructor","attribute","attributeContributions","modelOptions","updateInitValue","isApplicableModel","contributions","_context","_includes","default","call","type","formatUtil","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","getInitValue","value","data","length","split","hasTime","getTimeValue","_context2","_context3","_context4","_context5","timeValue","timeInputFormat","toLowerCase","setHour","setMinute","setSecond","setMilliseconds","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","toFormat","inputFormat","getContribution","getInputValue","toString","inputvalue","validate","toISO","format","convertFormat","hasDate","formatLabel","dateInputFormat","_context6","_trim","_context7","replace","dateReadonlyFormat","_context8","placeholder","_placeholder","timeFormatParts","push","timeFormat","join","timeReadonlyFormat","dateInputValue","timeInputValue","formatValue","hasFormat","ISO_DATE_FORMAT","dateTimeReadonlyFormat","readonlyvalue","mindate","maxdate","addServerError","error","id","message","properties","layouthint","has","_errorCollection","getFormatConstraint","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","addConstraints","constraints","ConstraintCollection","add","DateBoundaryConstraint","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","updateByAttribute","otherAttribute","reset","otherValue","inputValue","update","console","_default","exports"],"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport { ATTRIBUTE_WIDTH, ISO_DATE_FORMAT } from \"../../constants\";\n\nimport type {\n FormErrorAnchor,\n IConstraintModel,\n AttributeType,\n ModelOptions,\n} from \"../types\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type,\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = value.split(\".\")[0];\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormat(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n * return attribute placeholder or return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n // format value in readonly rendering\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n if (this.hasDate && this.hasTime) {\n const dateTimeReadonlyFormat = `${this.dateReadonlyFormat} ${this.timeReadonlyFormat}`;\n return this.formatUtil.toFormat(value, dateTimeReadonlyFormat);\n }\n\n if (this.type === \"date\") {\n return this.formatUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel,\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel,\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel,\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat,\n ),\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof DatetimeAttributeModel) {\n const otherValue = otherAttribute.value;\n if (otherValue != null) {\n const inputValue = this.formatUtil.toFormat(\n otherValue,\n this.inputFormat,\n );\n this.update(inputValue);\n }\n } else {\n console.error(\n `update of datetime attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
@@ -19,8 +19,8 @@ var _constants = require("../../constants");
19
19
  class StringAttributeModel extends _AttributeModel.default {
20
20
  /**
21
21
  */
22
- constructor(attribute, attributeContributions) {
23
- super(attribute, attributeContributions);
22
+ constructor(attribute, attributeContributions, modelOptions) {
23
+ super(attribute, attributeContributions, modelOptions);
24
24
  (0, _defineProperty2.default)(this, "_placeholder", void 0);
25
25
  this._placeholder = this.getContribution("placeholder", "");
26
26
  }
@@ -7,7 +7,7 @@ import IBANConstraint from "./input-constraints/IBANConstraint";
7
7
 
8
8
  import { ATTRIBUTE_WIDTH } from "../../constants";
9
9
 
10
- import type { AttributeType } from "../types";
10
+ import type { AttributeType, ModelOptions } from "../types";
11
11
 
12
12
  /**
13
13
  * String attribute
@@ -17,8 +17,12 @@ export default class StringAttributeModel extends AttributeModel {
17
17
 
18
18
  /**
19
19
  */
20
- constructor(attribute: Object, attributeContributions: Object) {
21
- super(attribute, attributeContributions);
20
+ constructor(
21
+ attribute: Object,
22
+ attributeContributions: Object,
23
+ modelOptions?: ModelOptions,
24
+ ) {
25
+ super(attribute, attributeContributions, modelOptions);
22
26
 
23
27
  this._placeholder = this.getContribution("placeholder", "");
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(attribute: Object, attributeContributions: Object) {\n super(attribute, attributeContributions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: new RegExp(\"^[1-9][0-9]{3} ?[a-zA-Z]{2}$\", \"gi\"),\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n return formattedValue.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"StringAttributeModel.js","names":["_AttributeModel","_interopRequireDefault","require","_ConstraintCollection","_RegexConstraint","_BSNConstraint","_IBANConstraint","_constants","StringAttributeModel","AttributeModel","constructor","attribute","attributeContributions","modelOptions","_defineProperty2","default","_placeholder","getContribution","getInitialInputValue","value","formatValue","isApplicableModel","contributions","layouthint","type","Array","isArray","_includes","call","regexp","regexpvalidationmessage","postfix","prefix","placeholder","isBSN","has","isIBAN","isZipcode","isEmail","addConstraints","constraints","ConstraintCollection","add","BSNConstraint","IBANConstraint","RegexConstraint","messageKey","defaultMessage","regex","RegExp","reset","inputvalue","formatIBAN","noFormat","removeFormat","groups","replace","match","join","formatZipcode","length","substring","toUpperCase","formatBSN","toString","validateValue","getInputValue","_inputvalue","validate","readonlyvalue","formattedValue","update","updateLastModification","updateByAttribute","otherAttribute","console","error","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","LARGE","MEDIUM","exports"],"sources":["../../../src/models/attributes/StringAttributeModel.js"],"sourcesContent":["// @flow\nimport AttributeModel from \"./AttributeModel\";\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport RegexConstraint from \"./input-constraints/RegexConstraint\";\nimport BSNConstraint from \"./input-constraints/BSNConstraint\";\nimport IBANConstraint from \"./input-constraints/IBANConstraint\";\n\nimport { ATTRIBUTE_WIDTH } from \"../../constants\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * String attribute\n */\nexport default class StringAttributeModel extends AttributeModel {\n _placeholder: string;\n\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this._placeholder = this.getContribution(\"placeholder\", \"\");\n }\n\n /**\n * Retrieve initial input value\n */\n getInitialInputValue(value: any): string {\n return this.formatValue(value);\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n const layouthint = contributions?.layouthint;\n return (\n contributions.type === \"string\" ||\n (Array.isArray(layouthint) && layouthint.includes(\"string\"))\n );\n }\n\n /**\n */\n get type(): string {\n return \"string\";\n }\n\n /**\n * Get Regexp pattern\n */\n get regexp(): string | null {\n return this.getContribution(\"regexp\");\n }\n\n /**\n */\n get regexpvalidationmessage(): string | null {\n return this.getContribution(\"regexpValidationMessage\");\n }\n\n /**\n * Get postfix text\n */\n get postfix(): string {\n return this.getContribution(\"postfix\", \"\");\n }\n\n /**\n * Get prefix text\n */\n get prefix(): string {\n return this.getContribution(\"prefix\", \"\");\n }\n\n /**\n * Get placeholder text\n */\n get placeholder(): string {\n return this._placeholder;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n isBSN(): boolean {\n return this.layouthint.has(\"bsn\");\n }\n\n /**\n */\n isIBAN(): boolean {\n return this.layouthint.has(\"iban\");\n }\n\n /**\n */\n isZipcode(): boolean {\n return this.layouthint.has(\"zipcode\");\n }\n\n /**\n */\n isEmail(): boolean {\n return this.layouthint.has(\"email\");\n }\n\n /**\n * Add regex constraints\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n if (this.isBSN()) {\n constraints.add(new BSNConstraint());\n } else if (this.isIBAN()) {\n constraints.add(new IBANConstraint());\n }\n\n if (this.isZipcode()) {\n // validate zip when regex is set is set or exact or isNot\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.ZipCode.InvalidFormat\",\n defaultMessage: \"Must be a valid Dutch ZIP code, e.g. 1234 AB\",\n regex: new RegExp(\"^[1-9][0-9]{3} ?[a-zA-Z]{2}$\", \"gi\"),\n }),\n );\n } else if (this.isEmail() && this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.Email.InvalidFormat\",\n defaultMessage: \"Must be a valid e-mail address\",\n regex: new RegExp(this.regexp, \"gi\"),\n }),\n );\n } else if (this.regexp) {\n constraints.add(\n new RegexConstraint({\n messageKey: \"Constraint.String.InvalidRegex\",\n defaultMessage: this.regexpvalidationmessage,\n regex: this.regexp,\n }),\n );\n }\n\n return constraints;\n }\n\n /**\n * Reset attribute to empty string\n */\n reset() {\n this.inputvalue = \"\";\n }\n\n /**\n */\n formatIBAN(value: string): string {\n const noFormat = this.removeFormat(value);\n\n const groups = noFormat.replace(/\\s/g, \"\").match(/.{1,4}/g);\n return groups == null ? \"\" : groups.join(\" \");\n }\n\n /**\n */\n formatZipcode(value: string): string {\n const noFormat = this.removeFormat(value);\n if (noFormat.length === 6) {\n return (\n noFormat.substring(0, 4) + \" \" + noFormat.substring(4).toUpperCase()\n );\n }\n return noFormat;\n }\n\n /**\n */\n formatBSN(value: string): string {\n return this.removeFormat(value);\n }\n\n /**\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (typeof value !== \"string\") {\n return value;\n }\n\n if (this.isIBAN()) {\n return this.formatIBAN(value);\n }\n\n if (this.isZipcode()) {\n return this.formatZipcode(value);\n }\n\n if (this.isBSN()) {\n return this.formatBSN(value);\n }\n\n return value.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n /**\n */\n removeFormat(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n if (this.isIBAN() || this.isZipcode() || this.isBSN()) {\n return value.replace(/[^a-z0-9,]/gi, \"\");\n }\n\n return value;\n }\n\n /**\n */\n get validateValue(): string {\n return this.removeFormat(this.inputvalue);\n }\n\n /**\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this._inputvalue = value;\n\n if (value == null) {\n this.value = value;\n } else {\n this.value = this.removeFormat(value);\n }\n\n this.validate(this.validateValue);\n }\n\n /**\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n const formattedValue = this.formatValue(this.value);\n // fix for rendering of multiple spaces\n return formattedValue.replace(/ {2}/gi, \" \\u00A0\");\n }\n\n return this.value == null ? \"\" : this.value;\n }\n\n /**\n * Update the attribute by name and value\n */\n update(value: string): StringAttributeModel {\n if (this.inputvalue === value) {\n return this;\n }\n\n this.updateLastModification();\n this.inputvalue = value;\n\n return this;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof StringAttributeModel) {\n this.update(otherAttribute.value);\n } else {\n console.error(\n `update of string attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.isZipcode() || this.isBSN()) {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n if (this.isIBAN()) {\n return ATTRIBUTE_WIDTH.LARGE;\n }\n\n // default value (also applied for email address + download attribute)\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -50,7 +50,7 @@ describe("choiceAttributeOptionModel", () => {
50
50
  },
51
51
  ],
52
52
  },
53
- "2016-01-01",
53
+ { referenceDate: "2016-01-01" },
54
54
  );
55
55
 
56
56
  expect(option.getInitialChildModelLinks()).toHaveLength(0);
@@ -77,7 +77,7 @@ const updateData = (key, data, contributions) => {
77
77
  /**
78
78
  * Create an attribute based on data and contributions
79
79
  */
80
- const createAttribute = (key, data, contributions) => {
80
+ const createAttribute = (key, data, contributions, modelOptions) => {
81
81
  const updatedContributions = updateContributions(key, data, contributions);
82
82
  const updatedData = updateData(key, data, contributions);
83
83
  const Model = getAttributeModel(updatedContributions);
@@ -86,7 +86,7 @@ const createAttribute = (key, data, contributions) => {
86
86
  }
87
87
  const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);
88
88
  const dataHelper = new _AttributeDataHelper.default(updatedData, key, childrenKeys).getData();
89
- const attribute = new Model(dataHelper, updatedContributions);
89
+ const attribute = new Model(dataHelper, updatedContributions, modelOptions);
90
90
  return _LayoutHintRuleCollection.default.setLayoutHintRules(attribute);
91
91
  };
92
92
  var _default = exports.default = createAttribute;
@@ -22,7 +22,7 @@ import BooleanAttributeModel from "./BooleanAttributeModel";
22
22
 
23
23
  import AttributeDataHelper from "./AttributeDataHelper";
24
24
 
25
- import type { AttributeType } from "../types";
25
+ import type { AttributeType, ModelOptions } from "../types";
26
26
 
27
27
  /**
28
28
  * @private
@@ -121,6 +121,7 @@ const createAttribute = (
121
121
  key: string,
122
122
  data: Object | Array<Object>,
123
123
  contributions: Object,
124
+ modelOptions?: ModelOptions,
124
125
  ): AttributeType => {
125
126
  const updatedContributions = updateContributions(key, data, contributions);
126
127
  const updatedData = updateData(key, data, contributions);
@@ -138,7 +139,7 @@ const createAttribute = (
138
139
  childrenKeys,
139
140
  ).getData();
140
141
 
141
- const attribute = new Model(dataHelper, updatedContributions);
142
+ const attribute = new Model(dataHelper, updatedContributions, modelOptions);
142
143
 
143
144
  return LayoutHintRuleCollection.setLayoutHintRules(attribute);
144
145
  };
@@ -1 +1 @@
1
- {"version":3,"file":"_createAttribute.js","names":["_full","require","_objects","_LayoutHintRuleCollection","_interopRequireDefault","_CaptchaAttributeModel","_ChoiceAttributeModel","_DatetimeAttributeModel","_HelptextAttributeModel","_LabelAttributeModel","_MemoAttributeModel","_MoneyAttributeModel","_NumberAttributeModel","_PasswordAttributeModel","_CompositeAttributeModel","_StringAttributeModel","_UploadAttributeModel","_XMLAttributeModel","_BooleanAttributeModel","_AttributeDataHelper","getChildrenKeys","children","_map","default","call","child","childKey","_keys","isComposite","type","key","dynamicschemaId","undefined","getAttributeModel","contributions","ATTRIBUTE_MODELS","ChoiceAttributeModel","BooleanAttributeModel","HelptextAttributeModel","LabelAttributeModel","XMLAttributeModel","MemoAttributeModel","StringAttributeModel","DatetimeAttributeModel","MoneyAttributeModel","NumberAttributeModel","PasswordAttributeModel","UploadAttributeModel","CompositeAttributeModel","CaptchaAttributeModel","_find","model","isApplicableModel","updateContributions","data","has","isPlainObject","Array","isArray","updateData","newData","klona","createAttribute","updatedContributions","updatedData","Model","Error","childrenKeys","dataHelper","AttributeDataHelper","getData","attribute","LayoutHintRuleCollection","setLayoutHintRules","_default","exports"],"sources":["../../../src/models/attributes/_createAttribute.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\nimport LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\n\nimport CaptchaAttributeModel from \"./CaptchaAttributeModel\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\nimport HelptextAttributeModel from \"./HelptextAttributeModel\";\nimport LabelAttributeModel from \"./LabelAttributeModel\";\nimport MemoAttributeModel from \"./MemoAttributeModel\";\nimport MoneyAttributeModel from \"./MoneyAttributeModel\";\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport PasswordAttributeModel from \"./PasswordAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport UploadAttributeModel from \"./UploadAttributeModel\";\nimport XMLAttributeModel from \"./XMLAttributeModel\";\nimport BooleanAttributeModel from \"./BooleanAttributeModel\";\n\nimport AttributeDataHelper from \"./AttributeDataHelper\";\n\nimport type { AttributeType } from \"../types\";\n\n/**\n * @private\n */\nconst getChildrenKeys = (children: Array<Object>): Array<Object> => {\n if (children) {\n return children.map((child) => {\n const [childKey] = Object.keys(child);\n const isComposite =\n child[childKey].type === \"range\" ||\n child[childKey].type === \"composite\";\n\n return {\n key: childKey,\n dynamicschemaId: child[childKey]?.dynamicschemaId || undefined,\n children: isComposite ? getChildrenKeys(child[childKey]?.children) : [],\n };\n });\n }\n\n return [];\n};\n\n/**\n * @private\n */\nconst getAttributeModel = (contributions: Object): ?Class<AttributeType> => {\n const ATTRIBUTE_MODELS = [\n ChoiceAttributeModel,\n BooleanAttributeModel,\n\n HelptextAttributeModel,\n LabelAttributeModel,\n\n XMLAttributeModel,\n MemoAttributeModel,\n StringAttributeModel,\n\n DatetimeAttributeModel,\n\n MoneyAttributeModel,\n NumberAttributeModel,\n PasswordAttributeModel,\n\n UploadAttributeModel,\n CompositeAttributeModel,\n CaptchaAttributeModel,\n ];\n\n return ATTRIBUTE_MODELS.find((model) =>\n model.isApplicableModel(contributions),\n );\n};\n\n/**\n * @private\n */\nconst updateContributions = (\n key: string,\n data: Object,\n contributions: Object,\n): Object => {\n const isComposite =\n contributions.type === \"array\" &&\n has(contributions, \"children\") &&\n isPlainObject(data) &&\n Array.isArray(data[key]);\n\n return {\n ...contributions,\n type: isComposite ? \"composite\" : contributions.type,\n };\n};\n\n/**\n * @private\n */\nconst updateData = (\n key: string,\n data: Object,\n contributions: Object,\n): Object => {\n const newData = klona(data);\n\n if (contributions.dynamicschemaId) {\n newData.dynamicschemaId = contributions.dynamicschemaId;\n }\n\n return newData;\n};\n\n/**\n * Create an attribute based on data and contributions\n */\nconst createAttribute = (\n key: string,\n data: Object | Array<Object>,\n contributions: Object,\n): AttributeType => {\n const updatedContributions = updateContributions(key, data, contributions);\n const updatedData = updateData(key, data, contributions);\n\n const Model = getAttributeModel(updatedContributions);\n\n if (!Model) {\n throw new Error(\"Could not find model\");\n }\n\n const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);\n const dataHelper = new AttributeDataHelper(\n updatedData,\n key,\n childrenKeys,\n ).getData();\n\n const attribute = new Model(dataHelper, updatedContributions);\n\n return LayoutHintRuleCollection.setLayoutHintRules(attribute);\n};\n\nexport default createAttribute;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"_createAttribute.js","names":["_full","require","_objects","_LayoutHintRuleCollection","_interopRequireDefault","_CaptchaAttributeModel","_ChoiceAttributeModel","_DatetimeAttributeModel","_HelptextAttributeModel","_LabelAttributeModel","_MemoAttributeModel","_MoneyAttributeModel","_NumberAttributeModel","_PasswordAttributeModel","_CompositeAttributeModel","_StringAttributeModel","_UploadAttributeModel","_XMLAttributeModel","_BooleanAttributeModel","_AttributeDataHelper","getChildrenKeys","children","_map","default","call","child","childKey","_keys","isComposite","type","key","dynamicschemaId","undefined","getAttributeModel","contributions","ATTRIBUTE_MODELS","ChoiceAttributeModel","BooleanAttributeModel","HelptextAttributeModel","LabelAttributeModel","XMLAttributeModel","MemoAttributeModel","StringAttributeModel","DatetimeAttributeModel","MoneyAttributeModel","NumberAttributeModel","PasswordAttributeModel","UploadAttributeModel","CompositeAttributeModel","CaptchaAttributeModel","_find","model","isApplicableModel","updateContributions","data","has","isPlainObject","Array","isArray","updateData","newData","klona","createAttribute","modelOptions","updatedContributions","updatedData","Model","Error","childrenKeys","dataHelper","AttributeDataHelper","getData","attribute","LayoutHintRuleCollection","setLayoutHintRules","_default","exports"],"sources":["../../../src/models/attributes/_createAttribute.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport { has, isPlainObject } from \"../../utils/helpers/objects\";\n\nimport LayoutHintRuleCollection from \"./layouthint-rules/LayoutHintRuleCollection\";\n\nimport CaptchaAttributeModel from \"./CaptchaAttributeModel\";\nimport ChoiceAttributeModel from \"./ChoiceAttributeModel\";\nimport DatetimeAttributeModel from \"./DatetimeAttributeModel\";\nimport HelptextAttributeModel from \"./HelptextAttributeModel\";\nimport LabelAttributeModel from \"./LabelAttributeModel\";\nimport MemoAttributeModel from \"./MemoAttributeModel\";\nimport MoneyAttributeModel from \"./MoneyAttributeModel\";\nimport NumberAttributeModel from \"./NumberAttributeModel\";\nimport PasswordAttributeModel from \"./PasswordAttributeModel\";\nimport CompositeAttributeModel from \"./CompositeAttributeModel\";\nimport StringAttributeModel from \"./StringAttributeModel\";\nimport UploadAttributeModel from \"./UploadAttributeModel\";\nimport XMLAttributeModel from \"./XMLAttributeModel\";\nimport BooleanAttributeModel from \"./BooleanAttributeModel\";\n\nimport AttributeDataHelper from \"./AttributeDataHelper\";\n\nimport type { AttributeType, ModelOptions } from \"../types\";\n\n/**\n * @private\n */\nconst getChildrenKeys = (children: Array<Object>): Array<Object> => {\n if (children) {\n return children.map((child) => {\n const [childKey] = Object.keys(child);\n const isComposite =\n child[childKey].type === \"range\" ||\n child[childKey].type === \"composite\";\n\n return {\n key: childKey,\n dynamicschemaId: child[childKey]?.dynamicschemaId || undefined,\n children: isComposite ? getChildrenKeys(child[childKey]?.children) : [],\n };\n });\n }\n\n return [];\n};\n\n/**\n * @private\n */\nconst getAttributeModel = (contributions: Object): ?Class<AttributeType> => {\n const ATTRIBUTE_MODELS = [\n ChoiceAttributeModel,\n BooleanAttributeModel,\n\n HelptextAttributeModel,\n LabelAttributeModel,\n\n XMLAttributeModel,\n MemoAttributeModel,\n StringAttributeModel,\n\n DatetimeAttributeModel,\n\n MoneyAttributeModel,\n NumberAttributeModel,\n PasswordAttributeModel,\n\n UploadAttributeModel,\n CompositeAttributeModel,\n CaptchaAttributeModel,\n ];\n\n return ATTRIBUTE_MODELS.find((model) =>\n model.isApplicableModel(contributions),\n );\n};\n\n/**\n * @private\n */\nconst updateContributions = (\n key: string,\n data: Object,\n contributions: Object,\n): Object => {\n const isComposite =\n contributions.type === \"array\" &&\n has(contributions, \"children\") &&\n isPlainObject(data) &&\n Array.isArray(data[key]);\n\n return {\n ...contributions,\n type: isComposite ? \"composite\" : contributions.type,\n };\n};\n\n/**\n * @private\n */\nconst updateData = (\n key: string,\n data: Object,\n contributions: Object,\n): Object => {\n const newData = klona(data);\n\n if (contributions.dynamicschemaId) {\n newData.dynamicschemaId = contributions.dynamicschemaId;\n }\n\n return newData;\n};\n\n/**\n * Create an attribute based on data and contributions\n */\nconst createAttribute = (\n key: string,\n data: Object | Array<Object>,\n contributions: Object,\n modelOptions?: ModelOptions,\n): AttributeType => {\n const updatedContributions = updateContributions(key, data, contributions);\n const updatedData = updateData(key, data, contributions);\n\n const Model = getAttributeModel(updatedContributions);\n\n if (!Model) {\n throw new Error(\"Could not find model\");\n }\n\n const childrenKeys = getChildrenKeys(updatedContributions.children ?? []);\n const dataHelper = new AttributeDataHelper(\n updatedData,\n key,\n childrenKeys,\n ).getData();\n\n const attribute = new Model(dataHelper, updatedContributions, modelOptions);\n\n return LayoutHintRuleCollection.setLayoutHintRules(attribute);\n};\n\nexport default createAttribute;\n"],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stabl
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
10
10
  var _full = require("klona/full");
11
11
  var _LayoutHintCollection = _interopRequireDefault(require("../layouthint/LayoutHintCollection"));
12
+ var _constants = require("../../constants");
12
13
  /**
13
14
  * Base model, this is the foundation of a model,
14
15
  * it contains data that is needed for all models like, data, contributions and layout hint
@@ -20,13 +21,19 @@ class BaseModel {
20
21
  * constructor
21
22
  */
22
23
  constructor(data, contributions) {
24
+ let modelOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
25
+ origin: "",
26
+ contextPath: (0, _constants.getBasePathModularUI)()
27
+ };
23
28
  (0, _defineProperty2.default)(this, "_data", void 0);
24
29
  (0, _defineProperty2.default)(this, "_contributions", void 0);
25
30
  (0, _defineProperty2.default)(this, "_layouthint", void 0);
26
31
  (0, _defineProperty2.default)(this, "_connectKey", void 0);
32
+ (0, _defineProperty2.default)(this, "_modelOptions", void 0);
27
33
  this._data = data;
28
34
  this._contributions = contributions;
29
35
  this._layouthint = new _LayoutHintCollection.default(this.getContribution("layouthint", []));
36
+ this._modelOptions = modelOptions;
30
37
  }
31
38
 
32
39
  /**
@@ -59,6 +66,24 @@ class BaseModel {
59
66
  return this.contributions[propName] ?? defaultValue;
60
67
  }
61
68
 
69
+ /**
70
+ */
71
+ get modelOptions() {
72
+ return this._modelOptions;
73
+ }
74
+
75
+ /**
76
+ */
77
+ get origin() {
78
+ return this.modelOptions.origin || "";
79
+ }
80
+
81
+ /**
82
+ */
83
+ get contextPath() {
84
+ return this.modelOptions.contextPath || (0, _constants.getBasePathModularUI)();
85
+ }
86
+
62
87
  /**
63
88
  * Getting the layouthint
64
89
  */
@@ -101,7 +126,8 @@ class BaseModel {
101
126
  return {
102
127
  data: this._data,
103
128
  contributions: this._contributions,
104
- connectKey: this._connectKey
129
+ connectKey: this._connectKey,
130
+ options: this._modelOptions
105
131
  };
106
132
  }
107
133
 
@@ -2,6 +2,8 @@
2
2
  import { klona } from "klona/full";
3
3
 
4
4
  import LayoutHintCollection from "../layouthint/LayoutHintCollection";
5
+ import type { ModelOptions } from "../types";
6
+ import { getBasePathModularUI } from "../../constants";
5
7
 
6
8
  export type BaseDehydrateData = {
7
9
  +data: Object,
@@ -21,16 +23,25 @@ class BaseModel {
21
23
  _contributions: Object;
22
24
  _layouthint: LayoutHintCollection;
23
25
  _connectKey: string;
26
+ _modelOptions: ModelOptions;
24
27
 
25
28
  /**
26
29
  * constructor
27
30
  */
28
- constructor(data: Object, contributions: Object) {
31
+ constructor(
32
+ data: Object,
33
+ contributions: Object,
34
+ modelOptions: ModelOptions = {
35
+ origin: "",
36
+ contextPath: getBasePathModularUI(),
37
+ },
38
+ ) {
29
39
  this._data = data;
30
40
  this._contributions = contributions;
31
41
  this._layouthint = new LayoutHintCollection(
32
42
  this.getContribution("layouthint", []),
33
43
  );
44
+ this._modelOptions = modelOptions;
34
45
  }
35
46
 
36
47
  /**
@@ -61,6 +72,24 @@ class BaseModel {
61
72
  return this.contributions[propName] ?? defaultValue;
62
73
  }
63
74
 
75
+ /**
76
+ */
77
+ get modelOptions(): ModelOptions {
78
+ return this._modelOptions;
79
+ }
80
+
81
+ /**
82
+ */
83
+ get origin(): string {
84
+ return this.modelOptions.origin || "";
85
+ }
86
+
87
+ /**
88
+ */
89
+ get contextPath(): string {
90
+ return this.modelOptions.contextPath || getBasePathModularUI();
91
+ }
92
+
64
93
  /**
65
94
  * Getting the layouthint
66
95
  */
@@ -104,6 +133,7 @@ class BaseModel {
104
133
  data: this._data,
105
134
  contributions: this._contributions,
106
135
  connectKey: this._connectKey,
136
+ options: this._modelOptions,
107
137
  };
108
138
  }
109
139
 
@@ -1 +1 @@
1
- {"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","BaseModel","constructor","data","contributions","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","getData","propName","defaultValue","arguments","length","undefined","layouthint","hasData","_keys","connectKey","key","_connectKey","dehydrate","rehydrate","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n\n /**\n * constructor\n */\n constructor(data: Object, contributions: Object) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":";;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,SAAS,CAAC;EAMd;AACF;AACA;EACEC,WAAWA,CAACC,IAAY,EAAEC,aAAqB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAC/C,IAAI,CAACC,KAAK,GAAGJ,IAAI;IACjB,IAAI,CAACK,cAAc,GAAGJ,aAAa;IACnC,IAAI,CAACK,WAAW,GAAG,IAAIC,6BAAoB,CACzC,IAAI,CAACC,eAAe,CAAC,YAAY,EAAE,EAAE,CACvC,CAAC;EACH;;EAEA;AACF;AACA;EACE,IAAIR,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACI,KAAK,IAAI,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;EACEK,OAAOA,CAACC,QAAgB,EAAiC;IAAA,IAA/BC,YAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAChD,OAAO,IAAI,CAACZ,IAAI,CAACU,QAAQ,CAAC,IAAIC,YAAY;EAC5C;;EAEA;AACF;AACA;EACE,IAAIV,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACI,cAAc,IAAI,CAAC,CAAC;EAClC;;EAEA;AACF;AACA;EACEG,eAAeA,CAACE,QAAgB,EAAiC;IAAA,IAA/BC,YAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IACxD,OAAO,IAAI,CAACX,aAAa,CAACS,QAAQ,CAAC,IAAIC,YAAY;EACrD;;EAEA;AACF;AACA;EACE,IAAII,UAAUA,CAAA,EAAyB;IACrC,OAAO,IAAI,CAACT,WAAW;EACzB;;EAEA;AACF;AACA;EACE,IAAIS,UAAUA,CAACA,UAAyB,EAAE;IACxC,IAAI,CAACT,WAAW,GAAG,IAAIC,6BAAoB,CAACQ,UAAU,CAAC;EACzD;;EAEA;AACF;AACA;EACE,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAAC,KAAA,CAAAd,OAAA,EAAY,IAAI,CAACH,IAAI,CAAC,CAACa,MAAM,GAAG,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,IAAIK,UAAUA,CAACC,GAAW,EAAE;IAC1B,IAAI,CAACC,WAAW,GAAGD,GAAG;EACxB;;EAEA;AACF;AACA;EACE,IAAID,UAAUA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACE,WAAW;EACzB;;EAEA;AACF;AACA;EACEC,SAASA,CAAA,EAAsB;IAC7B,OAAO;MACLrB,IAAI,EAAE,IAAI,CAACI,KAAK;MAChBH,aAAa,EAAE,IAAI,CAACI,cAAc;MAClCa,UAAU,EAAE,IAAI,CAACE;IACnB,CAAC;EACH;;EAEA;AACF;AACA;EACEE,SAASA,CAACtB,IAAuB,EAAE;IACjC,IAAI,CAACoB,WAAW,GAAGpB,IAAI,CAACkB,UAAU;EACpC;;EAEA;AACF;AACA;EACEK,KAAKA,CAAA,EAAQ;IACX,OAAO,IAAAC,WAAK,EAAC,IAAI,CAAC;EACpB;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAvB,OAAA,GAEcL,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"BaseModel.js","names":["_full","require","_LayoutHintCollection","_interopRequireDefault","_constants","BaseModel","constructor","data","contributions","modelOptions","arguments","length","undefined","origin","contextPath","getBasePathModularUI","_defineProperty2","default","_data","_contributions","_layouthint","LayoutHintCollection","getContribution","_modelOptions","getData","propName","defaultValue","layouthint","hasData","_keys","connectKey","key","_connectKey","dehydrate","options","rehydrate","clone","klona","_default","exports"],"sources":["../../../src/models/base/BaseModel.js"],"sourcesContent":["// @flow\nimport { klona } from \"klona/full\";\n\nimport LayoutHintCollection from \"../layouthint/LayoutHintCollection\";\nimport type { ModelOptions } from \"../types\";\nimport { getBasePathModularUI } from \"../../constants\";\n\nexport type BaseDehydrateData = {\n +data: Object,\n +contributions: Object,\n connectKey: string,\n ...\n};\n\n/**\n * Base model, this is the foundation of a model,\n * it contains data that is needed for all models like, data, contributions and layout hint\n *\n * Extend this for non modular ui resources, for modular ui resource start with the resourceModel\n */\nclass BaseModel {\n _data: Object;\n _contributions: Object;\n _layouthint: LayoutHintCollection;\n _connectKey: string;\n _modelOptions: ModelOptions;\n\n /**\n * constructor\n */\n constructor(\n data: Object,\n contributions: Object,\n modelOptions: ModelOptions = {\n origin: \"\",\n contextPath: getBasePathModularUI(),\n },\n ) {\n this._data = data;\n this._contributions = contributions;\n this._layouthint = new LayoutHintCollection(\n this.getContribution(\"layouthint\", []),\n );\n this._modelOptions = modelOptions;\n }\n\n /**\n * Retrieve data\n */\n get data(): Object {\n return this._data || {};\n }\n\n /**\n * Retrieve property from the data object of the model, mostly used internal\n */\n getData(propName: string, defaultValue: any = null): any {\n return this.data[propName] ?? defaultValue;\n }\n\n /**\n * Retrieve contributions\n */\n get contributions(): Object {\n return this._contributions || {};\n }\n\n /**\n * Retrieve property from the contributions of the model, mostly used internal\n */\n getContribution(propName: string, defaultValue: any = null): any {\n return this.contributions[propName] ?? defaultValue;\n }\n\n /**\n */\n get modelOptions(): ModelOptions {\n return this._modelOptions;\n }\n\n /**\n */\n get origin(): string {\n return this.modelOptions.origin || \"\";\n }\n\n /**\n */\n get contextPath(): string {\n return this.modelOptions.contextPath || getBasePathModularUI();\n }\n\n /**\n * Getting the layouthint\n */\n get layouthint(): LayoutHintCollection {\n return this._layouthint;\n }\n\n /**\n * Set the layouthint\n */\n set layouthint(layouthint: Array<string>) {\n this._layouthint = new LayoutHintCollection(layouthint);\n }\n\n /**\n * Indicates if the model has data\n */\n get hasData(): boolean {\n return Object.keys(this.data).length > 0;\n }\n\n /**\n * Set the unique key for this model\n */\n set connectKey(key: string) {\n this._connectKey = key;\n }\n\n /**\n * Get the unique key of this model\n */\n get connectKey(): string {\n return this._connectKey;\n }\n\n /**\n * Dehydrate internal data, returns the information that is needed to recreate the model\n */\n dehydrate(): BaseDehydrateData {\n return {\n data: this._data,\n contributions: this._contributions,\n connectKey: this._connectKey,\n options: this._modelOptions,\n };\n }\n\n /**\n * Recreate the model with the given data\n */\n rehydrate(data: BaseDehydrateData) {\n this._connectKey = data.connectKey;\n }\n\n /**\n * Returns a clone of the model\n */\n clone(): any {\n return klona(this);\n }\n}\n\nexport default BaseModel;\n"],"mappings":";;;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,SAAS,CAAC;EAOd;AACF;AACA;EACEC,WAAWA,CACTC,IAAY,EACZC,aAAqB,EAKrB;IAAA,IAJAC,YAA0B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG;MAC3BG,MAAM,EAAE,EAAE;MACVC,WAAW,EAAE,IAAAC,+BAAoB,EAAC;IACpC,CAAC;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAED,IAAI,CAACC,KAAK,GAAGX,IAAI;IACjB,IAAI,CAACY,cAAc,GAAGX,aAAa;IACnC,IAAI,CAACY,WAAW,GAAG,IAAIC,6BAAoB,CACzC,IAAI,CAACC,eAAe,CAAC,YAAY,EAAE,EAAE,CACvC,CAAC;IACD,IAAI,CAACC,aAAa,GAAGd,YAAY;EACnC;;EAEA;AACF;AACA;EACE,IAAIF,IAAIA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACW,KAAK,IAAI,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;EACEM,OAAOA,CAACC,QAAgB,EAAiC;IAAA,IAA/BC,YAAiB,GAAAhB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAChD,OAAO,IAAI,CAACH,IAAI,CAACkB,QAAQ,CAAC,IAAIC,YAAY;EAC5C;;EAEA;AACF;AACA;EACE,IAAIlB,aAAaA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAACW,cAAc,IAAI,CAAC,CAAC;EAClC;;EAEA;AACF;AACA;EACEG,eAAeA,CAACG,QAAgB,EAAiC;IAAA,IAA/BC,YAAiB,GAAAhB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IACxD,OAAO,IAAI,CAACF,aAAa,CAACiB,QAAQ,CAAC,IAAIC,YAAY;EACrD;;EAEA;AACF;EACE,IAAIjB,YAAYA,CAAA,EAAiB;IAC/B,OAAO,IAAI,CAACc,aAAa;EAC3B;;EAEA;AACF;EACE,IAAIV,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACJ,YAAY,CAACI,MAAM,IAAI,EAAE;EACvC;;EAEA;AACF;EACE,IAAIC,WAAWA,CAAA,EAAW;IACxB,OAAO,IAAI,CAACL,YAAY,CAACK,WAAW,IAAI,IAAAC,+BAAoB,EAAC,CAAC;EAChE;;EAEA;AACF;AACA;EACE,IAAIY,UAAUA,CAAA,EAAyB;IACrC,OAAO,IAAI,CAACP,WAAW;EACzB;;EAEA;AACF;AACA;EACE,IAAIO,UAAUA,CAACA,UAAyB,EAAE;IACxC,IAAI,CAACP,WAAW,GAAG,IAAIC,6BAAoB,CAACM,UAAU,CAAC;EACzD;;EAEA;AACF;AACA;EACE,IAAIC,OAAOA,CAAA,EAAY;IACrB,OAAO,IAAAC,KAAA,CAAAZ,OAAA,EAAY,IAAI,CAACV,IAAI,CAAC,CAACI,MAAM,GAAG,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,IAAImB,UAAUA,CAACC,GAAW,EAAE;IAC1B,IAAI,CAACC,WAAW,GAAGD,GAAG;EACxB;;EAEA;AACF;AACA;EACE,IAAID,UAAUA,CAAA,EAAW;IACvB,OAAO,IAAI,CAACE,WAAW;EACzB;;EAEA;AACF;AACA;EACEC,SAASA,CAAA,EAAsB;IAC7B,OAAO;MACL1B,IAAI,EAAE,IAAI,CAACW,KAAK;MAChBV,aAAa,EAAE,IAAI,CAACW,cAAc;MAClCW,UAAU,EAAE,IAAI,CAACE,WAAW;MAC5BE,OAAO,EAAE,IAAI,CAACX;IAChB,CAAC;EACH;;EAEA;AACF;AACA;EACEY,SAASA,CAAC5B,IAAuB,EAAE;IACjC,IAAI,CAACyB,WAAW,GAAGzB,IAAI,CAACuB,UAAU;EACpC;;EAEA;AACF;AACA;EACEM,KAAKA,CAAA,EAAQ;IACX,OAAO,IAAAC,WAAK,EAAC,IAAI,CAAC;EACpB;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEcZ,SAAS","ignoreList":[]}
@@ -12,7 +12,6 @@ var _ModularUIResponse = _interopRequireDefault(require("../../modularui/Modular
12
12
  var _BaseModel = _interopRequireDefault(require("./BaseModel"));
13
13
  var _LinkCollection = _interopRequireDefault(require("../links/LinkCollection"));
14
14
  var _exceptions = require("../../exceptions");
15
- var _constants = require("../../constants");
16
15
  /**
17
16
  * Base model, this the foundation for models that represent modular ui services, e.g. application, tab, caseview, etc
18
17
  */
@@ -22,20 +21,16 @@ class ResourceModel extends _BaseModel.default {
22
21
  */
23
22
  constructor() {
24
23
  let modularuiResponse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new _ModularUIResponse.default();
25
- super(modularuiResponse.data, modularuiResponse.contributions);
24
+ super(modularuiResponse.data, modularuiResponse.contributions, modularuiResponse.modelOptions);
26
25
  (0, _defineProperty2.default)(this, "_key", void 0);
27
26
  (0, _defineProperty2.default)(this, "_locale", void 0);
28
27
  (0, _defineProperty2.default)(this, "_childModels", void 0);
29
28
  (0, _defineProperty2.default)(this, "_links", void 0);
30
29
  (0, _defineProperty2.default)(this, "_lastServerUpdate", void 0);
31
- (0, _defineProperty2.default)(this, "_origin", "");
32
- (0, _defineProperty2.default)(this, "_contextPath", (0, _constants.getBasePath)());
33
30
  this._key = modularuiResponse.key;
34
31
  this._locale = modularuiResponse.locale;
35
32
  this._childModels = [];
36
33
  this._lastServerUpdate = Date.now();
37
- this._origin = modularuiResponse.origin;
38
- this._contextPath = modularuiResponse.contextPath;
39
34
  }
40
35
 
41
36
  /**
@@ -104,18 +99,6 @@ class ResourceModel extends _BaseModel.default {
104
99
  return this.getContribution("label", "");
105
100
  }
106
101
 
107
- /**
108
- */
109
- get origin() {
110
- return this._origin;
111
- }
112
-
113
- /**
114
- */
115
- get contextPath() {
116
- return this._contextPath;
117
- }
118
-
119
102
  /**
120
103
  * Getting the links of the resource
121
104
  */
@@ -128,7 +111,7 @@ class ResourceModel extends _BaseModel.default {
128
111
  },
129
112
  ...this.contributions._links
130
113
  };
131
- this._links = new _LinkCollection.default(linksData, linksContrubtions, this.origin, this.contextPath);
114
+ this._links = new _LinkCollection.default(linksData, linksContrubtions, this.modelOptions);
132
115
  }
133
116
  return this._links;
134
117
  }
@@ -218,9 +201,7 @@ class ResourceModel extends _BaseModel.default {
218
201
  key: this._key,
219
202
  locale: this._locale,
220
203
  // $FlowFixMe[missing-type-arg]
221
- childModels: (0, _map.default)(_context3 = this._childModels).call(_context3, childModel => childModel.dehydrate()),
222
- origin: this._origin,
223
- contextPath: this._contextPath
204
+ childModels: (0, _map.default)(_context3 = this._childModels).call(_context3, childModel => childModel.dehydrate())
224
205
  };
225
206
  }
226
207
  }