@k-int/stripes-kint-components 5.35.0 → 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 (308) hide show
  1. package/CHANGELOG.md +7 -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/utils/downloadBlob.js +42 -0
  10. package/es/lib/utils/index.js +9 -1
  11. package/package.json +2 -1
  12. package/src/artifacts/coverage-jest/ActionList/ActionList.js.html +1 -1
  13. package/src/artifacts/coverage-jest/ActionList/ActionListFieldArray.js.html +1 -1
  14. package/src/artifacts/coverage-jest/ActionList/index.html +1 -1
  15. package/src/artifacts/coverage-jest/ActionList/index.js.html +1 -1
  16. package/src/artifacts/coverage-jest/ButtonTypedown/ButtonTypedown.js.html +1 -1
  17. package/src/artifacts/coverage-jest/ButtonTypedown/index.html +1 -1
  18. package/src/artifacts/coverage-jest/ButtonTypedown/index.js.html +1 -1
  19. package/src/artifacts/coverage-jest/ComboButton/ComboButton.js.html +1 -1
  20. package/src/artifacts/coverage-jest/ComboButton/index.html +1 -1
  21. package/src/artifacts/coverage-jest/ComboButton/index.js.html +1 -1
  22. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertiesLookup.js.html +1 -1
  23. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertiesSettings.js.html +1 -1
  24. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertyForm.js.html +1 -1
  25. package/src/artifacts/coverage-jest/CustomProperties/Config/CustomPropertyView.js.html +1 -1
  26. package/src/artifacts/coverage-jest/CustomProperties/Config/index.html +1 -1
  27. package/src/artifacts/coverage-jest/CustomProperties/Config/index.js.html +1 -1
  28. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesEdit.js.html +1 -1
  29. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesEditCtx.js.html +1 -1
  30. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertiesListField.js.html +1 -1
  31. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertyField.js.html +1 -1
  32. package/src/artifacts/coverage-jest/CustomProperties/Edit/CustomPropertyFormCard.js.html +1 -1
  33. package/src/artifacts/coverage-jest/CustomProperties/Edit/index.html +1 -1
  34. package/src/artifacts/coverage-jest/CustomProperties/Edit/index.js.html +1 -1
  35. package/src/artifacts/coverage-jest/CustomProperties/Edit/testResources.js.html +1 -1
  36. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilter.js.html +1 -1
  37. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterField.js.html +1 -1
  38. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterFieldArray.js.html +1 -1
  39. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesFilterForm.js.html +1 -1
  40. package/src/artifacts/coverage-jest/CustomProperties/Filter/CustomPropertiesRule.js.html +1 -1
  41. package/src/artifacts/coverage-jest/CustomProperties/Filter/index.html +1 -1
  42. package/src/artifacts/coverage-jest/CustomProperties/Filter/index.js.html +1 -1
  43. package/src/artifacts/coverage-jest/CustomProperties/Filter/testResources.js.html +1 -1
  44. package/src/artifacts/coverage-jest/CustomProperties/Filter/useOperators.js.html +1 -1
  45. package/src/artifacts/coverage-jest/CustomProperties/Filter/useParseActiveFilterStrings.js.html +1 -1
  46. package/src/artifacts/coverage-jest/CustomProperties/Filter/useValueProps.js.html +1 -1
  47. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertiesView.js.html +1 -1
  48. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertiesViewCtx.js.html +1 -1
  49. package/src/artifacts/coverage-jest/CustomProperties/View/CustomPropertyCard.js.html +1 -1
  50. package/src/artifacts/coverage-jest/CustomProperties/View/index.html +1 -1
  51. package/src/artifacts/coverage-jest/CustomProperties/View/index.js.html +1 -1
  52. package/src/artifacts/coverage-jest/CustomProperties/View/testResources.js.html +1 -1
  53. package/src/artifacts/coverage-jest/CustomProperties/index.html +1 -1
  54. package/src/artifacts/coverage-jest/CustomProperties/index.js.html +1 -1
  55. package/src/artifacts/coverage-jest/CycleButton/CycleButton.js.html +1 -1
  56. package/src/artifacts/coverage-jest/CycleButton/index.html +1 -1
  57. package/src/artifacts/coverage-jest/CycleButton/index.js.html +1 -1
  58. package/src/artifacts/coverage-jest/FieldLabel/FieldLabel.js.html +1 -1
  59. package/src/artifacts/coverage-jest/FieldLabel/index.html +1 -1
  60. package/src/artifacts/coverage-jest/FieldLabel/index.js.html +1 -1
  61. package/src/artifacts/coverage-jest/Files/FileUploader/FileUploader.js.html +487 -0
  62. package/src/artifacts/coverage-jest/Files/FileUploader/index.html +131 -0
  63. package/src/artifacts/coverage-jest/Files/FileUploader/index.js.html +88 -0
  64. package/src/artifacts/coverage-jest/Files/FileView/FileView.js.html +430 -0
  65. package/src/artifacts/coverage-jest/Files/FileView/index.html +131 -0
  66. package/src/artifacts/coverage-jest/Files/FileView/index.js.html +88 -0
  67. package/src/artifacts/coverage-jest/Files/index.html +131 -0
  68. package/src/artifacts/coverage-jest/Files/index.js.html +94 -0
  69. package/src/artifacts/coverage-jest/Files/useFileHandlers.js.html +469 -0
  70. package/src/artifacts/coverage-jest/FormModal/FormModal.js.html +1 -1
  71. package/src/artifacts/coverage-jest/FormModal/index.html +1 -1
  72. package/src/artifacts/coverage-jest/FormModal/index.js.html +1 -1
  73. package/src/artifacts/coverage-jest/FormattedKintMessage/FormattedKintMessage.js.html +1 -1
  74. package/src/artifacts/coverage-jest/FormattedKintMessage/index.html +1 -1
  75. package/src/artifacts/coverage-jest/FormattedKintMessage/index.js.html +1 -1
  76. package/src/artifacts/coverage-jest/IconSelect/IconSelect.js.html +1 -1
  77. package/src/artifacts/coverage-jest/IconSelect/index.html +1 -1
  78. package/src/artifacts/coverage-jest/IconSelect/index.js.html +1 -1
  79. package/src/artifacts/coverage-jest/NoResultsMessage/NoResultsMessage.js.html +1 -1
  80. package/src/artifacts/coverage-jest/NoResultsMessage/index.html +1 -1
  81. package/src/artifacts/coverage-jest/NoResultsMessage/index.js.html +1 -1
  82. package/src/artifacts/coverage-jest/NumberField/NumberField.js.html +1 -1
  83. package/src/artifacts/coverage-jest/NumberField/index.html +1 -1
  84. package/src/artifacts/coverage-jest/NumberField/index.js.html +1 -1
  85. package/src/artifacts/coverage-jest/QueryTypedown/QueryTypedown.js.html +1 -1
  86. package/src/artifacts/coverage-jest/QueryTypedown/index.html +1 -1
  87. package/src/artifacts/coverage-jest/QueryTypedown/index.js.html +1 -1
  88. package/src/artifacts/coverage-jest/RefdataButtons/RefdataButtons.js.html +1 -1
  89. package/src/artifacts/coverage-jest/RefdataButtons/index.html +1 -1
  90. package/src/artifacts/coverage-jest/RefdataButtons/index.js.html +1 -1
  91. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/ResponsiveButtonGroup.js.html +1 -1
  92. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/index.html +1 -1
  93. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/index.js.html +1 -1
  94. package/src/artifacts/coverage-jest/ResponsiveButtonGroup/useResponsiveButtonGroupSizing.js.html +1 -1
  95. package/src/artifacts/coverage-jest/RichSelect/RichSelect.js.html +1 -1
  96. package/src/artifacts/coverage-jest/RichSelect/index.html +1 -1
  97. package/src/artifacts/coverage-jest/RichSelect/index.js.html +1 -1
  98. package/src/artifacts/coverage-jest/RichSelect/useSelectedOption.js.html +1 -1
  99. package/src/artifacts/coverage-jest/SASQLookupComponent/SASQLookupComponent.js.html +51 -51
  100. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/TableBody.js.html +1 -1
  101. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/index.html +1 -1
  102. package/src/artifacts/coverage-jest/SASQLookupComponent/TableBody/index.js.html +1 -1
  103. package/src/artifacts/coverage-jest/SASQLookupComponent/index.html +1 -1
  104. package/src/artifacts/coverage-jest/SASQLookupComponent/index.js.html +1 -1
  105. package/src/artifacts/coverage-jest/SASQRoute/SASQRoute.js.html +1 -1
  106. package/src/artifacts/coverage-jest/SASQRoute/index.html +1 -1
  107. package/src/artifacts/coverage-jest/SASQRoute/index.js.html +1 -1
  108. package/src/artifacts/coverage-jest/SASQViewComponent/SASQViewComponent.js.html +12 -12
  109. package/src/artifacts/coverage-jest/SASQViewComponent/index.html +15 -15
  110. package/src/artifacts/coverage-jest/SASQViewComponent/index.js.html +1 -1
  111. package/src/artifacts/coverage-jest/SearchField/SearchField.js.html +1 -1
  112. package/src/artifacts/coverage-jest/SearchField/index.html +1 -1
  113. package/src/artifacts/coverage-jest/SearchField/index.js.html +1 -1
  114. package/src/artifacts/coverage-jest/SearchKeyControl/SearchKeyControl.js.html +1 -1
  115. package/src/artifacts/coverage-jest/SearchKeyControl/index.html +1 -1
  116. package/src/artifacts/coverage-jest/SearchKeyControl/index.js.html +1 -1
  117. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/EditableRefdataCategoryList.js.html +1 -1
  118. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/index.html +1 -1
  119. package/src/artifacts/coverage-jest/Settings/EditableRefdataCategoryList/index.js.html +1 -1
  120. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/EditableRefdataList.js.html +1 -1
  121. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/index.html +1 -1
  122. package/src/artifacts/coverage-jest/Settings/EditableRefdataList/index.js.html +1 -1
  123. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsList.js.html +1 -1
  124. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/EditableSettingsListFieldArray.js.html +1 -1
  125. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/index.html +1 -1
  126. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/EditableSettingsListFieldArray/index.js.html +1 -1
  127. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/EditSettingValue.js.html +1 -1
  128. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/index.html +1 -1
  129. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/EditSettingValue/index.js.html +1 -1
  130. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/RenderSettingValue.js.html +1 -1
  131. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/index.html +1 -1
  132. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/RenderSettingValue/index.js.html +1 -1
  133. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/SettingField.js.html +1 -1
  134. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/index.html +1 -1
  135. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/SettingField/index.js.html +1 -1
  136. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/index.html +1 -1
  137. package/src/artifacts/coverage-jest/Settings/EditableSettingsList/index.js.html +1 -1
  138. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/RefdataCategoriesSettings.js.html +1 -1
  139. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/index.html +1 -1
  140. package/src/artifacts/coverage-jest/Settings/RefdataCategoriesSettings/index.js.html +1 -1
  141. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPage.js.html +1 -1
  142. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/SettingPagePane.js.html +1 -1
  143. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/index.html +1 -1
  144. package/src/artifacts/coverage-jest/Settings/SettingPage/SettingPagePane/index.js.html +1 -1
  145. package/src/artifacts/coverage-jest/Settings/SettingPage/index.html +1 -1
  146. package/src/artifacts/coverage-jest/Settings/SettingPage/index.js.html +1 -1
  147. package/src/artifacts/coverage-jest/Settings/Settings/Settings.js.html +1 -1
  148. package/src/artifacts/coverage-jest/Settings/Settings/index.html +1 -1
  149. package/src/artifacts/coverage-jest/Settings/Settings/index.js.html +1 -1
  150. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/SettingsFormContainer.js.html +1 -1
  151. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/index.html +1 -1
  152. package/src/artifacts/coverage-jest/Settings/SettingsFormContainer/index.js.html +1 -1
  153. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsField.js.html +1 -1
  154. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/StaticSettingsFieldComponent.js.html +1 -1
  155. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/index.html +1 -1
  156. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/StaticSettingsFieldComponent/index.js.html +1 -1
  157. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/index.html +1 -1
  158. package/src/artifacts/coverage-jest/Settings/StaticSettingsField/index.js.html +1 -1
  159. package/src/artifacts/coverage-jest/Settings/constants/index.html +1 -1
  160. package/src/artifacts/coverage-jest/Settings/constants/index.js.html +1 -1
  161. package/src/artifacts/coverage-jest/Settings/constants/queryKeys.js.html +1 -1
  162. package/src/artifacts/coverage-jest/Settings/contexts/SettingsContext.js.html +1 -1
  163. package/src/artifacts/coverage-jest/Settings/contexts/index.html +1 -1
  164. package/src/artifacts/coverage-jest/Settings/contexts/index.js.html +1 -1
  165. package/src/artifacts/coverage-jest/Settings/hooks/index.html +1 -1
  166. package/src/artifacts/coverage-jest/Settings/hooks/index.js.html +1 -1
  167. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/index.html +1 -1
  168. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/index.js.html +1 -1
  169. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/index.html +1 -1
  170. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/index.js.html +1 -1
  171. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingCallout/useSettingCallout.js.html +1 -1
  172. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.html +1 -1
  173. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/index.js.html +1 -1
  174. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues/useSettingsSectionInitalValues.js.html +1 -1
  175. package/src/artifacts/coverage-jest/Settings/hooks/staticSettingsPages/useStaticSettingsSection.js.html +1 -1
  176. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/index.html +1 -1
  177. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/index.js.html +1 -1
  178. package/src/artifacts/coverage-jest/Settings/hooks/useAppSettings/useAppSettings.js.html +1 -1
  179. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/index.html +1 -1
  180. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/index.js.html +1 -1
  181. package/src/artifacts/coverage-jest/Settings/hooks/useSettingSection/useSettingSection.js.html +1 -1
  182. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/index.html +1 -1
  183. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/index.js.html +1 -1
  184. package/src/artifacts/coverage-jest/Settings/hooks/useSettings/useSettings.js.html +1 -1
  185. package/src/artifacts/coverage-jest/Settings/index.html +1 -1
  186. package/src/artifacts/coverage-jest/Settings/index.js.html +1 -1
  187. package/src/artifacts/coverage-jest/Tags/Tags.js.html +9 -9
  188. package/src/artifacts/coverage-jest/Tags/hooks/index.html +16 -16
  189. package/src/artifacts/coverage-jest/Tags/hooks/index.js.html +1 -1
  190. package/src/artifacts/coverage-jest/Tags/hooks/useTags.js.html +9 -9
  191. package/src/artifacts/coverage-jest/Tags/hooks/useTagsEnabled.js.html +1 -1
  192. package/src/artifacts/coverage-jest/Tags/index.html +15 -15
  193. package/src/artifacts/coverage-jest/Tags/index.js.html +1 -1
  194. package/src/artifacts/coverage-jest/Tags/tagsConfig.js.html +1 -1
  195. package/src/artifacts/coverage-jest/Typedown/Typedown.js.html +1 -1
  196. package/src/artifacts/coverage-jest/Typedown/index.html +1 -1
  197. package/src/artifacts/coverage-jest/Typedown/index.js.html +1 -1
  198. package/src/artifacts/coverage-jest/cobertura-coverage.xml +457 -257
  199. package/src/artifacts/coverage-jest/constants/comparators.js.html +1 -1
  200. package/src/artifacts/coverage-jest/constants/customProperties.js.html +1 -1
  201. package/src/artifacts/coverage-jest/constants/endpoints.js.html +1 -1
  202. package/src/artifacts/coverage-jest/constants/eventCodes.js.html +1 -1
  203. package/src/artifacts/coverage-jest/constants/index.html +1 -1
  204. package/src/artifacts/coverage-jest/constants/pagination.js.html +1 -1
  205. package/src/artifacts/coverage-jest/hooks/index.html +15 -15
  206. package/src/artifacts/coverage-jest/hooks/index.js.html +1 -1
  207. package/src/artifacts/coverage-jest/hooks/intlHooks/index.html +1 -1
  208. package/src/artifacts/coverage-jest/hooks/intlHooks/index.js.html +1 -1
  209. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/index.html +1 -1
  210. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/index.js.html +1 -1
  211. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKey/useIntlKey.js.html +7 -7
  212. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/index.html +1 -1
  213. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/index.js.html +1 -1
  214. package/src/artifacts/coverage-jest/hooks/intlHooks/useIntlKeyStore/useIntlKeyStore.js.html +6 -6
  215. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/index.html +1 -1
  216. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/index.js.html +1 -1
  217. package/src/artifacts/coverage-jest/hooks/intlHooks/useKintIntl/useKintIntl.js.html +9 -9
  218. package/src/artifacts/coverage-jest/hooks/typedownHooks/index.html +1 -1
  219. package/src/artifacts/coverage-jest/hooks/typedownHooks/index.js.html +1 -1
  220. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedown.js.html +1 -1
  221. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedownData.js.html +1 -1
  222. package/src/artifacts/coverage-jest/hooks/typedownHooks/useTypedownToggle.js.html +1 -1
  223. package/src/artifacts/coverage-jest/hooks/useActionListRef.js.html +1 -1
  224. package/src/artifacts/coverage-jest/hooks/useActiveElement.js.html +1 -1
  225. package/src/artifacts/coverage-jest/hooks/useCustProps.js.html +1 -1
  226. package/src/artifacts/coverage-jest/hooks/useCustomProperties.js.html +1 -1
  227. package/src/artifacts/coverage-jest/hooks/useHelperApp.js.html +1 -1
  228. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/index.html +1 -1
  229. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/index.js.html +1 -1
  230. package/src/artifacts/coverage-jest/hooks/useInvalidateRefdata/useInvalidateRefdata.js.html +1 -1
  231. package/src/artifacts/coverage-jest/hooks/useKiwtFieldArray.js.html +1 -1
  232. package/src/artifacts/coverage-jest/hooks/useKiwtSASQuery.js.html +17 -17
  233. package/src/artifacts/coverage-jest/hooks/useLocalPageStore.js.html +1 -1
  234. package/src/artifacts/coverage-jest/hooks/useLocalStorageState.js.html +5 -5
  235. package/src/artifacts/coverage-jest/hooks/useModConfigEntries.js.html +1 -1
  236. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/index.html +1 -1
  237. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/index.js.html +1 -1
  238. package/src/artifacts/coverage-jest/hooks/useMutateCustomProperties/useMutateCustomProperties.js.html +1 -1
  239. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/index.html +1 -1
  240. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/index.js.html +1 -1
  241. package/src/artifacts/coverage-jest/hooks/useMutateGeneric/useMutateGeneric.js.html +1 -1
  242. package/src/artifacts/coverage-jest/hooks/useMutateModConfigEntry.js.html +1 -1
  243. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/index.html +1 -1
  244. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/index.js.html +1 -1
  245. package/src/artifacts/coverage-jest/hooks/useMutateRefdataCategory/useMutateRefdataCategory.js.html +1 -1
  246. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/index.html +1 -1
  247. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/index.js.html +1 -1
  248. package/src/artifacts/coverage-jest/hooks/useMutateRefdataValue/useMutateRefdataValue.js.html +1 -1
  249. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/index.html +1 -1
  250. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/index.js.html +1 -1
  251. package/src/artifacts/coverage-jest/hooks/useMutateTemplates/useMutateTemplates.js.html +1 -1
  252. package/src/artifacts/coverage-jest/hooks/useParallelBatchFetch.js.html +9 -9
  253. package/src/artifacts/coverage-jest/hooks/usePrevNextPagination.js.html +31 -31
  254. package/src/artifacts/coverage-jest/hooks/useQIndex.js.html +9 -9
  255. package/src/artifacts/coverage-jest/hooks/useRefdata.js.html +1 -1
  256. package/src/artifacts/coverage-jest/hooks/useSASQQueryMeta.js.html +1 -1
  257. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/index.html +1 -1
  258. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/index.js.html +1 -1
  259. package/src/artifacts/coverage-jest/hooks/useStandaloneSASQQueryParameter/useStandaloneSASQQueryParameter.js.html +1 -1
  260. package/src/artifacts/coverage-jest/hooks/useTemplates.js.html +1 -1
  261. package/src/artifacts/coverage-jest/index.html +95 -50
  262. package/src/artifacts/coverage-jest/utils/buildUrl.js.html +12 -12
  263. package/src/artifacts/coverage-jest/utils/downloadBlob.js.html +211 -0
  264. package/src/artifacts/coverage-jest/utils/filterParsers/deparseKiwtQueryFilters.js.html +1 -1
  265. package/src/artifacts/coverage-jest/utils/filterParsers/index.html +1 -1
  266. package/src/artifacts/coverage-jest/utils/filterParsers/index.js.html +1 -1
  267. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryFilters.js.html +1 -1
  268. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryGroups.js.html +1 -1
  269. package/src/artifacts/coverage-jest/utils/filterParsers/parseKiwtQueryString.js.html +1 -1
  270. package/src/artifacts/coverage-jest/utils/generateKiwtQuery.js.html +3 -3
  271. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/generateKiwtQueryParams.js.html +17 -17
  272. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/index.html +1 -1
  273. package/src/artifacts/coverage-jest/utils/generateKiwtQueryParams/index.js.html +1 -1
  274. package/src/artifacts/coverage-jest/utils/groupCustomPropertiesByCtx.js.html +1 -1
  275. package/src/artifacts/coverage-jest/utils/index.html +24 -9
  276. package/src/artifacts/coverage-jest/utils/index.js.html +5 -2
  277. package/src/artifacts/coverage-jest/utils/matchString/index.html +1 -1
  278. package/src/artifacts/coverage-jest/utils/matchString/index.js.html +1 -1
  279. package/src/artifacts/coverage-jest/utils/matchString/matchString.js.html +1 -1
  280. package/src/artifacts/coverage-jest/utils/modConfigEntriesQueryKey.js.html +1 -1
  281. package/src/artifacts/coverage-jest/utils/parseErrorResponse.js.html +1 -1
  282. package/src/artifacts/coverage-jest/utils/parseModConfigEntry.js.html +1 -1
  283. package/src/artifacts/coverage-jest/utils/refdataOptions.js.html +1 -1
  284. package/src/artifacts/coverage-jest/utils/refdataQueryKey/index.html +1 -1
  285. package/src/artifacts/coverage-jest/utils/refdataQueryKey/index.js.html +1 -1
  286. package/src/artifacts/coverage-jest/utils/refdataQueryKey/refdataQueryKey.js.html +1 -1
  287. package/src/artifacts/coverage-jest/utils/selectorSafe.js.html +1 -1
  288. package/src/artifacts/coverage-jest/utils/sortByLabel.js.html +1 -1
  289. package/src/artifacts/coverage-jest/utils/stringStyling/boldString.js.html +1 -1
  290. package/src/artifacts/coverage-jest/utils/stringStyling/highlightString.js.html +1 -1
  291. package/src/artifacts/coverage-jest/utils/stringStyling/index.html +1 -1
  292. package/src/artifacts/coverage-jest/utils/stringStyling/index.js.html +1 -1
  293. package/src/artifacts/coverage-jest/utils/toCamelCase.js.html +1 -1
  294. package/src/artifacts/coverage-jest/utils/typedownQueryKey.js.html +1 -1
  295. package/src/artifacts/coverage-jest/validators/index.html +1 -1
  296. package/src/artifacts/coverage-jest/validators/index.js.html +1 -1
  297. package/src/artifacts/coverage-jest/validators/validators.js.html +1 -1
  298. package/src/index.js +2 -0
  299. package/src/lib/Files/FileUploader/FileUploader.js +134 -0
  300. package/src/lib/Files/FileUploader/index.js +1 -0
  301. package/src/lib/Files/FileView/FileView.js +115 -0
  302. package/src/lib/Files/FileView/index.js +1 -0
  303. package/src/lib/Files/index.js +3 -0
  304. package/src/lib/Files/useFileHandlers.js +128 -0
  305. package/src/lib/utils/downloadBlob.js +42 -0
  306. package/src/lib/utils/index.js +1 -0
  307. package/styles/FileUploader.css +34 -0
  308. package/styles/FileView.css +8 -0
@@ -0,0 +1,115 @@
1
+ import PropTypes from 'prop-types';
2
+
3
+ import { Col, Icon, IconButton, KeyValue, Row, Tooltip } from '@folio/stripes/components';
4
+
5
+ import { useKintIntl } from '../../hooks';
6
+
7
+ import css from '../../../../styles/FileView.css';
8
+
9
+ const FileView = ({
10
+ canDownload,
11
+ file,
12
+ onDownload,
13
+ intlKey: passedIntlKey,
14
+ intlNS: passedIntlNS,
15
+ labelOverrides = {},
16
+ onDelete,
17
+ }) => {
18
+ const kintIntl = useKintIntl(passedIntlKey, passedIntlNS);
19
+
20
+ if (!file) return null;
21
+
22
+ return (
23
+ <div className={css.fileViewContainer}>
24
+ <Row>
25
+ <Col xs={6}>
26
+ <KeyValue
27
+ label={
28
+ kintIntl.formatKintMessage({
29
+ id: 'files.filename',
30
+ overrideValue: labelOverrides.filename,
31
+ })
32
+ }
33
+ >
34
+ {canDownload ?
35
+ /* eslint-disable-next-line jsx-a11y/anchor-is-valid */
36
+ <a
37
+ data-test-fileview-name
38
+ href="#"
39
+ onClick={(e) => {
40
+ onDownload(file);
41
+ e.preventDefault();
42
+ e.stopPropagation();
43
+ }}
44
+ rel="noopener noreferrer"
45
+ style={{ wordBreak: 'break-all' }}
46
+ target="_blank"
47
+ >
48
+ {file.name}
49
+ <Icon icon="external-link" />
50
+ </a> :
51
+ <div data-test-fileview-name>
52
+ {file.name}
53
+ </div>
54
+ }
55
+ </KeyValue>
56
+ </Col>
57
+ <Col xs={4}>
58
+ <KeyValue
59
+ label={
60
+ kintIntl.formatKintMessage({
61
+ id: 'files.uploaded',
62
+ overrideValue: labelOverrides.uploaded,
63
+ })
64
+ }
65
+ value={(
66
+ <span data-test-fileview-uploaded>
67
+ <div>{kintIntl.formatDate(file.modified)}</div>
68
+ <div>{kintIntl.formatTime(file.modified)}</div>
69
+ </span>
70
+ )}
71
+ />
72
+ </Col>
73
+ <Col xs={2}>
74
+ <Tooltip
75
+ id={`file-${file?.id}-delete-button`}
76
+ text={
77
+ kintIntl.formatKintMessage({
78
+ id: 'files.remove',
79
+ overrideValue: labelOverrides.remove,
80
+ })
81
+ }
82
+ >
83
+ {({ ariaIds, ref }) => (
84
+ <IconButton
85
+ ref={ref}
86
+ aria-labelledby={ariaIds.text}
87
+ data-test-fileview-delete
88
+ icon="trash"
89
+ onClick={e => {
90
+ e.stopPropagation();
91
+ onDelete(file);
92
+ }}
93
+ />
94
+ )}
95
+ </Tooltip>
96
+ </Col>
97
+ </Row>
98
+ </div>
99
+ );
100
+ };
101
+
102
+ FileView.propTypes = {
103
+ file: PropTypes.shape({
104
+ name: PropTypes.string,
105
+ }),
106
+ intlKey: PropTypes.string,
107
+ intlNS: PropTypes.string,
108
+ labelOverrides: PropTypes.shape({
109
+ filename: PropTypes.string,
110
+ remove: PropTypes.string,
111
+ uploaded: PropTypes.string,
112
+ })
113
+ };
114
+
115
+ export default FileView;
@@ -0,0 +1 @@
1
+ export { default } from './FileView';
@@ -0,0 +1,3 @@
1
+ export { default as FileView } from './FileView';
2
+ export { default as FileUploader } from './FileUploader';
3
+ export { default as useFileHandlers } from './useFileHandlers';
@@ -0,0 +1,128 @@
1
+ import { useCallback } from 'react';
2
+ import { useMutation, useQuery } from 'react-query';
3
+
4
+ import { useOkapiKy } from '@folio/stripes/core';
5
+ import { downloadBlob } from '../utils';
6
+
7
+ // This is copied and adapted from stripes-erm-components
8
+
9
+ const useFileHandlers = ({
10
+ // When fetchFile is true, will AUTOMATICALLY fetch not only
11
+ // fileMetadata but ALSO file itself
12
+ fetchFile = false,
13
+ /* fileEndpoint can be a string or
14
+ * {
15
+ * download: string | function,
16
+ * metadata: string | function
17
+ * upload: string | function,
18
+ * }
19
+ */
20
+ fileEndpoint,
21
+ fileField = 'upload',
22
+ fileMappings = {}, // A mapping from file -> formData field,
23
+ fileId // An OPTIONAL id for a file which results in fetching and returning file metadata
24
+ }) => {
25
+ const ky = useOkapiKy();
26
+
27
+ // A method which resolves the endpoint to hit based on fileEndpoint
28
+ const resolveEndpoint = useCallback((type, file) => {
29
+ if (typeof fileEndpoint === 'string') {
30
+ // We have a base endpoint, configure default behaviour
31
+ switch (type) {
32
+ case 'upload':
33
+ return fileEndpoint;
34
+ case 'download':
35
+ return `${fileEndpoint}/${file?.id}/raw`;
36
+ case 'metadata':
37
+ return `${fileEndpoint}/${file.id}`;
38
+ default:
39
+ throw new TypeError(`Unsupported endpoint type ${type}`);
40
+ }
41
+ }
42
+
43
+ if (typeof fileEndpoint !== 'object') {
44
+ throw new TypeError(`Unsupported fileEndpoint type ${typeof fileEndpoint}`);
45
+ }
46
+ const config = fileEndpoint[type];
47
+
48
+ if (config === null) {
49
+ throw new TypeError(`Unsupported fileEndpoint[${type}] is not configured`);
50
+ }
51
+
52
+ // Finally we have configured behaviour
53
+ switch (typeof config) {
54
+ case 'function':
55
+ return config(file);
56
+ case 'string':
57
+ return config;
58
+ default:
59
+ // If we have hit the end then we've done something wrong
60
+ throw new TypeError(`Unsupported configuration for fileEndpoint[${type}]: ${typeof config}`);
61
+ }
62
+ }, [fileEndpoint]);
63
+
64
+ const { mutateAsync: handleUploadFile } = useMutation(
65
+ [fileEndpoint, 'handleUpload'],
66
+ (file) => {
67
+ const formData = new FormData();
68
+ formData.append(fileField, file);
69
+
70
+ Object.entries(fileMappings).forEach(([key, value]) => {
71
+ if (typeof value === 'string') {
72
+ formData.append(key, value);
73
+ } else if (typeof value === 'function') {
74
+ formData.append(key, value(file));
75
+ } else {
76
+ throw new TypeError('Invalid fileMapping: ' + key);
77
+ }
78
+ });
79
+
80
+ return ky.post(resolveEndpoint('upload', file), { body: formData }).json();
81
+ }
82
+ );
83
+
84
+ const {
85
+ data: fileBlob,
86
+ isLoading: isFileLoading,
87
+ refetch: refetchFile
88
+ } = useQuery({
89
+ queryKey: [fileEndpoint, 'content', fileId],
90
+ queryFn: () => ky.get(resolveEndpoint('download', { id: fileId })).blob(),
91
+ enabled: !!fileId && typeof fileId === 'string' && fetchFile,
92
+ staleTime: Infinity, // Assume the file won't change underneath us.
93
+ });
94
+
95
+
96
+ // We are declaratively fetching a file via a function, useMutation is more convenient here
97
+ // NOTE even if fileBlob already exists this will refetch it for download
98
+ const { mutate: getFile, mutateAsync: getFileAsync } = useMutation(
99
+ [fileEndpoint, 'getFile'],
100
+ (file) => ky.get(resolveEndpoint('download', file)).blob()
101
+ );
102
+
103
+ const handleDownloadFile = useCallback((fileMetadata) => {
104
+ return getFileAsync(fileMetadata)
105
+ /* In this instance we want the file name back as it was handed in, whitespace and all */
106
+ .then(downloadBlob(fileMetadata.name, { processWhitespace: false }));
107
+ }, [getFileAsync]);
108
+
109
+ const { data: fileMetadata, isLoading: isFileMetadataLoading } = useQuery({
110
+ queryKey: [fileEndpoint, 'metadata', fileId],
111
+ queryFn: () => ky.get(resolveEndpoint('metadata', { id: fileId })).json(),
112
+ enabled: !!fileId && typeof fileId === 'string',
113
+ });
114
+
115
+ return {
116
+ file: fileBlob,
117
+ fileMetadata,
118
+ getFile,
119
+ getFileAsync,
120
+ handleDownloadFile,
121
+ handleUploadFile,
122
+ isFileLoading,
123
+ isFileMetadataLoading,
124
+ refetchFile
125
+ };
126
+ };
127
+
128
+ export default useFileHandlers;
@@ -0,0 +1,42 @@
1
+ /*
2
+ * The options block allows for a very customisable approach to naming files
3
+ * and applying extensions. The default options are chosen in order to keep default
4
+ * behaviour found in other apps, but this can now be changed use case by use case.
5
+ *
6
+ * This is copied from stripes-erm-components
7
+ */
8
+
9
+ const downloadBlob = (
10
+ name,
11
+ {
12
+ fileExt = '',
13
+ spaceDelimiter = '_',
14
+ dotDelimiter = '',
15
+ processWhitespace = true,
16
+ processDots = false
17
+ } = {}
18
+ ) => {
19
+ let downloadName = name;
20
+ if (processWhitespace) {
21
+ downloadName = downloadName.replaceAll(/\s/g, spaceDelimiter);
22
+ }
23
+
24
+ if (processDots) {
25
+ downloadName = downloadName.replaceAll(/\./g, dotDelimiter);
26
+ }
27
+
28
+ if (fileExt.length) {
29
+ downloadName = `${downloadName}.${fileExt}`;
30
+ }
31
+
32
+ return blob => {
33
+ const url = URL.createObjectURL(blob);
34
+ const a = document.createElement('a');
35
+ a.href = url;
36
+ a.download = downloadName;
37
+ a.click();
38
+ URL.revokeObjectURL(url);
39
+ };
40
+ };
41
+
42
+ export default downloadBlob;
@@ -33,3 +33,4 @@ export { default as parseErrorResponse } from './parseErrorResponse';
33
33
 
34
34
  export { default as modConfigEntriesQueryKey } from './modConfigEntriesQueryKey';
35
35
  export { default as parseModConfigEntry } from './parseModConfigEntry';
36
+ export { default as downloadBlob } from './downloadBlob';
@@ -0,0 +1,34 @@
1
+ @import "@folio/stripes-components/lib/variables.css";
2
+
3
+ .upload {
4
+ display: flex;
5
+ align-items: center;
6
+ flex-direction: column;
7
+ justify-content: center;
8
+ min-height: 150px;
9
+ padding: var(--gutter);
10
+ border: 1px dashed var(--color-border);
11
+ border-radius: var(--radius);
12
+ background-color: var(--color-fill);
13
+ }
14
+
15
+ .uploadTitle {
16
+ margin-bottom: 0.5rem;
17
+ font-weight: 600;
18
+ text-align: center;
19
+ }
20
+
21
+ .activeUpload {
22
+ background-color: var(--color-fill-current);
23
+ color: var(--bg);
24
+ border-style: dashed;
25
+ }
26
+
27
+ .activeUploadTitle {
28
+ font-size: var(--font-size-large);
29
+ }
30
+
31
+ .children {
32
+ width: 100%;
33
+ display: flex;
34
+ }
@@ -0,0 +1,8 @@
1
+ @import '@folio/stripes-components/lib/variables.css';
2
+
3
+ .fileViewContainer {
4
+ width: 100%;
5
+ border-top: 1px solid var(--color-border);
6
+ padding: var(--gutter-static-one-third) var(--gutter);
7
+ margin-top: var(--gutter);
8
+ }