@dnb/eufemia 10.59.0 → 10.60.1

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 (372) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/cjs/components/dialog/style/dnb-dialog.css +2 -1
  3. package/cjs/components/dialog/style/dnb-dialog.min.css +1 -1
  4. package/cjs/components/dialog/style/dnb-dialog.scss +2 -1
  5. package/cjs/components/height-animation/HeightAnimation.d.ts +1 -1
  6. package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
  7. package/cjs/components/height-animation/HeightAnimationDocs.js +2 -2
  8. package/cjs/components/height-animation/HeightAnimationDocs.js.map +1 -1
  9. package/cjs/components/pagination/Pagination.d.ts +1 -1
  10. package/cjs/components/upload/Upload.js +2 -1
  11. package/cjs/components/upload/Upload.js.map +1 -1
  12. package/cjs/components/upload/UploadDocs.js +5 -0
  13. package/cjs/components/upload/UploadDocs.js.map +1 -1
  14. package/cjs/components/upload/UploadFileList.js +80 -12
  15. package/cjs/components/upload/UploadFileList.js.map +1 -1
  16. package/cjs/components/upload/UploadFileListCell.d.ts +5 -1
  17. package/cjs/components/upload/UploadFileListCell.js +17 -18
  18. package/cjs/components/upload/UploadFileListCell.js.map +1 -1
  19. package/cjs/components/upload/UploadFileListLink.d.ts +13 -0
  20. package/cjs/components/upload/UploadFileListLink.js +66 -0
  21. package/cjs/components/upload/UploadFileListLink.js.map +1 -0
  22. package/cjs/components/upload/style/dnb-upload.css +4 -3
  23. package/cjs/components/upload/style/dnb-upload.min.css +1 -1
  24. package/cjs/components/upload/style/dnb-upload.scss +2 -4
  25. package/cjs/components/upload/types.d.ts +8 -2
  26. package/cjs/components/upload/types.js.map +1 -1
  27. package/cjs/extensions/forms/DataContext/Provider/Provider.js +17 -9
  28. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  29. package/cjs/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  30. package/cjs/extensions/forms/Field/Upload/Upload.js +27 -12
  31. package/cjs/extensions/forms/Field/Upload/Upload.js.map +1 -1
  32. package/cjs/extensions/forms/Form/Element/Element.js +1 -1
  33. package/cjs/extensions/forms/Form/Element/Element.js.map +1 -1
  34. package/cjs/extensions/forms/Form/InfoOverlay/InfoOverlay.d.ts +36 -0
  35. package/cjs/extensions/forms/Form/InfoOverlay/InfoOverlay.js +132 -0
  36. package/cjs/extensions/forms/Form/InfoOverlay/InfoOverlay.js.map +1 -0
  37. package/cjs/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.d.ts +3 -0
  38. package/cjs/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.js +68 -0
  39. package/cjs/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.js.map +1 -0
  40. package/cjs/extensions/forms/Form/InfoOverlay/index.d.ts +2 -0
  41. package/cjs/extensions/forms/Form/InfoOverlay/index.js +27 -0
  42. package/cjs/extensions/forms/Form/InfoOverlay/index.js.map +1 -0
  43. package/cjs/extensions/forms/Form/InfoOverlay/setContent.d.ts +4 -0
  44. package/cjs/extensions/forms/Form/InfoOverlay/setContent.js +14 -0
  45. package/cjs/extensions/forms/Form/InfoOverlay/setContent.js.map +1 -0
  46. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +8 -4
  47. package/cjs/extensions/forms/Form/Visibility/Visibility.js +18 -2
  48. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  49. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.d.ts +1 -0
  50. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +11 -1
  51. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  52. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  53. package/cjs/extensions/forms/Form/index.js +7 -0
  54. package/cjs/extensions/forms/Form/index.js.map +1 -1
  55. package/cjs/extensions/forms/Tools/Log.js +3 -1
  56. package/cjs/extensions/forms/Tools/Log.js.map +1 -1
  57. package/cjs/extensions/forms/Value/Upload/Upload.d.ts +3 -2
  58. package/cjs/extensions/forms/Value/Upload/Upload.js +18 -10
  59. package/cjs/extensions/forms/Value/Upload/Upload.js.map +1 -1
  60. package/cjs/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -1
  61. package/cjs/extensions/forms/Value/Upload/UploadDocs.js +8 -3
  62. package/cjs/extensions/forms/Value/Upload/UploadDocs.js.map +1 -1
  63. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +2 -3
  64. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  65. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -1
  66. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  67. package/cjs/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
  68. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +12 -0
  69. package/cjs/extensions/forms/constants/locales/en-GB.js +12 -0
  70. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  71. package/cjs/extensions/forms/constants/locales/en-US.d.ts +12 -0
  72. package/cjs/extensions/forms/constants/locales/index.d.ts +24 -0
  73. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +12 -0
  74. package/cjs/extensions/forms/constants/locales/nb-NO.js +12 -0
  75. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  76. package/cjs/extensions/forms/style/dnb-forms.css +1 -1
  77. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  78. package/cjs/fragments/drawer-list/DrawerList.d.ts +1 -1
  79. package/cjs/fragments/drawer-list/DrawerListProvider.js +58 -21
  80. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  81. package/cjs/shared/Eufemia.d.ts +1 -1
  82. package/cjs/shared/Eufemia.js +2 -2
  83. package/cjs/shared/Eufemia.js.map +1 -1
  84. package/cjs/shared/helpers/useSharedState.d.ts +14 -6
  85. package/cjs/shared/helpers/useSharedState.js +52 -27
  86. package/cjs/shared/helpers/useSharedState.js.map +1 -1
  87. package/cjs/shared/locales/en-GB.js +1 -1
  88. package/cjs/shared/locales/en-GB.js.map +1 -1
  89. package/cjs/shared/locales/nb-NO.js +1 -1
  90. package/cjs/shared/locales/nb-NO.js.map +1 -1
  91. package/cjs/style/core/scopes.scss +1 -1
  92. package/cjs/style/dnb-ui-basis.css +1 -1
  93. package/cjs/style/dnb-ui-basis.min.css +1 -1
  94. package/cjs/style/dnb-ui-body.css +1 -1
  95. package/cjs/style/dnb-ui-body.min.css +1 -1
  96. package/cjs/style/dnb-ui-components.css +7 -5
  97. package/cjs/style/dnb-ui-components.min.css +3 -3
  98. package/cjs/style/dnb-ui-core.css +1 -1
  99. package/cjs/style/dnb-ui-core.min.css +1 -1
  100. package/cjs/style/dnb-ui-extensions.css +1 -1
  101. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  102. package/cjs/style/dnb-ui-forms.css +1 -1
  103. package/cjs/style/dnb-ui-forms.min.css +1 -1
  104. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +8 -6
  105. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  106. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  107. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  108. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  109. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  110. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +8 -6
  111. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  112. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  113. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  114. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  115. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  116. package/cjs/style/themes/theme-ui/ui-theme-components.css +8 -6
  117. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  118. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  119. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  120. package/cjs/style/themes/theme-ui/ui-theme-forms.css +1 -1
  121. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  122. package/components/dialog/style/dnb-dialog.css +2 -1
  123. package/components/dialog/style/dnb-dialog.min.css +1 -1
  124. package/components/dialog/style/dnb-dialog.scss +2 -1
  125. package/components/height-animation/HeightAnimation.d.ts +1 -1
  126. package/components/height-animation/HeightAnimation.js.map +1 -1
  127. package/components/height-animation/HeightAnimationDocs.js +2 -2
  128. package/components/height-animation/HeightAnimationDocs.js.map +1 -1
  129. package/components/pagination/Pagination.d.ts +1 -1
  130. package/components/upload/Upload.js +2 -1
  131. package/components/upload/Upload.js.map +1 -1
  132. package/components/upload/UploadDocs.js +5 -0
  133. package/components/upload/UploadDocs.js.map +1 -1
  134. package/components/upload/UploadFileList.js +77 -12
  135. package/components/upload/UploadFileList.js.map +1 -1
  136. package/components/upload/UploadFileListCell.d.ts +5 -1
  137. package/components/upload/UploadFileListCell.js +19 -20
  138. package/components/upload/UploadFileListCell.js.map +1 -1
  139. package/components/upload/UploadFileListLink.d.ts +13 -0
  140. package/components/upload/UploadFileListLink.js +56 -0
  141. package/components/upload/UploadFileListLink.js.map +1 -0
  142. package/components/upload/style/dnb-upload.css +4 -3
  143. package/components/upload/style/dnb-upload.min.css +1 -1
  144. package/components/upload/style/dnb-upload.scss +2 -4
  145. package/components/upload/types.d.ts +8 -2
  146. package/components/upload/types.js.map +1 -1
  147. package/es/components/dialog/style/dnb-dialog.css +2 -1
  148. package/es/components/dialog/style/dnb-dialog.min.css +1 -1
  149. package/es/components/dialog/style/dnb-dialog.scss +2 -1
  150. package/es/components/height-animation/HeightAnimation.d.ts +1 -1
  151. package/es/components/height-animation/HeightAnimation.js.map +1 -1
  152. package/es/components/height-animation/HeightAnimationDocs.js +2 -2
  153. package/es/components/height-animation/HeightAnimationDocs.js.map +1 -1
  154. package/es/components/pagination/Pagination.d.ts +1 -1
  155. package/es/components/upload/Upload.js +2 -1
  156. package/es/components/upload/Upload.js.map +1 -1
  157. package/es/components/upload/UploadDocs.js +5 -0
  158. package/es/components/upload/UploadDocs.js.map +1 -1
  159. package/es/components/upload/UploadFileList.js +77 -12
  160. package/es/components/upload/UploadFileList.js.map +1 -1
  161. package/es/components/upload/UploadFileListCell.d.ts +5 -1
  162. package/es/components/upload/UploadFileListCell.js +19 -20
  163. package/es/components/upload/UploadFileListCell.js.map +1 -1
  164. package/es/components/upload/UploadFileListLink.d.ts +13 -0
  165. package/es/components/upload/UploadFileListLink.js +56 -0
  166. package/es/components/upload/UploadFileListLink.js.map +1 -0
  167. package/es/components/upload/style/dnb-upload.css +4 -3
  168. package/es/components/upload/style/dnb-upload.min.css +1 -1
  169. package/es/components/upload/style/dnb-upload.scss +2 -4
  170. package/es/components/upload/types.d.ts +8 -2
  171. package/es/components/upload/types.js.map +1 -1
  172. package/es/extensions/forms/DataContext/Provider/Provider.js +17 -9
  173. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  174. package/es/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  175. package/es/extensions/forms/Field/Upload/Upload.js +23 -11
  176. package/es/extensions/forms/Field/Upload/Upload.js.map +1 -1
  177. package/es/extensions/forms/Form/Element/Element.js +1 -1
  178. package/es/extensions/forms/Form/Element/Element.js.map +1 -1
  179. package/es/extensions/forms/Form/InfoOverlay/InfoOverlay.d.ts +36 -0
  180. package/es/extensions/forms/Form/InfoOverlay/InfoOverlay.js +122 -0
  181. package/es/extensions/forms/Form/InfoOverlay/InfoOverlay.js.map +1 -0
  182. package/es/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.d.ts +3 -0
  183. package/es/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.js +60 -0
  184. package/es/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.js.map +1 -0
  185. package/es/extensions/forms/Form/InfoOverlay/index.d.ts +2 -0
  186. package/es/extensions/forms/Form/InfoOverlay/index.js +3 -0
  187. package/es/extensions/forms/Form/InfoOverlay/index.js.map +1 -0
  188. package/es/extensions/forms/Form/InfoOverlay/setContent.d.ts +4 -0
  189. package/es/extensions/forms/Form/InfoOverlay/setContent.js +8 -0
  190. package/es/extensions/forms/Form/InfoOverlay/setContent.js.map +1 -0
  191. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +8 -4
  192. package/es/extensions/forms/Form/Visibility/Visibility.js +16 -2
  193. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  194. package/es/extensions/forms/Form/Visibility/VisibilityDocs.d.ts +1 -0
  195. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +9 -0
  196. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  197. package/es/extensions/forms/Form/index.d.ts +1 -0
  198. package/es/extensions/forms/Form/index.js +1 -0
  199. package/es/extensions/forms/Form/index.js.map +1 -1
  200. package/es/extensions/forms/Tools/Log.js +3 -1
  201. package/es/extensions/forms/Tools/Log.js.map +1 -1
  202. package/es/extensions/forms/Value/Upload/Upload.d.ts +3 -2
  203. package/es/extensions/forms/Value/Upload/Upload.js +18 -10
  204. package/es/extensions/forms/Value/Upload/Upload.js.map +1 -1
  205. package/es/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -1
  206. package/es/extensions/forms/Value/Upload/UploadDocs.js +5 -1
  207. package/es/extensions/forms/Value/Upload/UploadDocs.js.map +1 -1
  208. package/es/extensions/forms/Wizard/Container/WizardContainer.js +2 -3
  209. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  210. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -1
  211. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  212. package/es/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
  213. package/es/extensions/forms/constants/locales/en-GB.d.ts +12 -0
  214. package/es/extensions/forms/constants/locales/en-GB.js +12 -0
  215. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  216. package/es/extensions/forms/constants/locales/en-US.d.ts +12 -0
  217. package/es/extensions/forms/constants/locales/index.d.ts +24 -0
  218. package/es/extensions/forms/constants/locales/nb-NO.d.ts +12 -0
  219. package/es/extensions/forms/constants/locales/nb-NO.js +12 -0
  220. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  221. package/es/extensions/forms/style/dnb-forms.css +1 -1
  222. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  223. package/es/fragments/drawer-list/DrawerList.d.ts +1 -1
  224. package/es/fragments/drawer-list/DrawerListProvider.js +57 -21
  225. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  226. package/es/shared/Eufemia.d.ts +1 -1
  227. package/es/shared/Eufemia.js +2 -2
  228. package/es/shared/Eufemia.js.map +1 -1
  229. package/es/shared/helpers/useSharedState.d.ts +14 -6
  230. package/es/shared/helpers/useSharedState.js +51 -28
  231. package/es/shared/helpers/useSharedState.js.map +1 -1
  232. package/es/shared/locales/en-GB.js +1 -1
  233. package/es/shared/locales/en-GB.js.map +1 -1
  234. package/es/shared/locales/nb-NO.js +1 -1
  235. package/es/shared/locales/nb-NO.js.map +1 -1
  236. package/es/style/core/scopes.scss +1 -1
  237. package/es/style/dnb-ui-basis.css +1 -1
  238. package/es/style/dnb-ui-basis.min.css +1 -1
  239. package/es/style/dnb-ui-body.css +1 -1
  240. package/es/style/dnb-ui-body.min.css +1 -1
  241. package/es/style/dnb-ui-components.css +7 -5
  242. package/es/style/dnb-ui-components.min.css +3 -3
  243. package/es/style/dnb-ui-core.css +1 -1
  244. package/es/style/dnb-ui-core.min.css +1 -1
  245. package/es/style/dnb-ui-extensions.css +1 -1
  246. package/es/style/dnb-ui-extensions.min.css +1 -1
  247. package/es/style/dnb-ui-forms.css +1 -1
  248. package/es/style/dnb-ui-forms.min.css +1 -1
  249. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +8 -6
  250. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  251. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  252. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  253. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  254. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  255. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +8 -6
  256. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  257. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  258. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  259. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  260. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  261. package/es/style/themes/theme-ui/ui-theme-components.css +8 -6
  262. package/es/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  263. package/es/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  264. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  265. package/es/style/themes/theme-ui/ui-theme-forms.css +1 -1
  266. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  267. package/esm/dnb-ui-basis.min.mjs +1 -1
  268. package/esm/dnb-ui-components.min.mjs +1 -1
  269. package/esm/dnb-ui-elements.min.mjs +1 -1
  270. package/esm/dnb-ui-extensions.min.mjs +3 -3
  271. package/esm/dnb-ui-lib.min.mjs +1 -1
  272. package/extensions/forms/DataContext/Provider/Provider.js +17 -9
  273. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  274. package/extensions/forms/Field/Upload/Upload.d.ts +1 -1
  275. package/extensions/forms/Field/Upload/Upload.js +28 -13
  276. package/extensions/forms/Field/Upload/Upload.js.map +1 -1
  277. package/extensions/forms/Form/Element/Element.js +1 -1
  278. package/extensions/forms/Form/Element/Element.js.map +1 -1
  279. package/extensions/forms/Form/InfoOverlay/InfoOverlay.d.ts +36 -0
  280. package/extensions/forms/Form/InfoOverlay/InfoOverlay.js +122 -0
  281. package/extensions/forms/Form/InfoOverlay/InfoOverlay.js.map +1 -0
  282. package/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.d.ts +3 -0
  283. package/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.js +60 -0
  284. package/extensions/forms/Form/InfoOverlay/InfoOverlayDocs.js.map +1 -0
  285. package/extensions/forms/Form/InfoOverlay/index.d.ts +2 -0
  286. package/extensions/forms/Form/InfoOverlay/index.js +3 -0
  287. package/extensions/forms/Form/InfoOverlay/index.js.map +1 -0
  288. package/extensions/forms/Form/InfoOverlay/setContent.d.ts +4 -0
  289. package/extensions/forms/Form/InfoOverlay/setContent.js +8 -0
  290. package/extensions/forms/Form/InfoOverlay/setContent.js.map +1 -0
  291. package/extensions/forms/Form/Visibility/Visibility.d.ts +8 -4
  292. package/extensions/forms/Form/Visibility/Visibility.js +16 -2
  293. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  294. package/extensions/forms/Form/Visibility/VisibilityDocs.d.ts +1 -0
  295. package/extensions/forms/Form/Visibility/VisibilityDocs.js +9 -0
  296. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  297. package/extensions/forms/Form/index.d.ts +1 -0
  298. package/extensions/forms/Form/index.js +1 -0
  299. package/extensions/forms/Form/index.js.map +1 -1
  300. package/extensions/forms/Tools/Log.js +3 -1
  301. package/extensions/forms/Tools/Log.js.map +1 -1
  302. package/extensions/forms/Value/Upload/Upload.d.ts +3 -2
  303. package/extensions/forms/Value/Upload/Upload.js +18 -10
  304. package/extensions/forms/Value/Upload/Upload.js.map +1 -1
  305. package/extensions/forms/Value/Upload/UploadDocs.d.ts +2 -1
  306. package/extensions/forms/Value/Upload/UploadDocs.js +5 -1
  307. package/extensions/forms/Value/Upload/UploadDocs.js.map +1 -1
  308. package/extensions/forms/Wizard/Container/WizardContainer.js +2 -3
  309. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  310. package/extensions/forms/Wizard/style/dnb-wizard-layout.css +1 -1
  311. package/extensions/forms/Wizard/style/dnb-wizard-layout.min.css +1 -1
  312. package/extensions/forms/Wizard/style/dnb-wizard-layout.scss +1 -1
  313. package/extensions/forms/constants/locales/en-GB.d.ts +12 -0
  314. package/extensions/forms/constants/locales/en-GB.js +12 -0
  315. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  316. package/extensions/forms/constants/locales/en-US.d.ts +12 -0
  317. package/extensions/forms/constants/locales/index.d.ts +24 -0
  318. package/extensions/forms/constants/locales/nb-NO.d.ts +12 -0
  319. package/extensions/forms/constants/locales/nb-NO.js +12 -0
  320. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  321. package/extensions/forms/style/dnb-forms.css +1 -1
  322. package/extensions/forms/style/dnb-forms.min.css +1 -1
  323. package/fragments/drawer-list/DrawerList.d.ts +1 -1
  324. package/fragments/drawer-list/DrawerListProvider.js +58 -21
  325. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  326. package/package.json +1 -1
  327. package/shared/Eufemia.d.ts +1 -1
  328. package/shared/Eufemia.js +2 -2
  329. package/shared/Eufemia.js.map +1 -1
  330. package/shared/helpers/useSharedState.d.ts +14 -6
  331. package/shared/helpers/useSharedState.js +52 -27
  332. package/shared/helpers/useSharedState.js.map +1 -1
  333. package/shared/locales/en-GB.js +1 -1
  334. package/shared/locales/en-GB.js.map +1 -1
  335. package/shared/locales/nb-NO.js +1 -1
  336. package/shared/locales/nb-NO.js.map +1 -1
  337. package/style/core/scopes.scss +1 -1
  338. package/style/dnb-ui-basis.css +1 -1
  339. package/style/dnb-ui-basis.min.css +1 -1
  340. package/style/dnb-ui-body.css +1 -1
  341. package/style/dnb-ui-body.min.css +1 -1
  342. package/style/dnb-ui-components.css +7 -5
  343. package/style/dnb-ui-components.min.css +3 -3
  344. package/style/dnb-ui-core.css +1 -1
  345. package/style/dnb-ui-core.min.css +1 -1
  346. package/style/dnb-ui-extensions.css +1 -1
  347. package/style/dnb-ui-extensions.min.css +1 -1
  348. package/style/dnb-ui-forms.css +1 -1
  349. package/style/dnb-ui-forms.min.css +1 -1
  350. package/style/themes/theme-eiendom/eiendom-theme-components.css +8 -6
  351. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +3 -3
  352. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +1 -1
  353. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  354. package/style/themes/theme-eiendom/eiendom-theme-forms.css +1 -1
  355. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  356. package/style/themes/theme-sbanken/sbanken-theme-components.css +8 -6
  357. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +3 -3
  358. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +1 -1
  359. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  360. package/style/themes/theme-sbanken/sbanken-theme-forms.css +1 -1
  361. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  362. package/style/themes/theme-ui/ui-theme-components.css +8 -6
  363. package/style/themes/theme-ui/ui-theme-components.min.css +3 -3
  364. package/style/themes/theme-ui/ui-theme-extensions.css +1 -1
  365. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  366. package/style/themes/theme-ui/ui-theme-forms.css +1 -1
  367. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  368. package/umd/dnb-ui-basis.min.js +1 -1
  369. package/umd/dnb-ui-components.min.js +1 -1
  370. package/umd/dnb-ui-elements.min.js +1 -1
  371. package/umd/dnb-ui-extensions.min.js +5 -5
  372. package/umd/dnb-ui-lib.min.js +1 -1
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.fileExtensionImages = exports.default = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _Anchor = _interopRequireDefault(require("../../components/Anchor"));
11
10
  var _Button = _interopRequireDefault(require("../button/Button"));
12
11
  var _Icon2 = _interopRequireDefault(require("../../components/Icon"));
13
12
  var _FormStatus2 = _interopRequireDefault(require("../../components/FormStatus"));
@@ -16,6 +15,7 @@ var _icons = require("../../icons");
16
15
  var _componentHelper = require("../../shared/component-helper");
17
16
  var _useUpload = _interopRequireDefault(require("./useUpload"));
18
17
  var _UploadVerify = require("./UploadVerify");
18
+ var _UploadFileListLink = _interopRequireDefault(require("./UploadFileListLink"));
19
19
  var _ProgressIndicator, _Icon;
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -41,6 +41,7 @@ const UploadFileListCell = _ref => {
41
41
  id,
42
42
  uploadFile,
43
43
  onDelete,
44
+ onClick,
44
45
  loadingText,
45
46
  deleteButtonText,
46
47
  download
@@ -55,19 +56,18 @@ const UploadFileListCell = _ref => {
55
56
  const imageUrl = URL.createObjectURL(file);
56
57
  const cellRef = (0, _react.useRef)();
57
58
  const exists = useExistsHighlight(id, file);
58
- const handleDisappearFocus = () => {
59
- try {
60
- const cellElement = cellRef.current;
61
- const focusElement = (0, _componentHelper.getPreviousSibling)('.dnb-upload', cellElement).querySelector('.dnb-upload__file-input-button');
62
- focusElement.focus();
63
- } catch (e) {
64
- (0, _componentHelper.warn)(e);
65
- }
66
- };
67
- const onDeleteHandler = () => {
59
+ const handleDisappearFocus = (0, _react.useCallback)(() => {
60
+ var _getPreviousSibling;
61
+ const cellElement = cellRef.current;
62
+ const focusElement = (_getPreviousSibling = (0, _componentHelper.getPreviousSibling)('.dnb-upload', cellElement)) === null || _getPreviousSibling === void 0 ? void 0 : _getPreviousSibling.querySelector('.dnb-upload__file-input-button');
63
+ focusElement === null || focusElement === void 0 ? void 0 : focusElement.focus({
64
+ preventScroll: true
65
+ });
66
+ }, [cellRef]);
67
+ const onDeleteHandler = (0, _react.useCallback)(() => {
68
68
  handleDisappearFocus();
69
69
  onDelete();
70
- };
70
+ }, [handleDisappearFocus, onDelete]);
71
71
  return _react.default.createElement("li", {
72
72
  className: (0, _classnames.default)('dnb-upload__file-cell', hasWarning && 'dnb-upload__file-cell--warning', exists && 'dnb-upload__file-cell--highlight'),
73
73
  ref: cellRef
@@ -106,13 +106,12 @@ const UploadFileListCell = _ref => {
106
106
  className: "dnb-upload__file-cell__text-container dnb-upload__file-cell__text-container--loading"
107
107
  }, loadingText)) : _react.default.createElement("div", {
108
108
  className: "dnb-upload__file-cell__text-container"
109
- }, _react.default.createElement(_Anchor.default, {
110
- target: "_blank",
109
+ }, _react.default.createElement(_UploadFileListLink.default, {
110
+ text: file.name,
111
111
  href: imageUrl,
112
- download: download ? file.name : null,
113
- className: "dnb-anchor--no-launch-icon dnb-upload__file-cell__title",
114
- rel: "noopener noreferrer"
115
- }, file.name));
112
+ download: download,
113
+ onClick: onClick
114
+ }));
116
115
  }
117
116
  function getWarning() {
118
117
  return hasWarning ? _FormStatus || (_FormStatus = _react.default.createElement(_FormStatus2.default, {
@@ -1 +1 @@
1
- {"version":3,"file":"UploadFileListCell.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Anchor","_Button","_Icon2","_FormStatus2","_progressIndicator","_icons","_componentHelper","_useUpload","_UploadVerify","_ProgressIndicator","_Icon","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","fileExtensionImages","png","jpg","pdf","doc","docx","odt","xls","ppt","csv","txt","xml","file","exports","UploadFileListCell","_ref","_div","_FormStatus","id","uploadFile","onDelete","loadingText","deleteButtonText","download","errorMessage","isLoading","hasWarning","fileType","getFileTypeFromExtension","imageUrl","URL","createObjectURL","cellRef","useRef","exists","useExistsHighlight","handleDisappearFocus","cellElement","current","focusElement","getPreviousSibling","querySelector","focus","e","warn","onDeleteHandler","createElement","className","classnames","ref","getIcon","getTitle","icon","TrashIcon","variant","onClick","icon_position","disabled","getWarning","ExclamationIcon","iconFileType","mimeParts","type","split","target","href","name","rel","top","text","stretch","_default","internalFiles","useUpload","updateExists","React","useState","timerRef","clearTimers","clearTimeout","useEffect","some","_ref2","f","size","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling, warn } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n loadingText,\n deleteButtonText,\n download,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = () => {\n try {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n ).querySelector(\n '.dnb-upload__file-input-button'\n ) as HTMLButtonElement\n focusElement.focus()\n } catch (e) {\n warn(e)\n }\n }\n\n const onDeleteHandler = () => {\n handleDisappearFocus()\n\n onDelete()\n }\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n disabled={isLoading}\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <Anchor\n target=\"_blank\"\n href={imageUrl}\n download={download ? file.name : null}\n className={classnames(\n 'dnb-anchor--no-launch-icon',\n 'dnb-upload__file-cell__title'\n )}\n rel=\"noopener noreferrer\"\n >\n {file.name}\n </Anchor>\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,OAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,MAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,kBAAA,GAAAL,sBAAA,CAAAF,OAAA;AAGA,IAAAQ,MAAA,GAAAR,OAAA;AAiBA,IAAAS,gBAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAR,sBAAA,CAAAF,OAAA;AACA,IAAAW,aAAA,GAAAX,OAAA;AAAyD,IAAAY,kBAAA,EAAAC,KAAA;AAAA,SAAAX,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAnB,wBAAAe,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAIlD,MAAMW,mBAAmB,GAAG;EACjCC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,uBAAG;EACHC,IAAI,EAAED,uBAAG;EACTE,GAAG,EAAEF,uBAAG;EACRG,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,IAAI,EAAJA;AACF,CAAC;AAAAC,OAAA,CAAAb,mBAAA,GAAAA,mBAAA;AA4BD,MAAMc,kBAAkB,GAAGC,IAAA,IAOI;EAAA,IAAAC,IAAA,EAAAC,WAAA;EAAA,IAPH;IAC1BC,EAAE;IACFC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC,gBAAgB;IAChBC;EACuB,CAAC,GAAAR,IAAA;EACxB,MAAM;IAAEH,IAAI;IAAEY,YAAY;IAAEC;EAAU,CAAC,GAAGN,UAAU;EACpD,MAAMO,UAAU,GAAGF,YAAY,IAAI,IAAI;EAEvC,MAAMG,QAAQ,GAAG,IAAAC,sCAAwB,EAAChB,IAAI,CAAC;EAE/C,MAAMiB,QAAQ,GAAGC,GAAG,CAACC,eAAe,CAACnB,IAAI,CAAC;EAC1C,MAAMoB,OAAO,GAAG,IAAAC,aAAM,EAAgB,CAAC;EACvC,MAAMC,MAAM,GAAGC,kBAAkB,CAACjB,EAAE,EAAEN,IAAI,CAAC;EAE3C,MAAMwB,oBAAoB,GAAGA,CAAA,KAAM;IACjC,IAAI;MACF,MAAMC,WAAW,GAAGL,OAAO,CAACM,OAAO;MACnC,MAAMC,YAAY,GAAG,IAAAC,mCAAkB,EACrC,aAAa,EACbH,WACF,CAAC,CAACI,aAAa,CACb,gCACF,CAAsB;MACtBF,YAAY,CAACG,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV,IAAAC,qBAAI,EAACD,CAAC,CAAC;IACT;EACF,CAAC;EAED,MAAME,eAAe,GAAGA,CAAA,KAAM;IAC5BT,oBAAoB,CAAC,CAAC;IAEtBhB,QAAQ,CAAC,CAAC;EACZ,CAAC;EAED,OACE1D,MAAA,CAAAkB,OAAA,CAAAkE,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EACnB,uBAAuB,EACvBtB,UAAU,IAAI,gCAAgC,EAC9CQ,MAAM,IAAI,kCACZ,CAAE;IACFe,GAAG,EAAEjB;EAAQ,GAEbtE,MAAA,CAAAkB,OAAA,CAAAkE,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC7CrF,MAAA,CAAAkB,OAAA,CAAAkE,aAAA;IAAKC,SAAS,EAAC;EAAsC,GAClDG,OAAO,CAAC,CAAC,EACTC,QAAQ,CAAC,CACP,CAAC,EACNzF,MAAA,CAAAkB,OAAA,CAAAkE,aAAA,cACEpF,MAAA,CAAAkB,OAAA,CAAAkE,aAAA,CAAC9E,OAAA,CAAAY,OAAM;IACLwE,IAAI,EAAEC,YAAU;IAChBC,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAEV,eAAgB;IACzBW,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEhC;EAAU,GAEnBH,gBACK,CACL,CACF,CAAC,EAELoC,UAAU,CAAC,CACV,CAAC;EAGP,SAASR,OAAOA,CAAA,EAAG;IACjB,IAAIzB,SAAS,EAAE;MACb,OAAAjD,kBAAA,KAAAA,kBAAA,GAAOd,MAAA,CAAAkB,OAAA,CAAAkE,aAAA,CAAC3E,kBAAA,CAAAS,OAAiB,MAAE,CAAC;IAC9B;IAEA,IAAI8C,UAAU,EAAE,OAAAjD,KAAA,KAAAA,KAAA,GAAOf,MAAA,CAAAkB,OAAA,CAAAkE,aAAA,CAAC7E,MAAA,CAAAW,OAAI;MAACwE,IAAI,EAAEO;IAAgB,CAAE,CAAC;IAEtD,IAAIC,YAAY,GAAGjC,QAAQ;IAE3B,IAAI,CAACiC,YAAY,EAAE;MACjB,MAAMC,SAAS,GAAGjD,IAAI,CAACkD,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;MACtCH,YAAY,GACV5D,mBAAmB,CAAC6D,SAAS,CAAC,CAAC,CAAC,CAAC,IACjC7D,mBAAmB,CAAC6D,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC;IAEA,IACE,CAACtE,MAAM,CAACI,SAAS,CAACC,cAAc,CAACC,IAAI,CACnCG,mBAAmB,EACnB4D,YACF,CAAC,EACD;MACAA,YAAY,GAAG,MAAM;IACvB;IAEA,OAAOlG,MAAA,CAAAkB,OAAA,CAAAkE,aAAA,CAAC7E,MAAA,CAAAW,OAAI;MAACwE,IAAI,EAAEpD,mBAAmB,CAAC4D,YAAY;IAAE,CAAE,CAAC;EAC1D;EAEA,SAAST,QAAQA,CAAA,EAAG;IAClB,OAAO1B,SAAS,GAAAT,IAAA,KAAAA,IAAA,GACdtD,MAAA,CAAAkB,OAAA,CAAAkE,aAAA;MACEC,SAAS;IAGP,GAED1B,WACE,CAAC,IAEN3D,MAAA,CAAAkB,OAAA,CAAAkE,aAAA;MAAKC,SAAS,EAAC;IAAuC,GACpDrF,MAAA,CAAAkB,OAAA,CAAAkE,aAAA,CAAC/E,OAAA,CAAAa,OAAM;MACLoF,MAAM,EAAC,QAAQ;MACfC,IAAI,EAAEpC,QAAS;MACfN,QAAQ,EAAEA,QAAQ,GAAGX,IAAI,CAACsD,IAAI,GAAG,IAAK;MACtCnB,SAAS,2DAGP;MACFoB,GAAG,EAAC;IAAqB,GAExBvD,IAAI,CAACsD,IACA,CACL,CACN;EACH;EAEA,SAASR,UAAUA,CAAA,EAAG;IACpB,OAAOhC,UAAU,GAAAT,WAAA,KAAAA,WAAA,GACfvD,MAAA,CAAAkB,OAAA,CAAAkE,aAAA,CAAC5E,YAAA,CAAAU,OAAU;MAACwF,GAAG,EAAC,OAAO;MAACC,IAAI,EAAE7C,YAAa;MAAC8C,OAAO;IAAA,CAAE,CAAC,IACpD,IAAI;EACV;AACF,CAAC;AAAA,IAAAC,QAAA,GAEczD,kBAAkB;AAAAD,OAAA,CAAAjC,OAAA,GAAA2F,QAAA;AAEjC,SAASpC,kBAAkBA,CAACjB,EAAU,EAAEN,IAAU,EAAE;EAClD,MAAM;IAAE4D;EAAc,CAAC,GAAG,IAAAC,kBAAS,EAACvD,EAAE,CAAC;EACvC,MAAM,CAACgB,MAAM,EAAEwC,YAAY,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EACpD,MAAMC,QAAQ,GAAGF,cAAK,CAAC1C,MAAM,CAAe,CAAC;EAE7C,MAAM6C,WAAW,GAAGA,CAAA,KAAM;IACxBC,YAAY,CAACF,QAAQ,CAACvC,OAAO,CAAC;EAChC,CAAC;EAEDqC,cAAK,CAACK,SAAS,CAAC,MAAM;IACpB,MAAM9C,MAAM,GAAGsC,aAAa,CAACS,IAAI,CAACC,KAAA,IAAyB;MAAA,IAAxB;QAAEhD,MAAM;QAAEtB,IAAI,EAAEuE;MAAE,CAAC,GAAAD,KAAA;MACpD,OAAOhD,MAAM,IAAIiD,CAAC,CAACjB,IAAI,KAAKtD,IAAI,CAACsD,IAAI,IAAIiB,CAAC,CAACC,IAAI,KAAKxE,IAAI,CAACwE,IAAI;IAC/D,CAAC,CAAC;IAEF,IAAIlD,MAAM,EAAE;MACVwC,YAAY,CAAC,IAAI,CAAC;MAClBI,WAAW,CAAC,CAAC;MACbD,QAAQ,CAACvC,OAAO,GAAG+C,UAAU,CAAC,MAAMX,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IAChE;IAEA,OAAOI,WAAW;EACpB,CAAC,EAAE,CAAClE,IAAI,EAAE4D,aAAa,CAAC,CAAC;EAEzB,OAAOtC,MAAM;AACf"}
1
+ {"version":3,"file":"UploadFileListCell.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Button","_Icon2","_FormStatus2","_progressIndicator","_icons","_componentHelper","_useUpload","_UploadVerify","_UploadFileListLink","_ProgressIndicator","_Icon","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","fileExtensionImages","png","jpg","pdf","doc","docx","odt","xls","ppt","csv","txt","xml","file","exports","UploadFileListCell","_ref","_div","_FormStatus","id","uploadFile","onDelete","onClick","loadingText","deleteButtonText","download","errorMessage","isLoading","hasWarning","fileType","getFileTypeFromExtension","imageUrl","URL","createObjectURL","cellRef","useRef","exists","useExistsHighlight","handleDisappearFocus","useCallback","_getPreviousSibling","cellElement","current","focusElement","getPreviousSibling","querySelector","focus","preventScroll","onDeleteHandler","createElement","className","classnames","ref","getIcon","getTitle","icon","TrashIcon","variant","icon_position","disabled","getWarning","ExclamationIcon","iconFileType","mimeParts","type","split","text","name","href","top","stretch","_default","internalFiles","useUpload","updateExists","React","useState","timerRef","clearTimers","clearTimeout","useEffect","some","_ref2","f","size","setTimeout"],"sources":["../../../../src/components/upload/UploadFileListCell.tsx"],"sourcesContent":["import React, { useCallback, useRef } from 'react'\nimport classnames from 'classnames'\n\n// Components\nimport Button from '../button/Button'\nimport Icon from '../../components/Icon'\nimport FormStatus from '../../components/FormStatus'\nimport ProgressIndicator from '../../components/progress-indicator'\n\n// Icons\nimport {\n trash as TrashIcon,\n exclamation_medium as ExclamationIcon,\n file_png_medium as png,\n file_jpg_medium as jpg,\n file_word_medium as doc,\n file_pdf_medium as pdf,\n file_xls_medium as xls,\n file_ppt_medium as ppt,\n file_csv_medium as csv,\n file_txt_medium as txt,\n file_xml_medium as xml,\n file_medium as file,\n} from '../../icons'\nimport { UploadFile, UploadFileNative } from './types'\n\n// Shared\nimport { getPreviousSibling } from '../../shared/component-helper'\nimport useUpload from './useUpload'\nimport { getFileTypeFromExtension } from './UploadVerify'\nimport UploadFileLink from './UploadFileListLink'\n\n// Will be deprecated - and then default to only showing the file icon,\n// and not file icon per file extension type\nexport const fileExtensionImages = {\n png,\n jpg,\n pdf,\n doc,\n docx: doc,\n odt: doc,\n xls,\n ppt,\n csv,\n txt,\n xml,\n file,\n}\n\nexport type UploadFileListCellProps = {\n id: string\n\n /**\n * Uploaded file\n */\n uploadFile: UploadFile | UploadFileNative\n\n /**\n * Calls onDelete when clicking the delete button\n */\n onDelete: () => void\n\n /**\n * Calls onClick when clicking the file name\n */\n onClick?: () => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Text\n */\n loadingText: React.ReactNode\n deleteButtonText: React.ReactNode\n}\n\nconst UploadFileListCell = ({\n id,\n uploadFile,\n onDelete,\n onClick,\n loadingText,\n deleteButtonText,\n download,\n}: UploadFileListCellProps) => {\n const { file, errorMessage, isLoading } = uploadFile\n const hasWarning = errorMessage != null\n\n const fileType = getFileTypeFromExtension(file)\n\n const imageUrl = URL.createObjectURL(file)\n const cellRef = useRef<HTMLLIElement>()\n const exists = useExistsHighlight(id, file)\n\n const handleDisappearFocus = useCallback(() => {\n const cellElement = cellRef.current\n const focusElement = getPreviousSibling(\n '.dnb-upload',\n cellElement\n )?.querySelector('.dnb-upload__file-input-button') as HTMLButtonElement\n focusElement?.focus({ preventScroll: true })\n }, [cellRef])\n\n const onDeleteHandler = useCallback(() => {\n handleDisappearFocus()\n\n onDelete()\n }, [handleDisappearFocus, onDelete])\n\n return (\n <li\n className={classnames(\n 'dnb-upload__file-cell',\n hasWarning && 'dnb-upload__file-cell--warning',\n exists && 'dnb-upload__file-cell--highlight'\n )}\n ref={cellRef}\n >\n <div className=\"dnb-upload__file-cell__content\">\n <div className=\"dnb-upload__file-cell__content__left\">\n {getIcon()}\n {getTitle()}\n </div>\n <div>\n <Button\n icon={TrashIcon}\n variant=\"tertiary\"\n onClick={onDeleteHandler}\n icon_position=\"left\"\n disabled={isLoading}\n >\n {deleteButtonText}\n </Button>\n </div>\n </div>\n\n {getWarning()}\n </li>\n )\n\n function getIcon() {\n if (isLoading) {\n return <ProgressIndicator />\n }\n\n if (hasWarning) return <Icon icon={ExclamationIcon} />\n\n let iconFileType = fileType\n\n if (!iconFileType) {\n const mimeParts = file.type.split('/')\n iconFileType =\n fileExtensionImages[mimeParts[0]] ||\n fileExtensionImages[mimeParts[1]]\n }\n\n if (\n !Object.prototype.hasOwnProperty.call(\n fileExtensionImages,\n iconFileType\n )\n ) {\n iconFileType = 'file'\n }\n\n return <Icon icon={fileExtensionImages[iconFileType]} />\n }\n\n function getTitle() {\n return isLoading ? (\n <div\n className={classnames(\n 'dnb-upload__file-cell__text-container',\n 'dnb-upload__file-cell__text-container--loading'\n )}\n >\n {loadingText}\n </div>\n ) : (\n <div className=\"dnb-upload__file-cell__text-container\">\n <UploadFileLink\n text={file.name}\n href={imageUrl}\n download={download}\n onClick={onClick}\n />\n </div>\n )\n }\n\n function getWarning() {\n return hasWarning ? (\n <FormStatus top=\"small\" text={errorMessage} stretch />\n ) : null\n }\n}\n\nexport default UploadFileListCell\n\nfunction useExistsHighlight(id: string, file: File) {\n const { internalFiles } = useUpload(id)\n const [exists, updateExists] = React.useState(false)\n const timerRef = React.useRef<NodeJS.Timer>()\n\n const clearTimers = () => {\n clearTimeout(timerRef.current)\n }\n\n React.useEffect(() => {\n const exists = internalFiles.some(({ exists, file: f }) => {\n return exists && f.name === file.name && f.size === file.size\n })\n\n if (exists) {\n updateExists(true)\n clearTimers()\n timerRef.current = setTimeout(() => updateExists(false), 1500) // transition-duration in CSS\n }\n\n return clearTimers\n }, [file, internalFiles])\n\n return exists\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,YAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,kBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AAGA,IAAAO,MAAA,GAAAP,OAAA;AAiBA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAP,sBAAA,CAAAF,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAT,sBAAA,CAAAF,OAAA;AAAiD,IAAAY,kBAAA,EAAAC,KAAA;AAAA,SAAAX,uBAAAY,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAnB,wBAAAe,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAQ,KAAA,GAAAL,wBAAA,CAAAC,WAAA,OAAAI,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,CAAAT,OAAA,GAAAF,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAI1C,MAAMW,mBAAmB,GAAG;EACjCC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,uBAAG;EACHC,IAAI,EAAED,uBAAG;EACTE,GAAG,EAAEF,uBAAG;EACRG,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,GAAG,EAAHA,sBAAG;EACHC,IAAI,EAAJA;AACF,CAAC;AAAAC,OAAA,CAAAb,mBAAA,GAAAA,mBAAA;AAiCD,MAAMc,kBAAkB,GAAGC,IAAA,IAQI;EAAA,IAAAC,IAAA,EAAAC,WAAA;EAAA,IARH;IAC1BC,EAAE;IACFC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC,WAAW;IACXC,gBAAgB;IAChBC;EACuB,CAAC,GAAAT,IAAA;EACxB,MAAM;IAAEH,IAAI;IAAEa,YAAY;IAAEC;EAAU,CAAC,GAAGP,UAAU;EACpD,MAAMQ,UAAU,GAAGF,YAAY,IAAI,IAAI;EAEvC,MAAMG,QAAQ,GAAG,IAAAC,sCAAwB,EAACjB,IAAI,CAAC;EAE/C,MAAMkB,QAAQ,GAAGC,GAAG,CAACC,eAAe,CAACpB,IAAI,CAAC;EAC1C,MAAMqB,OAAO,GAAG,IAAAC,aAAM,EAAgB,CAAC;EACvC,MAAMC,MAAM,GAAGC,kBAAkB,CAAClB,EAAE,EAAEN,IAAI,CAAC;EAE3C,MAAMyB,oBAAoB,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAAA,IAAAC,mBAAA;IAC7C,MAAMC,WAAW,GAAGP,OAAO,CAACQ,OAAO;IACnC,MAAMC,YAAY,IAAAH,mBAAA,GAAG,IAAAI,mCAAkB,EACrC,aAAa,EACbH,WACF,CAAC,cAAAD,mBAAA,uBAHoBA,mBAAA,CAGlBK,aAAa,CAAC,gCAAgC,CAAsB;IACvEF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,KAAK,CAAC;MAAEC,aAAa,EAAE;IAAK,CAAC,CAAC;EAC9C,CAAC,EAAE,CAACb,OAAO,CAAC,CAAC;EAEb,MAAMc,eAAe,GAAG,IAAAT,kBAAW,EAAC,MAAM;IACxCD,oBAAoB,CAAC,CAAC;IAEtBjB,QAAQ,CAAC,CAAC;EACZ,CAAC,EAAE,CAACiB,oBAAoB,EAAEjB,QAAQ,CAAC,CAAC;EAEpC,OACE1D,MAAA,CAAAkB,OAAA,CAAAoE,aAAA;IACEC,SAAS,EAAE,IAAAC,mBAAU,EACnB,uBAAuB,EACvBvB,UAAU,IAAI,gCAAgC,EAC9CQ,MAAM,IAAI,kCACZ,CAAE;IACFgB,GAAG,EAAElB;EAAQ,GAEbvE,MAAA,CAAAkB,OAAA,CAAAoE,aAAA;IAAKC,SAAS,EAAC;EAAgC,GAC7CvF,MAAA,CAAAkB,OAAA,CAAAoE,aAAA;IAAKC,SAAS,EAAC;EAAsC,GAClDG,OAAO,CAAC,CAAC,EACTC,QAAQ,CAAC,CACP,CAAC,EACN3F,MAAA,CAAAkB,OAAA,CAAAoE,aAAA,cACEtF,MAAA,CAAAkB,OAAA,CAAAoE,aAAA,CAACjF,OAAA,CAAAa,OAAM;IACL0E,IAAI,EAAEC,YAAU;IAChBC,OAAO,EAAC,UAAU;IAClBnC,OAAO,EAAE0B,eAAgB;IACzBU,aAAa,EAAC,MAAM;IACpBC,QAAQ,EAAEhC;EAAU,GAEnBH,gBACK,CACL,CACF,CAAC,EAELoC,UAAU,CAAC,CACV,CAAC;EAGP,SAASP,OAAOA,CAAA,EAAG;IACjB,IAAI1B,SAAS,EAAE;MACb,OAAAlD,kBAAA,KAAAA,kBAAA,GAAOd,MAAA,CAAAkB,OAAA,CAAAoE,aAAA,CAAC9E,kBAAA,CAAAU,OAAiB,MAAE,CAAC;IAC9B;IAEA,IAAI+C,UAAU,EAAE,OAAAlD,KAAA,KAAAA,KAAA,GAAOf,MAAA,CAAAkB,OAAA,CAAAoE,aAAA,CAAChF,MAAA,CAAAY,OAAI;MAAC0E,IAAI,EAAEM;IAAgB,CAAE,CAAC;IAEtD,IAAIC,YAAY,GAAGjC,QAAQ;IAE3B,IAAI,CAACiC,YAAY,EAAE;MACjB,MAAMC,SAAS,GAAGlD,IAAI,CAACmD,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;MACtCH,YAAY,GACV7D,mBAAmB,CAAC8D,SAAS,CAAC,CAAC,CAAC,CAAC,IACjC9D,mBAAmB,CAAC8D,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC;IAEA,IACE,CAACvE,MAAM,CAACI,SAAS,CAACC,cAAc,CAACC,IAAI,CACnCG,mBAAmB,EACnB6D,YACF,CAAC,EACD;MACAA,YAAY,GAAG,MAAM;IACvB;IAEA,OAAOnG,MAAA,CAAAkB,OAAA,CAAAoE,aAAA,CAAChF,MAAA,CAAAY,OAAI;MAAC0E,IAAI,EAAEtD,mBAAmB,CAAC6D,YAAY;IAAE,CAAE,CAAC;EAC1D;EAEA,SAASR,QAAQA,CAAA,EAAG;IAClB,OAAO3B,SAAS,GAAAV,IAAA,KAAAA,IAAA,GACdtD,MAAA,CAAAkB,OAAA,CAAAoE,aAAA;MACEC,SAAS;IAGP,GAED3B,WACE,CAAC,IAEN5D,MAAA,CAAAkB,OAAA,CAAAoE,aAAA;MAAKC,SAAS,EAAC;IAAuC,GACpDvF,MAAA,CAAAkB,OAAA,CAAAoE,aAAA,CAACzE,mBAAA,CAAAK,OAAc;MACbqF,IAAI,EAAErD,IAAI,CAACsD,IAAK;MAChBC,IAAI,EAAErC,QAAS;MACfN,QAAQ,EAAEA,QAAS;MACnBH,OAAO,EAAEA;IAAQ,CAClB,CACE,CACN;EACH;EAEA,SAASsC,UAAUA,CAAA,EAAG;IACpB,OAAOhC,UAAU,GAAAV,WAAA,KAAAA,WAAA,GACfvD,MAAA,CAAAkB,OAAA,CAAAoE,aAAA,CAAC/E,YAAA,CAAAW,OAAU;MAACwF,GAAG,EAAC,OAAO;MAACH,IAAI,EAAExC,YAAa;MAAC4C,OAAO;IAAA,CAAE,CAAC,IACpD,IAAI;EACV;AACF,CAAC;AAAA,IAAAC,QAAA,GAEcxD,kBAAkB;AAAAD,OAAA,CAAAjC,OAAA,GAAA0F,QAAA;AAEjC,SAASlC,kBAAkBA,CAAClB,EAAU,EAAEN,IAAU,EAAE;EAClD,MAAM;IAAE2D;EAAc,CAAC,GAAG,IAAAC,kBAAS,EAACtD,EAAE,CAAC;EACvC,MAAM,CAACiB,MAAM,EAAEsC,YAAY,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EACpD,MAAMC,QAAQ,GAAGF,cAAK,CAACxC,MAAM,CAAe,CAAC;EAE7C,MAAM2C,WAAW,GAAGA,CAAA,KAAM;IACxBC,YAAY,CAACF,QAAQ,CAACnC,OAAO,CAAC;EAChC,CAAC;EAEDiC,cAAK,CAACK,SAAS,CAAC,MAAM;IACpB,MAAM5C,MAAM,GAAGoC,aAAa,CAACS,IAAI,CAACC,KAAA,IAAyB;MAAA,IAAxB;QAAE9C,MAAM;QAAEvB,IAAI,EAAEsE;MAAE,CAAC,GAAAD,KAAA;MACpD,OAAO9C,MAAM,IAAI+C,CAAC,CAAChB,IAAI,KAAKtD,IAAI,CAACsD,IAAI,IAAIgB,CAAC,CAACC,IAAI,KAAKvE,IAAI,CAACuE,IAAI;IAC/D,CAAC,CAAC;IAEF,IAAIhD,MAAM,EAAE;MACVsC,YAAY,CAAC,IAAI,CAAC;MAClBI,WAAW,CAAC,CAAC;MACbD,QAAQ,CAACnC,OAAO,GAAG2C,UAAU,CAAC,MAAMX,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;IAChE;IAEA,OAAOI,WAAW;EACpB,CAAC,EAAE,CAACjE,IAAI,EAAE2D,aAAa,CAAC,CAAC;EAEzB,OAAOpC,MAAM;AACf"}
@@ -0,0 +1,13 @@
1
+ import { SpacingProps } from '../space/types';
2
+ export type UploadFileLinkProps = UploadFileAnchorProps & UploadFileButtonProps;
3
+ export declare const UploadFileLink: (props: UploadFileLinkProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default UploadFileLink;
5
+ type UploadFileButtonProps = {
6
+ text: string;
7
+ onClick?: () => void;
8
+ } & SpacingProps;
9
+ type UploadFileAnchorProps = {
10
+ text: string;
11
+ href: string;
12
+ download?: boolean;
13
+ } & SpacingProps;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.UploadFileLink = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _Anchor = _interopRequireDefault(require("../../components/Anchor"));
9
+ var _Button = _interopRequireDefault(require("../button/Button"));
10
+ var _SpacingUtils = require("../space/SpacingUtils");
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ const _excluded = ["onClick", "text", "href", "download"];
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
+ const UploadFileLink = props => {
18
+ const {
19
+ onClick,
20
+ text,
21
+ href,
22
+ download
23
+ } = props,
24
+ rest = _objectWithoutProperties(props, _excluded);
25
+ if (onClick) return _react.default.createElement(UploadFileButton, _extends({
26
+ text: text,
27
+ onClick: onClick
28
+ }, rest));
29
+ return _react.default.createElement(UploadFileAnchor, _extends({
30
+ text: text,
31
+ href: href,
32
+ download: download
33
+ }, rest));
34
+ };
35
+ exports.UploadFileLink = UploadFileLink;
36
+ var _default = UploadFileLink;
37
+ exports.default = _default;
38
+ const UploadFileButton = props => {
39
+ const {
40
+ text,
41
+ onClick
42
+ } = props;
43
+ const spacingClasses = (0, _SpacingUtils.createSpacingClasses)(props);
44
+ return _react.default.createElement(_Button.default, {
45
+ icon: false,
46
+ variant: "tertiary",
47
+ onClick: onClick,
48
+ className: (0, _classnames.default)(spacingClasses)
49
+ }, text);
50
+ };
51
+ const UploadFileAnchor = props => {
52
+ const {
53
+ text,
54
+ href,
55
+ download
56
+ } = props;
57
+ const spacingClasses = (0, _SpacingUtils.createSpacingClasses)(props);
58
+ return _react.default.createElement(_Anchor.default, {
59
+ target: "_blank",
60
+ href: href,
61
+ download: download ? text : null,
62
+ className: (0, _classnames.default)('dnb-anchor--no-launch-icon', spacingClasses),
63
+ rel: "noopener noreferrer"
64
+ }, text);
65
+ };
66
+ //# sourceMappingURL=UploadFileListLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadFileListLink.js","names":["_react","_interopRequireDefault","require","_Anchor","_Button","_SpacingUtils","_classnames","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","UploadFileLink","props","onClick","text","href","download","rest","createElement","UploadFileButton","UploadFileAnchor","exports","_default","spacingClasses","createSpacingClasses","icon","variant","className","classNames","rel"],"sources":["../../../../src/components/upload/UploadFileListLink.tsx"],"sourcesContent":["import React from 'react'\n\nimport Anchor from '../../components/Anchor'\nimport Button from '../button/Button'\nimport { SpacingProps } from '../space/types'\nimport { createSpacingClasses } from '../space/SpacingUtils'\nimport classNames from 'classnames'\n\nexport type UploadFileLinkProps = UploadFileAnchorProps &\n UploadFileButtonProps\n\nexport const UploadFileLink = (props: UploadFileLinkProps) => {\n const { onClick, text, href, download, ...rest } = props\n if (onClick)\n return <UploadFileButton text={text} onClick={onClick} {...rest} />\n return (\n <UploadFileAnchor\n text={text}\n href={href}\n download={download}\n {...rest}\n />\n )\n}\n\nexport default UploadFileLink\n\ntype UploadFileButtonProps = {\n text: string\n onClick?: () => void\n} & SpacingProps\n\nconst UploadFileButton = (props: UploadFileButtonProps) => {\n const { text, onClick } = props\n\n const spacingClasses = createSpacingClasses(props)\n return (\n <Button\n icon={false}\n variant=\"tertiary\"\n onClick={onClick}\n className={classNames(spacingClasses)}\n >\n {text}\n </Button>\n )\n}\n\ntype UploadFileAnchorProps = {\n text: string\n href: string\n download?: boolean\n} & SpacingProps\n\nconst UploadFileAnchor = (props: UploadFileAnchorProps) => {\n const { text, href, download } = props\n\n const spacingClasses = createSpacingClasses(props)\n\n return (\n <Anchor\n target=\"_blank\"\n href={href}\n download={download ? text : null}\n className={classNames('dnb-anchor--no-launch-icon', spacingClasses)}\n rel=\"noopener noreferrer\"\n >\n {text}\n </Anchor>\n )\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAmC,MAAAK,SAAA;AAAA,SAAAN,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAAA,SAAAQ,yBAAAN,MAAA,EAAAO,QAAA,QAAAP,MAAA,yBAAAJ,MAAA,GAAAY,6BAAA,CAAAR,MAAA,EAAAO,QAAA,OAAAN,GAAA,EAAAJ,CAAA,MAAAJ,MAAA,CAAAgB,qBAAA,QAAAC,gBAAA,GAAAjB,MAAA,CAAAgB,qBAAA,CAAAT,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAAa,gBAAA,CAAAX,MAAA,EAAAF,CAAA,MAAAI,GAAA,GAAAS,gBAAA,CAAAb,CAAA,OAAAU,QAAA,CAAAI,OAAA,CAAAV,GAAA,uBAAAR,MAAA,CAAAS,SAAA,CAAAU,oBAAA,CAAAR,IAAA,CAAAJ,MAAA,EAAAC,GAAA,aAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,cAAAL,MAAA;AAAA,SAAAY,8BAAAR,MAAA,EAAAO,QAAA,QAAAP,MAAA,yBAAAJ,MAAA,WAAAiB,UAAA,GAAApB,MAAA,CAAAqB,IAAA,CAAAd,MAAA,OAAAC,GAAA,EAAAJ,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAgB,UAAA,CAAAd,MAAA,EAAAF,CAAA,MAAAI,GAAA,GAAAY,UAAA,CAAAhB,CAAA,OAAAU,QAAA,CAAAI,OAAA,CAAAV,GAAA,kBAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,YAAAL,MAAA;AAK5B,MAAMmB,cAAc,GAAIC,KAA0B,IAAK;EAC5D,MAAM;MAAEC,OAAO;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAkB,CAAC,GAAGJ,KAAK;IAAdK,IAAI,GAAAf,wBAAA,CAAKU,KAAK,EAAA5B,SAAA;EACxD,IAAI6B,OAAO,EACT,OAAOpC,MAAA,CAAAU,OAAA,CAAA+B,aAAA,CAACC,gBAAgB,EAAA/B,QAAA;IAAC0B,IAAI,EAAEA,IAAK;IAACD,OAAO,EAAEA;EAAQ,GAAKI,IAAI,CAAG,CAAC;EACrE,OACExC,MAAA,CAAAU,OAAA,CAAA+B,aAAA,CAACE,gBAAgB,EAAAhC,QAAA;IACf0B,IAAI,EAAEA,IAAK;IACXC,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA;EAAS,GACfC,IAAI,CACT,CAAC;AAEN,CAAC;AAAAI,OAAA,CAAAV,cAAA,GAAAA,cAAA;AAAA,IAAAW,QAAA,GAEcX,cAAc;AAAAU,OAAA,CAAAlC,OAAA,GAAAmC,QAAA;AAO7B,MAAMH,gBAAgB,GAAIP,KAA4B,IAAK;EACzD,MAAM;IAAEE,IAAI;IAAED;EAAQ,CAAC,GAAGD,KAAK;EAE/B,MAAMW,cAAc,GAAG,IAAAC,kCAAoB,EAACZ,KAAK,CAAC;EAClD,OACEnC,MAAA,CAAAU,OAAA,CAAA+B,aAAA,CAACrC,OAAA,CAAAM,OAAM;IACLsC,IAAI,EAAE,KAAM;IACZC,OAAO,EAAC,UAAU;IAClBb,OAAO,EAAEA,OAAQ;IACjBc,SAAS,EAAE,IAAAC,mBAAU,EAACL,cAAc;EAAE,GAErCT,IACK,CAAC;AAEb,CAAC;AAQD,MAAMM,gBAAgB,GAAIR,KAA4B,IAAK;EACzD,MAAM;IAAEE,IAAI;IAAEC,IAAI;IAAEC;EAAS,CAAC,GAAGJ,KAAK;EAEtC,MAAMW,cAAc,GAAG,IAAAC,kCAAoB,EAACZ,KAAK,CAAC;EAElD,OACEnC,MAAA,CAAAU,OAAA,CAAA+B,aAAA,CAACtC,OAAA,CAAAO,OAAM;IACLK,MAAM,EAAC,QAAQ;IACfuB,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAQ,GAAGF,IAAI,GAAG,IAAK;IACjCa,SAAS,EAAE,IAAAC,mBAAU,EAAC,4BAA4B,EAAEL,cAAc,CAAE;IACpEM,GAAG,EAAC;EAAqB,GAExBf,IACK,CAAC;AAEb,CAAC"}
@@ -84,13 +84,15 @@
84
84
  }
85
85
  .dnb-upload__file-cell__content {
86
86
  display: flex;
87
- flex-direction: row;
87
+ -moz-column-gap: var(--spacing-small);
88
+ column-gap: var(--spacing-small);
88
89
  justify-content: space-between;
89
90
  align-items: center;
90
91
  }
91
92
  .dnb-upload__file-cell__content__left {
92
93
  display: flex;
93
- flex-direction: row;
94
+ -moz-column-gap: var(--spacing-small);
95
+ column-gap: var(--spacing-small);
94
96
  align-items: center;
95
97
  }
96
98
  .dnb-upload__file-cell__content__left .dnb-icon {
@@ -105,7 +107,6 @@
105
107
  .dnb-upload__file-cell__text-container {
106
108
  display: flex;
107
109
  flex-direction: column;
108
- margin-left: var(--spacing-small);
109
110
  }
110
111
  .dnb-upload__file-cell__text-container--loading {
111
112
  font-size: var(--font-size-basis);
@@ -1 +1 @@
1
- .dnb-upload{--upload-background:#fff;--upload-background--active:#d3d3d3;--upload-border:gray;--upload-border--active:#000;--upload-border-width:2px;--upload-list-border:#000;--upload-icon--default:#000;--upload-icon--warning:red;--upload-highlight:#ffffe0;--upload-text--primary:#000;--upload-text--secondary:#000;background-color:var(--upload-background);border-radius:.5rem;display:flex;flex-direction:column;padding:var(--spacing-medium);position:relative}@media screen and (max-width:40em){.dnb-upload{padding:var(--spacing-medium) var(--spacing-small)}}.dnb-upload__outline{stroke:var(--upload-border);stroke-width:.1875rem;border-radius:.5rem;content:"";height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.dnb-upload--active .dnb-upload__outline{stroke:var(--upload-border--active);height:calc(100% + var(--upload-border-width));inset:-1px;width:calc(100% + var(--upload-border-width))}.dnb-upload--active .dnb-upload__outline rect{stroke-width:.25rem;stroke-dasharray:0}.dnb-upload--active{background-color:var(--upload-background--active)}.dnb-upload__file-input{position:absolute;visibility:hidden}.dnb-upload__file-list{list-style:none;margin-bottom:0;margin-top:var(--spacing-medium);padding:0;position:relative}.dnb-upload__file-cell:after,.dnb-upload__file-list:before{background-color:var(--upload-list-border);content:"";height:1px;inset:0;position:absolute}.dnb-upload__file-cell{padding:var(--spacing-small) 0;position:relative;transition:background-color;transition-duration:1.5s;transition-timing-function:var(--easing-default)}.dnb-upload__file-cell:after{top:auto}.dnb-upload__file-cell__content{justify-content:space-between}.dnb-upload__file-cell__content,.dnb-upload__file-cell__content__left{align-items:center;display:flex;flex-direction:row}.dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--default)}.dnb-upload__file-cell--warning .dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--warning)}.dnb-upload__file-cell--highlight{background-color:var(--upload-highlight)}.dnb-upload__file-cell__text-container{display:flex;flex-direction:column;margin-left:var(--spacing-small)}.dnb-upload__file-cell__text-container--loading{font-size:var(--font-size-basis)}.dnb-upload__text.dnb-p{color:var(--upload-text--secondary)}.dnb-upload__accepted-file-types-table.dnb-table{width:-moz-fit-content;width:fit-content}.dnb-upload__accepted-file-types-table.dnb-table thead th{font-size:var(--font-size-basis);font-weight:var(--font-weight-medium);padding-top:0}.dnb-upload__accepted-file-types-table.dnb-table tbody td:first-child,.dnb-upload__accepted-file-types-table.dnb-table thead th:first-child{padding-left:0}.dnb-upload__subtitle.dnb-p{color:var(--upload-text--secondary)}
1
+ .dnb-upload{--upload-background:#fff;--upload-background--active:#d3d3d3;--upload-border:gray;--upload-border--active:#000;--upload-border-width:2px;--upload-list-border:#000;--upload-icon--default:#000;--upload-icon--warning:red;--upload-highlight:#ffffe0;--upload-text--primary:#000;--upload-text--secondary:#000;background-color:var(--upload-background);border-radius:.5rem;display:flex;flex-direction:column;padding:var(--spacing-medium);position:relative}@media screen and (max-width:40em){.dnb-upload{padding:var(--spacing-medium) var(--spacing-small)}}.dnb-upload__outline{stroke:var(--upload-border);stroke-width:.1875rem;border-radius:.5rem;content:"";height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.dnb-upload--active .dnb-upload__outline{stroke:var(--upload-border--active);height:calc(100% + var(--upload-border-width));inset:-1px;width:calc(100% + var(--upload-border-width))}.dnb-upload--active .dnb-upload__outline rect{stroke-width:.25rem;stroke-dasharray:0}.dnb-upload--active{background-color:var(--upload-background--active)}.dnb-upload__file-input{position:absolute;visibility:hidden}.dnb-upload__file-list{list-style:none;margin-bottom:0;margin-top:var(--spacing-medium);padding:0;position:relative}.dnb-upload__file-cell:after,.dnb-upload__file-list:before{background-color:var(--upload-list-border);content:"";height:1px;inset:0;position:absolute}.dnb-upload__file-cell{padding:var(--spacing-small) 0;position:relative;transition:background-color;transition-duration:1.5s;transition-timing-function:var(--easing-default)}.dnb-upload__file-cell:after{top:auto}.dnb-upload__file-cell__content{justify-content:space-between}.dnb-upload__file-cell__content,.dnb-upload__file-cell__content__left{align-items:center;-moz-column-gap:var(--spacing-small);column-gap:var(--spacing-small);display:flex}.dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--default)}.dnb-upload__file-cell--warning .dnb-upload__file-cell__content__left .dnb-icon{color:var(--upload-icon--warning)}.dnb-upload__file-cell--highlight{background-color:var(--upload-highlight)}.dnb-upload__file-cell__text-container{display:flex;flex-direction:column}.dnb-upload__file-cell__text-container--loading{font-size:var(--font-size-basis)}.dnb-upload__text.dnb-p{color:var(--upload-text--secondary)}.dnb-upload__accepted-file-types-table.dnb-table{width:-moz-fit-content;width:fit-content}.dnb-upload__accepted-file-types-table.dnb-table thead th{font-size:var(--font-size-basis);font-weight:var(--font-weight-medium);padding-top:0}.dnb-upload__accepted-file-types-table.dnb-table tbody td:first-child,.dnb-upload__accepted-file-types-table.dnb-table thead th:first-child{padding-left:0}.dnb-upload__subtitle.dnb-p{color:var(--upload-text--secondary)}
@@ -106,14 +106,14 @@
106
106
 
107
107
  &__content {
108
108
  display: flex;
109
- flex-direction: row;
109
+ column-gap: var(--spacing-small);
110
110
 
111
111
  justify-content: space-between;
112
112
  align-items: center;
113
113
 
114
114
  &__left {
115
115
  display: flex;
116
- flex-direction: row;
116
+ column-gap: var(--spacing-small);
117
117
  align-items: center;
118
118
 
119
119
  .dnb-icon {
@@ -134,8 +134,6 @@
134
134
  display: flex;
135
135
  flex-direction: column;
136
136
 
137
- margin-left: var(--spacing-small);
138
-
139
137
  &--loading {
140
138
  font-size: var(--font-size-basis);
141
139
  }
@@ -40,9 +40,15 @@ export type UploadProps = {
40
40
  /**
41
41
  * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.
42
42
  */
43
- onFileDelete?: ({ fileItem }: {
43
+ onFileDelete?: ({ fileItem, }: {
44
44
  fileItem: UploadFile;
45
- }) => void;
45
+ }) => void | Promise<void>;
46
+ /**
47
+ * Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.
48
+ */
49
+ onFileClick?: ({ fileItem, }: {
50
+ fileItem: UploadFile;
51
+ }) => void | Promise<void>;
46
52
  /**
47
53
  * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.
48
54
  * Default: false
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadAcceptedFileTypesWithFileMaxSize =\n UploadAcceptedFileTypeObject[]\n\nexport type UploadAcceptedFileTypeObject = {\n fileType: string\n fileMaxSize?: number | false\n}\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: Array<UploadFile> }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({ fileItem }: { fileItem: UploadFile }) => void\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeTableCaption?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: Array<UploadFileNative>) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n id: string\n exists: boolean\n isLoading?: boolean\n errorMessage?: React.ReactNode\n}\n\nexport type UploadFileNative = Omit<UploadFile, 'id' | 'exists'> &\n Partial<Pick<UploadFile, 'id' | 'exists'>>\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/upload/types.ts"],"sourcesContent":["import React from 'react'\nimport type { SkeletonShow } from '../skeleton/Skeleton'\nimport type { LocaleProps, SpacingProps } from '../../shared/types'\n\nexport type UploadAcceptedFileTypes = string[]\n\nexport type UploadAcceptedFileTypesWithFileMaxSize =\n UploadAcceptedFileTypeObject[]\n\nexport type UploadAcceptedFileTypeObject = {\n fileType: string\n fileMaxSize?: number | false\n}\n\nexport type UploadProps = {\n /**\n * unique id used with the useUpload hook to manage the files\n */\n id: string\n\n /**\n * list of accepted file types.\n */\n acceptedFileTypes:\n | UploadAcceptedFileTypes\n | UploadAcceptedFileTypesWithFileMaxSize\n\n /**\n * Skeleton should be applied when loading content\n * Default: null\n */\n skeleton?: SkeletonShow\n\n /**\n * Defines the amount of files the user can select and upload\n * Default: 100\n */\n filesAmountLimit?: number\n\n /**\n * Defines the max file size of each file in MB. Use either `0` or `false` to disable.\n * Default: 5 MB\n */\n fileMaxSize?: number | false\n\n /**\n * will be called on `files` changes made by the user. Access the files with `{ files }`.\n */\n onChange?: ({ files }: { files: Array<UploadFile> }) => void\n\n /**\n * will be called once a file gets deleted by the user. Access the deleted file with `{ fileItem }`.\n */\n onFileDelete?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Will be called once a file gets clicked on by the user. Access the clicked file with `{ fileItem }`.\n */\n onFileClick?: ({\n fileItem,\n }: {\n fileItem: UploadFile\n }) => void | Promise<void>\n\n /**\n * Causes the browser to treat all listed files as downloadable instead of opening them in a new browser tab or window.\n * Default: false\n */\n download?: boolean\n\n /**\n * Custom text properties\n */\n title?: React.ReactNode\n text?: React.ReactNode\n fileTypeTableCaption?: React.ReactNode\n fileTypeDescription?: React.ReactNode\n fileSizeDescription?: React.ReactNode\n fileAmountDescription?: React.ReactNode\n fileSizeContent?: React.ReactNode\n buttonText?: React.ReactNode\n errorLargeFile?: React.ReactNode\n errorUnsupportedFile?: React.ReactNode\n errorAmountLimit?: React.ReactNode\n loadingText?: React.ReactNode\n deleteButton?: React.ReactNode\n fileListAriaLabel?: string\n children?: React.ReactNode\n}\n\nexport type UploadAllProps = UploadProps &\n SpacingProps &\n LocaleProps &\n Omit<React.HTMLProps<HTMLElement>, 'onChange' | 'title'>\n\nexport type UploadContextProps = {\n id?: string\n onInputUpload: (files: Array<UploadFileNative>) => void\n} & Partial<UploadProps>\n\nexport type UploadFile = {\n file: File\n id: string\n exists: boolean\n isLoading?: boolean\n errorMessage?: React.ReactNode\n}\n\nexport type UploadFileNative = Omit<UploadFile, 'id' | 'exists'> &\n Partial<Pick<UploadFile, 'id' | 'exists'>>\n"],"mappings":""}
@@ -376,7 +376,7 @@ function Provider(props) {
376
376
  isEmptyDataRef.current = true;
377
377
  internalDataRef.current = (_ref4 = typeof emptyData === 'function' ? emptyData(internalDataRef.current) : emptyData) !== null && _ref4 !== void 0 ? _ref4 : Array.isArray(internalDataRef.current) ? [] : clearedData;
378
378
  if (id) {
379
- setSharedData === null || setSharedData === void 0 ? void 0 : setSharedData(internalDataRef.current);
379
+ setSharedData(internalDataRef.current);
380
380
  }
381
381
  forceUpdate();
382
382
  onClear === null || onClear === void 0 ? void 0 : onClear();
@@ -385,16 +385,17 @@ function Provider(props) {
385
385
  });
386
386
  }, [emptyData, id, onClear, setSharedData]);
387
387
  useLayoutEffect(() => {
388
- if (id && initialData && !sharedData.data) {
389
- extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(initialData);
388
+ if (id) {
389
+ if (initialData && !sharedData.data) {
390
+ extendSharedData(initialData, {
391
+ preventSyncOfSameInstance: true
392
+ });
393
+ }
390
394
  }
391
395
  }, [id, initialData, extendSharedData, sharedData.data]);
392
- (0, _react.useMemo)(() => {
393
- executeAjvValidator();
394
- }, [internalDataRef.current]);
395
396
  useLayoutEffect(() => {
396
397
  if (id) {
397
- extendAttachment === null || extendAttachment === void 0 ? void 0 : extendAttachment({
398
+ extendAttachment({
398
399
  visibleDataHandler,
399
400
  filterDataHandler,
400
401
  hasErrors,
@@ -403,12 +404,17 @@ function Provider(props) {
403
404
  setSubmitState,
404
405
  clearData,
405
406
  fieldConnectionsRef
407
+ }, {
408
+ preventSyncOfSameInstance: true
406
409
  });
407
410
  if (filterSubmitData) {
408
411
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
409
412
  }
410
413
  }
411
- }, [extendAttachment, visibleDataHandler, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState, clearData]);
414
+ }, [extendAttachment, visibleDataHandler, filterDataHandler, filterSubmitData, hasErrors, hasFieldError, id, rerenderUseDataHook, setShowAllErrors, setSubmitState, clearData, extendSharedData]);
415
+ (0, _react.useMemo)(() => {
416
+ executeAjvValidator();
417
+ }, [internalDataRef.current]);
412
418
  const storeInSession = (0, _react.useMemo)(() => {
413
419
  return (0, _helpers.debounce)(() => {
414
420
  var _window$sessionStorag2;
@@ -422,7 +428,9 @@ function Provider(props) {
422
428
  }
423
429
  internalDataRef.current = newData;
424
430
  if (id) {
425
- extendSharedData === null || extendSharedData === void 0 ? void 0 : extendSharedData(newData);
431
+ extendSharedData(newData, {
432
+ preventSyncOfSameInstance: true
433
+ });
426
434
  if (filterSubmitData) {
427
435
  rerenderUseDataHook === null || rerenderUseDataHook === void 0 ? void 0 : rerenderUseDataHook();
428
436
  }