@beinformed/ui 1.65.13 → 1.65.15

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 (656) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/esm/hooks/useList.js +3 -1
  3. package/esm/hooks/useList.js.flow +11 -4
  4. package/esm/hooks/useList.js.map +1 -1
  5. package/esm/hooks/useModularUI.js +21 -26
  6. package/esm/hooks/useModularUI.js.flow +28 -34
  7. package/esm/hooks/useModularUI.js.map +1 -1
  8. package/esm/hooks/useModularUIBasic.js +8 -39
  9. package/esm/hooks/useModularUIBasic.js.flow +6 -42
  10. package/esm/hooks/useModularUIBasic.js.map +1 -1
  11. package/lib/hooks/useList.js +3 -1
  12. package/lib/hooks/useList.js.map +1 -1
  13. package/lib/hooks/useModularUI.js +20 -25
  14. package/lib/hooks/useModularUI.js.map +1 -1
  15. package/lib/hooks/useModularUIBasic.js +9 -39
  16. package/lib/hooks/useModularUIBasic.js.map +1 -1
  17. package/package.json +2 -3
  18. package/src/builder/__tests__/LayoutHintConfig.json +0 -20
  19. package/src/builder/__tests__/mergeLayoutHintConfigurations.spec.js +0 -71
  20. package/src/builder/__tests__/subdir/LayoutHintConfig.json +0 -20
  21. package/src/builder/index.js +0 -2
  22. package/src/builder/mergeLayoutHintConfigurations.js +0 -62
  23. package/src/constants/Constants.js +0 -196
  24. package/src/constants/LayoutHintConfig.js +0 -186
  25. package/src/constants/LayoutHints.js +0 -134
  26. package/src/constants/Settings.js +0 -267
  27. package/src/constants/index.js +0 -4
  28. package/src/exceptions/ConfigurationException.js +0 -13
  29. package/src/exceptions/FetchException.js +0 -101
  30. package/src/exceptions/IllegalArgumentException.js +0 -12
  31. package/src/exceptions/IllegalReturnException.js +0 -11
  32. package/src/exceptions/IllegalStateException.js +0 -12
  33. package/src/exceptions/JsonParseException.js +0 -12
  34. package/src/exceptions/MissingPropertyException.js +0 -13
  35. package/src/exceptions/NetworkException.js +0 -20
  36. package/src/exceptions/NotAllowedUriException.js +0 -12
  37. package/src/exceptions/NotFoundException.js +0 -20
  38. package/src/exceptions/ServerRequestException.js +0 -12
  39. package/src/exceptions/ThemePropertyException.js +0 -12
  40. package/src/exceptions/TimeoutException.js +0 -13
  41. package/src/exceptions/UnauthorizedException.js +0 -26
  42. package/src/exceptions/UnsupportedOperationException.js +0 -12
  43. package/src/exceptions/index.js +0 -16
  44. package/src/hooks/__tests__/UseModularUIModel.spec.js +0 -194
  45. package/src/hooks/__tests__/useAuthentication.spec.js +0 -166
  46. package/src/hooks/__tests__/useForm.spec.js +0 -300
  47. package/src/hooks/__tests__/useI18n.spec.js +0 -30
  48. package/src/hooks/__tests__/useModal.spec.js +0 -67
  49. package/src/hooks/__tests__/useModelCatalog.spec.js +0 -180
  50. package/src/hooks/__tests__/useModels.spec.js +0 -138
  51. package/src/hooks/__tests__/useModularUIBasic.spec.js +0 -126
  52. package/src/hooks/__tests__/useNotification.spec.js +0 -47
  53. package/src/hooks/__tests__/usePreference.spec.js +0 -72
  54. package/src/hooks/__tests__/useProgressIndicator.spec.js +0 -67
  55. package/src/hooks/index.js +0 -21
  56. package/src/hooks/useAllFormsOnModel.js +0 -92
  57. package/src/hooks/useAuthentication.js +0 -113
  58. package/src/hooks/useContent.js +0 -48
  59. package/src/hooks/useDeepCompareEffect.js +0 -50
  60. package/src/hooks/useForm.js +0 -156
  61. package/src/hooks/useI18n.js +0 -46
  62. package/src/hooks/useList.js +0 -221
  63. package/src/hooks/useLookup.js +0 -82
  64. package/src/hooks/useModal.js +0 -46
  65. package/src/hooks/useModelCatalog.js +0 -256
  66. package/src/hooks/useModels.js +0 -50
  67. package/src/hooks/useModularUI.js +0 -79
  68. package/src/hooks/useModularUIBasic.js +0 -152
  69. package/src/hooks/useModularUIKey.js +0 -14
  70. package/src/hooks/useModularUIModel.js +0 -86
  71. package/src/hooks/useModularUIRequest.js +0 -25
  72. package/src/hooks/useNotification.js +0 -48
  73. package/src/hooks/usePanel.js +0 -79
  74. package/src/hooks/usePreference.js +0 -27
  75. package/src/hooks/useProgressIndicator.js +0 -50
  76. package/src/hooks/useRouter.js +0 -70
  77. package/src/hooks/useSearch.js +0 -31
  78. package/src/i18n/Locale.js +0 -157
  79. package/src/i18n/Locales.js +0 -171
  80. package/src/i18n/Message.js +0 -66
  81. package/src/i18n/__tests__/Locale.spec.js +0 -108
  82. package/src/i18n/__tests__/Locales.spec.js +0 -137
  83. package/src/i18n/index.js +0 -12
  84. package/src/i18n/languages.js +0 -207
  85. package/src/i18n/translations/beinformed_error_messages_en.nl.js +0 -98
  86. package/src/i18n/translations/beinformed_error_messages_nl.nl.js +0 -98
  87. package/src/i18n/types.js +0 -23
  88. package/src/i18n/withMessage.js +0 -47
  89. package/src/index.js +0 -7
  90. package/src/models/__tests__/resolveModel.spec.js +0 -34
  91. package/src/models/actions/ActionCollection.js +0 -100
  92. package/src/models/actions/ActionModel.js +0 -207
  93. package/src/models/actions/__mock__/action.js +0 -35
  94. package/src/models/actions/__tests__/ActionCollection.spec.js +0 -98
  95. package/src/models/actions/__tests__/ActionModel.spec.js +0 -75
  96. package/src/models/application/ApplicationModel.js +0 -168
  97. package/src/models/application/__mock__/application.js +0 -14
  98. package/src/models/application/__mock__/contributions.json +0 -312
  99. package/src/models/application/__mock__/data.json +0 -263
  100. package/src/models/application/__tests__/Application.spec.js +0 -99
  101. package/src/models/application/__tests__/webapp.json +0 -42
  102. package/src/models/application/__tests__/webappContributions.json +0 -43
  103. package/src/models/attributes/AttributeCollection.js +0 -306
  104. package/src/models/attributes/AttributeContent.js +0 -233
  105. package/src/models/attributes/AttributeDataHelper.js +0 -323
  106. package/src/models/attributes/AttributeModel.js +0 -1021
  107. package/src/models/attributes/AttributeSetModel.js +0 -117
  108. package/src/models/attributes/BooleanAttributeModel.js +0 -319
  109. package/src/models/attributes/CaptchaAttributeModel.js +0 -51
  110. package/src/models/attributes/ChoiceAttributeModel.js +0 -520
  111. package/src/models/attributes/ChoiceAttributeOptionCollection.js +0 -372
  112. package/src/models/attributes/ChoiceAttributeOptionModel.js +0 -415
  113. package/src/models/attributes/CompositeAttributeChildCollection.js +0 -254
  114. package/src/models/attributes/CompositeAttributeModel.js +0 -439
  115. package/src/models/attributes/DatetimeAttributeModel.js +0 -566
  116. package/src/models/attributes/HelptextAttributeModel.js +0 -54
  117. package/src/models/attributes/LabelAttributeModel.js +0 -36
  118. package/src/models/attributes/MemoAttributeModel.js +0 -43
  119. package/src/models/attributes/MoneyAttributeModel.js +0 -45
  120. package/src/models/attributes/NumberAttributeModel.js +0 -255
  121. package/src/models/attributes/PasswordAttributeModel.js +0 -245
  122. package/src/models/attributes/StringAttributeModel.js +0 -314
  123. package/src/models/attributes/UploadAttributeModel.js +0 -261
  124. package/src/models/attributes/XMLAttributeModel.js +0 -51
  125. package/src/models/attributes/__mock__/_ActionFieldsContributions.json +0 -12
  126. package/src/models/attributes/__mock__/_ActionFieldsData.json +0 -7
  127. package/src/models/attributes/__mock__/_FormCollectionContribution.json +0 -419
  128. package/src/models/attributes/__mock__/_FormCollectionData.json +0 -122
  129. package/src/models/attributes/__mock__/_InstrumentQuestionContributions.json +0 -178
  130. package/src/models/attributes/__mock__/_ListAttributeContributions.json +0 -82
  131. package/src/models/attributes/__mock__/_ListAttributeData.json +0 -70
  132. package/src/models/attributes/__mock__/_ListDetailContributions.json +0 -75
  133. package/src/models/attributes/__mock__/_ListDetailData.json +0 -38
  134. package/src/models/attributes/__mock__/_TreeFormAttributeContribution.json +0 -117
  135. package/src/models/attributes/__mock__/_TreeFormAttributeData.json +0 -27
  136. package/src/models/attributes/__mock__/form.contributions.json +0 -410
  137. package/src/models/attributes/__mock__/form.data.json +0 -113
  138. package/src/models/attributes/__mock__/form.js +0 -6
  139. package/src/models/attributes/__mock__/list.contributions.json +0 -110
  140. package/src/models/attributes/__mock__/list.data.json +0 -84
  141. package/src/models/attributes/__mock__/list.js +0 -6
  142. package/src/models/attributes/__tests__/AttributeCollection.spec.js +0 -160
  143. package/src/models/attributes/__tests__/AttributeCollectionComposite.spec.js +0 -146
  144. package/src/models/attributes/__tests__/AttributeContent.spec.js +0 -225
  145. package/src/models/attributes/__tests__/AttributeDataHelper.spec.js +0 -634
  146. package/src/models/attributes/__tests__/AttributeModel.spec.js +0 -274
  147. package/src/models/attributes/__tests__/AttributeSetModel.spec.js +0 -39
  148. package/src/models/attributes/__tests__/BooleanAttributeModel.spec.js +0 -107
  149. package/src/models/attributes/__tests__/CaptchaAttributeModel.spec.js +0 -13
  150. package/src/models/attributes/__tests__/ChoiceAttributeModel.spec.js +0 -750
  151. package/src/models/attributes/__tests__/ChoiceAttributeOptionCollection.spec.js +0 -507
  152. package/src/models/attributes/__tests__/ChoiceAttributeOptionModel.spec.js +0 -107
  153. package/src/models/attributes/__tests__/CompositeAttributeModel.spec.js +0 -467
  154. package/src/models/attributes/__tests__/DateAttributeModel.spec.js +0 -134
  155. package/src/models/attributes/__tests__/DatetimeAttributeModel.spec.js +0 -206
  156. package/src/models/attributes/__tests__/DatetimeAttributeModel_offset.spec.js +0 -345
  157. package/src/models/attributes/__tests__/HelptextAttributeModel.spec.js +0 -64
  158. package/src/models/attributes/__tests__/LabelAttributeModel.spec.js +0 -13
  159. package/src/models/attributes/__tests__/LookupAttributeModel.spec.js +0 -47
  160. package/src/models/attributes/__tests__/MemoAttributeModel.spec.js +0 -28
  161. package/src/models/attributes/__tests__/MoneyAttributeModel.spec.js +0 -22
  162. package/src/models/attributes/__tests__/NumberAttributeModel.spec.js +0 -67
  163. package/src/models/attributes/__tests__/PasswordAttributeModel.spec.js +0 -49
  164. package/src/models/attributes/__tests__/StringAttributeModel.spec.js +0 -125
  165. package/src/models/attributes/__tests__/TimeAttributeModel.spec.js +0 -57
  166. package/src/models/attributes/__tests__/TimestampModel.spec.js +0 -43
  167. package/src/models/attributes/__tests__/UploadAttributeModel.spec.js +0 -67
  168. package/src/models/attributes/__tests__/XMLAttributeModel.spec.js +0 -17
  169. package/src/models/attributes/__tests__/_createAttribute.spec.js +0 -106
  170. package/src/models/attributes/__tests__/createAttributeComposite.spec.js +0 -151
  171. package/src/models/attributes/__tests__/createAttributeDynamicSchema.spec.js +0 -134
  172. package/src/models/attributes/_createAttribute.js +0 -147
  173. package/src/models/attributes/input-constraints/BSNConstraint.js +0 -80
  174. package/src/models/attributes/input-constraints/ConstraintCollection.js +0 -65
  175. package/src/models/attributes/input-constraints/ConstraintModel.js +0 -76
  176. package/src/models/attributes/input-constraints/DateBoundaryConstraint.js +0 -240
  177. package/src/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +0 -72
  178. package/src/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +0 -72
  179. package/src/models/attributes/input-constraints/DatetimeFormatConstraint.js +0 -132
  180. package/src/models/attributes/input-constraints/FileExtensionConstraint.js +0 -60
  181. package/src/models/attributes/input-constraints/FileSizeConstraint.js +0 -101
  182. package/src/models/attributes/input-constraints/IBANConstraint.js +0 -46
  183. package/src/models/attributes/input-constraints/MandatoryConstraint.js +0 -54
  184. package/src/models/attributes/input-constraints/MandatoryRangeConstraint.js +0 -84
  185. package/src/models/attributes/input-constraints/NumberBoundaryConstraint.js +0 -213
  186. package/src/models/attributes/input-constraints/NumberFormatConstraint.js +0 -153
  187. package/src/models/attributes/input-constraints/NumberGroupingConstraint.js +0 -140
  188. package/src/models/attributes/input-constraints/PasswordConfirmConstraint.js +0 -68
  189. package/src/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +0 -44
  190. package/src/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +0 -60
  191. package/src/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +0 -60
  192. package/src/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +0 -72
  193. package/src/models/attributes/input-constraints/RangeConstraint.js +0 -161
  194. package/src/models/attributes/input-constraints/RegexConstraint.js +0 -72
  195. package/src/models/attributes/input-constraints/StringLengthConstraint.js +0 -179
  196. package/src/models/attributes/input-constraints/XMLConstraint.js +0 -62
  197. package/src/models/attributes/input-constraints/__tests__/BSNConstraint.spec.js +0 -25
  198. package/src/models/attributes/input-constraints/__tests__/ConstraintCollection.spec.js +0 -9
  199. package/src/models/attributes/input-constraints/__tests__/ConstraintModel.spec.js +0 -35
  200. package/src/models/attributes/input-constraints/__tests__/DateBoundaryConstraint.spec.js +0 -117
  201. package/src/models/attributes/input-constraints/__tests__/DateTimeDateFormatConstraint.spec.js +0 -30
  202. package/src/models/attributes/input-constraints/__tests__/DateTimeTimeFormatConstraint.spec.js +0 -54
  203. package/src/models/attributes/input-constraints/__tests__/DatetimeFormatConstraint.spec.js +0 -79
  204. package/src/models/attributes/input-constraints/__tests__/FileExtensionConstraint.spec.js +0 -20
  205. package/src/models/attributes/input-constraints/__tests__/FileSizeConstraint.spec.js +0 -53
  206. package/src/models/attributes/input-constraints/__tests__/IBANConstraint.spec.js +0 -12
  207. package/src/models/attributes/input-constraints/__tests__/MandatoryConstraint.spec.js +0 -14
  208. package/src/models/attributes/input-constraints/__tests__/NumberBoundaryConstraint.spec.js +0 -46
  209. package/src/models/attributes/input-constraints/__tests__/NumberFormatConstraint.spec.js +0 -137
  210. package/src/models/attributes/input-constraints/__tests__/NumberGroupingConstraint.spec.js +0 -85
  211. package/src/models/attributes/input-constraints/__tests__/PasswordConfirmConstraint.spec.js +0 -21
  212. package/src/models/attributes/input-constraints/__tests__/PasswordLowerAndUpperCaseConstraint.spec.js +0 -14
  213. package/src/models/attributes/input-constraints/__tests__/PasswordMinNumericCharactersConstraint.spec.js +0 -11
  214. package/src/models/attributes/input-constraints/__tests__/PasswordMinSpecialCharactersConstraint.spec.js +0 -11
  215. package/src/models/attributes/input-constraints/__tests__/PasswordThreeConsecutiveCharactersNotAllowedConstraint.spec.js +0 -22
  216. package/src/models/attributes/input-constraints/__tests__/RegexConstraint.spec.js +0 -42
  217. package/src/models/attributes/input-constraints/__tests__/StringLengthConstraint.spec.js +0 -102
  218. package/src/models/attributes/input-constraints/__tests__/XMLConstraint.spec.js +0 -15
  219. package/src/models/attributes/layouthint-rules/BaseLayoutHintRule.js +0 -74
  220. package/src/models/attributes/layouthint-rules/DependentAttribute.js +0 -246
  221. package/src/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +0 -101
  222. package/src/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +0 -67
  223. package/src/models/attributes/layouthint-rules/__mock__/MockedCollectionFactory.js +0 -54
  224. package/src/models/attributes/layouthint-rules/__tests__/BaseLayoutHintRule.spec.js +0 -29
  225. package/src/models/attributes/layouthint-rules/__tests__/DependentAttribute.spec.js +0 -310
  226. package/src/models/attributes/layouthint-rules/__tests__/LayoutHintRuleCollection.spec.js +0 -58
  227. package/src/models/attributes/layouthint-rules/__tests__/RemainingTotalUploadSize.spec.js +0 -24
  228. package/src/models/base/BaseCollection.js +0 -191
  229. package/src/models/base/BaseModel.js +0 -155
  230. package/src/models/base/ResourceCollection.js +0 -42
  231. package/src/models/base/ResourceModel.js +0 -246
  232. package/src/models/base/__tests__/BaseCollection.spec.js +0 -108
  233. package/src/models/base/__tests__/BaseModel.spec.js +0 -85
  234. package/src/models/base/__tests__/ResourceCollection.spec.js +0 -51
  235. package/src/models/base/__tests__/ResourceModel.spec.js +0 -100
  236. package/src/models/base/__tests__/webapp.json +0 -52
  237. package/src/models/caseview/CaseViewModel.js +0 -188
  238. package/src/models/caseview/__mock__/caseview.js +0 -14
  239. package/src/models/caseview/__mock__/contributions.json +0 -146
  240. package/src/models/caseview/__mock__/data.json +0 -21
  241. package/src/models/caseview/__tests__/CaseViewModel.spec.js +0 -132
  242. package/src/models/caseview/__tests__/caseview.json +0 -49
  243. package/src/models/caseview/__tests__/caseviewContributions.json +0 -118
  244. package/src/models/caseview/__tests__/caseview_local_taskgroup.json +0 -57
  245. package/src/models/concepts/BusinessScenarioModel.js +0 -176
  246. package/src/models/concepts/ConceptDetailModel.js +0 -349
  247. package/src/models/concepts/ConceptIndexModel.js +0 -186
  248. package/src/models/concepts/ConceptLinkModel.js +0 -208
  249. package/src/models/concepts/ConceptRelationCollection.js +0 -95
  250. package/src/models/concepts/ConceptRelationModel.js +0 -129
  251. package/src/models/concepts/ConceptTypeDetailModel.js +0 -128
  252. package/src/models/concepts/SourceReferenceCollection.js +0 -40
  253. package/src/models/concepts/SourceReferenceModel.js +0 -126
  254. package/src/models/concepts/__mock__/business_scenario.js +0 -26
  255. package/src/models/concepts/__mock__/business_scenario_data.json +0 -234
  256. package/src/models/concepts/__mock__/business_scenario_step.json +0 -64
  257. package/src/models/concepts/__mock__/conceptdetail.js +0 -27
  258. package/src/models/concepts/__mock__/conceptdetail_contributions.json +0 -156
  259. package/src/models/concepts/__mock__/conceptdetail_data.json +0 -164
  260. package/src/models/concepts/__mock__/conceptindex.js +0 -15
  261. package/src/models/concepts/__mock__/conceptindex_contributions.json +0 -86
  262. package/src/models/concepts/__mock__/conceptindex_data.json +0 -329
  263. package/src/models/concepts/__mock__/concepttype.js +0 -13
  264. package/src/models/concepts/__mock__/concepttype_Calculation.json +0 -75
  265. package/src/models/concepts/__mock__/concepttype_contributions.json +0 -139
  266. package/src/models/concepts/__mock__/concepttype_data.json +0 -32
  267. package/src/models/concepts/__mock__/concepttype_hierarchy.js +0 -13
  268. package/src/models/concepts/__mock__/concepttype_hierarchy.json +0 -32
  269. package/src/models/concepts/__mock__/related_concepts.js +0 -12
  270. package/src/models/concepts/__mock__/related_concepts_contributions.json +0 -41
  271. package/src/models/concepts/__mock__/related_concepts_data.json +0 -2408
  272. package/src/models/concepts/__mock__/relation_with_props_and_tf_data.js +0 -27
  273. package/src/models/concepts/__mock__/relation_with_props_and_tf_data.json +0 -67
  274. package/src/models/concepts/__tests__/BusinessScenarioModel.spec.js +0 -28
  275. package/src/models/concepts/__tests__/ConceptDetailModel.spec.js +0 -65
  276. package/src/models/concepts/__tests__/ConceptIndexModel.spec.js +0 -42
  277. package/src/models/concepts/__tests__/ConceptLinkModel.spec.js +0 -9
  278. package/src/models/concepts/__tests__/ConceptRelationCollection.spec.js +0 -9
  279. package/src/models/concepts/__tests__/ConceptRelationModel.spec.js +0 -53
  280. package/src/models/concepts/__tests__/ConceptTypeDetailModel.spec.js +0 -31
  281. package/src/models/concepts/__tests__/RelatedConcepts.spec.js +0 -58
  282. package/src/models/concepts/__tests__/SourceReferenceCollection.spec.js +0 -9
  283. package/src/models/concepts/__tests__/SourceReferenceModel.spec.js +0 -108
  284. package/src/models/content/ContentIndexModel.js +0 -165
  285. package/src/models/content/ContentLinkModel.js +0 -308
  286. package/src/models/content/ContentModel.js +0 -227
  287. package/src/models/content/ContentTOCModel.js +0 -237
  288. package/src/models/content/ContentTypeModel.js +0 -71
  289. package/src/models/content/SectionModel.js +0 -236
  290. package/src/models/content/SubSectionModel.js +0 -181
  291. package/src/models/content/__tests__/ContentIndexModel.spec.js +0 -40
  292. package/src/models/content/__tests__/ContentLinkModel.spec.js +0 -129
  293. package/src/models/content/__tests__/ContentModel.spec.js +0 -241
  294. package/src/models/content/__tests__/Formalsource.spec.js +0 -133
  295. package/src/models/content/__tests__/content-index-contributions.json +0 -50
  296. package/src/models/content/__tests__/content-index.json +0 -164
  297. package/src/models/content/__tests__/content-with-childsections.json +0 -105
  298. package/src/models/content/__tests__/content-with-sections.json +0 -105
  299. package/src/models/content/__tests__/content-with-subsections.json +0 -119
  300. package/src/models/content/__tests__/content-with-subsections2.json +0 -79
  301. package/src/models/content/__tests__/content.json +0 -31
  302. package/src/models/content/__tests__/contributions.json +0 -84
  303. package/src/models/content/__tests__/formalsource-complete.json +0 -235
  304. package/src/models/content/__tests__/formalsource-contributions.json +0 -110
  305. package/src/models/content/__tests__/formalsource-section-contributions.json +0 -84
  306. package/src/models/content/__tests__/formalsource-section.json +0 -60
  307. package/src/models/content/__tests__/formalsource-toc.json +0 -122
  308. package/src/models/contentconfiguration/ContentConfiguration.js +0 -70
  309. package/src/models/contentconfiguration/ContentConfigurationElements.js +0 -152
  310. package/src/models/contentconfiguration/ContentConfigurationEndResults.js +0 -45
  311. package/src/models/contentconfiguration/ContentConfigurationQuestions.js +0 -60
  312. package/src/models/contentconfiguration/ContentConfigurationResults.js +0 -105
  313. package/src/models/contentconfiguration/__tests__/ContentConfigurationElements.spec.js +0 -29
  314. package/src/models/contentconfiguration/__tests__/ContentConfigurationResults.spec.js +0 -101
  315. package/src/models/detail/DetailModel.js +0 -241
  316. package/src/models/detail/__tests__/DetailModel.spec.js +0 -41
  317. package/src/models/detail/__tests__/detail.json +0 -37
  318. package/src/models/detail/__tests__/detailContributions.json +0 -124
  319. package/src/models/error/ErrorCollection.js +0 -127
  320. package/src/models/error/ErrorModel.js +0 -83
  321. package/src/models/error/ErrorResponse.js +0 -343
  322. package/src/models/error/__tests__/ErrorCollection.spec.js +0 -41
  323. package/src/models/error/__tests__/ErrorModel.spec.js +0 -24
  324. package/src/models/filters/AssignmentFilterModel.js +0 -218
  325. package/src/models/filters/BaseFilterModel.js +0 -146
  326. package/src/models/filters/ConceptIndexFilterModel.js +0 -43
  327. package/src/models/filters/FilterCollection.js +0 -227
  328. package/src/models/filters/FilterModel.js +0 -151
  329. package/src/models/filters/RangeFilterModel.js +0 -36
  330. package/src/models/filters/StringFilterModel.js +0 -167
  331. package/src/models/filters/__tests__/AssignmentFilterModel.spec.js +0 -140
  332. package/src/models/filters/__tests__/FilterCollection.spec.js +0 -68
  333. package/src/models/filters/__tests__/FilterModel.spec.js +0 -65
  334. package/src/models/filters/__tests__/RangeFilterModel.spec.js +0 -55
  335. package/src/models/filters/__tests__/ZipcodeFilter.spec.js +0 -145
  336. package/src/models/filters/__tests__/filters.json +0 -91
  337. package/src/models/filters/__tests__/filtersContributions.json +0 -110
  338. package/src/models/form/FormModel.js +0 -1280
  339. package/src/models/form/FormObjectModel.js +0 -590
  340. package/src/models/form/__mock__/contributions.json +0 -525
  341. package/src/models/form/__mock__/data.json +0 -78
  342. package/src/models/form/__mock__/form.js +0 -17
  343. package/src/models/form/__tests__/FormContributions.json +0 -495
  344. package/src/models/form/__tests__/FormContributionsUnknownRepeat.json +0 -67
  345. package/src/models/form/__tests__/FormInstrumentContributions.json +0 -183
  346. package/src/models/form/__tests__/FormModel.getters.spec.js +0 -149
  347. package/src/models/form/__tests__/FormModel.instrument.spec.js +0 -202
  348. package/src/models/form/__tests__/FormModel.repeating.spec.js +0 -65
  349. package/src/models/form/__tests__/FormModel.selfhref.spec.js +0 -84
  350. package/src/models/form/__tests__/FormModel.spec.js +0 -752
  351. package/src/models/form/__tests__/FormModel.unknown-repeat.spec.js +0 -52
  352. package/src/models/form/__tests__/FormObjectModel.spec.js +0 -180
  353. package/src/models/form/__tests__/FormResultData.spec.js +0 -86
  354. package/src/models/form/__tests__/FormValidation.spec.js +0 -79
  355. package/src/models/form/__tests__/FormValidationContributions.json +0 -45
  356. package/src/models/form/__tests__/FormValidationDataInitial.json +0 -33
  357. package/src/models/form/__tests__/FormValidationDataUpdate1.json +0 -25
  358. package/src/models/form/__tests__/FormValidationDataUpdate2.json +0 -33
  359. package/src/models/form/__tests__/FormWithContent.spec.js +0 -71
  360. package/src/models/form/__tests__/FormWithContentContributions.json +0 -242
  361. package/src/models/form/__tests__/FormWithContentData.json +0 -244
  362. package/src/models/grouping/GroupingModel.js +0 -232
  363. package/src/models/grouping/__tests__/GroupingModel.spec.js +0 -80
  364. package/src/models/href/Href.js +0 -592
  365. package/src/models/href/ListHref.js +0 -161
  366. package/src/models/href/__tests__/Href.spec.js +0 -184
  367. package/src/models/href/__tests__/ListHref.spec.js +0 -61
  368. package/src/models/href/__tests__/list.json +0 -2417
  369. package/src/models/href/__tests__/listContributions.json +0 -330
  370. package/src/models/index.js +0 -177
  371. package/src/models/layouthint/LayoutHintCollection.js +0 -116
  372. package/src/models/layouthint/__tests__/LayoutHintCollection.spec.js +0 -89
  373. package/src/models/links/LinkCollection.js +0 -169
  374. package/src/models/links/LinkModel.js +0 -246
  375. package/src/models/links/__tests__/LinkCollection.spec.js +0 -426
  376. package/src/models/links/__tests__/LinkModel.spec.js +0 -103
  377. package/src/models/links/__tests__/normalizeLinkJSON.spec.js +0 -212
  378. package/src/models/links/normalizeLinkJSON.js +0 -121
  379. package/src/models/list/ListDetailModel.js +0 -332
  380. package/src/models/list/ListHeaderModel.js +0 -96
  381. package/src/models/list/ListItemCollection.js +0 -80
  382. package/src/models/list/ListItemModel.js +0 -111
  383. package/src/models/list/ListModel.js +0 -485
  384. package/src/models/list/__mock__/caselist.contributions.json +0 -372
  385. package/src/models/list/__mock__/caselist.data.json +0 -519
  386. package/src/models/list/__mock__/caselist.js +0 -14
  387. package/src/models/list/__tests__/ListDetailModel.hierarchy.spec.js +0 -88
  388. package/src/models/list/__tests__/ListDetailModel.spec.js +0 -96
  389. package/src/models/list/__tests__/ListItemCollection.spec.js +0 -22
  390. package/src/models/list/__tests__/ListModel.spec.js +0 -152
  391. package/src/models/list/__tests__/ListResultDetail.spec.js +0 -37
  392. package/src/models/list/__tests__/caselist-34.contributions.json +0 -146
  393. package/src/models/list/__tests__/caselist-34.data.json +0 -21
  394. package/src/models/list/__tests__/hierarchy.json +0 -185
  395. package/src/models/list/__tests__/hierarchyContributions.json +0 -582
  396. package/src/models/list/__tests__/instrument-detail-contributions.json +0 -761
  397. package/src/models/list/__tests__/instrument-detail-data.json +0 -66
  398. package/src/models/list/__tests__/list.json +0 -2426
  399. package/src/models/list/__tests__/listContributions.json +0 -349
  400. package/src/models/list/__tests__/related-contributions.json +0 -42
  401. package/src/models/list/__tests__/related-data.json +0 -32
  402. package/src/models/lookup/LookupOptionCollection.js +0 -54
  403. package/src/models/lookup/LookupOptionsModel.js +0 -81
  404. package/src/models/lookup/__tests__/LookupOptionCollection.spec.js +0 -80
  405. package/src/models/lookup/__tests__/LookupOptionsModel.spec.js +0 -82
  406. package/src/models/lookup/__tests__/_LookupOptionsContributions.json +0 -29
  407. package/src/models/lookup/__tests__/_LookupOptionsData.json +0 -34
  408. package/src/models/lookup/__tests__/_LookupOptionsListContributions.json +0 -129
  409. package/src/models/lookup/__tests__/_LookupOptionsListData.json +0 -134
  410. package/src/models/lookup/__tests__/_TaxonomyAttributeData.json +0 -42
  411. package/src/models/modelcatalog/ModelCatalogModel.js +0 -73
  412. package/src/models/modelcatalog/ModelCategoryCollection.js +0 -22
  413. package/src/models/modelcatalog/ModelCategoryModel.js +0 -63
  414. package/src/models/modelcatalog/__mock__/contributions.json +0 -6
  415. package/src/models/modelcatalog/__mock__/data.json +0 -29
  416. package/src/models/modelcatalog/__mock__/modelcatalog.js +0 -14
  417. package/src/models/modelcatalog/__tests__/ModelCatalogModel.spec.js +0 -49
  418. package/src/models/paging/PagesizeModel.js +0 -50
  419. package/src/models/paging/PagingModel.js +0 -105
  420. package/src/models/paging/__tests__/PageSizeModel.spec.js +0 -31
  421. package/src/models/paging/__tests__/PagingModel.spec.js +0 -40
  422. package/src/models/paging/__tests__/list.json +0 -8
  423. package/src/models/paging/__tests__/listContributions.json +0 -7
  424. package/src/models/panels/GroupingPanelModel.js +0 -164
  425. package/src/models/panels/__tests__/GroupingPanelModel.spec.js +0 -142
  426. package/src/models/panels/__tests__/groupingPanel.json +0 -49
  427. package/src/models/panels/__tests__/groupingPanelContributions.json +0 -59
  428. package/src/models/parameter/Parameter.js +0 -117
  429. package/src/models/parameter/__tests__/Parameter.spec.js +0 -125
  430. package/src/models/process/ProcessStatusSettingsModel.js +0 -88
  431. package/src/models/process/__tests__/ProcessStatusSettingsModel.spec.js +0 -52
  432. package/src/models/resolveModel.js +0 -92
  433. package/src/models/search/CaseSearchModel.js +0 -46
  434. package/src/models/search/__tests__/CaseSearchModel.spec.js +0 -10
  435. package/src/models/sorting/SortOptionModel.js +0 -114
  436. package/src/models/sorting/SortingModel.js +0 -140
  437. package/src/models/sorting/__tests__/SortingModel.spec.js +0 -96
  438. package/src/models/tab/TabModel.js +0 -160
  439. package/src/models/tab/__mock__/contributions.json +0 -77
  440. package/src/models/tab/__mock__/data.json +0 -20
  441. package/src/models/tab/__mock__/personContributions.json +0 -35
  442. package/src/models/tab/__mock__/personData.json +0 -21
  443. package/src/models/tab/__mock__/tab.js +0 -14
  444. package/src/models/tab/__mock__/tabPerson.js +0 -14
  445. package/src/models/tab/__tests__/TabModel.spec.js +0 -72
  446. package/src/models/tab/__tests__/tab.json +0 -37
  447. package/src/models/tab/__tests__/tabContributions.json +0 -39
  448. package/src/models/taskgroup/TaskGroupCollection.js +0 -16
  449. package/src/models/taskgroup/TaskGroupModel.js +0 -102
  450. package/src/models/taskgroup/__mock__/contributions.json +0 -18
  451. package/src/models/taskgroup/__mock__/data.json +0 -21
  452. package/src/models/taskgroup/__mock__/taskgroup.js +0 -14
  453. package/src/models/taskgroup/__tests__/TaskGroupModel.spec.js +0 -26
  454. package/src/models/taskgroup/__tests__/taskgroup.json +0 -25
  455. package/src/models/taskgroup/__tests__/taskgroupContributions.json +0 -23
  456. package/src/models/types.js +0 -291
  457. package/src/models/user/UserModel.js +0 -57
  458. package/src/models/user/UserProfileModel.js +0 -54
  459. package/src/models/user/UserServicesModel.js +0 -136
  460. package/src/models/user/__mock__/contributions.json +0 -148
  461. package/src/models/user/__mock__/data.json +0 -22
  462. package/src/models/user/__tests__/UserModel.spec.js +0 -43
  463. package/src/models/user/__tests__/UserProfileModel.spec.js +0 -45
  464. package/src/models/user/__tests__/UserServicesModel.spec.js +0 -55
  465. package/src/modularui/Authenticate.js +0 -217
  466. package/src/modularui/CaptchaRequest.js +0 -104
  467. package/src/modularui/ModularUIError.js +0 -25
  468. package/src/modularui/ModularUIRequest.js +0 -872
  469. package/src/modularui/ModularUIResponse.js +0 -160
  470. package/src/modularui/UploadRequest.js +0 -151
  471. package/src/modularui/__tests__/CustomContextPath.spec.js +0 -61
  472. package/src/modularui/__tests__/ModularUIError.spec.js +0 -22
  473. package/src/modularui/__tests__/ModularUIRequest.spec.js +0 -495
  474. package/src/modularui/__tests__/contributions.json +0 -312
  475. package/src/modularui/__tests__/data.json +0 -263
  476. package/src/modularui/index.js +0 -6
  477. package/src/modularui/types.js +0 -4
  478. package/src/react/ErrorBoundary.js +0 -61
  479. package/src/react/ErrorBoundaryFallback.js +0 -46
  480. package/src/react/index.js +0 -3
  481. package/src/react/utils.js +0 -33
  482. package/src/react-client/Init.js +0 -46
  483. package/src/react-client/client.js +0 -309
  484. package/src/react-client/contextPath.js +0 -30
  485. package/src/react-client/index.js +0 -4
  486. package/src/react-client/rehydrate.js +0 -94
  487. package/src/react-server/__tests__/htmlpage.spec.js +0 -75
  488. package/src/react-server/__tests__/requestInformation.spec.js +0 -266
  489. package/src/react-server/__tests__/serverUtil.spec.js +0 -183
  490. package/src/react-server/contextPath.js +0 -8
  491. package/src/react-server/createSSRComplete.js +0 -63
  492. package/src/react-server/htmlpage.js +0 -55
  493. package/src/react-server/index.js +0 -13
  494. package/src/react-server/renderSSRComplete.js +0 -111
  495. package/src/react-server/renderSSRMinimal.js +0 -54
  496. package/src/react-server/requestInformation.js +0 -68
  497. package/src/react-server/serverNoSSR.js +0 -87
  498. package/src/react-server/serverSSR.js +0 -70
  499. package/src/react-server/serverUtil.js +0 -279
  500. package/src/react-theme/ThemeProvider.js +0 -25
  501. package/src/react-theme/__tests__/ThemeProvider.spec.js +0 -84
  502. package/src/react-theme/__tests__/createTheme.spec.js +0 -172
  503. package/src/react-theme/createTheme.js +0 -118
  504. package/src/react-theme/index.js +0 -15
  505. package/src/react-theme/types.js +0 -16
  506. package/src/react-theme/useTheme.js +0 -13
  507. package/src/react-theme/utils/__tests__/background.spec.js +0 -30
  508. package/src/react-theme/utils/__tests__/colors.spec.js +0 -30
  509. package/src/react-theme/utils/__tests__/contrast.spec.js +0 -44
  510. package/src/react-theme/utils/__tests__/corners.spec.js +0 -27
  511. package/src/react-theme/utils/__tests__/spacers.spec.js +0 -44
  512. package/src/react-theme/utils/__tests__/themeProps.spec.js +0 -72
  513. package/src/react-theme/utils/background.js +0 -20
  514. package/src/react-theme/utils/colors.js +0 -47
  515. package/src/react-theme/utils/contrast.js +0 -117
  516. package/src/react-theme/utils/corners.js +0 -37
  517. package/src/react-theme/utils/spacers.js +0 -65
  518. package/src/react-theme/utils/themeProps.js +0 -90
  519. package/src/redux/_i18n/I18nActions.js +0 -38
  520. package/src/redux/_i18n/I18nReducer.js +0 -91
  521. package/src/redux/_i18n/__tests__/actions.spec.js +0 -37
  522. package/src/redux/_i18n/__tests__/reducer.spec.js +0 -29
  523. package/src/redux/_i18n/index.js +0 -6
  524. package/src/redux/_i18n/types.js +0 -20
  525. package/src/redux/_modularui/ModularUIActions.js +0 -227
  526. package/src/redux/_modularui/ModularUIConnector.js +0 -157
  527. package/src/redux/_modularui/ModularUIMiddleware.js +0 -182
  528. package/src/redux/_modularui/ModularUIReducer.js +0 -169
  529. package/src/redux/_modularui/ModularUISelectors.js +0 -322
  530. package/src/redux/_modularui/ModularUIUtils.js +0 -96
  531. package/src/redux/_modularui/__tests__/actions.spec.js +0 -159
  532. package/src/redux/_modularui/__tests__/reducer.spec.js +0 -134
  533. package/src/redux/_modularui/__tests__/selectors.spec.js +0 -153
  534. package/src/redux/_modularui/index.js +0 -11
  535. package/src/redux/_modularui/types.js +0 -121
  536. package/src/redux/_modularui/withModularUI.js +0 -85
  537. package/src/redux/_router/RouterActions.js +0 -75
  538. package/src/redux/_router/RouterConnectors.js +0 -97
  539. package/src/redux/_router/RouterMiddleware.js +0 -37
  540. package/src/redux/_router/RouterReducer.js +0 -21
  541. package/src/redux/_router/__tests__/actions.spec.js +0 -109
  542. package/src/redux/_router/__tests__/hooks.spec.js +0 -98
  543. package/src/redux/_router/__tests__/middleware.spec.js +0 -62
  544. package/src/redux/_router/__tests__/reducer.spec.js +0 -26
  545. package/src/redux/_router/index.js +0 -8
  546. package/src/redux/_router/types.js +0 -43
  547. package/src/redux/actions/Application.js +0 -45
  548. package/src/redux/actions/Authorization.js +0 -65
  549. package/src/redux/actions/Error.js +0 -95
  550. package/src/redux/actions/Form.js +0 -42
  551. package/src/redux/actions/FormAttributeSet.js +0 -98
  552. package/src/redux/actions/FormAttributeSetRepeatable.js +0 -45
  553. package/src/redux/actions/FormAutosave.js +0 -73
  554. package/src/redux/actions/FormAutosubmit.js +0 -43
  555. package/src/redux/actions/FormAutoupdate.js +0 -47
  556. package/src/redux/actions/FormValidations.js +0 -71
  557. package/src/redux/actions/Modals.js +0 -16
  558. package/src/redux/actions/ModelCatalog.js +0 -12
  559. package/src/redux/actions/Notification.js +0 -101
  560. package/src/redux/actions/Preferences.js +0 -173
  561. package/src/redux/actions/ProgressIndicator.js +0 -39
  562. package/src/redux/actions/SignIn.js +0 -102
  563. package/src/redux/actions/SignOut.js +0 -29
  564. package/src/redux/actions/__tests__/Application.spec.js +0 -52
  565. package/src/redux/actions/__tests__/Authorization.spec.js +0 -121
  566. package/src/redux/actions/__tests__/CustomErrorResponseHandler.spec.js +0 -72
  567. package/src/redux/actions/__tests__/Error-server.spec.js +0 -134
  568. package/src/redux/actions/__tests__/Error.spec.js +0 -116
  569. package/src/redux/actions/__tests__/Form.spec.js +0 -39
  570. package/src/redux/actions/__tests__/Modals.spec.js +0 -34
  571. package/src/redux/actions/__tests__/Notification.spec.js +0 -94
  572. package/src/redux/actions/__tests__/Preferences.spec.js +0 -71
  573. package/src/redux/actions/__tests__/ProgressIndicator.spec.js +0 -53
  574. package/src/redux/actions/index.js +0 -17
  575. package/src/redux/connectors/Application.js +0 -14
  576. package/src/redux/connectors/Breadcrumb.js +0 -28
  577. package/src/redux/connectors/CaseView.js +0 -14
  578. package/src/redux/connectors/ConceptDetail.js +0 -12
  579. package/src/redux/connectors/ContentBrowser.js +0 -14
  580. package/src/redux/connectors/ContentDetail.js +0 -13
  581. package/src/redux/connectors/ContentDetailSection.js +0 -17
  582. package/src/redux/connectors/Form.js +0 -83
  583. package/src/redux/connectors/FormAttributeSet.js +0 -85
  584. package/src/redux/connectors/ListDetail.js +0 -16
  585. package/src/redux/connectors/Modal.js +0 -47
  586. package/src/redux/connectors/ModelCatalog.js +0 -14
  587. package/src/redux/connectors/Notification.js +0 -47
  588. package/src/redux/connectors/PanelRenderer.js +0 -29
  589. package/src/redux/connectors/Preferences.js +0 -53
  590. package/src/redux/connectors/Progress.js +0 -35
  591. package/src/redux/connectors/ProgressIndicator.js +0 -35
  592. package/src/redux/connectors/QuickSearch.js +0 -36
  593. package/src/redux/connectors/SignIn.js +0 -47
  594. package/src/redux/connectors/SignOut.js +0 -38
  595. package/src/redux/connectors/Tab.js +0 -14
  596. package/src/redux/connectors/index.js +0 -22
  597. package/src/redux/index.js +0 -27
  598. package/src/redux/reducers/AuthReducer.js +0 -56
  599. package/src/redux/reducers/ErrorReducer.js +0 -22
  600. package/src/redux/reducers/ModalsReducer.js +0 -58
  601. package/src/redux/reducers/ModelCatalogReducer.js +0 -34
  602. package/src/redux/reducers/NotificationReducer.js +0 -45
  603. package/src/redux/reducers/PreferencesReducer.js +0 -31
  604. package/src/redux/reducers/ProgressIndicatorReducer.js +0 -60
  605. package/src/redux/reducers/__tests__/AuthReducer.spec.js +0 -95
  606. package/src/redux/reducers/__tests__/ErrorReducer.spec.js +0 -17
  607. package/src/redux/reducers/__tests__/ModalsReducer.spec.js +0 -34
  608. package/src/redux/reducers/__tests__/ModelCatalogReducer.spec.js +0 -23
  609. package/src/redux/reducers/__tests__/NotificationReducer.spec.js +0 -53
  610. package/src/redux/reducers/__tests__/PreferencesReducer.spec.js +0 -31
  611. package/src/redux/reducers/__tests__/ProgressIndicatorReducer.spec.js +0 -82
  612. package/src/redux/reducers/createReducer.js +0 -55
  613. package/src/redux/reducers/index.js +0 -10
  614. package/src/redux/selectors/i18n.js +0 -15
  615. package/src/redux/selectors/index.js +0 -3
  616. package/src/redux/selectors/modelcatalog.js +0 -11
  617. package/src/redux/store/__tests__/beforeRenderHooks.spec.js +0 -13
  618. package/src/redux/store/beforeRenderHooks.js +0 -26
  619. package/src/redux/store/configureStore.js +0 -59
  620. package/src/redux/types.js +0 -241
  621. package/src/utils/browser/Cache.js +0 -157
  622. package/src/utils/browser/Cookies.js +0 -44
  623. package/src/utils/browser/__tests__/Cookies.spec.js +0 -51
  624. package/src/utils/datetime/DateTimeUtil.js +0 -858
  625. package/src/utils/datetime/__tests__/DateTime.spec.js +0 -873
  626. package/src/utils/datetime/__tests__/DateTimeFormat.spec.js +0 -146
  627. package/src/utils/fetch/__mocks__/applicationContributions.json +0 -323
  628. package/src/utils/fetch/__mocks__/applicationData.json +0 -216
  629. package/src/utils/fetch/__mocks__/formContributions.json +0 -527
  630. package/src/utils/fetch/__mocks__/formData.json +0 -21
  631. package/src/utils/fetch/__mocks__/universalFetch.js +0 -38
  632. package/src/utils/fetch/__tests__/xhr.spec.js +0 -281
  633. package/src/utils/fetch/serverFetch.js +0 -33
  634. package/src/utils/fetch/types.js +0 -46
  635. package/src/utils/fetch/universalFetch.js +0 -106
  636. package/src/utils/fetch/xhr.js +0 -409
  637. package/src/utils/helpers/__tests__/checkResource.spec.js +0 -60
  638. package/src/utils/helpers/__tests__/createHash.spec.js +0 -11
  639. package/src/utils/helpers/__tests__/createHref.spec.js +0 -39
  640. package/src/utils/helpers/__tests__/objects.spec.js +0 -50
  641. package/src/utils/helpers/__tests__/sanitizeHTML.spec.js +0 -69
  642. package/src/utils/helpers/checkResource.js +0 -43
  643. package/src/utils/helpers/createHash.js +0 -28
  644. package/src/utils/helpers/createHref.js +0 -117
  645. package/src/utils/helpers/createUUID.js +0 -13
  646. package/src/utils/helpers/index.js +0 -9
  647. package/src/utils/helpers/objects.js +0 -33
  648. package/src/utils/helpers/repositoryResource.js +0 -22
  649. package/src/utils/helpers/sanitizeHtml.js +0 -55
  650. package/src/utils/helpers/text.js +0 -23
  651. package/src/utils/index.js +0 -22
  652. package/src/utils/number/DecimalFormat.js +0 -410
  653. package/src/utils/number/__tests__/formatValue.spec.js +0 -36
  654. package/src/utils/number/__tests__/parseNumbers.spec.js +0 -50
  655. package/src/utils/number/formatValue.js +0 -60
  656. package/src/utils/number/parseNumbers.js +0 -94
package/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [1.65.15](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.14...v1.65.15) (2026-01-15)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **hooks:** simplify reload logic for hooks and update hook option merge logic ([bfa5f86](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/bfa5f86b2921b59bed989808d55f7fa4430d5ce2))
11
+ * **useList:** ensure pathname is included in navigation calls when syncing location ([7da9f3c](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/7da9f3ced54d640df365fb03527add1f959078b1))
12
+
13
+ ## [1.65.14](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.13...v1.65.14) (2026-01-13)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **types:** update `updateFilters` to support `FilterCollection | IFilter` ([d37e3a1](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/commit/d37e3a1b0d43d22bcea59490f347537e4de1aeba))
19
+
5
20
  ## [1.65.13](https://git.beinformed.com/public/nl.beinformed.bi.layout.lib.ui/compare/v1.65.10...v1.65.13) (2026-01-13)
6
21
 
7
22
 
@@ -57,6 +57,7 @@ export const useListNavigation = ({
57
57
  if (list.requestMethod === HTTP_METHODS.POST) {
58
58
  if (syncLocation) {
59
59
  navigate({
60
+ pathname: listHref.path,
60
61
  search: listHref.getQuerystring(true),
61
62
  state: {
62
63
  formdata: list.formdata
@@ -71,6 +72,7 @@ export const useListNavigation = ({
71
72
  } else {
72
73
  if (syncLocation) {
73
74
  navigate({
75
+ pathname: listHref.path,
74
76
  search: listHref.getQuerystring(true)
75
77
  });
76
78
  }
@@ -88,7 +90,7 @@ export const useListNavigation = ({
88
90
  if (attribute) {
89
91
  filter.update(attribute, value);
90
92
  } else if (filter instanceof AssignmentFilterModel) {
91
- throw new Error("Need the attribute to update for AssigmentFilterModel");
93
+ throw new TypeError("AssignmentFilterModel needs the attribute argument to be able to update the filter");
92
94
  } else if (filter instanceof FilterModel) {
93
95
  filter.update(filter.attribute, value);
94
96
  }
@@ -23,7 +23,10 @@ import { useCallback, useMemo } from "react";
23
23
 
24
24
  type ListNavigationHook = {
25
25
  update: (list: ListModel, resetPage?: boolean) => void,
26
- updateFilters: (list: ListModel, filters: FilterCollection) => void,
26
+ updateFilters: (
27
+ list: ListModel,
28
+ filters: FilterCollection | Array<IFilter>,
29
+ ) => void,
27
30
  updateFilter: (
28
31
  list: ListModel,
29
32
  filter: IFilter,
@@ -100,6 +103,7 @@ export const useListNavigation = ({
100
103
  if (list.requestMethod === HTTP_METHODS.POST) {
101
104
  if (syncLocation) {
102
105
  navigate({
106
+ pathname: listHref.path,
103
107
  search: listHref.getQuerystring(true),
104
108
  state: { formdata: list.formdata },
105
109
  });
@@ -114,7 +118,10 @@ export const useListNavigation = ({
114
118
  );
115
119
  } else {
116
120
  if (syncLocation) {
117
- navigate({ search: listHref.getQuerystring(true) });
121
+ navigate({
122
+ pathname: listHref.path,
123
+ search: listHref.getQuerystring(true),
124
+ });
118
125
  }
119
126
  dispatch(
120
127
  loadModularUI(list.connectKey, listHref, {
@@ -145,8 +152,8 @@ export const useListNavigation = ({
145
152
  if (attribute) {
146
153
  filter.update(attribute, value);
147
154
  } else if (filter instanceof AssignmentFilterModel) {
148
- throw new Error(
149
- "Need the attribute to update for AssigmentFilterModel",
155
+ throw new TypeError(
156
+ "AssignmentFilterModel needs the attribute argument to be able to update the filter",
150
157
  );
151
158
  } else if (filter instanceof FilterModel) {
152
159
  filter.update(filter.attribute, value);
@@ -1 +1 @@
1
- {"version":3,"file":"useList.js","names":["useDispatch","useModularUIBasic","HTTP_METHODS","loadModularUI","useNavigation","DetailModel","ListModel","CaseSearchModel","ListDetailModel","Href","FilterCollection","AssignmentFilterModel","FilterModel","useCallback","useMemo","useList","href","options","expectedModels","targetModel","useListOrDetail","useListDetail","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","dispatch","navigate","update","list","resetPage","listHref","selfhref","page","requestMethod","POST","search","getQuerystring","state","formdata","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","Error","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (list: ListModel, filters: FilterCollection) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({ search: listHref.getQuerystring(true) });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new Error(\n \"Need the attribute to update for AssigmentFilterModel\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useList.js","names":["useDispatch","useModularUIBasic","HTTP_METHODS","loadModularUI","useNavigation","DetailModel","ListModel","CaseSearchModel","ListDetailModel","Href","FilterCollection","AssignmentFilterModel","FilterModel","useCallback","useMemo","useList","href","options","expectedModels","targetModel","useListOrDetail","useListDetail","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","dispatch","navigate","update","list","resetPage","listHref","selfhref","page","requestMethod","POST","pathname","path","search","getQuerystring","state","formdata","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","TypeError","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (\n list: ListModel,\n filters: FilterCollection | Array<IFilter>,\n ) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new TypeError(\n \"AssignmentFilterModel needs the attribute argument to be able to update the filter\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { useEffect, useRef, useMemo } from "react";
1
+ import { useEffect, useMemo } from "react";
2
2
  import { useDispatch, useSelector } from "react-redux";
3
3
  import { useLocation } from "react-router";
4
4
  import { HTTP_METHODS } from "../constants";
@@ -9,45 +9,40 @@ import Href from "../models/href/Href";
9
9
  /**
10
10
  * Core hook to retrieve information for a Be Informed modular ui resource
11
11
  */
12
- export const useModularUI = (modelKey, url, options = {
13
- method: HTTP_METHODS.GET,
14
- removeOnUnmount: false
15
- }) => {
12
+ export const useModularUI = (modelKey, url, options = {}) => {
16
13
  const dispatch = useDispatch();
17
14
  const href = useMemo(() => url?.toString() || "", [url]);
18
15
  const key = useModularUIKey(modelKey, href);
19
- const modelSelector = useMemo(() => state => state.modularui[key], [key]);
20
- const model = useSelector(modelSelector);
21
- if (url instanceof Href) {
22
- options.origin = options.origin ?? url.origin;
23
- options.contextPath = options.contextPath ?? url.contextPath;
24
- }
16
+ const model = useSelector(state => state.modularui[key]);
17
+ const requestOptions = useMemo(() => {
18
+ const merged = {
19
+ method: HTTP_METHODS.GET,
20
+ removeOnUnmount: false,
21
+ ...options
22
+ };
23
+ if (url instanceof Href) {
24
+ merged.origin = merged.origin ?? url.origin;
25
+ merged.contextPath = merged.contextPath ?? url.contextPath;
26
+ }
27
+ return merged;
28
+ }, [options, url]);
25
29
  const location = useLocation();
26
30
  const redirectLocation = location.state?.redirectLocation;
27
- const forceLoad = model == null || (redirectLocation instanceof Href ? redirectLocation?.equals(href) : false);
28
- const prevOptions = useRef(options);
29
- const prevHref = useRef(href);
30
- const prevForceLoad = useRef(forceLoad);
31
+ const shouldLoad = model == null || (redirectLocation instanceof Href ? redirectLocation?.equals(href) : false) || requestOptions.isReload === true;
31
32
 
32
33
  // dispatch loadModularUI
33
34
  useDeepCompareEffect(() => {
34
- // prevent reloads when previous option had the isReload, but the new options not
35
- const isOldReload = prevHref.current === href && prevOptions.current.isReload && !options.isReload;
36
- const doForceLoad = forceLoad && !prevForceLoad.current;
37
- if (href !== "" && (doForceLoad || !isOldReload)) {
38
- dispatch(loadModularUI(key, href, options));
35
+ if (href !== "" && shouldLoad) {
36
+ dispatch(loadModularUI(key, href, requestOptions));
39
37
  }
40
- prevOptions.current = options;
41
- prevHref.current = href;
42
- prevForceLoad.current = forceLoad;
43
- }, [key, href, options, forceLoad]);
38
+ }, [key, href, requestOptions, shouldLoad]);
44
39
  useEffect(() => {
45
- if (options.removeOnUnmount) {
40
+ if (requestOptions.removeOnUnmount) {
46
41
  return () => {
47
42
  dispatch(removeModelByKey(key));
48
43
  };
49
44
  }
50
- }, [dispatch, key, options.removeOnUnmount]);
45
+ }, [dispatch, key, requestOptions.removeOnUnmount]);
51
46
  return model;
52
47
  };
53
48
  //# sourceMappingURL=useModularUI.js.map
@@ -1,5 +1,5 @@
1
1
  // @flow
2
- import { useEffect, useRef, useMemo } from "react";
2
+ import { useEffect, useMemo } from "react";
3
3
  import { useDispatch, useSelector } from "react-redux";
4
4
  import { useLocation } from "react-router";
5
5
 
@@ -21,59 +21,53 @@ import type { RequestModularUIOptions } from "../utils";
21
21
  export const useModularUI = (
22
22
  modelKey: string,
23
23
  url: string | Href,
24
- options: RequestModularUIOptions = {
25
- method: HTTP_METHODS.GET,
26
- removeOnUnmount: false,
27
- },
24
+ options: RequestModularUIOptions = {},
28
25
  ): any => {
29
26
  const dispatch = useDispatch();
27
+
30
28
  const href = useMemo(() => url?.toString() || "", [url]);
31
29
  const key = useModularUIKey(modelKey, href);
32
30
 
33
- const modelSelector = useMemo(() => (state) => state.modularui[key], [key]);
34
- const model = useSelector(modelSelector);
31
+ const model = useSelector((state) => state.modularui[key]);
32
+
33
+ const requestOptions = useMemo(() => {
34
+ const merged = {
35
+ method: HTTP_METHODS.GET,
36
+ removeOnUnmount: false,
37
+ ...options,
38
+ };
35
39
 
36
- if (url instanceof Href) {
37
- options.origin = options.origin ?? url.origin;
38
- options.contextPath = options.contextPath ?? url.contextPath;
39
- }
40
+ if (url instanceof Href) {
41
+ merged.origin = merged.origin ?? url.origin;
42
+ merged.contextPath = merged.contextPath ?? url.contextPath;
43
+ }
44
+ return merged;
45
+ }, [options, url]);
40
46
 
41
47
  const location = useLocation();
42
48
  const redirectLocation = location.state?.redirectLocation;
43
- const forceLoad =
44
- model == null ||
45
- (redirectLocation instanceof Href ? redirectLocation?.equals(href) : false);
46
49
 
47
- const prevOptions = useRef(options);
48
- const prevHref = useRef(href);
49
- const prevForceLoad = useRef(forceLoad);
50
+ const shouldLoad =
51
+ model == null ||
52
+ (redirectLocation instanceof Href
53
+ ? redirectLocation?.equals(href)
54
+ : false) ||
55
+ requestOptions.isReload === true;
50
56
 
51
57
  // dispatch loadModularUI
52
58
  useDeepCompareEffect(() => {
53
- // prevent reloads when previous option had the isReload, but the new options not
54
- const isOldReload =
55
- prevHref.current === href &&
56
- prevOptions.current.isReload &&
57
- !options.isReload;
58
-
59
- const doForceLoad = forceLoad && !prevForceLoad.current;
60
-
61
- if (href !== "" && (doForceLoad || !isOldReload)) {
62
- dispatch(loadModularUI(key, href, options));
59
+ if (href !== "" && shouldLoad) {
60
+ dispatch(loadModularUI(key, href, requestOptions));
63
61
  }
64
-
65
- prevOptions.current = options;
66
- prevHref.current = href;
67
- prevForceLoad.current = forceLoad;
68
- }, [key, href, options, forceLoad]);
62
+ }, [key, href, requestOptions, shouldLoad]);
69
63
 
70
64
  useEffect(() => {
71
- if (options.removeOnUnmount) {
65
+ if (requestOptions.removeOnUnmount) {
72
66
  return () => {
73
67
  dispatch(removeModelByKey(key));
74
68
  };
75
69
  }
76
- }, [dispatch, key, options.removeOnUnmount]);
70
+ }, [dispatch, key, requestOptions.removeOnUnmount]);
77
71
 
78
72
  return model;
79
73
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useModularUI.js","names":["useEffect","useRef","useMemo","useDispatch","useSelector","useLocation","HTTP_METHODS","loadModularUI","removeModelByKey","useDeepCompareEffect","useModularUIKey","Href","useModularUI","modelKey","url","options","method","GET","removeOnUnmount","dispatch","href","toString","key","modelSelector","state","modularui","model","origin","contextPath","location","redirectLocation","forceLoad","equals","prevOptions","prevHref","prevForceLoad","isOldReload","current","isReload","doForceLoad"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useRef, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\nimport { useModularUIKey } from \"./useModularUIKey\";\n\nimport Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n * Core hook to retrieve information for a Be Informed modular ui resource\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n },\n): any => {\n const dispatch = useDispatch();\n const href = useMemo(() => url?.toString() || \"\", [url]);\n const key = useModularUIKey(modelKey, href);\n\n const modelSelector = useMemo(() => (state) => state.modularui[key], [key]);\n const model = useSelector(modelSelector);\n\n if (url instanceof Href) {\n options.origin = options.origin ?? url.origin;\n options.contextPath = options.contextPath ?? url.contextPath;\n }\n\n const location = useLocation();\n const redirectLocation = location.state?.redirectLocation;\n const forceLoad =\n model == null ||\n (redirectLocation instanceof Href ? redirectLocation?.equals(href) : false);\n\n const prevOptions = useRef(options);\n const prevHref = useRef(href);\n const prevForceLoad = useRef(forceLoad);\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n // prevent reloads when previous option had the isReload, but the new options not\n const isOldReload =\n prevHref.current === href &&\n prevOptions.current.isReload &&\n !options.isReload;\n\n const doForceLoad = forceLoad && !prevForceLoad.current;\n\n if (href !== \"\" && (doForceLoad || !isOldReload)) {\n dispatch(loadModularUI(key, href, options));\n }\n\n prevOptions.current = options;\n prevHref.current = href;\n prevForceLoad.current = forceLoad;\n }, [key, href, options, forceLoad]);\n\n useEffect(() => {\n if (options.removeOnUnmount) {\n return () => {\n dispatch(removeModelByKey(key));\n };\n }\n }, [dispatch, key, options.removeOnUnmount]);\n\n return model;\n};\n"],"mappings":"AACA,SAASA,SAAS,EAAEC,MAAM,EAAEC,OAAO,QAAQ,OAAO;AAClD,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AACtD,SAASC,WAAW,QAAQ,cAAc;AAE1C,SAASC,YAAY,QAAQ,cAAc;AAC3C,SACEC,aAAa,EACbC,gBAAgB,QACX,sCAAsC;AAE7C,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,OAAOC,IAAI,MAAM,qBAAqB;AAGtC;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,QAAgB,EAChBC,GAAkB,EAClBC,OAAgC,GAAG;EACjCC,MAAM,EAAEV,YAAY,CAACW,GAAG;EACxBC,eAAe,EAAE;AACnB,CAAC,KACO;EACR,MAAMC,QAAQ,GAAGhB,WAAW,CAAC,CAAC;EAC9B,MAAMiB,IAAI,GAAGlB,OAAO,CAAC,MAAMY,GAAG,EAAEO,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAACP,GAAG,CAAC,CAAC;EACxD,MAAMQ,GAAG,GAAGZ,eAAe,CAACG,QAAQ,EAAEO,IAAI,CAAC;EAE3C,MAAMG,aAAa,GAAGrB,OAAO,CAAC,MAAOsB,KAAK,IAAKA,KAAK,CAACC,SAAS,CAACH,GAAG,CAAC,EAAE,CAACA,GAAG,CAAC,CAAC;EAC3E,MAAMI,KAAK,GAAGtB,WAAW,CAACmB,aAAa,CAAC;EAExC,IAAIT,GAAG,YAAYH,IAAI,EAAE;IACvBI,OAAO,CAACY,MAAM,GAAGZ,OAAO,CAACY,MAAM,IAAIb,GAAG,CAACa,MAAM;IAC7CZ,OAAO,CAACa,WAAW,GAAGb,OAAO,CAACa,WAAW,IAAId,GAAG,CAACc,WAAW;EAC9D;EAEA,MAAMC,QAAQ,GAAGxB,WAAW,CAAC,CAAC;EAC9B,MAAMyB,gBAAgB,GAAGD,QAAQ,CAACL,KAAK,EAAEM,gBAAgB;EACzD,MAAMC,SAAS,GACbL,KAAK,IAAI,IAAI,KACZI,gBAAgB,YAAYnB,IAAI,GAAGmB,gBAAgB,EAAEE,MAAM,CAACZ,IAAI,CAAC,GAAG,KAAK,CAAC;EAE7E,MAAMa,WAAW,GAAGhC,MAAM,CAACc,OAAO,CAAC;EACnC,MAAMmB,QAAQ,GAAGjC,MAAM,CAACmB,IAAI,CAAC;EAC7B,MAAMe,aAAa,GAAGlC,MAAM,CAAC8B,SAAS,CAAC;;EAEvC;EACAtB,oBAAoB,CAAC,MAAM;IACzB;IACA,MAAM2B,WAAW,GACfF,QAAQ,CAACG,OAAO,KAAKjB,IAAI,IACzBa,WAAW,CAACI,OAAO,CAACC,QAAQ,IAC5B,CAACvB,OAAO,CAACuB,QAAQ;IAEnB,MAAMC,WAAW,GAAGR,SAAS,IAAI,CAACI,aAAa,CAACE,OAAO;IAEvD,IAAIjB,IAAI,KAAK,EAAE,KAAKmB,WAAW,IAAI,CAACH,WAAW,CAAC,EAAE;MAChDjB,QAAQ,CAACZ,aAAa,CAACe,GAAG,EAAEF,IAAI,EAAEL,OAAO,CAAC,CAAC;IAC7C;IAEAkB,WAAW,CAACI,OAAO,GAAGtB,OAAO;IAC7BmB,QAAQ,CAACG,OAAO,GAAGjB,IAAI;IACvBe,aAAa,CAACE,OAAO,GAAGN,SAAS;EACnC,CAAC,EAAE,CAACT,GAAG,EAAEF,IAAI,EAAEL,OAAO,EAAEgB,SAAS,CAAC,CAAC;EAEnC/B,SAAS,CAAC,MAAM;IACd,IAAIe,OAAO,CAACG,eAAe,EAAE;MAC3B,OAAO,MAAM;QACXC,QAAQ,CAACX,gBAAgB,CAACc,GAAG,CAAC,CAAC;MACjC,CAAC;IACH;EACF,CAAC,EAAE,CAACH,QAAQ,EAAEG,GAAG,EAAEP,OAAO,CAACG,eAAe,CAAC,CAAC;EAE5C,OAAOQ,KAAK;AACd,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"useModularUI.js","names":["useEffect","useMemo","useDispatch","useSelector","useLocation","HTTP_METHODS","loadModularUI","removeModelByKey","useDeepCompareEffect","useModularUIKey","Href","useModularUI","modelKey","url","options","dispatch","href","toString","key","model","state","modularui","requestOptions","merged","method","GET","removeOnUnmount","origin","contextPath","location","redirectLocation","shouldLoad","equals","isReload"],"sources":["../../src/hooks/useModularUI.js"],"sourcesContent":["// @flow\nimport { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useLocation } from \"react-router\";\n\nimport { HTTP_METHODS } from \"../constants\";\nimport {\n loadModularUI,\n removeModelByKey,\n} from \"../redux/_modularui/ModularUIActions\";\n\nimport useDeepCompareEffect from \"./useDeepCompareEffect\";\nimport { useModularUIKey } from \"./useModularUIKey\";\n\nimport Href from \"../models/href/Href\";\nimport type { RequestModularUIOptions } from \"../utils\";\n\n/**\n * Core hook to retrieve information for a Be Informed modular ui resource\n */\nexport const useModularUI = (\n modelKey: string,\n url: string | Href,\n options: RequestModularUIOptions = {},\n): any => {\n const dispatch = useDispatch();\n\n const href = useMemo(() => url?.toString() || \"\", [url]);\n const key = useModularUIKey(modelKey, href);\n\n const model = useSelector((state) => state.modularui[key]);\n\n const requestOptions = useMemo(() => {\n const merged = {\n method: HTTP_METHODS.GET,\n removeOnUnmount: false,\n ...options,\n };\n\n if (url instanceof Href) {\n merged.origin = merged.origin ?? url.origin;\n merged.contextPath = merged.contextPath ?? url.contextPath;\n }\n return merged;\n }, [options, url]);\n\n const location = useLocation();\n const redirectLocation = location.state?.redirectLocation;\n\n const shouldLoad =\n model == null ||\n (redirectLocation instanceof Href\n ? redirectLocation?.equals(href)\n : false) ||\n requestOptions.isReload === true;\n\n // dispatch loadModularUI\n useDeepCompareEffect(() => {\n if (href !== \"\" && shouldLoad) {\n dispatch(loadModularUI(key, href, requestOptions));\n }\n }, [key, href, requestOptions, shouldLoad]);\n\n useEffect(() => {\n if (requestOptions.removeOnUnmount) {\n return () => {\n dispatch(removeModelByKey(key));\n };\n }\n }, [dispatch, key, requestOptions.removeOnUnmount]);\n\n return model;\n};\n"],"mappings":"AACA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAC1C,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AACtD,SAASC,WAAW,QAAQ,cAAc;AAE1C,SAASC,YAAY,QAAQ,cAAc;AAC3C,SACEC,aAAa,EACbC,gBAAgB,QACX,sCAAsC;AAE7C,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,OAAOC,IAAI,MAAM,qBAAqB;AAGtC;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,QAAgB,EAChBC,GAAkB,EAClBC,OAAgC,GAAG,CAAC,CAAC,KAC7B;EACR,MAAMC,QAAQ,GAAGb,WAAW,CAAC,CAAC;EAE9B,MAAMc,IAAI,GAAGf,OAAO,CAAC,MAAMY,GAAG,EAAEI,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAACJ,GAAG,CAAC,CAAC;EACxD,MAAMK,GAAG,GAAGT,eAAe,CAACG,QAAQ,EAAEI,IAAI,CAAC;EAE3C,MAAMG,KAAK,GAAGhB,WAAW,CAAEiB,KAAK,IAAKA,KAAK,CAACC,SAAS,CAACH,GAAG,CAAC,CAAC;EAE1D,MAAMI,cAAc,GAAGrB,OAAO,CAAC,MAAM;IACnC,MAAMsB,MAAM,GAAG;MACbC,MAAM,EAAEnB,YAAY,CAACoB,GAAG;MACxBC,eAAe,EAAE,KAAK;MACtB,GAAGZ;IACL,CAAC;IAED,IAAID,GAAG,YAAYH,IAAI,EAAE;MACvBa,MAAM,CAACI,MAAM,GAAGJ,MAAM,CAACI,MAAM,IAAId,GAAG,CAACc,MAAM;MAC3CJ,MAAM,CAACK,WAAW,GAAGL,MAAM,CAACK,WAAW,IAAIf,GAAG,CAACe,WAAW;IAC5D;IACA,OAAOL,MAAM;EACf,CAAC,EAAE,CAACT,OAAO,EAAED,GAAG,CAAC,CAAC;EAElB,MAAMgB,QAAQ,GAAGzB,WAAW,CAAC,CAAC;EAC9B,MAAM0B,gBAAgB,GAAGD,QAAQ,CAACT,KAAK,EAAEU,gBAAgB;EAEzD,MAAMC,UAAU,GACdZ,KAAK,IAAI,IAAI,KACZW,gBAAgB,YAAYpB,IAAI,GAC7BoB,gBAAgB,EAAEE,MAAM,CAAChB,IAAI,CAAC,GAC9B,KAAK,CAAC,IACVM,cAAc,CAACW,QAAQ,KAAK,IAAI;;EAElC;EACAzB,oBAAoB,CAAC,MAAM;IACzB,IAAIQ,IAAI,KAAK,EAAE,IAAIe,UAAU,EAAE;MAC7BhB,QAAQ,CAACT,aAAa,CAACY,GAAG,EAAEF,IAAI,EAAEM,cAAc,CAAC,CAAC;IACpD;EACF,CAAC,EAAE,CAACJ,GAAG,EAAEF,IAAI,EAAEM,cAAc,EAAES,UAAU,CAAC,CAAC;EAE3C/B,SAAS,CAAC,MAAM;IACd,IAAIsB,cAAc,CAACI,eAAe,EAAE;MAClC,OAAO,MAAM;QACXX,QAAQ,CAACR,gBAAgB,CAACW,GAAG,CAAC,CAAC;MACjC,CAAC;IACH;EACF,CAAC,EAAE,CAACH,QAAQ,EAAEG,GAAG,EAAEI,cAAc,CAACI,eAAe,CAAC,CAAC;EAEnD,OAAOP,KAAK;AACd,CAAC","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
1
2
  import { useLocation } from "react-router";
2
3
  import { useSelector } from "react-redux";
3
4
  import { useMemo } from "react";
@@ -7,48 +8,24 @@ import { useModularUIKey } from "./useModularUIKey";
7
8
  // Helper to create useModularUI options
8
9
  const createUseModularUIOptions = (options, href, mustReload) => {
9
10
  const baseOptions = {
10
- targetModel: undefined,
11
- forceTargetModel: undefined,
12
- isReload: false,
13
- origin: undefined,
14
- contextPath: undefined,
15
- cache: false,
16
- removeOnUnmount: false,
11
+ expectedModels: [],
17
12
  method: HTTP_METHODS.GET,
18
- data: undefined
13
+ data: undefined,
14
+ removeOnUnmount: false,
15
+ ...options,
16
+ isReload: mustReload || options.isReload
19
17
  };
20
-
21
- // Handle targetModel and forceTargetModel
22
- if (options.targetModel) {
23
- baseOptions.targetModel = options.targetModel;
24
- baseOptions.forceTargetModel = options.forceTargetModel;
25
- }
26
-
27
- // Handle cache option
28
- if (options.cache) {
29
- baseOptions.cache = options.cache;
30
- }
31
- if (mustReload) {
32
- baseOptions.isReload = true;
33
- }
34
- if (options.removeOnUnmount) {
35
- baseOptions.removeOnUnmount = true;
36
- }
37
18
  if (options.formdata != null) {
38
19
  baseOptions.method = HTTP_METHODS.POST;
39
20
  baseOptions.data = options.formdata;
40
21
  }
41
-
42
- // Handle origin and contextPath options
43
- baseOptions.origin = options.origin ?? baseOptions.origin;
44
- baseOptions.contextPath = options.contextPath ?? baseOptions.contextPath;
45
22
  return baseOptions;
46
23
  };
47
24
 
48
25
  // Helper to validate the model against expectedModels
49
26
  const validateModel = (model, expectedModels) => {
50
27
  if (expectedModels.length > 0) {
51
- const isCorrectModel = expectedModels.some(expectedModel => model.type === expectedModel);
28
+ const isCorrectModel = _includesInstanceProperty(expectedModels).call(expectedModels, model.type);
52
29
  if (!isCorrectModel) {
53
30
  console.warn(model, "is not of instance", expectedModels);
54
31
  }
@@ -58,15 +35,7 @@ const validateModel = (model, expectedModels) => {
58
35
  /**
59
36
  * useModularUIBasic Hook
60
37
  */
61
- export const useModularUIBasic = (defaultKey, href, options = {
62
- expectedModels: [],
63
- targetModel: undefined,
64
- forceTargetModel: false,
65
- origin: undefined,
66
- contextPath: undefined,
67
- key: undefined,
68
- formdata: undefined
69
- }) => {
38
+ export const useModularUIBasic = (defaultKey, href, options = {}) => {
70
39
  const memoizedHref = useMemo(() => href.toString(), [href]);
71
40
  const key = options.key ?? defaultKey;
72
41
  const mustReload = useReload(key, memoizedHref);
@@ -36,54 +36,26 @@ const createUseModularUIOptions = <T: ModularUIModel>(
36
36
  mustReload: boolean,
37
37
  ): Object => {
38
38
  const baseOptions = {
39
- targetModel: undefined,
40
- forceTargetModel: undefined,
41
- isReload: false,
42
- origin: undefined,
43
- contextPath: undefined,
44
- cache: false,
45
- removeOnUnmount: false,
39
+ expectedModels: [],
46
40
  method: HTTP_METHODS.GET,
47
41
  data: undefined,
42
+ removeOnUnmount: false,
43
+ ...options,
44
+ isReload: mustReload || options.isReload,
48
45
  };
49
46
 
50
- // Handle targetModel and forceTargetModel
51
- if (options.targetModel) {
52
- baseOptions.targetModel = options.targetModel;
53
- baseOptions.forceTargetModel = options.forceTargetModel;
54
- }
55
-
56
- // Handle cache option
57
- if (options.cache) {
58
- baseOptions.cache = options.cache;
59
- }
60
-
61
- if (mustReload) {
62
- baseOptions.isReload = true;
63
- }
64
-
65
- if (options.removeOnUnmount) {
66
- baseOptions.removeOnUnmount = true;
67
- }
68
-
69
47
  if (options.formdata != null) {
70
48
  baseOptions.method = HTTP_METHODS.POST;
71
49
  baseOptions.data = options.formdata;
72
50
  }
73
51
 
74
- // Handle origin and contextPath options
75
- baseOptions.origin = options.origin ?? baseOptions.origin;
76
- baseOptions.contextPath = options.contextPath ?? baseOptions.contextPath;
77
-
78
52
  return baseOptions;
79
53
  };
80
54
 
81
55
  // Helper to validate the model against expectedModels
82
56
  const validateModel = (model: any, expectedModels: Array<string>) => {
83
57
  if (expectedModels.length > 0) {
84
- const isCorrectModel = expectedModels.some(
85
- (expectedModel) => model.type === expectedModel,
86
- );
58
+ const isCorrectModel = expectedModels.includes(model.type);
87
59
  if (!isCorrectModel) {
88
60
  console.warn(model, "is not of instance", expectedModels);
89
61
  }
@@ -96,15 +68,7 @@ const validateModel = (model: any, expectedModels: Array<string>) => {
96
68
  export const useModularUIBasic = <T: ModularUIModel>(
97
69
  defaultKey: string,
98
70
  href: string | Href,
99
- options: UseModularUIBasicOptions<T> = {
100
- expectedModels: [],
101
- targetModel: undefined,
102
- forceTargetModel: false,
103
- origin: undefined,
104
- contextPath: undefined,
105
- key: undefined,
106
- formdata: undefined,
107
- },
71
+ options: UseModularUIBasicOptions<T> = {},
108
72
  ): T | null => {
109
73
  const memoizedHref = useMemo(() => href.toString(), [href]);
110
74
  const key = options.key ?? defaultKey;
@@ -1 +1 @@
1
- {"version":3,"file":"useModularUIBasic.js","names":["useLocation","useSelector","useMemo","useModularUI","HTTP_METHODS","MODULARUI_STATUS","useModularUIKey","createUseModularUIOptions","options","href","mustReload","baseOptions","targetModel","undefined","forceTargetModel","isReload","origin","contextPath","cache","removeOnUnmount","method","GET","data","formdata","POST","validateModel","model","expectedModels","length","isCorrectModel","some","expectedModel","type","console","warn","useModularUIBasic","defaultKey","key","memoizedHref","toString","useReload","modularUIOptions","modularUI","modelKey","url","location","modelEntry","state","modularui","reload","isFullyLoaded","status","FINISHED","lastModification"],"sources":["../../src/hooks/useModularUIBasic.js"],"sourcesContent":["// @flow\nimport { useLocation } from \"react-router\";\nimport { useSelector } from \"react-redux\";\nimport { useMemo } from \"react\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../constants\";\nimport { useModularUIKey } from \"./useModularUIKey\";\n\nimport type { ModularUIModel, Href } from \"../models\";\nexport type HookOptions = {\n key?: string,\n origin?: string,\n contextPath?: string,\n removeOnUnmount?: boolean,\n formdata?: any,\n};\n\nexport type UseModularUIBasicOptions<T: ModularUIModel> = {\n expectedModels?: Array<string>,\n targetModel?: Class<T> | Array<Class<T>>,\n forceTargetModel?: boolean,\n origin?: string,\n contextPath?: string,\n cache?: boolean,\n key?: string,\n isReload?: boolean,\n removeOnUnmount?: boolean,\n formdata?: any,\n};\n\n// Helper to create useModularUI options\nconst createUseModularUIOptions = <T: ModularUIModel>(\n options: UseModularUIBasicOptions<T>,\n href: string,\n mustReload: boolean,\n): Object => {\n const baseOptions = {\n targetModel: undefined,\n forceTargetModel: undefined,\n isReload: false,\n origin: undefined,\n contextPath: undefined,\n cache: false,\n removeOnUnmount: false,\n method: HTTP_METHODS.GET,\n data: undefined,\n };\n\n // Handle targetModel and forceTargetModel\n if (options.targetModel) {\n baseOptions.targetModel = options.targetModel;\n baseOptions.forceTargetModel = options.forceTargetModel;\n }\n\n // Handle cache option\n if (options.cache) {\n baseOptions.cache = options.cache;\n }\n\n if (mustReload) {\n baseOptions.isReload = true;\n }\n\n if (options.removeOnUnmount) {\n baseOptions.removeOnUnmount = true;\n }\n\n if (options.formdata != null) {\n baseOptions.method = HTTP_METHODS.POST;\n baseOptions.data = options.formdata;\n }\n\n // Handle origin and contextPath options\n baseOptions.origin = options.origin ?? baseOptions.origin;\n baseOptions.contextPath = options.contextPath ?? baseOptions.contextPath;\n\n return baseOptions;\n};\n\n// Helper to validate the model against expectedModels\nconst validateModel = (model: any, expectedModels: Array<string>) => {\n if (expectedModels.length > 0) {\n const isCorrectModel = expectedModels.some(\n (expectedModel) => model.type === expectedModel,\n );\n if (!isCorrectModel) {\n console.warn(model, \"is not of instance\", expectedModels);\n }\n }\n};\n\n/**\n * useModularUIBasic Hook\n */\nexport const useModularUIBasic = <T: ModularUIModel>(\n defaultKey: string,\n href: string | Href,\n options: UseModularUIBasicOptions<T> = {\n expectedModels: [],\n targetModel: undefined,\n forceTargetModel: false,\n origin: undefined,\n contextPath: undefined,\n key: undefined,\n formdata: undefined,\n },\n): T | null => {\n const memoizedHref = useMemo(() => href.toString(), [href]);\n const key = options.key ?? defaultKey;\n\n const mustReload = useReload(key, memoizedHref);\n const modularUIOptions = useMemo(\n () => createUseModularUIOptions(options, memoizedHref, mustReload),\n [options, memoizedHref, mustReload],\n );\n\n const modularUI = useModularUI(key, href, modularUIOptions);\n const expectedModels = useMemo(\n () => options.expectedModels ?? [],\n [options.expectedModels],\n );\n\n return useMemo((): T | null => {\n if (modularUI?.model) {\n validateModel(modularUI.model, expectedModels);\n return modularUI.model;\n }\n return null;\n }, [expectedModels, modularUI]);\n};\n\n/**\n * Check if the model corresponding to a modular ui service should be reloaded\n */\nexport const useReload = (modelKey: string, url: string): boolean => {\n const location = useLocation();\n const key = useModularUIKey(modelKey, url);\n const modelEntry = useSelector((state) => state.modularui[key]);\n\n if (modelEntry) {\n const reload = location.state?.reload || 0;\n if (reload > 0) {\n const isFullyLoaded = modelEntry?.status === MODULARUI_STATUS.FINISHED;\n const lastModification = modelEntry?.lastModification ?? 0;\n if (isFullyLoaded && lastModification < reload) {\n return true;\n }\n }\n }\n return false;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useModularUIBasic.js","names":["useLocation","useSelector","useMemo","useModularUI","HTTP_METHODS","MODULARUI_STATUS","useModularUIKey","createUseModularUIOptions","options","href","mustReload","baseOptions","expectedModels","method","GET","data","undefined","removeOnUnmount","isReload","formdata","POST","validateModel","model","length","isCorrectModel","_includesInstanceProperty","call","type","console","warn","useModularUIBasic","defaultKey","memoizedHref","toString","key","useReload","modularUIOptions","modularUI","modelKey","url","location","modelEntry","state","modularui","reload","isFullyLoaded","status","FINISHED","lastModification"],"sources":["../../src/hooks/useModularUIBasic.js"],"sourcesContent":["// @flow\nimport { useLocation } from \"react-router\";\nimport { useSelector } from \"react-redux\";\nimport { useMemo } from \"react\";\nimport { useModularUI } from \"./useModularUI\";\n\nimport { HTTP_METHODS, MODULARUI_STATUS } from \"../constants\";\nimport { useModularUIKey } from \"./useModularUIKey\";\n\nimport type { ModularUIModel, Href } from \"../models\";\nexport type HookOptions = {\n key?: string,\n origin?: string,\n contextPath?: string,\n removeOnUnmount?: boolean,\n formdata?: any,\n};\n\nexport type UseModularUIBasicOptions<T: ModularUIModel> = {\n expectedModels?: Array<string>,\n targetModel?: Class<T> | Array<Class<T>>,\n forceTargetModel?: boolean,\n origin?: string,\n contextPath?: string,\n cache?: boolean,\n key?: string,\n isReload?: boolean,\n removeOnUnmount?: boolean,\n formdata?: any,\n};\n\n// Helper to create useModularUI options\nconst createUseModularUIOptions = <T: ModularUIModel>(\n options: UseModularUIBasicOptions<T>,\n href: string,\n mustReload: boolean,\n): Object => {\n const baseOptions = {\n expectedModels: [],\n method: HTTP_METHODS.GET,\n data: undefined,\n removeOnUnmount: false,\n ...options,\n isReload: mustReload || options.isReload,\n };\n\n if (options.formdata != null) {\n baseOptions.method = HTTP_METHODS.POST;\n baseOptions.data = options.formdata;\n }\n\n return baseOptions;\n};\n\n// Helper to validate the model against expectedModels\nconst validateModel = (model: any, expectedModels: Array<string>) => {\n if (expectedModels.length > 0) {\n const isCorrectModel = expectedModels.includes(model.type);\n if (!isCorrectModel) {\n console.warn(model, \"is not of instance\", expectedModels);\n }\n }\n};\n\n/**\n * useModularUIBasic Hook\n */\nexport const useModularUIBasic = <T: ModularUIModel>(\n defaultKey: string,\n href: string | Href,\n options: UseModularUIBasicOptions<T> = {},\n): T | null => {\n const memoizedHref = useMemo(() => href.toString(), [href]);\n const key = options.key ?? defaultKey;\n\n const mustReload = useReload(key, memoizedHref);\n const modularUIOptions = useMemo(\n () => createUseModularUIOptions(options, memoizedHref, mustReload),\n [options, memoizedHref, mustReload],\n );\n\n const modularUI = useModularUI(key, href, modularUIOptions);\n const expectedModels = useMemo(\n () => options.expectedModels ?? [],\n [options.expectedModels],\n );\n\n return useMemo((): T | null => {\n if (modularUI?.model) {\n validateModel(modularUI.model, expectedModels);\n return modularUI.model;\n }\n return null;\n }, [expectedModels, modularUI]);\n};\n\n/**\n * Check if the model corresponding to a modular ui service should be reloaded\n */\nexport const useReload = (modelKey: string, url: string): boolean => {\n const location = useLocation();\n const key = useModularUIKey(modelKey, url);\n const modelEntry = useSelector((state) => state.modularui[key]);\n\n if (modelEntry) {\n const reload = location.state?.reload || 0;\n if (reload > 0) {\n const isFullyLoaded = modelEntry?.status === MODULARUI_STATUS.FINISHED;\n const lastModification = modelEntry?.lastModification ?? 0;\n if (isFullyLoaded && lastModification < reload) {\n return true;\n }\n }\n }\n return false;\n};\n"],"mappings":";AACA,SAASA,WAAW,QAAQ,cAAc;AAC1C,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,OAAO,QAAQ,OAAO;AAC/B,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,SAASC,YAAY,EAAEC,gBAAgB,QAAQ,cAAc;AAC7D,SAASC,eAAe,QAAQ,mBAAmB;AAwBnD;AACA,MAAMC,yBAAyB,GAAGA,CAChCC,OAAoC,EACpCC,IAAY,EACZC,UAAmB,KACR;EACX,MAAMC,WAAW,GAAG;IAClBC,cAAc,EAAE,EAAE;IAClBC,MAAM,EAAET,YAAY,CAACU,GAAG;IACxBC,IAAI,EAAEC,SAAS;IACfC,eAAe,EAAE,KAAK;IACtB,GAAGT,OAAO;IACVU,QAAQ,EAAER,UAAU,IAAIF,OAAO,CAACU;EAClC,CAAC;EAED,IAAIV,OAAO,CAACW,QAAQ,IAAI,IAAI,EAAE;IAC5BR,WAAW,CAACE,MAAM,GAAGT,YAAY,CAACgB,IAAI;IACtCT,WAAW,CAACI,IAAI,GAAGP,OAAO,CAACW,QAAQ;EACrC;EAEA,OAAOR,WAAW;AACpB,CAAC;;AAED;AACA,MAAMU,aAAa,GAAGA,CAACC,KAAU,EAAEV,cAA6B,KAAK;EACnE,IAAIA,cAAc,CAACW,MAAM,GAAG,CAAC,EAAE;IAC7B,MAAMC,cAAc,GAAGC,yBAAA,CAAAb,cAAc,EAAAc,IAAA,CAAdd,cAAc,EAAUU,KAAK,CAACK,IAAI,CAAC;IAC1D,IAAI,CAACH,cAAc,EAAE;MACnBI,OAAO,CAACC,IAAI,CAACP,KAAK,EAAE,oBAAoB,EAAEV,cAAc,CAAC;IAC3D;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMkB,iBAAiB,GAAGA,CAC/BC,UAAkB,EAClBtB,IAAmB,EACnBD,OAAoC,GAAG,CAAC,CAAC,KAC5B;EACb,MAAMwB,YAAY,GAAG9B,OAAO,CAAC,MAAMO,IAAI,CAACwB,QAAQ,CAAC,CAAC,EAAE,CAACxB,IAAI,CAAC,CAAC;EAC3D,MAAMyB,GAAG,GAAG1B,OAAO,CAAC0B,GAAG,IAAIH,UAAU;EAErC,MAAMrB,UAAU,GAAGyB,SAAS,CAACD,GAAG,EAAEF,YAAY,CAAC;EAC/C,MAAMI,gBAAgB,GAAGlC,OAAO,CAC9B,MAAMK,yBAAyB,CAACC,OAAO,EAAEwB,YAAY,EAAEtB,UAAU,CAAC,EAClE,CAACF,OAAO,EAAEwB,YAAY,EAAEtB,UAAU,CACpC,CAAC;EAED,MAAM2B,SAAS,GAAGlC,YAAY,CAAC+B,GAAG,EAAEzB,IAAI,EAAE2B,gBAAgB,CAAC;EAC3D,MAAMxB,cAAc,GAAGV,OAAO,CAC5B,MAAMM,OAAO,CAACI,cAAc,IAAI,EAAE,EAClC,CAACJ,OAAO,CAACI,cAAc,CACzB,CAAC;EAED,OAAOV,OAAO,CAAC,MAAgB;IAC7B,IAAImC,SAAS,EAAEf,KAAK,EAAE;MACpBD,aAAa,CAACgB,SAAS,CAACf,KAAK,EAAEV,cAAc,CAAC;MAC9C,OAAOyB,SAAS,CAACf,KAAK;IACxB;IACA,OAAO,IAAI;EACb,CAAC,EAAE,CAACV,cAAc,EAAEyB,SAAS,CAAC,CAAC;AACjC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMF,SAAS,GAAGA,CAACG,QAAgB,EAAEC,GAAW,KAAc;EACnE,MAAMC,QAAQ,GAAGxC,WAAW,CAAC,CAAC;EAC9B,MAAMkC,GAAG,GAAG5B,eAAe,CAACgC,QAAQ,EAAEC,GAAG,CAAC;EAC1C,MAAME,UAAU,GAAGxC,WAAW,CAAEyC,KAAK,IAAKA,KAAK,CAACC,SAAS,CAACT,GAAG,CAAC,CAAC;EAE/D,IAAIO,UAAU,EAAE;IACd,MAAMG,MAAM,GAAGJ,QAAQ,CAACE,KAAK,EAAEE,MAAM,IAAI,CAAC;IAC1C,IAAIA,MAAM,GAAG,CAAC,EAAE;MACd,MAAMC,aAAa,GAAGJ,UAAU,EAAEK,MAAM,KAAKzC,gBAAgB,CAAC0C,QAAQ;MACtE,MAAMC,gBAAgB,GAAGP,UAAU,EAAEO,gBAAgB,IAAI,CAAC;MAC1D,IAAIH,aAAa,IAAIG,gBAAgB,GAAGJ,MAAM,EAAE;QAC9C,OAAO,IAAI;MACb;IACF;EACF;EACA,OAAO,KAAK;AACd,CAAC","ignoreList":[]}
@@ -67,6 +67,7 @@ const useListNavigation = ({
67
67
  if (list.requestMethod === _Constants.HTTP_METHODS.POST) {
68
68
  if (syncLocation) {
69
69
  navigate({
70
+ pathname: listHref.path,
70
71
  search: listHref.getQuerystring(true),
71
72
  state: {
72
73
  formdata: list.formdata
@@ -81,6 +82,7 @@ const useListNavigation = ({
81
82
  } else {
82
83
  if (syncLocation) {
83
84
  navigate({
85
+ pathname: listHref.path,
84
86
  search: listHref.getQuerystring(true)
85
87
  });
86
88
  }
@@ -98,7 +100,7 @@ const useListNavigation = ({
98
100
  if (attribute) {
99
101
  filter.update(attribute, value);
100
102
  } else if (filter instanceof _AssignmentFilterModel.default) {
101
- throw new Error("Need the attribute to update for AssigmentFilterModel");
103
+ throw new TypeError("AssignmentFilterModel needs the attribute argument to be able to update the filter");
102
104
  } else if (filter instanceof _FilterModel.default) {
103
105
  filter.update(filter.attribute, value);
104
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useList.js","names":["_reactRedux","require","_useModularUIBasic","_Constants","_redux","_useRouter","_DetailModel","_interopRequireDefault","_ListModel","_CaseSearchModel","_ListDetailModel","_Href","_FilterCollection","_AssignmentFilterModel","_FilterModel","_react","useList","href","options","useModularUIBasic","expectedModels","targetModel","ListModel","CaseSearchModel","exports","useListOrDetail","DetailModel","useListDetail","ListDetailModel","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","useNavigation","dispatch","useDispatch","navigate","update","useCallback","list","resetPage","listHref","selfhref","page","requestMethod","HTTP_METHODS","POST","search","getQuerystring","state","formdata","loadModularUI","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","AssignmentFilterModel","Error","FilterModel","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize","useMemo"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (list: ListModel, filters: FilterCollection) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({ search: listHref.getQuerystring(true) });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new Error(\n \"Need the attribute to update for AssigmentFilterModel\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useList.js","names":["_reactRedux","require","_useModularUIBasic","_Constants","_redux","_useRouter","_DetailModel","_interopRequireDefault","_ListModel","_CaseSearchModel","_ListDetailModel","_Href","_FilterCollection","_AssignmentFilterModel","_FilterModel","_react","useList","href","options","useModularUIBasic","expectedModels","targetModel","ListModel","CaseSearchModel","exports","useListOrDetail","DetailModel","useListDetail","ListDetailModel","forceTargetModel","useListNavigation","syncLocation","historyAction","push","replace","useNavigation","dispatch","useDispatch","navigate","update","useCallback","list","resetPage","listHref","selfhref","page","requestMethod","HTTP_METHODS","POST","pathname","path","search","getQuerystring","state","formdata","loadModularUI","connectKey","method","data","GET","updateFilters","filters","filterCollection","updateFilter","filter","value","attribute","AssignmentFilterModel","TypeError","FilterModel","resetFilters","reset","removeFilter","getFilterByName","name","updateSort","sortOption","sorting","updatePage","paging","updatePageSize","pagesize","useMemo"],"sources":["../../src/hooks/useList.js"],"sourcesContent":["// @flow\nimport { useDispatch } from \"react-redux\";\n\nimport { useModularUIBasic } from \"./useModularUIBasic\";\nimport { HTTP_METHODS } from \"../constants/Constants\";\n\nimport { loadModularUI } from \"../redux\";\n\nimport { useNavigation } from \"./useRouter\";\n\nimport DetailModel from \"../models/detail/DetailModel\";\nimport ListModel from \"../models/list/ListModel\";\nimport CaseSearchModel from \"../models/search/CaseSearchModel\";\nimport ListDetailModel from \"../models/list/ListDetailModel\";\nimport Href from \"../models/href/Href\";\nimport FilterCollection from \"../models/filters/FilterCollection\";\nimport AssignmentFilterModel from \"../models/filters/AssignmentFilterModel\";\nimport FilterModel from \"../models/filters/FilterModel\";\n\nimport type { HookOptions } from \"./useModularUIBasic\";\nimport type { AttributeType, IFilter } from \"../models/types\";\nimport { useCallback, useMemo } from \"react\";\n\ntype ListNavigationHook = {\n update: (list: ListModel, resetPage?: boolean) => void,\n updateFilters: (\n list: ListModel,\n filters: FilterCollection | Array<IFilter>,\n ) => void,\n updateFilter: (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => void,\n updateSort: (list: ListModel, sortOption: string) => void,\n updatePage: (list: ListModel, page: number) => void,\n updatePageSize: (list: ListModel, pagesize: number) => void,\n resetFilters: (list: ListModel) => void,\n removeFilter: (list: ListModel, filter: IFilter) => void,\n};\n\ntype ListNavigationOptions = {\n syncLocation?: boolean,\n historyAction?: \"push\" | \"replace\",\n};\n\n/**\n */\nexport const useList = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\"],\n targetModel: [ListModel, CaseSearchModel],\n ...options,\n });\n\n/**\n */\nexport const useListOrDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListModel | DetailModel | null =>\n useModularUIBasic(\"list\", href, {\n expectedModels: [\"List\", \"CaseSearch\", \"Detail\"],\n targetModel: [ListModel, CaseSearchModel, DetailModel],\n ...options,\n });\n\n/**\n */\nexport const useListDetail = (\n href: string | Href,\n options?: HookOptions,\n): ListDetailModel | null =>\n useModularUIBasic(\"listdetail\", href, {\n expectedModels: [\"ListDetail\"],\n targetModel: ListDetailModel,\n forceTargetModel: true,\n ...options,\n });\n\n/**\n */\nexport const useListNavigation = ({\n syncLocation = true,\n historyAction = \"push\",\n}: ListNavigationOptions = {}): ListNavigationHook => {\n const { push, replace } = useNavigation();\n const dispatch = useDispatch();\n\n const navigate = historyAction === \"push\" ? push : replace;\n\n const update = useCallback(\n (list: ListModel, resetPage: boolean = false) => {\n const listHref = list.selfhref;\n if (resetPage) {\n listHref.page = null;\n }\n\n if (list.requestMethod === HTTP_METHODS.POST) {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n state: { formdata: list.formdata },\n });\n }\n\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.POST,\n data: list.formdata,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n } else {\n if (syncLocation) {\n navigate({\n pathname: listHref.path,\n search: listHref.getQuerystring(true),\n });\n }\n dispatch(\n loadModularUI(list.connectKey, listHref, {\n method: HTTP_METHODS.GET,\n targetModel: [ListModel, CaseSearchModel],\n }),\n );\n }\n },\n [dispatch, navigate, syncLocation],\n );\n\n const updateFilters = useCallback(\n (list: ListModel, filters: FilterCollection | Array<IFilter>) => {\n list.filterCollection = filters;\n update(list, true);\n },\n [update],\n );\n\n const updateFilter = useCallback(\n (\n list: ListModel,\n filter: IFilter,\n value: string,\n attribute?: AttributeType,\n ) => {\n if (attribute) {\n filter.update(attribute, value);\n } else if (filter instanceof AssignmentFilterModel) {\n throw new TypeError(\n \"AssignmentFilterModel needs the attribute argument to be able to update the filter\",\n );\n } else if (filter instanceof FilterModel) {\n filter.update(filter.attribute, value);\n }\n update(list, true);\n },\n [update],\n );\n\n const resetFilters = useCallback(\n (list: ListModel) => {\n list.filterCollection.reset();\n update(list, true);\n },\n [update],\n );\n\n const removeFilter = useCallback(\n (list: ListModel, filter: IFilter) => {\n list.filterCollection.getFilterByName(filter.name)?.reset();\n update(list, true);\n },\n [update],\n );\n\n const updateSort = useCallback(\n (list: ListModel, sortOption: string) => {\n list.sorting.value = sortOption;\n update(list, true);\n },\n [update],\n );\n\n const updatePage = useCallback(\n (list: ListModel, page: number) => {\n list.paging.page = page;\n update(list);\n },\n [update],\n );\n\n const updatePageSize = useCallback(\n (list: ListModel, pagesize: number) => {\n list.paging.pagesize.value = pagesize;\n update(list, true);\n },\n [update],\n );\n\n return useMemo(\n () => ({\n update,\n updateFilters,\n updateFilter,\n updateSort,\n updatePage,\n updatePageSize,\n resetFilters,\n removeFilter,\n }),\n [\n removeFilter,\n resetFilters,\n update,\n updateFilter,\n updateFilters,\n updatePage,\n updatePageSize,\n updateSort,\n ],\n );\n};\n"],"mappings":"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","ignoreList":[]}