@k-int/stripes-kint-components 5.36.0 → 5.37.0

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 (463) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +23 -8
  3. package/es/__mocks__/@folio/stripes/components.js +7 -3
  4. package/es/__mocks__/@folio/stripes/core.js +6 -4
  5. package/es/__mocks__/@folio/stripes/smart-components.js +6 -4
  6. package/es/__mocks__/react-query.js +6 -4
  7. package/es/__mocks__/react-router-dom.js +6 -6
  8. package/es/lib/ActionList/ActionList.js +38 -30
  9. package/es/lib/ActionList/ActionListFieldArray.js +131 -122
  10. package/es/lib/ButtonTypedown/ButtonTypedown.js +39 -41
  11. package/es/lib/ComboButton/ComboButton.js +66 -57
  12. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.js +62 -46
  13. package/es/lib/CustomProperties/Config/CustomPropertiesLookup.test.js +4 -6
  14. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.js +153 -135
  15. package/es/lib/CustomProperties/Config/CustomPropertiesSettings.test.js +4 -6
  16. package/es/lib/CustomProperties/Config/CustomPropertyForm.js +83 -81
  17. package/es/lib/CustomProperties/Config/CustomPropertyForm.test.js +32 -40
  18. package/es/lib/CustomProperties/Config/CustomPropertyView.js +39 -39
  19. package/es/lib/CustomProperties/Config/CustomPropertyView.test.js +1 -1
  20. package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.js +10 -10
  21. package/es/lib/CustomProperties/Edit/CustomPropertiesEdit.test.js +2 -3
  22. package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.js +24 -26
  23. package/es/lib/CustomProperties/Edit/CustomPropertiesEditCtx.test.js +2 -3
  24. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.js +62 -49
  25. package/es/lib/CustomProperties/Edit/CustomPropertiesListField.test.js +4 -6
  26. package/es/lib/CustomProperties/Edit/CustomPropertyField.js +75 -79
  27. package/es/lib/CustomProperties/Edit/CustomPropertyField.test.js +30 -35
  28. package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.js +19 -22
  29. package/es/lib/CustomProperties/Edit/CustomPropertyFormCard.test.js +7 -10
  30. package/es/lib/CustomProperties/Edit/testResources.js +12 -11
  31. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.js +67 -51
  32. package/es/lib/CustomProperties/Filter/CustomPropertiesFilter.test.js +2 -3
  33. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.js +62 -47
  34. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterField.test.js +4 -7
  35. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js +16 -24
  36. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterFieldArray.test.js +2 -3
  37. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.js +17 -16
  38. package/es/lib/CustomProperties/Filter/CustomPropertiesFilterForm.test.js +10 -7
  39. package/es/lib/CustomProperties/Filter/CustomPropertiesRule.js +35 -35
  40. package/es/lib/CustomProperties/Filter/testResources.js +2 -1
  41. package/es/lib/CustomProperties/Filter/useOperators.js +6 -8
  42. package/es/lib/CustomProperties/Filter/useParseActiveFilterStrings.js +12 -2
  43. package/es/lib/CustomProperties/Filter/useValueProps.js +6 -8
  44. package/es/lib/CustomProperties/View/CustomPropertiesView.js +10 -10
  45. package/es/lib/CustomProperties/View/CustomPropertiesView.test.js +2 -3
  46. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.js +67 -52
  47. package/es/lib/CustomProperties/View/CustomPropertiesViewCtx.test.js +8 -6
  48. package/es/lib/CustomProperties/View/CustomPropertyCard.js +20 -16
  49. package/es/lib/CycleButton/CycleButton.js +28 -14
  50. package/es/lib/FieldLabel/FieldLabel.js +5 -9
  51. package/es/lib/Files/FileUploader/FileUploader.js +41 -40
  52. package/es/lib/Files/FileView/FileView.js +11 -14
  53. package/es/lib/Files/useFileHandlers.js +63 -68
  54. package/es/lib/FormModal/FormModal.js +38 -38
  55. package/es/lib/FormattedKintMessage/FormattedKintMessage.js +29 -24
  56. package/es/lib/IconSelect/IconSelect.js +60 -44
  57. package/es/lib/NoResultsMessage/NoResultsMessage.js +31 -31
  58. package/es/lib/NumberField/NumberField.js +39 -19
  59. package/es/lib/NumberField/NumberField.test.js +19 -10
  60. package/es/lib/QueryTypedown/QueryTypedown.js +34 -12
  61. package/es/lib/RefdataButtons/RefdataButtons.js +14 -14
  62. package/es/lib/ResponsiveButtonGroup/ResponsiveButtonGroup.js +75 -68
  63. package/es/lib/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js +30 -16
  64. package/es/lib/RichSelect/RichSelect.js +74 -58
  65. package/es/lib/RichSelect/useSelectedOption.js +12 -2
  66. package/es/lib/SASQLookupComponent/SASQLookupComponent.js +195 -188
  67. package/es/lib/SASQLookupComponent/SASQLookupComponent.test.js +81 -95
  68. package/es/lib/SASQLookupComponent/TableBody/TableBody.js +68 -48
  69. package/es/lib/SASQLookupComponent/TableBody/TableBody.test.js +37 -34
  70. package/es/lib/SASQLookupComponent/__mocks__/SASQLookupComponent.js +4 -5
  71. package/es/lib/SASQLookupComponent/__mocks__/SASQLookupComponentRender.js +1 -3
  72. package/es/lib/SASQRoute/SASQRoute.js +34 -29
  73. package/es/lib/SASQRoute/SASQRoute.test.js +34 -42
  74. package/es/lib/SASQViewComponent/SASQViewComponent.js +69 -66
  75. package/es/lib/SASQViewComponent/SASQViewComponent.test.js +13 -12
  76. package/es/lib/SearchField/SearchField.js +12 -8
  77. package/es/lib/SearchKeyControl/SearchKeyControl.js +46 -31
  78. package/es/lib/SearchKeyControl/SearchKeyControl.test.js +6 -2
  79. package/es/lib/Settings/EditableRefdataCategoryList/EditableRefdataCategoryList.js +124 -103
  80. package/es/lib/Settings/EditableRefdataList/EditableRefdataList.js +120 -107
  81. package/es/lib/Settings/EditableSettingsList/EditableSettingsList.js +12 -16
  82. package/es/lib/Settings/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js +45 -31
  83. package/es/lib/Settings/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.test.js +6 -9
  84. package/es/lib/Settings/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js +20 -14
  85. package/es/lib/Settings/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.test.js +32 -48
  86. package/es/lib/Settings/EditableSettingsList/SettingField/RenderSettingValue/RenderSettingValue.js +19 -19
  87. package/es/lib/Settings/EditableSettingsList/SettingField/RenderSettingValue/RenderSettingValue.test.js +24 -36
  88. package/es/lib/Settings/EditableSettingsList/SettingField/SettingField.js +48 -45
  89. package/es/lib/Settings/EditableSettingsList/SettingField/SettingField.test.js +9 -12
  90. package/es/lib/Settings/RefdataCategoriesSettings/RefdataCategoriesSettings.js +50 -38
  91. package/es/lib/Settings/SettingPage/SettingPage.js +17 -19
  92. package/es/lib/Settings/SettingPage/SettingPagePane/SettingPagePane.js +6 -8
  93. package/es/lib/Settings/Settings/Settings.js +33 -42
  94. package/es/lib/Settings/SettingsFormContainer/SettingsFormContainer.js +47 -45
  95. package/es/lib/Settings/StaticSettingsField/StaticSettingsField.js +13 -5
  96. package/es/lib/Settings/StaticSettingsField/StaticSettingsFieldComponent/StaticSettingsFieldComponent.js +38 -19
  97. package/es/lib/Settings/hooks/staticSettingsPages/useSettingCallout/useSettingCallout.js +13 -17
  98. package/es/lib/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/useSettingsSectionInitalValues.js +6 -10
  99. package/es/lib/Settings/hooks/staticSettingsPages/useStaticSettingsSection.js +20 -20
  100. package/es/lib/Settings/hooks/useAppSettings/useAppSettings.js +18 -15
  101. package/es/lib/Settings/hooks/useSettingSection/useSettingSection.js +27 -26
  102. package/es/lib/Settings/hooks/useSettings/useSettings.js +95 -99
  103. package/es/lib/Tags/Tags.js +37 -38
  104. package/es/lib/Tags/Tags.test.js +12 -18
  105. package/es/lib/Tags/hooks/useTags.js +1 -1
  106. package/es/lib/Tags/hooks/useTagsEnabled.js +13 -14
  107. package/es/lib/Tags/tagsConfig.js +1 -1
  108. package/es/lib/Typedown/Typedown.js +128 -78
  109. package/es/lib/hooks/__mocks__/index.js +7 -3
  110. package/es/lib/hooks/__mocks__/useMutateGeneric.js +22 -0
  111. package/es/lib/hooks/intlHooks/useIntlKeyStore/useIntlKeyStore.js +24 -20
  112. package/es/lib/hooks/intlHooks/useKintIntl/useKintIntl.js +33 -25
  113. package/es/lib/hooks/typedownHooks/useTypedown.js +55 -37
  114. package/es/lib/hooks/typedownHooks/useTypedownData.js +15 -7
  115. package/es/lib/hooks/typedownHooks/useTypedownToggle.js +15 -7
  116. package/es/lib/hooks/useActionListRef.js +11 -2
  117. package/es/lib/hooks/useActiveElement.js +11 -2
  118. package/es/lib/hooks/useCustProps.js +45 -37
  119. package/es/lib/hooks/useCustomProperties.js +21 -18
  120. package/es/lib/hooks/useHelperApp.js +33 -15
  121. package/es/lib/hooks/useKiwtFieldArray.js +22 -14
  122. package/es/lib/hooks/useKiwtSASQuery.js +37 -28
  123. package/es/lib/hooks/useLocalPageStore.js +10 -7
  124. package/es/lib/hooks/useLocalStorageState.js +13 -2
  125. package/es/lib/hooks/useModConfigEntries.js +12 -15
  126. package/es/lib/hooks/useMutateCustomProperties/useMutateCustomProperties.js +16 -11
  127. package/es/lib/hooks/useMutateCustomProperties/useMutateCustomProperties.test.js +51 -0
  128. package/es/lib/hooks/useMutateGeneric/useMutateGeneric.js +70 -48
  129. package/es/lib/hooks/useMutateGeneric/useMutateGeneric.test.js +192 -0
  130. package/es/lib/hooks/useMutateModConfigEntry.js +5 -7
  131. package/es/lib/hooks/useMutateRefdataCategory/useMutateRefdataCategory.js +23 -16
  132. package/es/lib/hooks/useMutateRefdataCategory/useMutateRefdataCategory.test.js +69 -0
  133. package/es/lib/hooks/useMutateRefdataValue/useMutateRefdataValue.js +25 -17
  134. package/es/lib/hooks/useMutateRefdataValue/useMutateRefdataValue.test.js +95 -0
  135. package/es/lib/hooks/useMutateTemplates/useMutateTemplates.js +21 -13
  136. package/es/lib/hooks/useMutateTemplates/useMutateTemplates.test.js +34 -0
  137. package/es/lib/hooks/useParallelBatchFetch.js +61 -38
  138. package/es/lib/hooks/usePrevNextPagination.js +46 -32
  139. package/es/lib/hooks/useQIndex.js +23 -11
  140. package/es/lib/hooks/useRefdata.js +11 -13
  141. package/es/lib/hooks/useSASQQueryMeta.js +2 -3
  142. package/es/lib/hooks/useStandaloneSASQQueryParameter/useStandaloneSASQQueryParameter.js +18 -19
  143. package/es/lib/hooks/useTemplates.js +9 -12
  144. package/es/lib/utils/buildUrl.js +3 -2
  145. package/es/lib/utils/downloadBlob.js +12 -8
  146. package/es/lib/utils/filterParsers/deparseKiwtQueryFilters.js +5 -5
  147. package/es/lib/utils/filterParsers/parseKiwtQueryFilters.js +2 -2
  148. package/es/lib/utils/filterParsers/parseKiwtQueryGroups.js +5 -4
  149. package/es/lib/utils/filterParsers/parseKiwtQueryString.js +1 -1
  150. package/es/lib/utils/generateKiwtQueryParams/generateKiwtQueryParams.js +78 -102
  151. package/es/lib/utils/generateKiwtQueryParams/generateKiwtQueryParams.test.js +322 -29
  152. package/es/lib/utils/groupCustomPropertiesByCtx.js +9 -5
  153. package/es/lib/utils/matchString/matchString.js +7 -5
  154. package/es/lib/utils/matchString/matchString.test.js +26 -7
  155. package/es/lib/utils/modConfigEntriesQueryKey.js +4 -5
  156. package/es/lib/utils/parseErrorResponse.js +18 -8
  157. package/es/lib/utils/selectorSafe.js +3 -2
  158. package/es/lib/utils/sortByLabel.js +3 -2
  159. package/es/lib/utils/stringStyling/boldString.js +13 -4
  160. package/es/lib/utils/stringStyling/boldString.test.js +4 -5
  161. package/es/lib/utils/stringStyling/highlightString.js +13 -4
  162. package/es/lib/utils/stringStyling/highlightString.test.js +4 -5
  163. package/es/lib/validators/validators.js +8 -7
  164. package/package.json +1 -1
  165. package/src/artifacts/coverage-jest/ActionList/ActionList.js.html +1 -1
  166. package/src/artifacts/coverage-jest/ActionList/ActionListFieldArray.js.html +1 -1
  167. package/src/artifacts/coverage-jest/ActionList/index.html +1 -1
  168. package/src/artifacts/coverage-jest/ActionList/index.js.html +1 -1
  169. package/src/artifacts/coverage-jest/ButtonTypedown/ButtonTypedown.js.html +1 -1
  170. package/src/artifacts/coverage-jest/ButtonTypedown/index.html +1 -1
  171. package/src/artifacts/coverage-jest/ButtonTypedown/index.js.html +1 -1
  172. package/src/artifacts/coverage-jest/ComboButton/ComboButton.js.html +1 -1
  173. package/src/artifacts/coverage-jest/ComboButton/index.html +1 -1
  174. package/src/artifacts/coverage-jest/ComboButton/index.js.html +1 -1
  175. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertiesLookup.js.html +1 -1
  176. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertiesSettings.js.html +1 -1
  177. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertyForm.js.html +1 -1
  178. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertyView.js.html +1 -1
  179. package/src/artifacts/coverage-jest/CustomProperties/Config/index.html +1 -1
  180. package/src/artifacts/coverage-jest/CustomProperties/Config/index.js.html +1 -1
  181. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesEdit.js.html +1 -1
  182. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesEditCtx.js.html +1 -1
  183. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesListField.js.html +1 -1
  184. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertyField.js.html +1 -1
  185. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertyFormCard.js.html +1 -1
  186. package/src/artifacts/coverage-jest/CustomProperties/Edit/index.html +1 -1
  187. package/src/artifacts/coverage-jest/CustomProperties/Edit/index.js.html +1 -1
  188. package/src/artifacts/coverage-jest/CustomProperties/Edit/testResources.js.html +1 -1
  189. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilter.js.html +1 -1
  190. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterField.js.html +1 -1
  191. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js.html +1 -1
  192. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterForm.js.html +1 -1
  193. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesRule.js.html +1 -1
  194. package/src/artifacts/coverage-jest/CustomProperties/Filter/index.html +1 -1
  195. package/src/artifacts/coverage-jest/CustomProperties/Filter/index.js.html +1 -1
  196. package/src/artifacts/coverage-jest/CustomProperties/Filter/testResources.js.html +1 -1
  197. package/src/artifacts/coverage-jest/CustomProperties/Filter/useOperators.js.html +1 -1
  198. package/src/artifacts/coverage-jest/CustomProperties/Filter/useParseActiveFilterStrings.js.html +1 -1
  199. package/src/artifacts/coverage-jest/CustomProperties/Filter/useValueProps.js.html +1 -1
  200. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertiesView.js.html +1 -1
  201. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertiesViewCtx.js.html +1 -1
  202. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertyCard.js.html +1 -1
  203. package/src/artifacts/coverage-jest/CustomProperties/View/index.html +1 -1
  204. package/src/artifacts/coverage-jest/CustomProperties/View/index.js.html +1 -1
  205. package/src/artifacts/coverage-jest/CustomProperties/View/testResources.js.html +1 -1
  206. package/src/artifacts/coverage-jest/CustomProperties/index.html +1 -1
  207. package/src/artifacts/coverage-jest/CustomProperties/index.js.html +1 -1
  208. package/src/artifacts/coverage-jest/CycleButton/CycleButton.js.html +1 -1
  209. package/src/artifacts/coverage-jest/CycleButton/index.html +1 -1
  210. package/src/artifacts/coverage-jest/CycleButton/index.js.html +1 -1
  211. package/src/artifacts/coverage-jest/FieldLabel/FieldLabel.js.html +1 -1
  212. package/src/artifacts/coverage-jest/FieldLabel/index.html +1 -1
  213. package/src/artifacts/coverage-jest/FieldLabel/index.js.html +1 -1
  214. package/src/artifacts/coverage-jest/Files/FileUploader/FileUploader.js.html +1 -1
  215. package/src/artifacts/coverage-jest/Files/FileUploader/index.html +1 -1
  216. package/src/artifacts/coverage-jest/Files/FileUploader/index.js.html +1 -1
  217. package/src/artifacts/coverage-jest/Files/FileView/FileView.js.html +1 -1
  218. package/src/artifacts/coverage-jest/Files/FileView/index.html +1 -1
  219. package/src/artifacts/coverage-jest/Files/FileView/index.js.html +1 -1
  220. package/src/artifacts/coverage-jest/Files/index.html +1 -1
  221. package/src/artifacts/coverage-jest/Files/index.js.html +1 -1
  222. package/src/artifacts/coverage-jest/Files/useFileHandlers.js.html +1 -1
  223. package/src/artifacts/coverage-jest/FormModal/FormModal.js.html +1 -1
  224. package/src/artifacts/coverage-jest/FormModal/index.html +1 -1
  225. package/src/artifacts/coverage-jest/FormModal/index.js.html +1 -1
  226. package/src/artifacts/coverage-jest/FormattedKintMessage/FormattedKintMessage.js.html +1 -1
  227. package/src/artifacts/coverage-jest/FormattedKintMessage/index.html +1 -1
  228. package/src/artifacts/coverage-jest/FormattedKintMessage/index.js.html +1 -1
  229. package/src/artifacts/coverage-jest/IconSelect/IconSelect.js.html +1 -1
  230. package/src/artifacts/coverage-jest/IconSelect/index.html +1 -1
  231. package/src/artifacts/coverage-jest/IconSelect/index.js.html +1 -1
  232. package/src/artifacts/coverage-jest/NoResultsMessage/NoResultsMessage.js.html +1 -1
  233. package/src/artifacts/coverage-jest/NoResultsMessage/index.html +1 -1
  234. package/src/artifacts/coverage-jest/NoResultsMessage/index.js.html +1 -1
  235. package/src/artifacts/coverage-jest/NumberField/NumberField.js.html +1 -1
  236. package/src/artifacts/coverage-jest/NumberField/index.html +1 -1
  237. package/src/artifacts/coverage-jest/NumberField/index.js.html +1 -1
  238. package/src/artifacts/coverage-jest/QueryTypedown/QueryTypedown.js.html +24 -9
  239. package/src/artifacts/coverage-jest/QueryTypedown/index.html +13 -13
  240. package/src/artifacts/coverage-jest/QueryTypedown/index.js.html +1 -1
  241. package/src/artifacts/coverage-jest/RefdataButtons/RefdataButtons.js.html +1 -1
  242. package/src/artifacts/coverage-jest/RefdataButtons/index.html +1 -1
  243. package/src/artifacts/coverage-jest/RefdataButtons/index.js.html +1 -1
  244. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/ResponsiveButtonGroup.js.html +1 -1
  245. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/index.html +1 -1
  246. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/index.js.html +1 -1
  247. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js.html +1 -1
  248. package/src/artifacts/coverage-jest/RichSelect/RichSelect.js.html +1 -1
  249. package/src/artifacts/coverage-jest/RichSelect/index.html +1 -1
  250. package/src/artifacts/coverage-jest/RichSelect/index.js.html +1 -1
  251. package/src/artifacts/coverage-jest/RichSelect/useSelectedOption.js.html +1 -1
  252. package/src/artifacts/coverage-jest/SASQLookupComponent/SASQLookupComponent.js.html +30 -30
  253. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/TableBody.js.html +1 -1
  254. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/index.html +1 -1
  255. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/index.js.html +1 -1
  256. package/src/artifacts/coverage-jest/SASQLookupComponent/index.html +1 -1
  257. package/src/artifacts/coverage-jest/SASQLookupComponent/index.js.html +1 -1
  258. package/src/artifacts/coverage-jest/SASQRoute/SASQRoute.js.html +1 -1
  259. package/src/artifacts/coverage-jest/SASQRoute/index.html +1 -1
  260. package/src/artifacts/coverage-jest/SASQRoute/index.js.html +1 -1
  261. package/src/artifacts/coverage-jest/SASQViewComponent/SASQViewComponent.js.html +1 -1
  262. package/src/artifacts/coverage-jest/SASQViewComponent/index.html +1 -1
  263. package/src/artifacts/coverage-jest/SASQViewComponent/index.js.html +1 -1
  264. package/src/artifacts/coverage-jest/SearchField/SearchField.js.html +1 -1
  265. package/src/artifacts/coverage-jest/SearchField/index.html +1 -1
  266. package/src/artifacts/coverage-jest/SearchField/index.js.html +1 -1
  267. package/src/artifacts/coverage-jest/SearchKeyControl/SearchKeyControl.js.html +1 -1
  268. package/src/artifacts/coverage-jest/SearchKeyControl/index.html +1 -1
  269. package/src/artifacts/coverage-jest/SearchKeyControl/index.js.html +1 -1
  270. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/EditableRefdataCategoryList.js.html +1 -1
  271. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/index.html +1 -1
  272. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/index.js.html +1 -1
  273. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/EditableRefdataList.js.html +1 -1
  274. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/index.html +1 -1
  275. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/index.js.html +1 -1
  276. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsList.js.html +1 -1
  277. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js.html +1 -1
  278. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/index.html +1 -1
  279. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/index.js.html +1 -1
  280. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js.html +1 -1
  281. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/index.html +1 -1
  282. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/index.js.html +1 -1
  283. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/RenderSettingValue.js.html +1 -1
  284. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/index.html +1 -1
  285. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/index.js.html +1 -1
  286. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/SettingField.js.html +1 -1
  287. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/index.html +1 -1
  288. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/index.js.html +1 -1
  289. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/index.html +1 -1
  290. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/index.js.html +1 -1
  291. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/RefdataCategoriesSettings.js.html +1 -1
  292. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/index.html +1 -1
  293. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/index.js.html +1 -1
  294. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPage.js.html +1 -1
  295. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/SettingPagePane.js.html +1 -1
  296. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/index.html +1 -1
  297. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/index.js.html +1 -1
  298. package/src/artifacts/coverage-jest/Settings/SettingPage/index.html +1 -1
  299. package/src/artifacts/coverage-jest/Settings/SettingPage/index.js.html +1 -1
  300. package/src/artifacts/coverage-jest/Settings/Settings/Settings.js.html +1 -1
  301. package/src/artifacts/coverage-jest/Settings/Settings/index.html +1 -1
  302. package/src/artifacts/coverage-jest/Settings/Settings/index.js.html +1 -1
  303. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/SettingsFormContainer.js.html +1 -1
  304. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/index.html +1 -1
  305. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/index.js.html +1 -1
  306. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsField.js.html +23 -8
  307. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/StaticSettingsFieldComponent.js.html +60 -6
  308. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/index.html +10 -10
  309. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/index.js.html +1 -1
  310. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/index.html +13 -13
  311. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/index.js.html +1 -1
  312. package/src/artifacts/coverage-jest/Settings/constants/index.html +1 -1
  313. package/src/artifacts/coverage-jest/Settings/constants/index.js.html +1 -1
  314. package/src/artifacts/coverage-jest/Settings/constants/queryKeys.js.html +1 -1
  315. package/src/artifacts/coverage-jest/Settings/contexts/SettingsContext.js.html +1 -1
  316. package/src/artifacts/coverage-jest/Settings/contexts/index.html +1 -1
  317. package/src/artifacts/coverage-jest/Settings/contexts/index.js.html +1 -1
  318. package/src/artifacts/coverage-jest/Settings/hooks/index.html +1 -1
  319. package/src/artifacts/coverage-jest/Settings/hooks/index.js.html +1 -1
  320. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/index.html +1 -1
  321. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/index.js.html +1 -1
  322. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/index.html +1 -1
  323. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/index.js.html +1 -1
  324. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/useSettingCallout.js.html +1 -1
  325. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.html +1 -1
  326. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.js.html +1 -1
  327. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/useSettingsSectionInitalValues.js.html +1 -1
  328. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useStaticSettingsSection.js.html +1 -1
  329. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/index.html +1 -1
  330. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/index.js.html +1 -1
  331. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/useAppSettings.js.html +1 -1
  332. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/index.html +1 -1
  333. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/index.js.html +1 -1
  334. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/useSettingSection.js.html +1 -1
  335. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/index.html +1 -1
  336. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/index.js.html +1 -1
  337. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/useSettings.js.html +1 -1
  338. package/src/artifacts/coverage-jest/Settings/index.html +1 -1
  339. package/src/artifacts/coverage-jest/Settings/index.js.html +1 -1
  340. package/src/artifacts/coverage-jest/Tags/Tags.js.html +1 -1
  341. package/src/artifacts/coverage-jest/Tags/hooks/index.html +1 -1
  342. package/src/artifacts/coverage-jest/Tags/hooks/index.js.html +1 -1
  343. package/src/artifacts/coverage-jest/Tags/hooks/useTags.js.html +1 -1
  344. package/src/artifacts/coverage-jest/Tags/hooks/useTagsEnabled.js.html +1 -1
  345. package/src/artifacts/coverage-jest/Tags/index.html +1 -1
  346. package/src/artifacts/coverage-jest/Tags/index.js.html +1 -1
  347. package/src/artifacts/coverage-jest/Tags/tagsConfig.js.html +1 -1
  348. package/src/artifacts/coverage-jest/Typedown/Typedown.js.html +136 -7
  349. package/src/artifacts/coverage-jest/Typedown/index.html +3 -3
  350. package/src/artifacts/coverage-jest/Typedown/index.js.html +1 -1
  351. package/src/artifacts/coverage-jest/cobertura-coverage.xml +542 -529
  352. package/src/artifacts/coverage-jest/constants/comparators.js.html +1 -1
  353. package/src/artifacts/coverage-jest/constants/customProperties.js.html +1 -1
  354. package/src/artifacts/coverage-jest/constants/endpoints.js.html +1 -1
  355. package/src/artifacts/coverage-jest/constants/eventCodes.js.html +1 -1
  356. package/src/artifacts/coverage-jest/constants/index.html +1 -1
  357. package/src/artifacts/coverage-jest/constants/pagination.js.html +1 -1
  358. package/src/artifacts/coverage-jest/hooks/index.html +1 -1
  359. package/src/artifacts/coverage-jest/hooks/index.js.html +1 -1
  360. package/src/artifacts/coverage-jest/hooks/intlHooks/index.html +1 -1
  361. package/src/artifacts/coverage-jest/hooks/intlHooks/index.js.html +1 -1
  362. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/index.html +1 -1
  363. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/index.js.html +1 -1
  364. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/useIntlKey.js.html +7 -7
  365. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/index.html +1 -1
  366. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/index.js.html +1 -1
  367. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/useIntlKeyStore.js.html +6 -6
  368. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/index.html +1 -1
  369. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/index.js.html +1 -1
  370. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/useKintIntl.js.html +6 -6
  371. package/src/artifacts/coverage-jest/hooks/typedownHooks/index.html +1 -1
  372. package/src/artifacts/coverage-jest/hooks/typedownHooks/index.js.html +1 -1
  373. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedown.js.html +1 -1
  374. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedownData.js.html +1 -1
  375. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedownToggle.js.html +1 -1
  376. package/src/artifacts/coverage-jest/hooks/useActionListRef.js.html +1 -1
  377. package/src/artifacts/coverage-jest/hooks/useActiveElement.js.html +1 -1
  378. package/src/artifacts/coverage-jest/hooks/useCustProps.js.html +1 -1
  379. package/src/artifacts/coverage-jest/hooks/useCustomProperties.js.html +1 -1
  380. package/src/artifacts/coverage-jest/hooks/useHelperApp.js.html +1 -1
  381. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/index.html +1 -1
  382. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/index.js.html +1 -1
  383. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/useInvalidateRefdata.js.html +2 -2
  384. package/src/artifacts/coverage-jest/hooks/useKiwtFieldArray.js.html +1 -1
  385. package/src/artifacts/coverage-jest/hooks/useKiwtSASQuery.js.html +9 -9
  386. package/src/artifacts/coverage-jest/hooks/useLocalPageStore.js.html +1 -1
  387. package/src/artifacts/coverage-jest/hooks/useLocalStorageState.js.html +5 -5
  388. package/src/artifacts/coverage-jest/hooks/useModConfigEntries.js.html +1 -1
  389. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/index.html +17 -17
  390. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/index.js.html +1 -1
  391. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/useMutateCustomProperties.js.html +16 -16
  392. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/index.html +21 -21
  393. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/index.js.html +1 -1
  394. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/useMutateGeneric.js.html +93 -93
  395. package/src/artifacts/coverage-jest/hooks/useMutateModConfigEntry.js.html +1 -1
  396. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/index.html +21 -21
  397. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/index.js.html +1 -1
  398. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/useMutateRefdataCategory.js.html +40 -40
  399. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/index.html +21 -21
  400. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/index.js.html +1 -1
  401. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/useMutateRefdataValue.js.html +44 -44
  402. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/index.html +21 -21
  403. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/index.js.html +1 -1
  404. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/useMutateTemplates.js.html +38 -38
  405. package/src/artifacts/coverage-jest/hooks/useParallelBatchFetch.js.html +1 -1
  406. package/src/artifacts/coverage-jest/hooks/usePrevNextPagination.js.html +20 -20
  407. package/src/artifacts/coverage-jest/hooks/useQIndex.js.html +8 -8
  408. package/src/artifacts/coverage-jest/hooks/useRefdata.js.html +1 -1
  409. package/src/artifacts/coverage-jest/hooks/useSASQQueryMeta.js.html +1 -1
  410. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/index.html +1 -1
  411. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/index.js.html +1 -1
  412. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/useStandaloneSASQQueryParameter.js.html +1 -1
  413. package/src/artifacts/coverage-jest/hooks/useTemplates.js.html +1 -1
  414. package/src/artifacts/coverage-jest/index.html +95 -95
  415. package/src/artifacts/coverage-jest/utils/buildUrl.js.html +1 -1
  416. package/src/artifacts/coverage-jest/utils/downloadBlob.js.html +2 -2
  417. package/src/artifacts/coverage-jest/utils/filterParsers/deparseKiwtQueryFilters.js.html +3 -3
  418. package/src/artifacts/coverage-jest/utils/filterParsers/index.html +1 -1
  419. package/src/artifacts/coverage-jest/utils/filterParsers/index.js.html +1 -1
  420. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryFilters.js.html +3 -3
  421. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryGroups.js.html +2 -2
  422. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryString.js.html +5 -5
  423. package/src/artifacts/coverage-jest/utils/generateKiwtQuery.js.html +7 -7
  424. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/generateKiwtQueryParams.js.html +125 -125
  425. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/index.html +21 -21
  426. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/index.js.html +1 -1
  427. package/src/artifacts/coverage-jest/utils/groupCustomPropertiesByCtx.js.html +2 -2
  428. package/src/artifacts/coverage-jest/utils/index.html +5 -5
  429. package/src/artifacts/coverage-jest/utils/index.js.html +1 -1
  430. package/src/artifacts/coverage-jest/utils/matchString/index.html +1 -1
  431. package/src/artifacts/coverage-jest/utils/matchString/index.js.html +1 -1
  432. package/src/artifacts/coverage-jest/utils/matchString/matchString.js.html +2 -2
  433. package/src/artifacts/coverage-jest/utils/modConfigEntriesQueryKey.js.html +2 -2
  434. package/src/artifacts/coverage-jest/utils/parseErrorResponse.js.html +2 -2
  435. package/src/artifacts/coverage-jest/utils/parseModConfigEntry.js.html +2 -2
  436. package/src/artifacts/coverage-jest/utils/refdataOptions.js.html +1 -1
  437. package/src/artifacts/coverage-jest/utils/refdataQueryKey/index.html +1 -1
  438. package/src/artifacts/coverage-jest/utils/refdataQueryKey/index.js.html +1 -1
  439. package/src/artifacts/coverage-jest/utils/refdataQueryKey/refdataQueryKey.js.html +2 -2
  440. package/src/artifacts/coverage-jest/utils/selectorSafe.js.html +2 -2
  441. package/src/artifacts/coverage-jest/utils/sortByLabel.js.html +2 -2
  442. package/src/artifacts/coverage-jest/utils/stringStyling/boldString.js.html +2 -2
  443. package/src/artifacts/coverage-jest/utils/stringStyling/highlightString.js.html +2 -2
  444. package/src/artifacts/coverage-jest/utils/stringStyling/index.html +1 -1
  445. package/src/artifacts/coverage-jest/utils/stringStyling/index.js.html +1 -1
  446. package/src/artifacts/coverage-jest/utils/toCamelCase.js.html +2 -2
  447. package/src/artifacts/coverage-jest/utils/typedownQueryKey.js.html +2 -2
  448. package/src/artifacts/coverage-jest/validators/index.html +1 -1
  449. package/src/artifacts/coverage-jest/validators/index.js.html +1 -1
  450. package/src/artifacts/coverage-jest/validators/validators.js.html +1 -1
  451. package/src/lib/QueryTypedown/QueryTypedown.js +7 -2
  452. package/src/lib/QueryTypedown/README.md +7 -6
  453. package/src/lib/Settings/StaticSettingsField/StaticSettingsField.js +6 -1
  454. package/src/lib/Settings/StaticSettingsField/StaticSettingsFieldComponent/StaticSettingsFieldComponent.js +18 -0
  455. package/src/lib/Typedown/README.md +27 -1
  456. package/src/lib/Typedown/Typedown.js +47 -4
  457. package/src/lib/hooks/__mocks__/useMutateGeneric.js +14 -0
  458. package/src/lib/hooks/useMutateCustomProperties/useMutateCustomProperties.test.js +65 -0
  459. package/src/lib/hooks/useMutateGeneric/useMutateGeneric.test.js +194 -0
  460. package/src/lib/hooks/useMutateRefdataCategory/useMutateRefdataCategory.test.js +76 -0
  461. package/src/lib/hooks/useMutateRefdataValue/useMutateRefdataValue.test.js +93 -0
  462. package/src/lib/hooks/useMutateTemplates/useMutateTemplates.test.js +33 -0
  463. package/src/lib/utils/generateKiwtQueryParams/generateKiwtQueryParams.test.js +248 -17
@@ -12,54 +12,76 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
12
12
  // A utility function to provide this all-in-one functionality used in various places
13
13
 
14
14
  const useMutateGeneric = function () {
15
- let {
16
- afterQueryCalls: {
17
- delete: afterQueryDelete = _noop.default,
18
- post: afterQueryPost = _noop.default,
19
- put: afterQueryPut = _noop.default
20
- } = {},
21
- catchQueryCalls: {
22
- delete: catchQueryDelete = _noop.default,
23
- post: catchQueryPost = _noop.default,
24
- put: catchQueryPut = _noop.default
25
- } = {},
26
- endpoint,
27
- endpointMutators: {
28
- delete: endpointMutatorDelete = id => `${endpoint}/${id}`,
29
- post: endpointMutatorPost = () => endpoint,
30
- put: endpointMutatorPut = data => `${endpoint}/${data.id}`
31
- } = {},
32
- payloadMutators: {
33
- post: payloadMutatorPost = data => ({
34
- json: data
35
- }),
36
- put: payloadMutatorPut = data => ({
37
- json: data
38
- })
39
- } = {},
40
- promiseReturns: {
41
- delete: promiseReturnDelete = (id, ky) => ky.delete(endpointMutatorDelete(id)).json(),
42
- post: promiseReturnPost = (data, ky) => ky.post(endpointMutatorPost(data), payloadMutatorPost(data)).json(),
43
- put: promiseReturnPut = (data, ky) => ky.put(endpointMutatorPut(data), payloadMutatorPut(data)).json()
44
- } = {},
45
- queryKey = [],
46
- // Must be type: array
47
- queryKeyMutators: {
48
- delete: queryKeyMutatorDelete = () => [...queryKey, 'delete'],
49
- post: queryKeyMutatorPost = () => [...queryKey, 'create'],
50
- put: queryKeyMutatorPut = () => [...queryKey, 'edit']
51
- } = {},
52
- queryParams: {
53
- delete: queryParamsDelete = {},
54
- post: queryParamsPost = {},
55
- put: queryParamsPut = {}
56
- } = {},
57
- returnQueryObject: {
58
- delete: returnQueryObjectDelete = false,
59
- post: returnQueryObjectPost = false,
60
- put: returnQueryObjectPut = false
61
- } = {}
62
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
+ let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
16
+ _ref$afterQueryCalls = _ref.afterQueryCalls,
17
+ _ref$afterQueryCalls2 = _ref$afterQueryCalls === void 0 ? {} : _ref$afterQueryCalls,
18
+ _ref$afterQueryCalls3 = _ref$afterQueryCalls2.delete,
19
+ afterQueryDelete = _ref$afterQueryCalls3 === void 0 ? _noop.default : _ref$afterQueryCalls3,
20
+ _ref$afterQueryCalls4 = _ref$afterQueryCalls2.post,
21
+ afterQueryPost = _ref$afterQueryCalls4 === void 0 ? _noop.default : _ref$afterQueryCalls4,
22
+ _ref$afterQueryCalls5 = _ref$afterQueryCalls2.put,
23
+ afterQueryPut = _ref$afterQueryCalls5 === void 0 ? _noop.default : _ref$afterQueryCalls5,
24
+ _ref$catchQueryCalls = _ref.catchQueryCalls,
25
+ _ref$catchQueryCalls2 = _ref$catchQueryCalls === void 0 ? {} : _ref$catchQueryCalls,
26
+ _ref$catchQueryCalls3 = _ref$catchQueryCalls2.delete,
27
+ catchQueryDelete = _ref$catchQueryCalls3 === void 0 ? _noop.default : _ref$catchQueryCalls3,
28
+ _ref$catchQueryCalls4 = _ref$catchQueryCalls2.post,
29
+ catchQueryPost = _ref$catchQueryCalls4 === void 0 ? _noop.default : _ref$catchQueryCalls4,
30
+ _ref$catchQueryCalls5 = _ref$catchQueryCalls2.put,
31
+ catchQueryPut = _ref$catchQueryCalls5 === void 0 ? _noop.default : _ref$catchQueryCalls5,
32
+ endpoint = _ref.endpoint,
33
+ _ref$endpointMutators = _ref.endpointMutators,
34
+ _ref$endpointMutators2 = _ref$endpointMutators === void 0 ? {} : _ref$endpointMutators,
35
+ _ref$endpointMutators3 = _ref$endpointMutators2.delete,
36
+ endpointMutatorDelete = _ref$endpointMutators3 === void 0 ? id => "".concat(endpoint, "/").concat(id) : _ref$endpointMutators3,
37
+ _ref$endpointMutators4 = _ref$endpointMutators2.post,
38
+ endpointMutatorPost = _ref$endpointMutators4 === void 0 ? () => endpoint : _ref$endpointMutators4,
39
+ _ref$endpointMutators5 = _ref$endpointMutators2.put,
40
+ endpointMutatorPut = _ref$endpointMutators5 === void 0 ? data => "".concat(endpoint, "/").concat(data.id) : _ref$endpointMutators5,
41
+ _ref$payloadMutators = _ref.payloadMutators,
42
+ _ref$payloadMutators2 = _ref$payloadMutators === void 0 ? {} : _ref$payloadMutators,
43
+ _ref$payloadMutators3 = _ref$payloadMutators2.post,
44
+ payloadMutatorPost = _ref$payloadMutators3 === void 0 ? data => ({
45
+ json: data
46
+ }) : _ref$payloadMutators3,
47
+ _ref$payloadMutators4 = _ref$payloadMutators2.put,
48
+ payloadMutatorPut = _ref$payloadMutators4 === void 0 ? data => ({
49
+ json: data
50
+ }) : _ref$payloadMutators4,
51
+ _ref$promiseReturns = _ref.promiseReturns,
52
+ _ref$promiseReturns2 = _ref$promiseReturns === void 0 ? {} : _ref$promiseReturns,
53
+ _ref$promiseReturns2$ = _ref$promiseReturns2.delete,
54
+ promiseReturnDelete = _ref$promiseReturns2$ === void 0 ? (id, ky) => ky.delete(endpointMutatorDelete(id)).json() : _ref$promiseReturns2$,
55
+ _ref$promiseReturns2$2 = _ref$promiseReturns2.post,
56
+ promiseReturnPost = _ref$promiseReturns2$2 === void 0 ? (data, ky) => ky.post(endpointMutatorPost(data), payloadMutatorPost(data)).json() : _ref$promiseReturns2$2,
57
+ _ref$promiseReturns2$3 = _ref$promiseReturns2.put,
58
+ promiseReturnPut = _ref$promiseReturns2$3 === void 0 ? (data, ky) => ky.put(endpointMutatorPut(data), payloadMutatorPut(data)).json() : _ref$promiseReturns2$3,
59
+ _ref$queryKey = _ref.queryKey,
60
+ queryKey = _ref$queryKey === void 0 ? [] : _ref$queryKey,
61
+ _ref$queryKeyMutators = _ref.queryKeyMutators,
62
+ _ref$queryKeyMutators2 = _ref$queryKeyMutators === void 0 ? {} : _ref$queryKeyMutators,
63
+ _ref$queryKeyMutators3 = _ref$queryKeyMutators2.delete,
64
+ queryKeyMutatorDelete = _ref$queryKeyMutators3 === void 0 ? () => [...queryKey, 'delete'] : _ref$queryKeyMutators3,
65
+ _ref$queryKeyMutators4 = _ref$queryKeyMutators2.post,
66
+ queryKeyMutatorPost = _ref$queryKeyMutators4 === void 0 ? () => [...queryKey, 'create'] : _ref$queryKeyMutators4,
67
+ _ref$queryKeyMutators5 = _ref$queryKeyMutators2.put,
68
+ queryKeyMutatorPut = _ref$queryKeyMutators5 === void 0 ? () => [...queryKey, 'edit'] : _ref$queryKeyMutators5,
69
+ _ref$queryParams = _ref.queryParams,
70
+ _ref$queryParams2 = _ref$queryParams === void 0 ? {} : _ref$queryParams,
71
+ _ref$queryParams2$del = _ref$queryParams2.delete,
72
+ queryParamsDelete = _ref$queryParams2$del === void 0 ? {} : _ref$queryParams2$del,
73
+ _ref$queryParams2$pos = _ref$queryParams2.post,
74
+ queryParamsPost = _ref$queryParams2$pos === void 0 ? {} : _ref$queryParams2$pos,
75
+ _ref$queryParams2$put = _ref$queryParams2.put,
76
+ queryParamsPut = _ref$queryParams2$put === void 0 ? {} : _ref$queryParams2$put,
77
+ _ref$returnQueryObjec = _ref.returnQueryObject,
78
+ _ref$returnQueryObjec2 = _ref$returnQueryObjec === void 0 ? {} : _ref$returnQueryObjec,
79
+ _ref$returnQueryObjec3 = _ref$returnQueryObjec2.delete,
80
+ returnQueryObjectDelete = _ref$returnQueryObjec3 === void 0 ? false : _ref$returnQueryObjec3,
81
+ _ref$returnQueryObjec4 = _ref$returnQueryObjec2.post,
82
+ returnQueryObjectPost = _ref$returnQueryObjec4 === void 0 ? false : _ref$returnQueryObjec4,
83
+ _ref$returnQueryObjec5 = _ref$returnQueryObjec2.put,
84
+ returnQueryObjectPut = _ref$returnQueryObjec5 === void 0 ? false : _ref$returnQueryObjec5;
63
85
  const ky = (0, _core.useOkapiKy)();
64
86
 
65
87
  // DELETE Object
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+
3
+ var _reactQuery = require("react-query");
4
+ var _core = require("@folio/stripes/core");
5
+ var _react = require("@folio/jest-config-stripes/testing-library/react");
6
+ var _useMutateGeneric = _interopRequireDefault(require("./useMutateGeneric"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ // EXAMPLE -- Using the mockKy spies from useOkapiKy mock
9
+
10
+ describe('useMutateGeneric', () => {
11
+ const mockEndpoint = 'test/endpoint';
12
+ const mockQueryKey = ['test', 'key'];
13
+ beforeEach(() => {
14
+ jest.clearAllMocks();
15
+ });
16
+ describe.each([{
17
+ verb: 'delete',
18
+ callIndex: 0,
19
+ payload: '12345',
20
+ expectedKeySuffix: 'delete',
21
+ expectedUrl: 'test/endpoint/12345',
22
+ mockSpy: _core.mockDelete
23
+ }, {
24
+ verb: 'put',
25
+ callIndex: 1,
26
+ payload: {
27
+ id: '12345',
28
+ name: 'test'
29
+ },
30
+ expectedKeySuffix: 'edit',
31
+ expectedUrl: 'test/endpoint/12345',
32
+ expectedPayload: {
33
+ json: {
34
+ id: '12345',
35
+ name: 'test'
36
+ }
37
+ },
38
+ mockSpy: _core.mockPut
39
+ }, {
40
+ verb: 'post',
41
+ callIndex: 2,
42
+ payload: {
43
+ name: 'new test'
44
+ },
45
+ expectedKeySuffix: 'create',
46
+ expectedUrl: 'test/endpoint',
47
+ expectedPayload: {
48
+ json: {
49
+ name: 'new test'
50
+ }
51
+ },
52
+ mockSpy: _core.mockPost
53
+ }])('Verb: $verb', _ref => {
54
+ let verb = _ref.verb,
55
+ callIndex = _ref.callIndex,
56
+ payload = _ref.payload,
57
+ expectedKeySuffix = _ref.expectedKeySuffix,
58
+ expectedUrl = _ref.expectedUrl,
59
+ expectedPayload = _ref.expectedPayload,
60
+ mockSpy = _ref.mockSpy;
61
+ describe("initialization for ".concat(verb), () => {
62
+ let hookResult;
63
+ beforeEach(() => {
64
+ const _renderHook = (0, _react.renderHook)(() => (0, _useMutateGeneric.default)({
65
+ endpoint: mockEndpoint,
66
+ queryKey: mockQueryKey
67
+ })),
68
+ result = _renderHook.result;
69
+ hookResult = result;
70
+ });
71
+ test("returns the ".concat(verb, " mutation function"), () => {
72
+ expect(typeof hookResult.current[verb]).toBe('function');
73
+ });
74
+ test("configures useMutation with the correct ".concat(verb, " queryKey"), () => {
75
+ // useMutation call index: 0=delete, 1=put, 2=post
76
+ expect(_reactQuery.useMutation.mock.calls[callIndex][0]).toEqual([...mockQueryKey, expectedKeySuffix]);
77
+ });
78
+ });
79
+ describe("with returnQueryObject: true, return full mutation object for ".concat(verb), () => {
80
+ let hookResult;
81
+ beforeEach(() => {
82
+ const _renderHook2 = (0, _react.renderHook)(() => (0, _useMutateGeneric.default)({
83
+ endpoint: mockEndpoint,
84
+ returnQueryObject: {
85
+ [verb]: true
86
+ }
87
+ })),
88
+ result = _renderHook2.result;
89
+ hookResult = result;
90
+ });
91
+ test("returns the full mutation object for ".concat(verb, " when requested"), () => {
92
+ expect(hookResult.current[verb]).toHaveProperty('mutateAsync');
93
+ });
94
+ });
95
+ describe("execution for ".concat(verb), () => {
96
+ const afterCall = jest.fn();
97
+ const catchCall = jest.fn();
98
+ const customMutator = jest.fn(p => verb === 'post' ? 'custom/post' : "custom/".concat((p === null || p === void 0 ? void 0 : p.id) || p));
99
+ describe('successful lifecycle', () => {
100
+ const successData = {
101
+ id: 'some-id'
102
+ };
103
+ beforeEach(async () => {
104
+ _core.mockKyJson.mockResolvedValueOnce(successData);
105
+ const _renderHook3 = (0, _react.renderHook)(() => (0, _useMutateGeneric.default)({
106
+ endpoint: mockEndpoint,
107
+ afterQueryCalls: {
108
+ [verb]: afterCall
109
+ },
110
+ endpointMutators: {
111
+ [verb]: customMutator
112
+ }
113
+ })),
114
+ result = _renderHook3.result;
115
+ await (0, _react.waitFor)(async () => {
116
+ await result.current[verb](payload);
117
+ });
118
+ });
119
+ test('calls the custom endpointMutator', () => {
120
+ expect(customMutator).toHaveBeenCalledWith(payload);
121
+ });
122
+ test('calls the correct ky verb with the mutated URL', () => {
123
+ const expectedCustomUrl = verb === 'post' ? 'custom/post' : 'custom/12345';
124
+ if (expectedPayload) {
125
+ expect(mockSpy).toHaveBeenCalledWith(expectedCustomUrl, expectedPayload);
126
+ } else {
127
+ expect(mockSpy).toHaveBeenCalledWith(expectedCustomUrl);
128
+ }
129
+ });
130
+ test('executes the afterQuery success callback', () => {
131
+ expect(afterCall).toHaveBeenCalledWith(successData);
132
+ });
133
+ });
134
+ describe('failure lifecycle', () => {
135
+ beforeEach(async () => {
136
+ mockSpy.mockImplementationOnce(() => ({
137
+ json: () => Promise.reject(new Error('Network Error'))
138
+ }));
139
+ const _renderHook4 = (0, _react.renderHook)(() => (0, _useMutateGeneric.default)({
140
+ endpoint: mockEndpoint,
141
+ catchQueryCalls: {
142
+ [verb]: catchCall
143
+ }
144
+ })),
145
+ result = _renderHook4.result;
146
+ await (0, _react.waitFor)(async () => {
147
+ try {
148
+ await result.current[verb](payload);
149
+ } catch (e) {/* error handled in hook */}
150
+ });
151
+ });
152
+ test('executes the catchQuery failure callback', () => {
153
+ expect(catchCall).toHaveBeenCalled();
154
+ });
155
+ });
156
+ describe('default mutators fallback', () => {
157
+ beforeEach(async () => {
158
+ const _renderHook5 = (0, _react.renderHook)(() => (0, _useMutateGeneric.default)({
159
+ endpoint: mockEndpoint
160
+ })),
161
+ result = _renderHook5.result;
162
+ await (0, _react.waitFor)(async () => {
163
+ await result.current[verb](payload);
164
+ });
165
+ });
166
+ test('uses default URL construction logic', () => {
167
+ if (expectedPayload) {
168
+ expect(mockSpy).toHaveBeenCalledWith(expectedUrl, expectedPayload);
169
+ } else {
170
+ expect(mockSpy).toHaveBeenCalledWith(expectedUrl);
171
+ }
172
+ });
173
+ });
174
+ });
175
+ describe("returnQueryObject toggle for ".concat(verb), () => {
176
+ let hookResult;
177
+ beforeEach(() => {
178
+ const _renderHook6 = (0, _react.renderHook)(() => (0, _useMutateGeneric.default)({
179
+ endpoint: mockEndpoint,
180
+ returnQueryObject: {
181
+ [verb]: true
182
+ }
183
+ })),
184
+ result = _renderHook6.result;
185
+ hookResult = result;
186
+ });
187
+ test('returns the full mutation object', () => {
188
+ expect(hookResult.current[verb]).toHaveProperty('mutateAsync');
189
+ });
190
+ });
191
+ });
192
+ });
@@ -12,11 +12,9 @@ var _endpoints = require("../constants/endpoints");
12
12
  // DEPRECATED -- As far as I can see this is now unused anyway
13
13
  // KInt modules are swapping to AppSettings instead of mod-settings, so no centralised components should be needed
14
14
  const useMutateModConfigEntry = _ref => {
15
- let {
16
- configName,
17
- moduleName,
18
- id
19
- } = _ref;
15
+ let configName = _ref.configName,
16
+ moduleName = _ref.moduleName,
17
+ id = _ref.id;
20
18
  // eslint-disable-next-line no-console
21
19
  console.warn('useMutateModConfigEntry is deprecated, as it utilises mod-config');
22
20
  const ky = (0, _core.useOkapiKy)();
@@ -25,12 +23,12 @@ const useMutateModConfigEntry = _ref => {
25
23
  configName,
26
24
  moduleName
27
25
  });
28
- const putQueryObject = (0, _reactQuery.useMutation)([...baseNamespace, 'putConfigEntry', id], async data => ky.put(`${_endpoints.MOD_SETTINGS_ENDPOINT}/${id}`, {
26
+ const putQueryObject = (0, _reactQuery.useMutation)([...baseNamespace, 'putConfigEntry', id], async data => ky.put("".concat(_endpoints.MOD_SETTINGS_ENDPOINT, "/").concat(id), {
29
27
  json: data
30
28
  }).json().then(() => {
31
29
  queryClient.invalidateQueries(baseNamespace);
32
30
  }));
33
- const postQueryObject = (0, _reactQuery.useMutation)([...baseNamespace, 'postConfigEntry'], async data => ky.post(`${_endpoints.MOD_SETTINGS_ENDPOINT}`, {
31
+ const postQueryObject = (0, _reactQuery.useMutation)([...baseNamespace, 'postConfigEntry'], async data => ky.post("".concat(_endpoints.MOD_SETTINGS_ENDPOINT), {
34
32
  json: data
35
33
  }).json().then(() => {
36
34
  queryClient.invalidateQueries(baseNamespace);
@@ -7,19 +7,28 @@ exports.default = void 0;
7
7
  var _noop = _interopRequireDefault(require("lodash/noop"));
8
8
  var _useInvalidateRefdata = _interopRequireDefault(require("../useInvalidateRefdata"));
9
9
  var _useMutateGeneric = _interopRequireDefault(require("../useMutateGeneric"));
10
+ const _excluded = ["afterQueryCalls", "endpoint"];
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
18
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
11
19
  const useMutateRefdataCategory = _ref => {
12
- let {
13
- afterQueryCalls: {
14
- delete: afterQueryDelete = _noop.default,
15
- post: afterQueryPost = _noop.default,
16
- put: afterQueryPut = _noop.default
17
- } = {},
18
- endpoint,
19
- ...mutateGenericProps
20
- } = _ref;
20
+ let _ref$afterQueryCalls = _ref.afterQueryCalls,
21
+ _ref$afterQueryCalls2 = _ref$afterQueryCalls === void 0 ? {} : _ref$afterQueryCalls,
22
+ _ref$afterQueryCalls3 = _ref$afterQueryCalls2.delete,
23
+ afterQueryDelete = _ref$afterQueryCalls3 === void 0 ? _noop.default : _ref$afterQueryCalls3,
24
+ _ref$afterQueryCalls4 = _ref$afterQueryCalls2.post,
25
+ afterQueryPost = _ref$afterQueryCalls4 === void 0 ? _noop.default : _ref$afterQueryCalls4,
26
+ _ref$afterQueryCalls5 = _ref$afterQueryCalls2.put,
27
+ afterQueryPut = _ref$afterQueryCalls5 === void 0 ? _noop.default : _ref$afterQueryCalls5,
28
+ endpoint = _ref.endpoint,
29
+ mutateGenericProps = _objectWithoutProperties(_ref, _excluded);
21
30
  const invalidateRefdata = (0, _useInvalidateRefdata.default)();
22
- return (0, _useMutateGeneric.default)({
31
+ return (0, _useMutateGeneric.default)(_objectSpread({
23
32
  afterQueryCalls: {
24
33
  delete: res => {
25
34
  invalidateRefdata().then(() => {
@@ -40,14 +49,12 @@ const useMutateRefdataCategory = _ref => {
40
49
  endpoint,
41
50
  payloadMutators: {
42
51
  post: data => ({
43
- json: {
44
- ...data,
52
+ json: _objectSpread(_objectSpread({}, data), {}, {
45
53
  values: []
46
- }
54
+ })
47
55
  })
48
56
  },
49
- queryKey: ['stripes-kint-components', 'useMutateRefdataCategory'],
50
- ...mutateGenericProps
51
- });
57
+ queryKey: ['stripes-kint-components', 'useMutateRefdataCategory']
58
+ }, mutateGenericProps));
52
59
  };
53
60
  var _default = exports.default = useMutateRefdataCategory;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _react = require("@folio/jest-config-stripes/testing-library/react");
4
+ var _useMutateGeneric = _interopRequireDefault(require("../useMutateGeneric"));
5
+ var _useInvalidateRefdata = _interopRequireDefault(require("../useInvalidateRefdata"));
6
+ var _useMutateRefdataCategory = _interopRequireDefault(require("./useMutateRefdataCategory"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ // Mocking dependencies
9
+ jest.mock('../useMutateGeneric');
10
+ jest.mock('../useInvalidateRefdata');
11
+ describe('useMutateRefdataCategory', () => {
12
+ const mockEndpoint = 'erm/refdata';
13
+ const mockInvalidate = jest.fn(() => Promise.resolve());
14
+ beforeEach(() => {
15
+ jest.clearAllMocks();
16
+ _useInvalidateRefdata.default.mockReturnValue(mockInvalidate);
17
+ });
18
+ describe('initialization', () => {
19
+ let sentConfig;
20
+ beforeEach(() => {
21
+ (0, _react.renderHook)(() => (0, _useMutateRefdataCategory.default)({
22
+ endpoint: mockEndpoint
23
+ }));
24
+ sentConfig = _useMutateGeneric.default.mock.calls[0][0];
25
+ });
26
+ test('passes the correct endpoint', () => {
27
+ expect(sentConfig.endpoint).toBe(mockEndpoint);
28
+ });
29
+ test('constructs the correct queryKey', () => {
30
+ expect(sentConfig.queryKey).toEqual(['stripes-kint-components', 'useMutateRefdataCategory']);
31
+ });
32
+ test('payloadMutator for post adds an empty values array', () => {
33
+ const result = sentConfig.payloadMutators.post({
34
+ desc: 'new category'
35
+ });
36
+ expect(result.json).toEqual({
37
+ desc: 'new category',
38
+ values: []
39
+ });
40
+ });
41
+ });
42
+ describe('afterQueryCalls lifecycle', () => {
43
+ const mockRes = {
44
+ id: '123'
45
+ };
46
+ let sentConfig;
47
+ describe.each(['delete', 'post', 'put'])('Verb: %s', verb => {
48
+ const externalCallback = jest.fn();
49
+ beforeEach(async () => {
50
+ (0, _react.renderHook)(() => (0, _useMutateRefdataCategory.default)({
51
+ endpoint: mockEndpoint,
52
+ afterQueryCalls: {
53
+ [verb]: externalCallback
54
+ }
55
+ }));
56
+ sentConfig = _useMutateGeneric.default.mock.calls[0][0];
57
+
58
+ // Manually trigger the wrapper function defined in the hook
59
+ await sentConfig.afterQueryCalls[verb](mockRes);
60
+ });
61
+ test("calls invalidateRefdata for ".concat(verb), () => {
62
+ expect(mockInvalidate).toHaveBeenCalled();
63
+ });
64
+ test("calls the provided afterQuery".concat(verb.charAt(0).toUpperCase() + verb.slice(1), " callback"), () => {
65
+ expect(externalCallback).toHaveBeenCalledWith(mockRes);
66
+ });
67
+ });
68
+ });
69
+ });
@@ -7,20 +7,29 @@ exports.default = void 0;
7
7
  var _noop = _interopRequireDefault(require("lodash/noop"));
8
8
  var _useInvalidateRefdata = _interopRequireDefault(require("../useInvalidateRefdata"));
9
9
  var _useMutateGeneric = _interopRequireDefault(require("../useMutateGeneric"));
10
+ const _excluded = ["afterQueryCalls", "endpoint", "id"];
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
18
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
11
19
  const useMutateRefdataValue = _ref => {
12
- let {
13
- afterQueryCalls: {
14
- delete: afterQueryDelete = _noop.default,
15
- post: afterQueryPost = _noop.default,
16
- put: afterQueryPut = _noop.default
17
- } = {},
18
- endpoint,
19
- id,
20
- ...mutateGenericProps
21
- } = _ref;
20
+ let _ref$afterQueryCalls = _ref.afterQueryCalls,
21
+ _ref$afterQueryCalls2 = _ref$afterQueryCalls === void 0 ? {} : _ref$afterQueryCalls,
22
+ _ref$afterQueryCalls3 = _ref$afterQueryCalls2.delete,
23
+ afterQueryDelete = _ref$afterQueryCalls3 === void 0 ? _noop.default : _ref$afterQueryCalls3,
24
+ _ref$afterQueryCalls4 = _ref$afterQueryCalls2.post,
25
+ afterQueryPost = _ref$afterQueryCalls4 === void 0 ? _noop.default : _ref$afterQueryCalls4,
26
+ _ref$afterQueryCalls5 = _ref$afterQueryCalls2.put,
27
+ afterQueryPut = _ref$afterQueryCalls5 === void 0 ? _noop.default : _ref$afterQueryCalls5,
28
+ endpoint = _ref.endpoint,
29
+ id = _ref.id,
30
+ mutateGenericProps = _objectWithoutProperties(_ref, _excluded);
22
31
  const invalidateRefdata = (0, _useInvalidateRefdata.default)();
23
- return (0, _useMutateGeneric.default)({
32
+ return (0, _useMutateGeneric.default)(_objectSpread({
24
33
  afterQueryCalls: {
25
34
  delete: res => {
26
35
  invalidateRefdata().then(() => {
@@ -41,7 +50,7 @@ const useMutateRefdataValue = _ref => {
41
50
  endpoint,
42
51
  id,
43
52
  promiseReturns: {
44
- delete: (delId, ky) => ky.put(`${endpoint}/${id}`, {
53
+ delete: (delId, ky) => ky.put("".concat(endpoint, "/").concat(id), {
45
54
  json: {
46
55
  id,
47
56
  values: [{
@@ -50,21 +59,20 @@ const useMutateRefdataValue = _ref => {
50
59
  }]
51
60
  }
52
61
  }).json(),
53
- post: (data, ky) => ky.put(`${endpoint}/${id}`, {
62
+ post: (data, ky) => ky.put("".concat(endpoint, "/").concat(id), {
54
63
  json: {
55
64
  id,
56
65
  values: [data]
57
66
  }
58
67
  }).json(),
59
- put: (data, ky) => ky.put(`${endpoint}/${id}`, {
68
+ put: (data, ky) => ky.put("".concat(endpoint, "/").concat(id), {
60
69
  json: {
61
70
  id,
62
71
  values: [data]
63
72
  }
64
73
  }).json()
65
74
  },
66
- queryKey: ['stripes-kint-components', 'useMutateRefdataValue', id],
67
- ...mutateGenericProps
68
- });
75
+ queryKey: ['stripes-kint-components', 'useMutateRefdataValue', id]
76
+ }, mutateGenericProps));
69
77
  };
70
78
  var _default = exports.default = useMutateRefdataValue;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ var _react = require("@folio/jest-config-stripes/testing-library/react");
4
+ var _useMutateGeneric = _interopRequireDefault(require("../useMutateGeneric"));
5
+ var _useInvalidateRefdata = _interopRequireDefault(require("../useInvalidateRefdata"));
6
+ var _useMutateRefdataValue = _interopRequireDefault(require("./useMutateRefdataValue"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ jest.mock('../useMutateGeneric');
9
+ jest.mock('../useInvalidateRefdata');
10
+ describe('useMutateRefdataValue', () => {
11
+ const mockEndpoint = 'erm/refdata/values';
12
+ const mockId = 'category-123';
13
+ const mockInvalidate = jest.fn(() => Promise.resolve());
14
+ const mockKy = {
15
+ put: jest.fn(() => ({
16
+ json: () => Promise.resolve({
17
+ success: true
18
+ })
19
+ }))
20
+ };
21
+ beforeEach(() => {
22
+ jest.clearAllMocks();
23
+ _useInvalidateRefdata.default.mockReturnValue(mockInvalidate);
24
+ });
25
+ describe('initialization', () => {
26
+ test('constructs the correct queryKey using the ID', () => {
27
+ (0, _react.renderHook)(() => (0, _useMutateRefdataValue.default)({
28
+ endpoint: mockEndpoint,
29
+ id: mockId
30
+ }));
31
+ const sentConfig = _useMutateGeneric.default.mock.calls[0][0];
32
+ expect(sentConfig.queryKey).toEqual(['stripes-kint-components', 'useMutateRefdataValue', mockId]);
33
+ });
34
+ });
35
+ describe('custom promiseReturns logic', () => {
36
+ let promiseReturns;
37
+ beforeEach(() => {
38
+ (0, _react.renderHook)(() => (0, _useMutateRefdataValue.default)({
39
+ endpoint: mockEndpoint,
40
+ id: mockId
41
+ }));
42
+ promiseReturns = _useMutateGeneric.default.mock.calls[0][0].promiseReturns;
43
+ });
44
+ test('delete: sends a PUT to the parent category with _delete: true', async () => {
45
+ await promiseReturns.delete('value-abc', mockKy);
46
+ expect(mockKy.put).toHaveBeenCalledWith("".concat(mockEndpoint, "/").concat(mockId), {
47
+ json: {
48
+ id: mockId,
49
+ values: [{
50
+ id: 'value-abc',
51
+ _delete: true
52
+ }]
53
+ }
54
+ });
55
+ });
56
+ test('post: sends a PUT to the parent category with the new value data', async () => {
57
+ const newData = {
58
+ label: 'New Value'
59
+ };
60
+ await promiseReturns.post(newData, mockKy);
61
+ expect(mockKy.put).toHaveBeenCalledWith("".concat(mockEndpoint, "/").concat(mockId), {
62
+ json: {
63
+ id: mockId,
64
+ values: [newData]
65
+ }
66
+ });
67
+ });
68
+ test('put: sends a PUT to the parent category with the updated value data', async () => {
69
+ const updateData = {
70
+ id: 'val-1',
71
+ label: 'Updated'
72
+ };
73
+ await promiseReturns.put(updateData, mockKy);
74
+ expect(mockKy.put).toHaveBeenCalledWith("".concat(mockEndpoint, "/").concat(mockId), {
75
+ json: {
76
+ id: mockId,
77
+ values: [updateData]
78
+ }
79
+ });
80
+ });
81
+ });
82
+ describe('afterQueryCalls lifecycle', () => {
83
+ test.each(['delete', 'post', 'put'])('Verb: %s triggers invalidation', async verb => {
84
+ (0, _react.renderHook)(() => (0, _useMutateRefdataValue.default)({
85
+ endpoint: mockEndpoint,
86
+ id: mockId
87
+ }));
88
+ const afterQueryCalls = _useMutateGeneric.default.mock.calls[0][0].afterQueryCalls;
89
+ await afterQueryCalls[verb]({
90
+ success: true
91
+ });
92
+ expect(mockInvalidate).toHaveBeenCalled();
93
+ });
94
+ });
95
+ });