@k-int/stripes-kint-components 5.34.1 → 5.36.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 (327) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/es/index.js +12 -0
  3. package/es/lib/Files/FileUploader/FileUploader.js +119 -0
  4. package/es/lib/Files/FileUploader/index.js +13 -0
  5. package/es/lib/Files/FileView/FileView.js +116 -0
  6. package/es/lib/Files/FileView/index.js +13 -0
  7. package/es/lib/Files/index.js +27 -0
  8. package/es/lib/Files/useFileHandlers.js +133 -0
  9. package/es/lib/NoResultsMessage/NoResultsMessage.js +28 -10
  10. package/es/lib/SASQLookupComponent/SASQLookupComponent.js +109 -60
  11. package/es/lib/SASQLookupComponent/SASQLookupComponent.test.js +11 -0
  12. package/es/lib/SASQLookupComponent/TableBody/TableBody.js +6 -0
  13. package/es/lib/hooks/index.js +8 -0
  14. package/es/lib/hooks/useMutateTemplates/index.js +13 -0
  15. package/es/lib/hooks/useMutateTemplates/useMutateTemplates.js +45 -0
  16. package/es/lib/utils/downloadBlob.js +42 -0
  17. package/es/lib/utils/index.js +9 -1
  18. package/package.json +2 -1
  19. package/src/artifacts/coverage-jest/ActionList/ActionList.js.html +1 -1
  20. package/src/artifacts/coverage-jest/ActionList/ActionListFieldArray.js.html +1 -1
  21. package/src/artifacts/coverage-jest/ActionList/index.html +1 -1
  22. package/src/artifacts/coverage-jest/ActionList/index.js.html +1 -1
  23. package/src/artifacts/coverage-jest/ButtonTypedown/ButtonTypedown.js.html +1 -1
  24. package/src/artifacts/coverage-jest/ButtonTypedown/index.html +1 -1
  25. package/src/artifacts/coverage-jest/ButtonTypedown/index.js.html +1 -1
  26. package/src/artifacts/coverage-jest/ComboButton/ComboButton.js.html +1 -1
  27. package/src/artifacts/coverage-jest/ComboButton/index.html +1 -1
  28. package/src/artifacts/coverage-jest/ComboButton/index.js.html +1 -1
  29. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertiesLookup.js.html +1 -1
  30. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertiesSettings.js.html +1 -1
  31. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertyForm.js.html +1 -1
  32. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertyView.js.html +1 -1
  33. package/src/artifacts/coverage-jest/CustomProperties/Config/index.html +1 -1
  34. package/src/artifacts/coverage-jest/CustomProperties/Config/index.js.html +1 -1
  35. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesEdit.js.html +1 -1
  36. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesEditCtx.js.html +1 -1
  37. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesListField.js.html +1 -1
  38. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertyField.js.html +1 -1
  39. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertyFormCard.js.html +1 -1
  40. package/src/artifacts/coverage-jest/CustomProperties/Edit/index.html +1 -1
  41. package/src/artifacts/coverage-jest/CustomProperties/Edit/index.js.html +1 -1
  42. package/src/artifacts/coverage-jest/CustomProperties/Edit/testResources.js.html +1 -1
  43. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilter.js.html +1 -1
  44. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterField.js.html +1 -1
  45. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js.html +1 -1
  46. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterForm.js.html +1 -1
  47. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesRule.js.html +1 -1
  48. package/src/artifacts/coverage-jest/CustomProperties/Filter/index.html +1 -1
  49. package/src/artifacts/coverage-jest/CustomProperties/Filter/index.js.html +1 -1
  50. package/src/artifacts/coverage-jest/CustomProperties/Filter/testResources.js.html +1 -1
  51. package/src/artifacts/coverage-jest/CustomProperties/Filter/useOperators.js.html +1 -1
  52. package/src/artifacts/coverage-jest/CustomProperties/Filter/useParseActiveFilterStrings.js.html +1 -1
  53. package/src/artifacts/coverage-jest/CustomProperties/Filter/useValueProps.js.html +1 -1
  54. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertiesView.js.html +1 -1
  55. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertiesViewCtx.js.html +1 -1
  56. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertyCard.js.html +1 -1
  57. package/src/artifacts/coverage-jest/CustomProperties/View/index.html +1 -1
  58. package/src/artifacts/coverage-jest/CustomProperties/View/index.js.html +1 -1
  59. package/src/artifacts/coverage-jest/CustomProperties/View/testResources.js.html +1 -1
  60. package/src/artifacts/coverage-jest/CustomProperties/index.html +1 -1
  61. package/src/artifacts/coverage-jest/CustomProperties/index.js.html +1 -1
  62. package/src/artifacts/coverage-jest/CycleButton/CycleButton.js.html +1 -1
  63. package/src/artifacts/coverage-jest/CycleButton/index.html +1 -1
  64. package/src/artifacts/coverage-jest/CycleButton/index.js.html +1 -1
  65. package/src/artifacts/coverage-jest/FieldLabel/FieldLabel.js.html +1 -1
  66. package/src/artifacts/coverage-jest/FieldLabel/index.html +1 -1
  67. package/src/artifacts/coverage-jest/FieldLabel/index.js.html +1 -1
  68. package/src/artifacts/coverage-jest/Files/FileUploader/FileUploader.js.html +487 -0
  69. package/src/artifacts/coverage-jest/Files/FileUploader/index.html +131 -0
  70. package/src/artifacts/coverage-jest/Files/FileUploader/index.js.html +88 -0
  71. package/src/artifacts/coverage-jest/Files/FileView/FileView.js.html +430 -0
  72. package/src/artifacts/coverage-jest/Files/FileView/index.html +131 -0
  73. package/src/artifacts/coverage-jest/Files/FileView/index.js.html +88 -0
  74. package/src/artifacts/coverage-jest/Files/index.html +131 -0
  75. package/src/artifacts/coverage-jest/Files/index.js.html +94 -0
  76. package/src/artifacts/coverage-jest/Files/useFileHandlers.js.html +469 -0
  77. package/src/artifacts/coverage-jest/FormModal/FormModal.js.html +1 -1
  78. package/src/artifacts/coverage-jest/FormModal/index.html +1 -1
  79. package/src/artifacts/coverage-jest/FormModal/index.js.html +1 -1
  80. package/src/artifacts/coverage-jest/FormattedKintMessage/FormattedKintMessage.js.html +1 -1
  81. package/src/artifacts/coverage-jest/FormattedKintMessage/index.html +1 -1
  82. package/src/artifacts/coverage-jest/FormattedKintMessage/index.js.html +1 -1
  83. package/src/artifacts/coverage-jest/IconSelect/IconSelect.js.html +1 -1
  84. package/src/artifacts/coverage-jest/IconSelect/index.html +1 -1
  85. package/src/artifacts/coverage-jest/IconSelect/index.js.html +1 -1
  86. package/src/artifacts/coverage-jest/NoResultsMessage/NoResultsMessage.js.html +70 -13
  87. package/src/artifacts/coverage-jest/NoResultsMessage/index.html +3 -3
  88. package/src/artifacts/coverage-jest/NoResultsMessage/index.js.html +1 -1
  89. package/src/artifacts/coverage-jest/NumberField/NumberField.js.html +1 -1
  90. package/src/artifacts/coverage-jest/NumberField/index.html +1 -1
  91. package/src/artifacts/coverage-jest/NumberField/index.js.html +1 -1
  92. package/src/artifacts/coverage-jest/QueryTypedown/QueryTypedown.js.html +1 -1
  93. package/src/artifacts/coverage-jest/QueryTypedown/index.html +1 -1
  94. package/src/artifacts/coverage-jest/QueryTypedown/index.js.html +1 -1
  95. package/src/artifacts/coverage-jest/RefdataButtons/RefdataButtons.js.html +1 -1
  96. package/src/artifacts/coverage-jest/RefdataButtons/index.html +1 -1
  97. package/src/artifacts/coverage-jest/RefdataButtons/index.js.html +1 -1
  98. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/ResponsiveButtonGroup.js.html +1 -1
  99. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/index.html +1 -1
  100. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/index.js.html +1 -1
  101. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js.html +1 -1
  102. package/src/artifacts/coverage-jest/RichSelect/RichSelect.js.html +1 -1
  103. package/src/artifacts/coverage-jest/RichSelect/index.html +1 -1
  104. package/src/artifacts/coverage-jest/RichSelect/index.js.html +1 -1
  105. package/src/artifacts/coverage-jest/RichSelect/useSelectedOption.js.html +1 -1
  106. package/src/artifacts/coverage-jest/SASQLookupComponent/SASQLookupComponent.js.html +298 -136
  107. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/TableBody.js.html +12 -3
  108. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/index.html +1 -1
  109. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/index.js.html +1 -1
  110. package/src/artifacts/coverage-jest/SASQLookupComponent/index.html +16 -16
  111. package/src/artifacts/coverage-jest/SASQLookupComponent/index.js.html +1 -1
  112. package/src/artifacts/coverage-jest/SASQRoute/SASQRoute.js.html +1 -1
  113. package/src/artifacts/coverage-jest/SASQRoute/index.html +1 -1
  114. package/src/artifacts/coverage-jest/SASQRoute/index.js.html +1 -1
  115. package/src/artifacts/coverage-jest/SASQViewComponent/SASQViewComponent.js.html +12 -12
  116. package/src/artifacts/coverage-jest/SASQViewComponent/index.html +15 -15
  117. package/src/artifacts/coverage-jest/SASQViewComponent/index.js.html +1 -1
  118. package/src/artifacts/coverage-jest/SearchField/SearchField.js.html +1 -1
  119. package/src/artifacts/coverage-jest/SearchField/index.html +1 -1
  120. package/src/artifacts/coverage-jest/SearchField/index.js.html +1 -1
  121. package/src/artifacts/coverage-jest/SearchKeyControl/SearchKeyControl.js.html +1 -1
  122. package/src/artifacts/coverage-jest/SearchKeyControl/index.html +1 -1
  123. package/src/artifacts/coverage-jest/SearchKeyControl/index.js.html +1 -1
  124. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/EditableRefdataCategoryList.js.html +1 -1
  125. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/index.html +1 -1
  126. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/index.js.html +1 -1
  127. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/EditableRefdataList.js.html +1 -1
  128. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/index.html +1 -1
  129. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/index.js.html +1 -1
  130. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsList.js.html +1 -1
  131. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js.html +1 -1
  132. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/index.html +1 -1
  133. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/index.js.html +1 -1
  134. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js.html +1 -1
  135. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/index.html +1 -1
  136. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/index.js.html +1 -1
  137. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/RenderSettingValue.js.html +1 -1
  138. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/index.html +1 -1
  139. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/index.js.html +1 -1
  140. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/SettingField.js.html +1 -1
  141. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/index.html +1 -1
  142. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/index.js.html +1 -1
  143. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/index.html +1 -1
  144. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/index.js.html +1 -1
  145. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/RefdataCategoriesSettings.js.html +1 -1
  146. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/index.html +1 -1
  147. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/index.js.html +1 -1
  148. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPage.js.html +1 -1
  149. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/SettingPagePane.js.html +1 -1
  150. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/index.html +1 -1
  151. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/index.js.html +1 -1
  152. package/src/artifacts/coverage-jest/Settings/SettingPage/index.html +1 -1
  153. package/src/artifacts/coverage-jest/Settings/SettingPage/index.js.html +1 -1
  154. package/src/artifacts/coverage-jest/Settings/Settings/Settings.js.html +1 -1
  155. package/src/artifacts/coverage-jest/Settings/Settings/index.html +1 -1
  156. package/src/artifacts/coverage-jest/Settings/Settings/index.js.html +1 -1
  157. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/SettingsFormContainer.js.html +1 -1
  158. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/index.html +1 -1
  159. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/index.js.html +1 -1
  160. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsField.js.html +1 -1
  161. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/StaticSettingsFieldComponent.js.html +1 -1
  162. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/index.html +1 -1
  163. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/index.js.html +1 -1
  164. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/index.html +1 -1
  165. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/index.js.html +1 -1
  166. package/src/artifacts/coverage-jest/Settings/constants/index.html +1 -1
  167. package/src/artifacts/coverage-jest/Settings/constants/index.js.html +1 -1
  168. package/src/artifacts/coverage-jest/Settings/constants/queryKeys.js.html +1 -1
  169. package/src/artifacts/coverage-jest/Settings/contexts/SettingsContext.js.html +1 -1
  170. package/src/artifacts/coverage-jest/Settings/contexts/index.html +1 -1
  171. package/src/artifacts/coverage-jest/Settings/contexts/index.js.html +1 -1
  172. package/src/artifacts/coverage-jest/Settings/hooks/index.html +1 -1
  173. package/src/artifacts/coverage-jest/Settings/hooks/index.js.html +1 -1
  174. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/index.html +1 -1
  175. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/index.js.html +1 -1
  176. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/index.html +1 -1
  177. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/index.js.html +1 -1
  178. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/useSettingCallout.js.html +1 -1
  179. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.html +1 -1
  180. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.js.html +1 -1
  181. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/useSettingsSectionInitalValues.js.html +1 -1
  182. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useStaticSettingsSection.js.html +1 -1
  183. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/index.html +1 -1
  184. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/index.js.html +1 -1
  185. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/useAppSettings.js.html +1 -1
  186. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/index.html +1 -1
  187. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/index.js.html +1 -1
  188. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/useSettingSection.js.html +1 -1
  189. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/index.html +1 -1
  190. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/index.js.html +1 -1
  191. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/useSettings.js.html +1 -1
  192. package/src/artifacts/coverage-jest/Settings/index.html +1 -1
  193. package/src/artifacts/coverage-jest/Settings/index.js.html +1 -1
  194. package/src/artifacts/coverage-jest/Tags/Tags.js.html +9 -9
  195. package/src/artifacts/coverage-jest/Tags/hooks/index.html +16 -16
  196. package/src/artifacts/coverage-jest/Tags/hooks/index.js.html +1 -1
  197. package/src/artifacts/coverage-jest/Tags/hooks/useTags.js.html +9 -9
  198. package/src/artifacts/coverage-jest/Tags/hooks/useTagsEnabled.js.html +1 -1
  199. package/src/artifacts/coverage-jest/Tags/index.html +15 -15
  200. package/src/artifacts/coverage-jest/Tags/index.js.html +1 -1
  201. package/src/artifacts/coverage-jest/Tags/tagsConfig.js.html +1 -1
  202. package/src/artifacts/coverage-jest/Typedown/Typedown.js.html +1 -1
  203. package/src/artifacts/coverage-jest/Typedown/index.html +1 -1
  204. package/src/artifacts/coverage-jest/Typedown/index.js.html +1 -1
  205. package/src/artifacts/coverage-jest/cobertura-coverage.xml +580 -314
  206. package/src/artifacts/coverage-jest/constants/comparators.js.html +1 -1
  207. package/src/artifacts/coverage-jest/constants/customProperties.js.html +1 -1
  208. package/src/artifacts/coverage-jest/constants/endpoints.js.html +1 -1
  209. package/src/artifacts/coverage-jest/constants/eventCodes.js.html +1 -1
  210. package/src/artifacts/coverage-jest/constants/index.html +1 -1
  211. package/src/artifacts/coverage-jest/constants/pagination.js.html +1 -1
  212. package/src/artifacts/coverage-jest/hooks/index.html +15 -15
  213. package/src/artifacts/coverage-jest/hooks/index.js.html +8 -2
  214. package/src/artifacts/coverage-jest/hooks/intlHooks/index.html +1 -1
  215. package/src/artifacts/coverage-jest/hooks/intlHooks/index.js.html +1 -1
  216. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/index.html +1 -1
  217. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/index.js.html +1 -1
  218. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/useIntlKey.js.html +7 -7
  219. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/index.html +1 -1
  220. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/index.js.html +1 -1
  221. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/useIntlKeyStore.js.html +11 -11
  222. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/index.html +1 -1
  223. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/index.js.html +1 -1
  224. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/useKintIntl.js.html +9 -9
  225. package/src/artifacts/coverage-jest/hooks/typedownHooks/index.html +1 -1
  226. package/src/artifacts/coverage-jest/hooks/typedownHooks/index.js.html +1 -1
  227. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedown.js.html +1 -1
  228. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedownData.js.html +1 -1
  229. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedownToggle.js.html +1 -1
  230. package/src/artifacts/coverage-jest/hooks/useActionListRef.js.html +1 -1
  231. package/src/artifacts/coverage-jest/hooks/useActiveElement.js.html +1 -1
  232. package/src/artifacts/coverage-jest/hooks/useCustProps.js.html +1 -1
  233. package/src/artifacts/coverage-jest/hooks/useCustomProperties.js.html +1 -1
  234. package/src/artifacts/coverage-jest/hooks/useHelperApp.js.html +1 -1
  235. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/index.html +1 -1
  236. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/index.js.html +1 -1
  237. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/useInvalidateRefdata.js.html +1 -1
  238. package/src/artifacts/coverage-jest/hooks/useKiwtFieldArray.js.html +1 -1
  239. package/src/artifacts/coverage-jest/hooks/useKiwtSASQuery.js.html +16 -16
  240. package/src/artifacts/coverage-jest/hooks/useLocalPageStore.js.html +1 -1
  241. package/src/artifacts/coverage-jest/hooks/useLocalStorageState.js.html +5 -5
  242. package/src/artifacts/coverage-jest/hooks/useModConfigEntries.js.html +1 -1
  243. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/index.html +1 -1
  244. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/index.js.html +1 -1
  245. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/useMutateCustomProperties.js.html +1 -1
  246. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/index.html +1 -1
  247. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/index.js.html +1 -1
  248. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/useMutateGeneric.js.html +1 -1
  249. package/src/artifacts/coverage-jest/hooks/useMutateModConfigEntry.js.html +1 -1
  250. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/index.html +1 -1
  251. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/index.js.html +1 -1
  252. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/useMutateRefdataCategory.js.html +1 -1
  253. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/index.html +1 -1
  254. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/index.js.html +1 -1
  255. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/useMutateRefdataValue.js.html +1 -1
  256. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/index.html +131 -0
  257. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/index.js.html +88 -0
  258. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/useMutateTemplates.js.html +217 -0
  259. package/src/artifacts/coverage-jest/hooks/useParallelBatchFetch.js.html +9 -9
  260. package/src/artifacts/coverage-jest/hooks/usePrevNextPagination.js.html +37 -37
  261. package/src/artifacts/coverage-jest/hooks/useQIndex.js.html +9 -9
  262. package/src/artifacts/coverage-jest/hooks/useRefdata.js.html +1 -1
  263. package/src/artifacts/coverage-jest/hooks/useSASQQueryMeta.js.html +1 -1
  264. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/index.html +1 -1
  265. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/index.js.html +1 -1
  266. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/useStandaloneSASQQueryParameter.js.html +1 -1
  267. package/src/artifacts/coverage-jest/hooks/useTemplates.js.html +1 -1
  268. package/src/artifacts/coverage-jest/index.html +120 -60
  269. package/src/artifacts/coverage-jest/utils/buildUrl.js.html +12 -12
  270. package/src/artifacts/coverage-jest/utils/downloadBlob.js.html +211 -0
  271. package/src/artifacts/coverage-jest/utils/filterParsers/deparseKiwtQueryFilters.js.html +1 -1
  272. package/src/artifacts/coverage-jest/utils/filterParsers/index.html +1 -1
  273. package/src/artifacts/coverage-jest/utils/filterParsers/index.js.html +1 -1
  274. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryFilters.js.html +1 -1
  275. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryGroups.js.html +1 -1
  276. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryString.js.html +1 -1
  277. package/src/artifacts/coverage-jest/utils/generateKiwtQuery.js.html +3 -3
  278. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/generateKiwtQueryParams.js.html +19 -19
  279. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/index.html +1 -1
  280. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/index.js.html +1 -1
  281. package/src/artifacts/coverage-jest/utils/groupCustomPropertiesByCtx.js.html +1 -1
  282. package/src/artifacts/coverage-jest/utils/index.html +24 -9
  283. package/src/artifacts/coverage-jest/utils/index.js.html +5 -2
  284. package/src/artifacts/coverage-jest/utils/matchString/index.html +1 -1
  285. package/src/artifacts/coverage-jest/utils/matchString/index.js.html +1 -1
  286. package/src/artifacts/coverage-jest/utils/matchString/matchString.js.html +1 -1
  287. package/src/artifacts/coverage-jest/utils/modConfigEntriesQueryKey.js.html +1 -1
  288. package/src/artifacts/coverage-jest/utils/parseErrorResponse.js.html +1 -1
  289. package/src/artifacts/coverage-jest/utils/parseModConfigEntry.js.html +1 -1
  290. package/src/artifacts/coverage-jest/utils/refdataOptions.js.html +1 -1
  291. package/src/artifacts/coverage-jest/utils/refdataQueryKey/index.html +1 -1
  292. package/src/artifacts/coverage-jest/utils/refdataQueryKey/index.js.html +1 -1
  293. package/src/artifacts/coverage-jest/utils/refdataQueryKey/refdataQueryKey.js.html +1 -1
  294. package/src/artifacts/coverage-jest/utils/selectorSafe.js.html +1 -1
  295. package/src/artifacts/coverage-jest/utils/sortByLabel.js.html +1 -1
  296. package/src/artifacts/coverage-jest/utils/stringStyling/boldString.js.html +1 -1
  297. package/src/artifacts/coverage-jest/utils/stringStyling/highlightString.js.html +1 -1
  298. package/src/artifacts/coverage-jest/utils/stringStyling/index.html +1 -1
  299. package/src/artifacts/coverage-jest/utils/stringStyling/index.js.html +1 -1
  300. package/src/artifacts/coverage-jest/utils/toCamelCase.js.html +1 -1
  301. package/src/artifacts/coverage-jest/utils/typedownQueryKey.js.html +1 -1
  302. package/src/artifacts/coverage-jest/validators/index.html +1 -1
  303. package/src/artifacts/coverage-jest/validators/index.js.html +1 -1
  304. package/src/artifacts/coverage-jest/validators/validators.js.html +1 -1
  305. package/src/index.js +2 -0
  306. package/src/lib/Files/FileUploader/FileUploader.js +134 -0
  307. package/src/lib/Files/FileUploader/index.js +1 -0
  308. package/src/lib/Files/FileView/FileView.js +115 -0
  309. package/src/lib/Files/FileView/index.js +1 -0
  310. package/src/lib/Files/index.js +3 -0
  311. package/src/lib/Files/useFileHandlers.js +128 -0
  312. package/src/lib/NoResultsMessage/NoResultsMessage.js +29 -10
  313. package/src/lib/NoResultsMessage/README.md +16 -13
  314. package/src/lib/SASQLookupComponent/README.md +12 -0
  315. package/src/lib/SASQLookupComponent/SASQLookupComponent.js +127 -73
  316. package/src/lib/SASQLookupComponent/SASQLookupComponent.test.js +13 -1
  317. package/src/lib/SASQLookupComponent/TableBody/TableBody.js +4 -1
  318. package/src/lib/SASQRoute/README.md +6 -1
  319. package/src/lib/hooks/index.js +2 -0
  320. package/src/lib/hooks/useMutateTemplates/index.js +1 -0
  321. package/src/lib/hooks/useMutateTemplates/useMutateTemplates.js +44 -0
  322. package/src/lib/utils/downloadBlob.js +42 -0
  323. package/src/lib/utils/index.js +1 -0
  324. package/styles/FileUploader.css +34 -0
  325. package/styles/FileView.css +8 -0
  326. package/styles/NoResultsMessage.css +1 -0
  327. package/styles/SASQLookupComponent.css +15 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ # [5.36.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.35.0...v5.36.0) (2026-04-16)
2
+
3
+
4
+ ### Features
5
+
6
+ * **Files:** useFileHandlers/FileUploader/FileView ([afb03e5](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/afb03e5b88d8f5f4471645cf958837b46b6babea))
7
+
8
+ # [5.35.0](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.34.1...v5.35.0) (2026-04-13)
9
+
10
+
11
+ ### Features
12
+
13
+ * Add native abillity for non-filter pane implementations to render filter and search components in body ([496cbff](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/496cbff96641c0b46cd06a53d9e79c4d8d1564b3))
14
+ * useMutateTemplates.js ([76da3d9](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/commit/76da3d99aa31e3e1835af54c3189bd0ff98f604c))
15
+
1
16
  ## [5.34.1](https://gitlab.com/knowledge-integration/folio/stripes-kint-components/compare/v5.34.0...v5.34.1) (2026-03-23)
2
17
 
3
18
 
package/es/index.js CHANGED
@@ -345,6 +345,18 @@ Object.keys(_Settings).forEach(function (key) {
345
345
  });
346
346
  var _ActionList = _interopRequireDefault(require("./lib/ActionList"));
347
347
  var _Typedown = _interopRequireDefault(require("./lib/Typedown"));
348
+ var _Files = require("./lib/Files");
349
+ Object.keys(_Files).forEach(function (key) {
350
+ if (key === "default" || key === "__esModule") return;
351
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
352
+ if (key in exports && exports[key] === _Files[key]) return;
353
+ Object.defineProperty(exports, key, {
354
+ enumerable: true,
355
+ get: function () {
356
+ return _Files[key];
357
+ }
358
+ });
359
+ });
348
360
  var _QueryTypedown = _interopRequireDefault(require("./lib/QueryTypedown"));
349
361
  var _ButtonTypedown = _interopRequireDefault(require("./lib/ButtonTypedown"));
350
362
  var _SearchField = _interopRequireDefault(require("./lib/SearchField"));
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _reactDropzone = require("react-dropzone");
9
+ var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
10
+ var _bind = _interopRequireDefault(require("classnames/bind"));
11
+ var _components = require("@folio/stripes/components");
12
+ var _FileUploader = _interopRequireDefault(require("../../../../styles/FileUploader.css"));
13
+ var _hooks = require("../../hooks");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ const cx = _bind.default.bind(_FileUploader.default);
17
+
18
+ // This is copied from stripes-data-transfer-components and tweaked
19
+ const FileUploader = _ref => {
20
+ let {
21
+ accept,
22
+ children,
23
+ disabled,
24
+ dropzoneProps = {},
25
+ // Any additional dropzone props
26
+ intlKey: passedIntlKey,
27
+ intlNS: passedIntlNS,
28
+ labelOverrides = {},
29
+ maxFiles,
30
+ multiple = true,
31
+ onDrop,
32
+ onDragEnter,
33
+ onDragLeave
34
+ } = _ref;
35
+ const {
36
+ getRootProps,
37
+ getInputProps,
38
+ open,
39
+ isDragActive
40
+ } = (0, _reactDropzone.useDropzone)({
41
+ accept,
42
+ disabled,
43
+ multiple,
44
+ maxFiles,
45
+ noClick: true,
46
+ onDrop,
47
+ onDragEnter,
48
+ onDragLeave,
49
+ ...dropzoneProps
50
+ });
51
+ const kintIntl = (0, _hooks.useKintIntl)(passedIntlKey, passedIntlNS);
52
+ const updateClassName = cx({
53
+ upload: true,
54
+ activeUpload: isDragActive
55
+ });
56
+ const titleClassName = cx({
57
+ uploadTitle: true,
58
+ activeUploadTitle: isDragActive
59
+ });
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
61
+ "aria-disabled": disabled,
62
+ "data-test-file-uploader": true,
63
+ ...getRootProps({
64
+ role: 'presentation'
65
+ }),
66
+ className: updateClassName,
67
+ "data-testid": "fileUploader-input",
68
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
69
+ ...getInputProps()
70
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
71
+ className: titleClassName,
72
+ "data-test-title": true,
73
+ children: isDragActive ? kintIntl.formatKintMessage({
74
+ id: 'files.dropToUpload',
75
+ overrideValue: labelOverrides.dropToUpload
76
+ }) : kintIntl.formatKintMessage({
77
+ id: 'files.dragAndDropToUpload',
78
+ overrideValue: labelOverrides.dragAndDropToUpload
79
+ })
80
+ }), !isDragActive && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
81
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
82
+ className: _FileUploader.default.secondaryArea,
83
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
84
+ buttonStyle: "primary",
85
+ disabled: disabled,
86
+ marginBottom0: true,
87
+ onClick: open,
88
+ children: kintIntl.formatKintMessage({
89
+ id: 'files.uploadButton',
90
+ overrideValue: labelOverrides.uploadButton
91
+ })
92
+ })
93
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
94
+ className: _FileUploader.default.children,
95
+ children: (0, _isFunction.default)(children) ? children(open) : children
96
+ })]
97
+ })]
98
+ });
99
+ };
100
+ FileUploader.propTypes = {
101
+ accept: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)]),
102
+ children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
103
+ disabled: _propTypes.default.bool,
104
+ // eslint-disable-next-line react/forbid-prop-types
105
+ dropzoneProps: _propTypes.default.object,
106
+ intlKey: _propTypes.default.string,
107
+ intlNS: _propTypes.default.string,
108
+ labelOverrides: _propTypes.default.shape({
109
+ dropToUpload: _propTypes.default.string,
110
+ dragAndDropToUpload: _propTypes.default.string,
111
+ uploadButton: _propTypes.default.string
112
+ }),
113
+ maxFiles: _propTypes.default.number,
114
+ multiple: _propTypes.default.bool,
115
+ onDrop: _propTypes.default.func.isRequired,
116
+ onDragEnter: _propTypes.default.func,
117
+ onDragLeave: _propTypes.default.func
118
+ };
119
+ var _default = exports.default = FileUploader;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _FileUploader.default;
10
+ }
11
+ });
12
+ var _FileUploader = _interopRequireDefault(require("./FileUploader"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _propTypes = _interopRequireDefault(require("prop-types"));
8
+ var _components = require("@folio/stripes/components");
9
+ var _hooks = require("../../hooks");
10
+ var _FileView = _interopRequireDefault(require("../../../../styles/FileView.css"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const FileView = _ref => {
14
+ let {
15
+ canDownload,
16
+ file,
17
+ onDownload,
18
+ intlKey: passedIntlKey,
19
+ intlNS: passedIntlNS,
20
+ labelOverrides = {},
21
+ onDelete
22
+ } = _ref;
23
+ const kintIntl = (0, _hooks.useKintIntl)(passedIntlKey, passedIntlNS);
24
+ if (!file) return null;
25
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
26
+ className: _FileView.default.fileViewContainer,
27
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.Row, {
28
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
29
+ xs: 6,
30
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.KeyValue, {
31
+ label: kintIntl.formatKintMessage({
32
+ id: 'files.filename',
33
+ overrideValue: labelOverrides.filename
34
+ }),
35
+ children: canDownload ?
36
+ /*#__PURE__*/
37
+ /* eslint-disable-next-line jsx-a11y/anchor-is-valid */
38
+ (0, _jsxRuntime.jsxs)("a", {
39
+ "data-test-fileview-name": true,
40
+ href: "#",
41
+ onClick: e => {
42
+ onDownload(file);
43
+ e.preventDefault();
44
+ e.stopPropagation();
45
+ },
46
+ rel: "noopener noreferrer",
47
+ style: {
48
+ wordBreak: 'break-all'
49
+ },
50
+ target: "_blank",
51
+ children: [file.name, /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
52
+ icon: "external-link"
53
+ })]
54
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
55
+ "data-test-fileview-name": true,
56
+ children: file.name
57
+ })
58
+ })
59
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
60
+ xs: 4,
61
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.KeyValue, {
62
+ label: kintIntl.formatKintMessage({
63
+ id: 'files.uploaded',
64
+ overrideValue: labelOverrides.uploaded
65
+ }),
66
+ value: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
67
+ "data-test-fileview-uploaded": true,
68
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
69
+ children: kintIntl.formatDate(file.modified)
70
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
71
+ children: kintIntl.formatTime(file.modified)
72
+ })]
73
+ })
74
+ })
75
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Col, {
76
+ xs: 2,
77
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Tooltip, {
78
+ id: `file-${file?.id}-delete-button`,
79
+ text: kintIntl.formatKintMessage({
80
+ id: 'files.remove',
81
+ overrideValue: labelOverrides.remove
82
+ }),
83
+ children: _ref2 => {
84
+ let {
85
+ ariaIds,
86
+ ref
87
+ } = _ref2;
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.IconButton, {
89
+ ref: ref,
90
+ "aria-labelledby": ariaIds.text,
91
+ "data-test-fileview-delete": true,
92
+ icon: "trash",
93
+ onClick: e => {
94
+ e.stopPropagation();
95
+ onDelete(file);
96
+ }
97
+ });
98
+ }
99
+ })
100
+ })]
101
+ })
102
+ });
103
+ };
104
+ FileView.propTypes = {
105
+ file: _propTypes.default.shape({
106
+ name: _propTypes.default.string
107
+ }),
108
+ intlKey: _propTypes.default.string,
109
+ intlNS: _propTypes.default.string,
110
+ labelOverrides: _propTypes.default.shape({
111
+ filename: _propTypes.default.string,
112
+ remove: _propTypes.default.string,
113
+ uploaded: _propTypes.default.string
114
+ })
115
+ };
116
+ var _default = exports.default = FileView;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _FileView.default;
10
+ }
11
+ });
12
+ var _FileView = _interopRequireDefault(require("./FileView"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FileUploader", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _FileUploader.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "FileView", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _FileView.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useFileHandlers", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useFileHandlers.default;
22
+ }
23
+ });
24
+ var _FileView = _interopRequireDefault(require("./FileView"));
25
+ var _FileUploader = _interopRequireDefault(require("./FileUploader"));
26
+ var _useFileHandlers = _interopRequireDefault(require("./useFileHandlers"));
27
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _reactQuery = require("react-query");
9
+ var _core = require("@folio/stripes/core");
10
+ var _utils = require("../utils");
11
+ // This is copied and adapted from stripes-erm-components
12
+
13
+ const useFileHandlers = _ref => {
14
+ let {
15
+ // When fetchFile is true, will AUTOMATICALLY fetch not only
16
+ // fileMetadata but ALSO file itself
17
+ fetchFile = false,
18
+ /* fileEndpoint can be a string or
19
+ * {
20
+ * download: string | function,
21
+ * metadata: string | function
22
+ * upload: string | function,
23
+ * }
24
+ */
25
+ fileEndpoint,
26
+ fileField = 'upload',
27
+ fileMappings = {},
28
+ // A mapping from file -> formData field,
29
+ fileId // An OPTIONAL id for a file which results in fetching and returning file metadata
30
+ } = _ref;
31
+ const ky = (0, _core.useOkapiKy)();
32
+
33
+ // A method which resolves the endpoint to hit based on fileEndpoint
34
+ const resolveEndpoint = (0, _react.useCallback)((type, file) => {
35
+ if (typeof fileEndpoint === 'string') {
36
+ // We have a base endpoint, configure default behaviour
37
+ switch (type) {
38
+ case 'upload':
39
+ return fileEndpoint;
40
+ case 'download':
41
+ return `${fileEndpoint}/${file?.id}/raw`;
42
+ case 'metadata':
43
+ return `${fileEndpoint}/${file.id}`;
44
+ default:
45
+ throw new TypeError(`Unsupported endpoint type ${type}`);
46
+ }
47
+ }
48
+ if (typeof fileEndpoint !== 'object') {
49
+ throw new TypeError(`Unsupported fileEndpoint type ${typeof fileEndpoint}`);
50
+ }
51
+ const config = fileEndpoint[type];
52
+ if (config === null) {
53
+ throw new TypeError(`Unsupported fileEndpoint[${type}] is not configured`);
54
+ }
55
+
56
+ // Finally we have configured behaviour
57
+ switch (typeof config) {
58
+ case 'function':
59
+ return config(file);
60
+ case 'string':
61
+ return config;
62
+ default:
63
+ // If we have hit the end then we've done something wrong
64
+ throw new TypeError(`Unsupported configuration for fileEndpoint[${type}]: ${typeof config}`);
65
+ }
66
+ }, [fileEndpoint]);
67
+ const {
68
+ mutateAsync: handleUploadFile
69
+ } = (0, _reactQuery.useMutation)([fileEndpoint, 'handleUpload'], file => {
70
+ const formData = new FormData();
71
+ formData.append(fileField, file);
72
+ Object.entries(fileMappings).forEach(_ref2 => {
73
+ let [key, value] = _ref2;
74
+ if (typeof value === 'string') {
75
+ formData.append(key, value);
76
+ } else if (typeof value === 'function') {
77
+ formData.append(key, value(file));
78
+ } else {
79
+ throw new TypeError('Invalid fileMapping: ' + key);
80
+ }
81
+ });
82
+ return ky.post(resolveEndpoint('upload', file), {
83
+ body: formData
84
+ }).json();
85
+ });
86
+ const {
87
+ data: fileBlob,
88
+ isLoading: isFileLoading,
89
+ refetch: refetchFile
90
+ } = (0, _reactQuery.useQuery)({
91
+ queryKey: [fileEndpoint, 'content', fileId],
92
+ queryFn: () => ky.get(resolveEndpoint('download', {
93
+ id: fileId
94
+ })).blob(),
95
+ enabled: !!fileId && typeof fileId === 'string' && fetchFile,
96
+ staleTime: Infinity // Assume the file won't change underneath us.
97
+ });
98
+
99
+ // We are declaratively fetching a file via a function, useMutation is more convenient here
100
+ // NOTE even if fileBlob already exists this will refetch it for download
101
+ const {
102
+ mutate: getFile,
103
+ mutateAsync: getFileAsync
104
+ } = (0, _reactQuery.useMutation)([fileEndpoint, 'getFile'], file => ky.get(resolveEndpoint('download', file)).blob());
105
+ const handleDownloadFile = (0, _react.useCallback)(fileMetadata => {
106
+ return getFileAsync(fileMetadata)
107
+ /* In this instance we want the file name back as it was handed in, whitespace and all */.then((0, _utils.downloadBlob)(fileMetadata.name, {
108
+ processWhitespace: false
109
+ }));
110
+ }, [getFileAsync]);
111
+ const {
112
+ data: fileMetadata,
113
+ isLoading: isFileMetadataLoading
114
+ } = (0, _reactQuery.useQuery)({
115
+ queryKey: [fileEndpoint, 'metadata', fileId],
116
+ queryFn: () => ky.get(resolveEndpoint('metadata', {
117
+ id: fileId
118
+ })).json(),
119
+ enabled: !!fileId && typeof fileId === 'string'
120
+ });
121
+ return {
122
+ file: fileBlob,
123
+ fileMetadata,
124
+ getFile,
125
+ getFileAsync,
126
+ handleDownloadFile,
127
+ handleUploadFile,
128
+ isFileLoading,
129
+ isFileMetadataLoading,
130
+ refetchFile
131
+ };
132
+ };
133
+ var _default = exports.default = useFileHandlers;
@@ -8,19 +8,28 @@ var _react = _interopRequireDefault(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _reactIntl = require("react-intl");
10
10
  var _components = require("@folio/stripes/components");
11
- var _NoResultsMessage = _interopRequireDefault(require("../../../styles/NoResultsMessage.css"));
12
11
  var _hooks = require("../hooks");
12
+ var _NoResultsMessage = _interopRequireDefault(require("../../../styles/NoResultsMessage.css"));
13
13
  var _jsxRuntime = require("react/jsx-runtime");
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  const NoResultsMessage = _ref => {
16
16
  let {
17
+ className,
18
+ error,
19
+ filters,
20
+ filterPaneIsVisible,
17
21
  icon: userIcon,
22
+ iconPresets: {
23
+ noTerms: noTermsIcon,
24
+ noTermsWhenFilterPane: noTermsWhenFilterPaneIcon,
25
+ noResults: noResultsIcon,
26
+ isLoading: isLoadingIcon,
27
+ error: errorIcon
28
+ } = {},
18
29
  intlKey: passedIntlKey,
19
30
  intlNS: passedIntlNS,
20
31
  isLoading,
21
32
  isError,
22
- error,
23
- filterPaneIsVisible,
24
33
  label: userLabel,
25
34
  labelOverrides = {},
26
35
  searchTerm,
@@ -34,34 +43,34 @@ const NoResultsMessage = _ref => {
34
43
  searchTerm
35
44
  }
36
45
  });
37
- if (!isLoading && !searchTerm) {
46
+ if (!isLoading && !searchTerm && !filters) {
38
47
  // No search term and not loading
39
- icon = filterPaneIsVisible ? 'arrow-left' : null;
48
+ icon = noTermsIcon ?? (filterPaneIsVisible ? noTermsWhenFilterPaneIcon ?? 'arrow-left' : null);
40
49
  label = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
41
50
  id: "stripes-smart-components.sas.noResults.noTerms"
42
51
  });
43
52
  } else if (!isLoading) {
44
53
  // Search term but not loading
45
- icon = 'search';
54
+ icon = noResultsIcon ?? 'search';
46
55
  label = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
47
56
  id: "stripes-smart-components.sas.noResults.noResults"
48
57
  });
49
58
  } else if (isLoading) {
50
59
  // Loading
51
- icon = 'spinner-ellipsis';
60
+ icon = isLoadingIcon ?? 'spinner-ellipsis';
52
61
  label = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactIntl.FormattedMessage, {
53
62
  id: "stripes-smart-components.sas.noResults.loading"
54
63
  });
55
64
  } else if (isError) {
56
65
  // Request failure
57
- icon = 'exclamation-circle';
66
+ icon = errorIcon ?? 'exclamation-circle';
58
67
  label = error?.message;
59
68
  }
60
69
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
61
- className: _NoResultsMessage.default.noResultsMessage,
70
+ className: `${className} ${_NoResultsMessage.default.noResultsMessage}`,
62
71
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
63
72
  className: _NoResultsMessage.default.noResultsMessageLabelWrap,
64
- children: [(icon || userIcon) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
73
+ children: [(userIcon || icon) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
65
74
  icon: userIcon ?? icon,
66
75
  iconRootClass: _NoResultsMessage.default.noResultsMessageIcon
67
76
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
@@ -80,9 +89,18 @@ const NoResultsMessage = _ref => {
80
89
  });
81
90
  };
82
91
  NoResultsMessage.propTypes = {
92
+ className: _propTypes.default.string,
83
93
  error: _propTypes.default.object,
94
+ filters: _propTypes.default.string,
84
95
  filterPaneIsVisible: _propTypes.default.bool.isRequired,
85
96
  icon: _propTypes.default.string,
97
+ iconPresets: _propTypes.default.shape({
98
+ noTerms: _propTypes.default.string,
99
+ noTermsWhenFilterPane: _propTypes.default.string,
100
+ noResults: _propTypes.default.string,
101
+ isLoading: _propTypes.default.string,
102
+ error: _propTypes.default.string
103
+ }),
86
104
  intlKey: _propTypes.default.string,
87
105
  intlNS: _propTypes.default.string,
88
106
  isLoading: _propTypes.default.bool,